Python 2.7 斯坦福语法分析器和NLTK窗口

Python 2.7 斯坦福语法分析器和NLTK窗口,python-2.7,nltk,stanford-nlp,Python 2.7,Nltk,Stanford Nlp,我正在尝试在Windows的NLTK中运行Stanford解析器。我正在用python做这件事。我的代码是 import os from nltk.parse import stanford os.environ['JAVAHOME'] = 'C:/Program Files/Java/jdk1.8.0_25/bin' os.environ['STANFORD_PARSER'] = 'C:/jars' os.environ['STANFORD_MODELS'] = 'C:/jars' par

我正在尝试在Windows的NLTK中运行Stanford解析器。我正在用python做这件事。我的代码是

import os

from nltk.parse import stanford
os.environ['JAVAHOME'] = 'C:/Program Files/Java/jdk1.8.0_25/bin'
os.environ['STANFORD_PARSER'] = 'C:/jars'
os.environ['STANFORD_MODELS'] = 'C:/jars'

parser =stanford.StanfordParser(model_path="C:/Users/pc/Desktop/Project/englishPCFG.ser.gz")
sentences = parser.raw_parse_sents(("Hello, My name is Melroy.", "What is your name?"))


for i in sentences:
    print i
这是它给出的输出

listiterator object at 0x03FB6150  
listiterator object at 0x03FB61B0
我正在寻找以下输出:

Tree('ROOT', [Tree('S', [Tree('INTJ', [Tree('UH', ['Hello'])]), Tree(',',          [',']), Tree('NP', [Tree('PRP$', ['My']), Tree('NN', ['name'])]), Tree('VP', [Tree('VBZ', ['is']), Tree('ADJP', [Tree('JJ', ['Melroy'])])]), Tree('.', ['.'])])]), Tree('ROOT', [Tree('SBARQ', [Tree('WHNP', [Tree('WP', ['What'])]), Tree('SQ', [Tree('VBZ', ['is']), Tree('NP', [Tree('PRP$', ['your']), Tree('NN', ['name'])])]), Tree('.', ['?'])])])]

raw\u parse\u sents
返回列表迭代器列表。您可以像这样迭代它们:

for myListiterator in sentences:
    for t in myListiterator:
        print t

> (ROOT
>   (S
>     (INTJ (UH Hello))
>     (, ,)
>     (NP (PRP$ My) (NN name))
>     (VP (VBZ is) (ADJP (JJ Melroy)))
>     (. .)))
> (ROOT
>   (SBARQ
>     (WHNP (WP What))
>     (SQ (VBZ is) (NP (PRP$ your) (NN name)))
>     (. ?)))
print [list(i)[0] for i in sentences]

> [Tree('ROOT', [Tree('S', [Tree('INTJ', [Tree('UH', ['Hello'])]), Tree(',', [',']), Tree('NP', [Tree('PRP$', ['My']), Tree('NN', ['name'])]), Tree('VP', [Tree('VBZ', ['is']), Tree('ADJP', [Tree('JJ', ['Melroy'])])]), Tree('.', ['.'])])]), Tree('ROOT', [Tree('SBARQ', [Tree('WHNP', [Tree('WP', ['What'])]), Tree('SQ', [Tree('VBZ', ['is']), Tree('NP', [Tree('PRP$', ['your']), Tree('NN', ['name'])])]), Tree('.', ['?'])])])]
如果您想要引用的确切输出格式,可以这样做:

for myListiterator in sentences:
    for t in myListiterator:
        print t

> (ROOT
>   (S
>     (INTJ (UH Hello))
>     (, ,)
>     (NP (PRP$ My) (NN name))
>     (VP (VBZ is) (ADJP (JJ Melroy)))
>     (. .)))
> (ROOT
>   (SBARQ
>     (WHNP (WP What))
>     (SQ (VBZ is) (NP (PRP$ your) (NN name)))
>     (. ?)))
print [list(i)[0] for i in sentences]

> [Tree('ROOT', [Tree('S', [Tree('INTJ', [Tree('UH', ['Hello'])]), Tree(',', [',']), Tree('NP', [Tree('PRP$', ['My']), Tree('NN', ['name'])]), Tree('VP', [Tree('VBZ', ['is']), Tree('ADJP', [Tree('JJ', ['Melroy'])])]), Tree('.', ['.'])])]), Tree('ROOT', [Tree('SBARQ', [Tree('WHNP', [Tree('WP', ['What'])]), Tree('SQ', [Tree('VBZ', ['is']), Tree('NP', [Tree('PRP$', ['your']), Tree('NN', ['name'])])]), Tree('.', ['?'])])])]

你读过吗?实际上我正在试图从中找到句法范畴对,即每个单词的父节点和子节点。。在第一句话中,这对是。。(INTJ,UH),(NP,PRP$),(NP,NN),(VP,VBZ),(VP,VPZ),(ADJP,JJ)。你能告诉我怎么做吗@leekaiinthesky@rombi我建议你在网站上问一个新问题,这样它就能从新的视角获得顶级的可见性。新问题的内容大不相同,我很可能没有最好的答案完成。