NLTK-没有名为corpus的模块

2024-09-27 21:33:46 发布

您现在位置:Python中文网/ 问答频道 /正文

在使用PIP安装NLTK和NLTK-DATA之后,我运行python,然后从NLTK.corpus import 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

我该怎么解决?

提前谢谢


Tags: pipinfrompyimportforlinecorpus
2条回答

从stacktrace:File "nltk.py", line 1, in <module>,您已经调用了文件nltk.py。当python搜索一个模块时,它首先在当前目录中查找,并且在那里有“nltk.py”。它将作为nltk导入,并且由于代码没有定义corpus,因此找不到nltk.corpus

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

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

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

希望这有帮助。

相关问题 更多 >

    热门问题