2016-05-26 9 views
5

Ich heruntergeladen und installiert SyntaxNet folgende Syntax official documentation on Github. Nach der Dokumentation (annotierende Korpus) habe ich versucht, eine .conll Datei mit dem Namen wj.conll von SyntaxNet zu lesen und die Ergebnisse in wj-tagged.conll schreiben, aber ich konnte nicht. Meine Fragen sind:Annotieren eines Korpus (Syntaxnet)

  1. hat SyntaxNet immer .conll Dateien liest? (nicht .txt Dateien?). Ich war ein wenig verwirrt, da ich wusste, SyntaxNet liest .conll Datei für Training und Testprozess, aber ich bin ein bisschen verdächtig, dass es notwendig ist, eine .txt Datei in .conll Datei zu konvertieren, um ihren Part Of Speech und Dependancy Parsing zu haben.

  2. Wie kann ich SyntaxNet von Dateien liest (ich müde, alle Möglichkeiten erklären in GitHub Dokumentation über SyntaxNet und es hat bei mir nicht funktioniert)

+0

Was ist Ihre Frage? Bearbeiten Sie Ihren Beitrag, um eine klare Frage zu stellen, damit die Leute antworten können! –

+0

Nur ein paar Kommentare zu Ihrer Frage 1, * "liest SyntaxNet immer .connl-Dateien? (Nicht .txt-Dateien?)" *, Es sollte keinen Unterschied machen, ob Sie eine Datei * XYZ.conll * oder * aufrufen XZY.txt. * Es kommt auf die Formatierung an, nicht auf die Dateierweiterung. Zur Frage 2 * "Wie kann ich SyntaxNet aus Dateien lesen" *, haben Sie versucht, die Standard-Shell-Eingabe oder Python-Datei lesen? Laut den Unterlagen [hier] (https://github.com/tensorflow/tensorflow) sieht das für mich wie eine Möglichkeit aus. – patrick

+0

Vielen Dank. Es hat sehr gut funktioniert. – Nazanin

Antwort

6

Fügen Sie diese Erklärung Linien „context.pbtxt "Am Ende der Datei. Hier sind "inp" und "out" die Textdateien im Wurzelverzeichnis von syntexnet.

input { 
    name: 'inp_file' 
    record_format: 'english-text' 
    Part { 
    file_pattern: 'inp' 
    } 
    } 
    input { 
    name: 'out_file' 
    record_format: 'english-text' 
    Part { 
    file_pattern: 'out' 
    } 
    } 

hinzufügen Sätze der „inp“ Datei, für die Sie getan werden sollen Tagging und geben Sie sie in der Schale das nächste Mal laufen syntaxnet mit --input und --output Tags.

Nur um Ihnen ein bisschen mehr zu helfen, gebe ich einen Beispielshellbefehl ein.

bazel-bin/syntaxnet/parser_eval \ 
--input inp_file \ 
--output stdout-conll \ 
--model syntaxnet/models/parsey_mcparseface/tagger-params \ 
--task_context syntaxnet/models/parsey_mcparseface/context.pbtxt \ 
--hidden_layer_sizes 64 \ 
--arg_prefix brain_tagger \ 
--graph_builder structured \ 
--slim_model \ 
--batch_size 1024 | bazel-bin/syntaxnet/parser_eval \ 
--input stdout-conll \ 
--output out_file \ 
--hidden_layer_sizes 512,512 \ 
--arg_prefix brain_parser \ 
--graph_builder structured \ 
--task_context syntaxnet/models/parsey_mcparseface/context.pbtxt \ 
--model_path syntaxnet/models/parsey_mcparseface/parser-params \ 
--slim_model --batch_size 1024 

In dem obigen Skript wird die Ausgabe (POS-Tagging) des ersten Shell-Befehl verwendet als Eingang für den zweiten Shell-Befehl, in dem die beiden Schalen Befehle getrennt sind durch „|“

+0

Vielen Dank, es hat sehr gut funktioniert. – Nazanin

+0

Wenn es funktioniert, bitte up-vote, damit es anderen helfen kann. –

+0

Sicher, ich bin neu zu Stack Überlauf Ich werde es jetzt tun – Nazanin

-1

nur eine schnelle Hilfe, wenn Sie die Ausgabe der Demo in einer TXT-Datei gespeichert werden sollen:

versuchen echo "open file X with application Y" | ./demo.sh > output.txt es Ihnen Baum in das aktuellen Verzeichnis Satz gibt.

+0

Dies liefert keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag. - [Aus Bewertung] (/ review/low-quality-posts/12653432) –

+1

@EugeneS ja es sieht aus, dass es die Antwort nicht bietet. Ich wollte, dass SyntaxNet aus einer Datei liest, die Ausgabe der Spracherkennung übernimmt und ihre Ausgabe als Textdatei speichert, um sie für weitere Analysen an Python zu senden. Leider haben die Antworten, die ich hier bekommen habe, überhaupt nicht funktioniert. Also ignorierte ich den Teil, den ich aus einer Datei lesen konnte und versuchte eine Möglichkeit zu finden, die Baumausgabe in einer Textdatei zu speichern. Wenn Sie immer noch denken, dass es nicht relevant ist, lassen Sie es mich bitte wissen und ich werde es löschen – Nazanin