Ich versuche SyntaxNet zu verstehen und zu lernen. Ich versuche herauszufinden, ob es eine Möglichkeit gibt, SyntaxNet für die Namenserkennung eines Korpus zu verwenden. Jeder Beispielcode oder hilfreiche Links wären willkommen.Namenserkennung mit Syntaxnet
Antwort
Während Syntaxnet keine Funktion zur Erkennung namentlich genannter Elemente bietet, führt Parsey McPareface einen Teil der Sprachmarkierung durch und erzeugt die Ausgabe als Co-NLL-Tabelle.
Jedes Eigenname ist als NNP markiert und ich habe festgestellt, dass eine einfache Regex-Kennung wie folgt: <NNP>+
d. H. Ein oder mehrere Eigennamen zusammen ergibt eine ziemlich gute Ausbeute von benannten Entitäten innerhalb eines Dokuments. Es ist natürlich rudimentär und regelbasiert, aber dennoch effektiv.
Um die Co-NLL-Daten zu einer Ausgabedatei aus dem demo.sh-Skript (in "/ opt/tensorflow/models/syntaxnet/syntaxnet") zu pipen, kommentieren Sie den Abschnitt des Codes aus, an den sie weitergeleitet wird conll2ascii.py so dass das Skript sieht so aus:
PARSER_EVAL=bazel-bin/syntaxnet/parser_eval
MODEL_DIR=syntaxnet/models/parsey_mcparseface
[[ "$1" == "--conll" ]] && INPUT_FORMAT=stdin-conll || INPUT_FORMAT=stdin
$PARSER_EVAL \
--input=$INPUT_FORMAT \
--output=stdout-conll \
--hidden_layer_sizes=64 \
--arg_prefix=brain_tagger \
--graph_builder=structured \
--task_context=$MODEL_DIR/context.pbtxt \
--model_path=$MODEL_DIR/tagger-params \
--slim_model \
--batch_size=1024 \
--alsologtostderr \
| \
$PARSER_EVAL \
--input=stdin-conll \
--output=sample-param \
--hidden_layer_sizes=512,512 \
--arg_prefix=brain_parser \
--graph_builder=structured \
--task_context=$MODEL_DIR/context.pbtxt \
--model_path=$MODEL_DIR/parser-params \
--slim_model \
--batch_size=1024 \
--alsologtostderr
Sie werden auch feststellen, dass die Ausgabeparameter in der obigen Datei zu Probe-param geändert wurden. Wir werden jetzt das festlegen. Gehen Sie zur Datei context.pbtxt (in "/ opt/tensorflow/models/syntaxnet/syntaxnet/models/parsey_mcparseface") und erstellen Sie einen Eingabeparameter, der auf Ihre Ausgabedatei verweist. Es sollte so etwas wie so aussehen:
input {
name: 'sample-param'
record_format: 'conll-sentence'
Part {
file_pattern: "directory/prepoutput.txt"
}
}
Speichern und schließen Sie die Datei und kehren Sie zu "/ opt/tensorflow/models/syntaxnet" und laufen syntaxnet/demo.sh wie im syntaxnet Tutorial gegeben. Wenn Sie fertig sind, gehen Sie zum angegebenen Ausgabeordner und Sie sollten eine Tabelle im Co-Nll-Format haben. Sie können dann ein einfaches iteratives Programm ausführen, das über jeden Eintrag geht und die Pos-Tags identifiziert und basierend darauf Variationen meines vorgeschlagenen Formats für die Entity-Erkennung ausprobieren kann.
Hoffe das half!
Nein, ich bin nie auf ein Tool oder eine Methode gestoßen, die das Parsing für NER (Named Entity Recognition) verwenden/erfordern.
Obwohl NER marginal von Funktionen im Zusammenhang mit dem Parse-Baum profitieren kann, ist es ein Umweg, da das Parsing im Vergleich zu allgemeinen Implementierungen von NER sehr langsam ist. Dies ist auch der Grund, warum selbst Teile von Sprach-Tags nicht als Merkmale in einem NER-System verwendet werden.
Hoffe, das hilft.
Ich habe GATE verwendet, die in der Lage ist, Named Entity Recognition zu identifizieren, und es erfordert keine Analyse NER. Obwohl der Wortbestandteil-Tagger in SyntaxNet Substantive, Substantiv-Modifizierer usw. identifizieren kann (was ein mächtigeres Werkzeug zur Spezifizierung verschiedener Rollen von Namensentitäten ist), bin ich nicht sicher, wie schnell er bei der Identifizierung von NERs arbeiten wird.
- 1. Erste Schritte mit Syntaxnet
- 2. Annotieren eines Korpus mit Syntaxnet
- 3. Train SyntaxNet Modell
- 4. Annotieren eines Korpus (Syntaxnet)
- 5. Anmerkungen verstehen - Syntaxnet
- 6. Build Syntaxnet mit Bazel: Pywrap Fehler
- 7. Fehler beim Build SyntaxNet mit Bazel
- 8. Ist SyntaxNet mit Open NLP kompatibel?
- 9. Verwenden Sie SyntaxNet zum Chunking?
- 10. Kann SyntaxNet-Quelle nicht erstellen?
- 11. Ermöglicht SyntaxNet das Hinzufügen eines benutzerdefinierten Diktons?
- 12. Verwenden von Syntaxnet POS-Tags in Python?
- 13. Wie wow_embeddings verwenden Option von Syntaxnet
- 14. Warum SyntaxNet demo.sh findet keine korrekten Importe?
- 15. Tensorflow-Syntaxnet: Wo sind same_pb2 und gen_parser_ops?
- 16. Training des SyntaxNet POS Tagger im SytaxNet
- 17. Wie Bazel Artefakte von Tensorflow Tensorflow-Serving und Syntaxnet kombinieren?
- 18. Install error wenn bazel für syntaxnet gebaut wird
- 19. Wie kann ich Syntaxnet von Python-Datei aufrufen?
- 20. auf der Suche nach einem vortrainierten Syntaxnet-Programm
- 21. So erhalten Sie Dependency Parse-Ausgabe von SyntaxNet
- 22. Ist es möglich, ein Syntaxnet-Modell (Parsey McPareface) zu exportieren, das mit TensorFlow Serving geliefert wird?
- 23. Kann ich SyntaxNet als eine Bibliothek aus meinem C++ - Code verwenden?
- 24. Bazel-Build schlägt fehl beim Ausführen von genrule @six_archive //: copy_six failed Fehler beim Erstellen von Syntaxnet
- 25. bazel kann nicht testen Syntax net in meinem Mac
- 26. Parsey mcparseface: wie man Position des Wortes im Satz zusammen mit Parsebaum erhält
- 27. Parsing Python asciitree Ausgabe und Druck 'beschriftet Klammer-Notation'
- 28. Wie lege ich die Anzahl der CPU-Kerne fest, die Bazel verwendet?
- 29. Definition von POS-Tag und Dependency Label-Sets werden in Parsey McPareface verwendet?
- 30. Mit zwei Befehlen (Rohr mit |) mit Laich
"Nein, ich bin nie auf ein Tool oder eine Methode gestoßen, die das Parsing für NER (Named Entity Recognition) verwenden/erfordern." Was ist mit der standardmäßigen Erkennung von benannten Entitäten durch die NLTK? http://www.nltk.org/book/ch07.html – Guido
Oder Apache OpenNLP https://opennlp.apache.org/ –