Pycharm无法识别nltk(与Anaconda一起安装)

时间:2016-12-17 19:50:24

标签: python pycharm nltk conda

我正在使用PyCharm编写一个使用nltk包的程序。我的第一行是:

 from nltk import word_tokenize, sent_tokenize

我在PyCharm中的2.7 Python环境(我正在处理的环境)中导入了nltk包,如下所示: screenshot PyCharm not recognizing nltk package

然而,PyCharm无法识别from nltk..行。它变灰了;它也显示了这个错误:

This inspection detects names that should resolve but don't. Due to dynamic dispatch and duck typing, this is possible in a limited but useful number of cases. Top-level and class-level items are supported better than instance items.

这是我的代码:

from nltk import word_tokenize, sent_tokenize

annot1 = [(500L, u'[they seldom desire anything unless it belongs to     others]')]
annot2 = (500L, u'[they seldom desire anything unless it belongs to others]')

def scope_match(annot1, annot2):
    tokens1 = annot2[1].encode('utf-8')
    print type(tokens1)
    for string in tokens1:
        tokens2 = nltk.word_tokenize(string)
        print 'these are the tokens: ', tokens2
        new2 = [a.strip('[]').encode('utf-8') for a in tokens2]
        print new2

scope_agr = scope_match(annot1, annot2)
print scope_agr

当我运行代码时,我收到此错误:     `C:\ Users \ nepal \ Anaconda3 \ envs \ py27 \ python.exe /Users/nepal/PycharmProjects/ScopeCue/ScopeComparison/scope-compare-inter-annotation-agreement-TEST.py

Traceback (most recent call last):
  File "C:/Users/nepal/PycharmProjects/ScopeCue/ScopeComparison/scope-compare- inter-annotation-agreement-TEST.py", line 1, in <module>
from nltk import word_tokenize, sent_tokenize
ImportError: cannot import name word_tokenize

Process finished with exit code 1`

有人可以指导我解决这个问题吗?非常感谢提前。

2 个答案:

答案 0 :(得分:2)

您的导入错误显示找到了模块nltk,但未包含word_tokenize。 99%的情况下,这意味着您在与脚本相同的目录中创建了文件nltk.py

事实上,您似乎是例外之一 - 在评论中发布的最后一个错误跟踪显示您已创建了整个nltk包(包含__init__.py的文件夹) !摆脱它或重命名它,以便python可以找到真正的nltk

答案 1 :(得分:0)

我通过从终端使用nltk.download()下载完整的nltk软件包解决了这个问题。

所以,我打开了一个新的python会话然后做了:

import nltk

nltk.download()

打开一个新窗口,询问我是否要下载,我接受了。现在运行正常。

我想知道Anaconda是否安装了完整的nltk软件包?....在尝试此解决方案之前,我使用Anaconda重新安装了两次(conda install -c anaconda nltk=3.2.1)。但似乎使用该命令并不能获得整个nltk包......

无论如何,我希望它有助于下一个人。