我正在嘗試在用NLTK接口編寫的Python應用程序中使用斯坦福分析器。我嘗試了下面給出的代碼。帶有NLTK的斯坦福分析器產生空輸出
一切似乎正常工作,沒有錯誤,Java啓動,但我係統地得到一個空的迭代器()和程序不顯示解析樹。
我使用Windows 7,Python 3.4.3,JRE jre1.8.0_51。我對POS tagger做了同樣的處理,但得到了相同的空白結果。
import os
from nltk.parse import stanford
os.environ['STANFORD_PARSER'] = 'path\\jars'
os.environ['STANFORD_MODELS'] = 'path\\jars'
os.environ['JAVAHOME']= "path\\Java\jre1.8.0_51\\bin"
parser = stanford.StanfordParser(model_path="path\\englishPCFG.ser.gz")
sentences = parser.raw_parse_sents(("Hello the world.", "Thank you for helping me with this problem."))
print(sentences)
for line in sentences:
for sentence in line:
sentence.draw()
你不能在同一個迭代器對象重複兩次。通過執行'print(句子)',你已經用完了迭代器,所以當你想繪製樹時它是空的。將'句子'保存在列表中以多次使用它。 – lenz