Próbuję wygenerować inteligentny model, który może skanować zestaw słów lub ciągów i klasyfikować je jako nazwy, numery telefonów komórkowych, adresy, miasta, stany, kraje i inne podmioty korzystające z uczenia maszynowego lub głębokiego uczenia się.
Szukałem podejść, ale niestety nie znalazłem żadnego podejścia. Próbowałem z osadzeniem worka słów model i rękawiczki, aby przewidzieć, czy łańcuch to nazwa, miasto itp.
Ale nie udało mi się z modelem worków słów i GloVe istnieje wiele nazw, które nie zostały uwzględnione w przykładzie osadzania: - Lauren jest obecna w Glove, a laurena nie jest
Znalazłem ten post tutaj , który miał rozsądną odpowiedź, ale nie mogłem podejść do rozwiązania tego problemu poza faktem, że NLP i SVM zostały użyte do jego rozwiązania.
Wszelkie sugestie są mile widziane
Dzięki i pozdrawiam, Sai Charan Adurthi.
źródło
Odpowiedzi:
Możesz zastosować gram znaków - Intuicyjnie może istnieć ogromna różnica w zestawie znaków między numerem telefonu a adresem e-mail. a następnie przekaż wektor gramów znakowych do SVM, aby dokonać prognozy. Możesz to zaimplementować za pomocą sklearn za pomocą poniższych ekstraktorów funkcji.
TfIdfVectorizer (analizator = „znak”)
CountVectorizer (analizator = „znak”)
Sprawdź poprawność zakresu ngram i zmiennych luzu SVM, aby dostroić model.
źródło
Zastosowanie do słów wspólnych etykiet jakościowych jest zwykle nazywane rozpoznawaniem nazwanych podmiotów (NER) .
NER można wykonać za pomocą reguł statycznych (np. Wyrażeń regularnych) lub wyuczonych reguł (np. Drzew decyzyjnych). Reguły te są często kruche i nie generalizują. Warunkowe pola losowe (CRF) są często lepszym rozwiązaniem, ponieważ są w stanie modelować ukryte stany języków. Obecna najnowocześniejsza wydajność w NER odbywa się za pomocą kombinacji modeli Deep Learning .
Stanford Nazwany Podmiot Rozpoznawanie i przestronne są pakiety do wykonania Nerem.
źródło