NLTK和停用词失败#lookuperror

时间:2014-11-01 22:05:17

标签: python nltk sentiment-analysis stop-words

我正在尝试启动情绪分析项目,我将使用停用词方法。我做了一些研究,发现nltk有停用词,但是当我执行命令时出现错误。

我所做的是以下内容,以便了解nltk使用的单词(就像您在第4.1节中的http://www.nltk.org/book/ch02.html所见):

from nltk.corpus import stopwords
stopwords.words('english')

但是当我按下输入时我获得了

---------------------------------------------------------------------------
LookupError                               Traceback (most recent call last)
<ipython-input-6-ff9cd17f22b2> in <module>()
----> 1 stopwords.words('english')

C:\Users\Usuario\Anaconda\lib\site-packages\nltk\corpus\util.pyc in __getattr__(self, attr)
 66
 67     def __getattr__(self, attr):
---> 68         self.__load()
 69         # This looks circular, but its not, since __load() changes our
 70         # __class__ to something new:

C:\Users\Usuario\Anaconda\lib\site-packages\nltk\corpus\util.pyc in __load(self)
 54             except LookupError, e:
 55                 try: root = nltk.data.find('corpora/%s' % zip_name)
---> 56                 except LookupError: raise e
 57
 58         # Load the corpus.

LookupError:
**********************************************************************
  Resource 'corpora/stopwords' not found.  Please use the NLTK
  Downloader to obtain the resource:  >>> nltk.download()
  Searched in:
- 'C:\\Users\\Meru/nltk_data'
- 'C:\\nltk_data'
- 'D:\\nltk_data'
- 'E:\\nltk_data'
- 'C:\\Users\\Meru\\Anaconda\\nltk_data'
- 'C:\\Users\\Meru\\Anaconda\\lib\\nltk_data'
- 'C:\\Users\\Meru\\AppData\\Roaming\\nltk_data'
**********************************************************************

而且,由于这个问题,这样的事情无法正常运行(获得相同的错误):

>>> from nltk.corpus import stopwords
>>> stop = stopwords.words('english')
>>> sentence = "this is a foo bar sentence"
>>> print [i for i in sentence.split() if i not in stop]

你知道可能有什么问题吗?我必须使用西班牙语,你还推荐另一种方法吗?我还想到使用Goslate包和英文数据集

感谢阅读!

P.D。:我使用Ananconda

7 个答案:

答案 0 :(得分:127)

您似乎没有在计算机上使用停用词语料库。

您需要启动NLTK Downloader并下载所需的所有数据。

打开Python控制台并执行以下操作:

>>> import nltk
>>> nltk.download()
showing info http://nltk.github.com/nltk_data/

在打开的GUI窗口中,只需按下&#39;下载&#39;按钮下载所有语料库或转到&#39; Corpora&#39;选项卡,只下载您需要/想要的那些。

答案 1 :(得分:11)

我从ubuntu终端尝试过,我不知道为什么GUI根据tttthomassss的回答没有显示出来。所以我按照KLDavenport的评论进行了操作。以下是摘要:

打开终端/命令行,然后键入python

> DataNew Treatment Round N Initial sd se ci 1 EE 1 3 3000.0000 0.0000 0.00000 0.0000 2 EE 2 3 2524.4444 463.8167 267.78469 1152.1845 3 EE 3 3 1621.4815 1297.3331 749.01563 3222.7542 4 EE 4 3 906.6667 1570.3927 906.66667 3901.0718 5 EU 1 3 3000.0000 0.0000 0.00000 0.0000 6 EU 2 3 2922.2222 134.7151 77.77778 334.6508 7 EU 3 3 2582.9630 514.6560 297.13677 1278.4763 8 EU 4 3 2163.9506 547.9230 316.34352 1361.1163 9 UE 1 3 3000.0000 0.0000 0.00000 0.0000 10 UE 2 3 2280.0000 624.4286 360.51404 1551.1667 11 UE 3 3 1244.4444 1520.4596 877.83779 3777.0311 12 UE 4 3 895.5556 1551.1477 895.55556 3853.2646 13 UU 1 3 3000.0000 0.0000 0.00000 0.0000 14 UU 2 3 2626.6667 283.7840 163.84274 704.9584 15 UU 3 3 1835.5556 474.8957 274.18116 1179.7063 16 UU 4 3 1287.4074 1022.8653 590.55158 2540.9384 > p <-ggplot(DataNew, aes(x=Treatment, y=Initial)) > p +geom_bar(position = position_dodge(),stat = "identity", aes(fill = Round))

这会将停用词语料库存储在nltk_data下。就我而言,它是>>> import nltk .>>> nltk.download("stopwords")

如果您需要其他语料库,请访问nltk data并找到包含其ID的语料库。然后像我们为停用词一样使用ID下载。

答案 2 :(得分:2)

如果您想手动安装NLTK Corpus。

1)转到http://www.nltk.org/nltk_data/并下载所需的NLTK语料库文件。

2)现在在Python shell中检查nltk.data.path

的值

3)选择计算机上存在的路径之一,并将数据文件解压缩到内部的corpora子目录中。

4)现在您可以从nltk.corpos import stopwords

导入数据

参考:https://medium.com/@satorulogic/how-to-manually-download-a-nltk-corpus-f01569861da9

答案 3 :(得分:1)

import nltk
nltk.download('stopwords')
from nltk.corpus import stopwords
STOPWORDS = set(stopwords.words('english'))

答案 4 :(得分:0)

import nltk
nltk.download()

当gui提示时点击下载按钮。它对我有用。(nltk.download('stopwords')对我不起作用)

答案 5 :(得分:0)

elements.foldLeft(0) { case (accumulator, item) => ...//calculate here next value from previously calculated //value (accumulator) and current item }

import nltk

  • 弹出一个GUI,然后在“语料库”部分中选择所需的语料库。
  • 验证结果

答案 6 :(得分:0)

您可以使用以下命令

 import nltk

 nltk.download()

点击回车后,会打开一个弹出窗口,您可以从那里下载所有必需的语料库和其他 nltk 工具。