Word2Vec für die Erkennung benannter Entitäten


25

Ich möchte die word2vec-Implementierung von Google verwenden, um ein System zur Erkennung benannter Entitäten zu erstellen. Ich habe gehört, dass rekursive neuronale Netze mit Backpropagation durch Struktur für Aufgaben zur Erkennung benannter Entitäten gut geeignet sind, aber ich konnte für diesen Modelltyp keine angemessene Implementierung oder ein geeignetes Lernprogramm finden. Da ich mit einem atypischen Korpus arbeite, haben Standard-NER-Tools in NLTK und ähnlichem eine sehr schlechte Leistung erbracht, und es sieht so aus, als müsste ich mein eigenes System trainieren.

Kurz gesagt, welche Ressourcen stehen für diese Art von Problem zur Verfügung? Gibt es eine Standardimplementierung für rekursive neuronale Netze?


Haben Sie versucht, den Stanford NER auf Ihrem Korpus zu trainieren? Es gibt ein Tutorial hier .
Emre

Ich habe nicht - sollte das mal ausprobieren, wie es abschneidet.
Madison

Ich würde jedoch gerne Word2Vec-Funktionen oder ähnliches verwenden, da ich Zugriff auf einen relativ kleinen, beschrifteten Datensatz habe und die nicht beschrifteten Daten, die ich zur Verfügung habe, optimal nutzen muss.
Madison

Antworten:



7

Zwei kürzlich erschienene Artikel verwenden eine Deep-Learning-Architektur namens CharWNN, um dieses Problem anzugehen. CharWNN wurde zum ersten Mal verwendet, um die neuesten Ergebnisse (ohne handgefertigte Funktionen) für das Part of Speech (POS) -Tagging auf einem englischen Korpus zu erhalten.

Der zweite Artikel desselben Autors verwendet dieselbe (oder eine ähnliche) Architektur, um vorherzusagen, ob ein Wort zu 10 Named-Entity-Klassen gehört, mit offensichtlichen Ergebnissen auf dem neuesten Stand der Technik.


Interessant. Vielen Dank für das Teilen. Ich frage mich, warum sie diesen Ansatz nicht an englischen Korpora getestet haben.
MaticDiba

3

Versuchen Sie es unter http://deeplearning4j.org/word2vec.html . Dies hat eine Implementierung von Word2Vec anstelle von Bag of Words für NER und andere NLP-Aufgaben.


1
Ich hatte keine Probleme, Word2Vec-Implementierungen zu finden, konnte jedoch kein funktionierendes rekursives Netz finden, das ich verwenden konnte.
Madison

Link ist nicht mehr aktiv, wenn möglich, teilen Sie den neuen Arbeitslink
Amandeep

1

Im Folgenden finden Sie einige Ideen zur Verwendung von Wortvektoren für NER, die einen meist unbeaufsichtigten word2vec-zentrierten Ansatz verwenden.

  1. Entdecken Sie anhand einer Reihe von Wortvektoren (entweder etwas, das Sie trainiert haben, oder etwas von der Stange wie GoogleNews-vectors-negative300.bin) Cluster im Vektorraum. Diese Cluster sind im Grunde Ihre Definitionen für verschiedene unbenannte Konzepte.
  2. Mit minimaler Überwachung können Sie die unbenannten Cluster so zuordnen / konvertieren, dass sie mit dem menschlichen Wissen übereinstimmen. Auf diese Weise werden benannte Konzepte erstellt, die auf den bekannten Wortvektoren und unbenannten Konzepten basieren. Beispielsweise kann eine Methode findCluster(['joy', 'surprise', 'disgust', 'trust', 'fear', 'sadness', 'anger', 'anticipation'])eine Liste mit Hunderten von Wörtern zurückgeben, die sich hauptsächlich auf Emotionen beziehen. Wenn Sie diese Liste als "Emotion" bezeichnen, haben Sie dort einen Begriff "Emotion" definiert, der auf dem Vektorraum basiert.
  3. Sie können auch Vektorrechnungen durchführen, um das Zwischenkonzept zwischen zwei vorgegebenen Konzepten zu finden. Zum Beispiel könnte die Vektormathematik Ihnen sagen, dass, wenn zwei Wörter "Überraschung" und "Ekel" gegeben werden, die folgenden zwischen den beiden gefunden werden: Bestürzung, Erstaunen, Enttäuschung, Erstaunen, Verwirrung, Ärger, Unglaube, Schock usw. Dies ermöglicht Sie Beziehung zwischen Konzepten aufzubauen.
  4. Sie können die obigen Schritte wiederholen, um verschiedene Arten von benannten Konzepten aufzubauen, z.
  5. Sobald Sie Ebenen mit benannten Konzepten aufgebaut haben, können Sie eine RNN auf einem Textkorpus trainieren, der mit den benannten Konzepten erweitert wurde, sodass "Brown Fox Jumps" auch "{color} {animal} {action}" usw. ist. Auf diese Weise sollte der RNN in der Lage sein, einige rudimentäre Grammatik auf unbeaufsichtigte Weise zu lernen.
  6. Wenn Sie eine ausreichend leistungsfähige Grammatik aus den obigen Angaben erstellt haben, sollten Sie sie auf einige Ihrer NER-Aufgaben anwenden können.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.