Welche Techniken für maschinelles / tiefes Lernen / nlp werden verwendet, um ein bestimmtes Wort als Name, Handynummer, Adresse, E-Mail, Bundesstaat, Landkreis, Stadt usw. zu klassifizieren?

9

Ich versuche, ein intelligentes Modell zu generieren, das eine Reihe von Wörtern oder Zeichenfolgen scannen und mithilfe von maschinellem Lernen oder Deep Learning als Namen, Handynummern, Adressen, Städte, Bundesstaaten, Länder und andere Einheiten klassifizieren kann.

Ich hatte nach Ansätzen gesucht, aber leider keinen Ansatz gefunden. Ich hatte versucht, mit einer Worttüte Modell- und Handschuhworteinbettung vorherzusagen, ob eine Zeichenfolge ein Name oder eine Stadt usw. ist.

Aber ich habe es mit dem Bag of Words-Modell nicht geschafft und mit GloVe gibt es viele Namen, die im Einbettungsbeispiel nicht behandelt werden: - Lauren ist in Glove vorhanden und Laurena nicht

Ich habe diesen Beitrag hier gefunden , der eine vernünftige Antwort hatte, aber ich konnte den Ansatz zur Lösung dieses Problems nicht verwenden, abgesehen von der Tatsache, dass NLP und SVM zur Lösung des Problems verwendet wurden.

Anregungen sind willkommen

Danke und Grüße, Sai Charan Adurthi.

Sai Charan Adurthi
quelle
4
Keine Antwort, aber dies wird als Named Entity Recognition bezeichnet. Das Suchen mit diesen Begriffen kann hilfreiche Informationen ergeben.
Kbrose
Vielen Dank an @kbrose, wir werden uns mit den Techniken zur Erkennung benannter Entitäten befassen.
Sai Charan Adurthi

Antworten:

1

Sie können Zeichengramme anwenden - Intuitiv kann es einen großen Unterschied im Zeichensatz zwischen einer Telefonnummer und einer E-Mail-Adresse geben. und dann den Zeichengrammvektor an SVM übergeben, um eine Vorhersage zu treffen. Sie können dies mithilfe von sklearn mithilfe der folgenden Feature-Extraktoren implementieren.

  1. TfIdfVectorizer (Analyzer = 'Zeichen')

  2. CountVectorizer (Analyzer = 'Zeichen')

Kreuzvalidierung des ngram-Bereichs und der Slack-Variablen von SVM zur Feinabstimmung Ihres Modells.

karthikbharadwaj
quelle
Vielen Dank! @ karthikbharadwaj. Ich arbeite derzeit mit R, werde in sklearn schauen und sehen, ob es funktioniert ..
Sai Charan Adurthi
@Sai Charan Adurthi - Bitte stimmen Sie ab, wenn Sie es hilfreich fanden, und akzeptieren Sie Antworten, wenn Sie sie hilfreich fanden.
karthikbharadwaj
Sicher, werde es auf jeden Fall tun, wenn ich es in Python überprüfe ...
Sai Charan Adurthi
0

Das Anwenden gängiger kategorialer Bezeichnungen auf Wörter wird normalerweise als NER (Named Entity Recognition) bezeichnet .

NER kann durch statische Regeln (z. B. reguläre Ausdrücke) oder gelernte Regeln (z. B. Entscheidungsbäume) erfolgen. Diese Regeln sind oft spröde und verallgemeinern sich nicht. Bedingte Zufallsfelder (CRF) sind oft eine bessere Lösung, da sie die latenten Zustände von Sprachen modellieren können. Der aktuelle Stand der Technik in NER wird mit einer Kombination von Deep-Learning-Modellen erreicht .

Der Stanford Named Entity Recognizer und spaCy sind Pakete zur Durchführung von NER.

Brian Spiering
quelle
Vielen Dank, Dr. Brain! .. aber ich möchte ein Modell erstellen, das nur ein einzelnes Wort oder ein Wort aus Zeichenfolgen verwendet und vorhersagt, ob es sich um einen Namen, eine Adresse usw. handelt. Ich hatte NER mit openNLP von Apache in R ausprobiert. Es gelang mir nicht ganz drin. Das brauchte einen Absatz von Wörtern, um Grammatik und Wortarten zu verwenden. Ich möchte ein Modell haben, das sogar Dinge wie Postleitzahlen, Postleitzahlen und Landesvorwahlen verstehen kann. Gehen Sie hier mit dem richtigen Ansatz, Dr. Gehirn?
Sai Charan Adurthi
Sie sollten nicht daran denken, ein einziges allgemeines Modell zu haben. Sie sollten für jeden Elementtyp ein Modell erstellen. Beispielsweise könnten die meisten Postleitzahlen mit einem regulären Ausdruck gefunden werden. Auch der Kontext ist König, ein Modell, dem ein einzelnes Wort gegeben wird, kann NER schlecht vorhersagen. Es ist besser, große Textabschnitte zu haben.
Brian Spiering
Hallo, @Dr. Gehirn, ich hatte es mit dem text2vec-Paket für R ausprobiert und Glove Word-Einbettungen verwendet, um zu überprüfen, wie ähnlich Wörter sind. Beispiel: Ich habe Zugdaten von 1000 Zeilen mit Kategorien wie Name, Stadt, Bundesland, Land usw., Testdaten mit unterschiedlichen Werten. Ich habe text2vec verwendet, um TCM für beide Zug- und Testdatenwerte zu erstellen, dann das Handschuhmodell an diese TCMs anzupassen und die Ähnlichkeit jedes Wortes in den Testdaten zu überprüfen, um Daten nach Kategorien mithilfe der Kosinus-Ähnlichkeitsfunktion zu trainieren. Aber ich konnte nicht jedes Mal, wenn ich Handschuhmodelle generiere und auf Ähnlichkeit prüfe, eine gute Genauigkeit und eine gleichmäßige Variabilität erzielen.
Sai Charan Adurthi
Danke, Dr.Brian, es funktioniert, wenn ich Sätze verwende, um den Kontext zu ermitteln und NERs zu verwenden. Aber ich möchte es nur mit Wörtern tun und sehen, ob irgendein Modell Muster aus den Wörtern lernen kann.
Sai Charan Adurthi
Hallo Gehirn, ich hatte Apache Open NLP verwendet, um vorab trainierte NER-Modelle zu verwenden. Und ja, es funktioniert auch mit Worten.
Sai Charan Adurthi