NLTK -没有名为corpus的模块



使用PIP安装NLTK和NLTK- data后,我运行python,然后从NLTK输入。语料库导入cmudict,它工作。但是当我写这样的脚本时:

from nltk.corpus import cmudict
d = cmudict.dict()
def nsyl(word):
    return [len(list(y for y in x if y[-1].isdigit())) for x in d[word.lower()]]
print nsyl("hello")

我有以下错误:

Traceback (most recent call last):
File "nltk.py", line 1, in <module>
from nltk.corpus import cmudict
File "nltk.py", line 1, in <module>
from nltk.corpus import cmudict
ImportError: No module named corpus

我怎么能解决这个问题?

Thanks in advance

从您的stacktrace: File "nltk.py", line 1, in <module>中,您调用了您的文件nltk.py。当python搜索一个模块时,它首先在当前目录中查找,那里有"nltk.py"。它将把它作为nltk导入,因为你的代码没有定义语料库,所以它找不到nltk.corpus

要解决这个问题,您应该将文件重命名为其他东西,例如nltkexperience.py。还要确保删除"nltk"。Pyc"(如果存在的话),因为它也将被加载(它是代码的字节编译版本)。在此之后,它应该可以正常工作。

正如其他人指出的那样,这似乎是版本不匹配的情况。如果您安装了多个版本的Python,请确保在运行脚本时使用的是安装NLTK的那个版本。

作为一个例子,我安装了Python 2.7, Python 3.3和Anaconda Python(2.7)。我的shell默认为Anaconda(以及它的pip)。因此,当我通过pip安装一些东西并在命令行上运行它时,它就可以工作了。与此同时,我的Vim被编译为使用系统的Python,它看不到Anaconda的安装/库。因此,如果我在Vim中运行Python,我将得到一个错误,即我安装的库没有找到。

最新更新