Python 属性错误:';功能图表解析器';对象没有属性';nbest#u parse';

Python 属性错误:';功能图表解析器';对象没有属性';nbest#u parse';,python,parsing,nlp,nltk,Python,Parsing,Nlp,Nltk,我正在尝试运行这段代码,用于自然语言处理 import nltk from nltk import load_parser cp = load_parser('grammars/book_grammars/sql0.fcfg') query = 'What cities are located in China' trees = cp.nbest_parse(query.split()) answer = trees[0].node['sem'] q = ' '.join(answer) pr

我正在尝试运行这段代码,用于自然语言处理

import  nltk
from nltk import load_parser
cp = load_parser('grammars/book_grammars/sql0.fcfg')
query = 'What cities are located in China'
trees = cp.nbest_parse(query.split())
answer = trees[0].node['sem']
q = ' '.join(answer)
print(q)
但我得到了以下编译错误:

trees = cp.nbest_parse(query.split())
AttributeError:“FeatureChartParser”对象没有属性“nbest\u parse”

我正在使用python3.4和nltk 3.0a4。我现在可以做些什么来运行此操作?

根据

>>> import  nltk
>>> from nltk import load_parser
>>> cp = load_parser('grammars/book_grammars/sql0.fcfg')
>>> query = 'What cities are located in China'
>>> trees = next(cp.parse(query.split()))
>>> answer = trees[0].label()
>>> answer
NP[SEM=(SELECT, City FROM city_table)]

nbest_parse在NLTK 3.0中被弃用,为了测试示例代码,我必须使用NLTK 2.0


链接:

希望这个问题对您有所帮助。这并不完全相同。首先,您只返回一棵树。其次,您只返回第一个解析的树,这可能不是“最佳”或最正确的解析。
>>> import  nltk
>>> from nltk import load_parser
>>> cp = load_parser('grammars/book_grammars/sql0.fcfg')
>>> query = 'What cities are located in China'
>>> for tree in cp.parse(query.split()):
    ....print(tree)