NLTK与停用词失败 #找不到错误

69 投票
7 回答
167845 浏览
提问于 2025-05-01 01:53

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

我做的事情是这样的,为了知道nltk使用哪些词(就像你可以在这里找到的内容 http://www.nltk.org/book/ch02.html 第4.1节):

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.: 我使用的是Anaconda

暂无标签

7 个回答

1

import nltk

nltk.download()

  • 会弹出一个图形界面,在里面找到“语料库”这一部分,选择你需要的语料库。
  • 确认结果
3

如果你想手动安装NLTK语料库,按照以下步骤操作:

1) 访问 http://www.nltk.org/nltk_data/,下载你需要的NLTK语料库文件。

2) 接下来,在Python的命令行界面中检查一下nltk.data.path的值。

3) 选择你电脑上存在的一个路径,然后把下载的数据文件解压到这个路径下的corpora子目录里。

4) 现在你可以通过输入 from nltk.corpus import stopwords 来导入这些数据了。

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

9

在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后把它放到另一个地方。这就像把水从一个杯子倒到另一个杯子一样。

有些时候,我们会遇到一些问题,比如数据的格式不对,或者我们想要的数据没有被正确地获取到。这就像你想喝水,但杯子里却是果汁,这样你就不能直接喝了。

为了避免这些问题,我们可以使用一些工具和方法来确保数据能够正确地传递和处理。就像在倒水之前,我们先检查一下杯子里是什么,确保我们倒的是水,而不是其他东西。

总之,处理数据就像是一个小小的实验,我们需要小心翼翼地操作,确保每一步都是正确的,这样才能得到我们想要的结果。

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

我在Ubuntu终端上试了一下,不知道为什么没有按照tttthomasssss的回答显示图形界面。于是我按照KLDavenport的评论操作,结果成功了。下面是总结:

打开你的终端或者命令行,输入python,然后输入:

>>> import nltk .>>> nltk.download("stopwords")

这样会把停用词的资料存储在nltk_data文件夹里。对我来说,它的位置是 /home/myusername/nltk_data/corpora/stopwords

如果你需要其他的资料,可以去 nltk data 网站,找到你需要的资料的ID。然后用这个ID下载,就像我们下载停用词一样。

163

看起来你的电脑上没有停用词库。

你需要启动NLTK下载器,下载你需要的所有数据。

打开一个Python控制台,然后输入以下内容:

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

在弹出的图形界面窗口中,直接点击“下载”按钮,就可以下载所有的数据集,或者你也可以去“数据集”标签,只下载你需要或想要的部分。

撰写回答