在使用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
我该怎么解决?
提前谢谢
从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,我将得到一个错误,即找不到我安装的库。
希望这有帮助。
相关问题 更多 >
编程相关推荐