2014-10-16 98 views
3

所以我正在通過一個涉及python和NLTK的教程。Python,NLTK,無法導入「parse_cfg」?

我目前正在使用上下文無關語法。

我鍵入以下命令,並得到一個錯誤...

>>> from nltk import parse_cfg 
Traceback (most recent call last): 
File "(stdin)", line 1, in (module) 
ImportError: cannot import name parse_cfg 

沒有人有任何想法可能是什麼造成的?一些cfg命令有效,但不是這個。

+2

是的,我想'parse'模塊開發人員已將其轉移並忘記放回。提出的問題:https://github.com/nltk/nltk/issues/771 – alvas 2014-10-17 07:38:52

+0

也請'nltk .__ version__'注意哪個版本的nltk導致了問題。 – alvas 2014-10-17 07:42:07

+0

@alvas它的3.0.0版本 – Wolff 2014-10-17 16:41:43

回答

9

我們更新了API的NLTK 3.請read the docs

訪問舊nltk.parse_cfg()的方法是使用從http://www.nltk.org/howto/grammar.htmlCFG.fromstring()

例子:

>>> from nltk import CFG 
>>> grammar = CFG.fromstring(""" 
... S -> NP VP 
... PP -> P NP 
... NP -> Det N | NP PP 
... VP -> V NP | VP PP 
... Det -> 'a' | 'the' 
... N -> 'dog' | 'cat' 
... V -> 'chased' | 'sat' 
... P -> 'on' | 'in' 
... """) 
>>> grammar 
<Grammar with 14 productions> 
>>> grammar.start() 
S 
>>> grammar.productions() 
[S -> NP VP, PP -> P NP, NP -> Det N, NP -> NP PP, VP -> V NP, VP -> VP PP, 
Det -> 'a', Det -> 'the', N -> 'dog', N -> 'cat', V -> 'chased', V -> 'sat', 
P -> 'on', P -> 'in'] 
+1

這將是非常好的,如果你指出的問題,並添加一個簡潔的解決方案,除了提供的鏈接。 – user3473830 2014-10-18 14:35:56