碎碎念:

        为什么会有这个帖子呢?一般No module named 'nltk'之类的报错我是不会写帖子记录过程的,因为一般情况下pip install都可以解决。但是(凡是就怕个但是),这个报错不简单,因为后面还有一系列错,花了我两三个小时才解决。

        让我觉得离谱的是,安装包都安装到相应路径下了居然还要手动解压缩包,这是我万万没想到的。而且当时一心思想着解bug,就没想过要记录,所以为了写这篇帖子,我又还原了一遍当时的bug,重新操作了一遍,作死之路开启,于是就有了这篇帖子的诞生啦~

        摇个花手庆祝一下hhhh

Error One

        在处理文本数据时通常需要用到NLTK库。Natural Language Toolkit (NLTK),自然语言处理工具包,在NLP领域中,最常使用的一个Python库。

      于是像通常一样使用 import nltk 语句导入库,结果报错ModuleNotFoundError: No module named 'nltk'。

         一看报错语句时No module named 'xxx'时,心想问题不大,打开Anaconda Prompt界面,输入pip install nltk,结果显示Requirement already satisfied: nltk in e:\anaconda3\lib\site-packages (3.2.4),翻译过来就是nltk库已经安装好了,可是我再次运行import nltk时还是报错,这是怎么回事呢?(困惑脸.jpg)

         既然pip install nltk不行,那么就使用conda install nltk试一试!然后等了好久都没反应,博主我放弃了。。。

        后来脑子灵机一动,回想起前面的操作我好像没进入当前自己的运行环境?!(盲生,发现华点(⊙x⊙;)打开Anaconda Prompt默认进入Base环境,于是使用activate eve命令行进入自己的运行环境eve(自己创建的环境)中,然后再使用pip install nltk安装,果然成功了。

        好耶ヽ(✿゚▽゚)ノ


Error Two

        当我成功导入nltk库后,开始读取自己所需文本,去除相应的标点符号,在运行按照空格进行分割的代码时,又报错了〒▽〒

#1.导入相关库
import nltk #
from nltk.corpus import stopwords #停用词
#2.读取所需文本数据
text = smsdata_data[2]
print('The original text is: ', text)

#3.去除标点符号
text2 = " ".join("".join([" " if ch in string.punctuation else ch
                          for ch in text]).split())
print('After removing punctuations, the text is: ', text2)

#4.按照空格进行分割
tokens = [word for sent in nltk.sent_tokenize(text2) for word 
              in nltk.word_tokenize(sent)]
print('The tokenized words are: ', tokens)

        报错内容老长老长了T_T,Resource punkt not found.

         根据报错指示,需要运行代码nltk.download('punkt')下载进行相关包的下载。但试了好多遍就是不行,哭了哭了(猛虎落泪.jpg)

         原因是啥呢?是因为nltk.download('punkt')需要很长时间(网上有说需要四个小时),所以通常会连接被强行关闭

        那怎么办嘞?可以网上下载NLTK data文件(大约638MB),网址是https://github.com/nltk/nltk_data(连得上外网的朋友们可以试一试);那不会连外网或连不上外网的同学怎么办呢?可以试试我上传的安装包NLTK安装包.rar-Python文档类资源-CSDN下载

        具体步骤为:①从网上下载好NLTK data的压缩包后,任意存储在CDE盘自己记得的位置就行;②将压缩包解压缩,重新命名为nltk_data;③使用语句import nltk和nltk.download()运行一下,会出现一个NLTK Downloader,在弹出窗口里最底下的离线下载目录 (Download Directory) 改成之前安装nltk_data所在的目录,选择下载所有,慢慢等待即可

 


Error Three

        理想很美好,现实很残酷。按照上面所讲的具体步骤三步走下来,我本以为自己能够顺利解决问题,可是,我的NLTK Downloader界面是这样的(所以上面的图不是我的,只是为了方便演示从网上截的,我没有成功打开o(TヘTo)

         WinError 10054:远程主机强迫关闭了一个现有的连接!这个问题和前面的很像,盲猜原因是连不上网。可是我安装包都装在相应目录下了,为什么还是不行呢?

        这个问题卡了我好久,网上也搜索了一阵,决定使用语句from nltk.book import *试试。于是关掉NLTK Downloader,在运行界面输入语句,结果... ...(沉默是今晚的康桥

         看见报错的内容,似曾相识有木有,同志们(っ °Д °;)っ

        后来经过一番苦苦搜索(其实花了快一个小时了),终于得到解决线索:将taggers和tokenizers两个文件夹中的压缩文件解压缩。

 

         天知道会由于一个No module named 'nltk'报错引发出一系列乱七八糟的东西,好在终于解决了。

        好耶,普天同庆,奔相走告,手动狗头,再见ヽ(✿゚▽゚)ノ

     (本贴完)

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐