NLTK与停用词失败 #找不到错误
我正在尝试启动一个情感分析的项目,打算使用停用词的方法。我做了一些研究,发现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 个回答
import nltk
nltk.download()
- 会弹出一个图形界面,在里面找到“语料库”这一部分,选择你需要的语料库。
- 确认结果
如果你想手动安装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
在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后把它放到另一个地方。这就像把水从一个杯子倒到另一个杯子一样。
有些时候,我们会遇到一些问题,比如数据的格式不对,或者我们想要的数据没有被正确地获取到。这就像你想喝水,但杯子里却是果汁,这样你就不能直接喝了。
为了避免这些问题,我们可以使用一些工具和方法来确保数据能够正确地传递和处理。就像在倒水之前,我们先检查一下杯子里是什么,确保我们倒的是水,而不是其他东西。
总之,处理数据就像是一个小小的实验,我们需要小心翼翼地操作,确保每一步都是正确的,这样才能得到我们想要的结果。
import nltk
nltk.download('stopwords')
from nltk.corpus import stopwords
STOPWORDS = set(stopwords.words('english'))
我在Ubuntu终端上试了一下,不知道为什么没有按照tttthomasssss的回答显示图形界面。于是我按照KLDavenport的评论操作,结果成功了。下面是总结:
打开你的终端或者命令行,输入python,然后输入:
>>> import nltk
.>>> nltk.download("stopwords")
这样会把停用词的资料存储在nltk_data文件夹里。对我来说,它的位置是 /home/myusername/nltk_data/corpora/stopwords
。
如果你需要其他的资料,可以去 nltk data 网站,找到你需要的资料的ID。然后用这个ID下载,就像我们下载停用词一样。
看起来你的电脑上没有停用词库。
你需要启动NLTK下载器,下载你需要的所有数据。
打开一个Python控制台,然后输入以下内容:
>>> import nltk
>>> nltk.download()
showing info http://nltk.github.com/nltk_data/
在弹出的图形界面窗口中,直接点击“下载”按钮,就可以下载所有的数据集,或者你也可以去“数据集”标签,只下载你需要或想要的部分。