2016-06-29 8 views
4

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

2

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!

1

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.

+0

"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

+0

Oder Apache OpenNLP https://opennlp.apache.org/ –

1

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.

Verwandte Themen