Ich verwende derzeit die Python-Schnittstelle für den Stanford-Parser.Stanford Parser für Python: Ausgabeformat
from nltk.parse.stanford import StanfordParser
import os
os.environ['STANFORD_PARSER'] ='/Users/au571533/Downloads/stanford-parser-full-2016-10-31'
os.environ['STANFORD_MODELS'] = '/Users/au571533/Downloads/stanford-parser-full-2016-10-31'
parser=StanfordParser(model_path="edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz")
new=list(parser.raw_parse("The young man who boarded his usual train that Sunday afternoon was twenty-four years old and fat. "))
print new
Der Ausgang I sieht wie folgt aus etwas bekommen:
[Tree('ROOT', [Tree('S', [Tree('NP', [Tree('NP', [Tree('DT', ['The']), Tree('JJ', ['young']), Tree('NN', ['man'])]), Tree('SBAR', [Tree('WHNP', [Tree('WP', ['who'])]), Tree('S', [Tree('VP', [Tree('VBD', ['boarded']), Tree('NP', [Tree('PRP$', ['his']), Tree('JJ', ['usual']), Tree('NN', ['train'])]), Tree('NP', [Tree('DT', ['that']), Tree('NNP', ['Sunday'])])])])])]), Tree('NP', [Tree('NN', ['afternoon'])]), Tree('VP', [Tree('VBD', ['was']), Tree('NP', [Tree('NP', [Tree('JJ', ['twenty-four']), Tree('NNS', ['years'])]), Tree('ADJP', [Tree('JJ', ['old']), Tree('CC', ['and']), Tree('JJ', ['fat'])])])]), Tree('.', ['.'])])])]
Allerdings habe ich nur den Teil der Rede Etiketten benötigen, deshalb würde Ich mag eine Ausgabe in einem Format haben, wie Wort aussieht /Etikett.
In Java ist es möglich, -outputFormat 'wordsAndTags' anzugeben und es gibt genau das, was ich will. Irgendein Hinweis, wie man das in Python implementiert?
Hilfe wäre sehr geschätzt. Danke!
PS:. Versucht, die Stanford POSTagger zu verwenden, aber es ist bei weitem weniger genau auf einige der Wörter, die mich interessieren
Können Sie in einem Beispiel bearbeiten, wie die Ausgabe aussehen soll? –
Für den Satz im obigen Code, etwas wie: ['The/DT', 'jung/JJ', 'man/NN'], entweder eine Liste von stringähnlichen Elementen oder eine Liste von Tupeln oder einer Tabelle gut. Die Quintessenz ist: Ich brauche nicht die Dependency Tree Informationen, sondern nur Teile der Sprache für jedes Wort. Vielen Dank! :) – roberta