NLTK-没有名为语料库的模块


问题内容

用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,并且由于您的代码未定义语料库,因此无法找到nltk.corpus

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