1、nltk.download('stopwords'):
(1)由于实验室服务器无法连接到NLTK指定的URL,所以这里只能手动下载需要的数据,即停用词stopwords。
从运行上面代码报的错误得知,NLTK会默认搜索几个路径,以求找到本地已经下载好的nltk_data:
Attempted to load corpora/stopwords
Searched in:
- '/home/XXXXXX/nltk_data'
- '/home/XXXXXX/local/anaconda3/envs/tf1_14/nltk_data'
- '/home/XXXXXX/local/anaconda3/envs/tf1_14/share/nltk_data'
- '/home/XXXXXX/local/anaconda3/envs/tf1_14/lib/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
XXXXXX是我服务器用户名,这里隐去,我服务器用的是Anaconda虚拟出的环境,但是每个环境都会寻找第一个目录,所以决定把该目录作为nltk_data的存放目录。
(2)新建目录 /home/XXXXXX/nltk_data
再下一级的目录创建,参考链接:http://www.nltk.org/data.html;该链接最下面有manual installation指示,即自己手动下载该数据如何处理,主要就是讲目录创建,和系统环境变量设置。
从上面的报错,和manual installation 中都可知,nltk data(如stopwords) 应该放在/home/XXXXXX/nltk_data下一级目录 corpora中,故再创建目录/home/XXXXXX/nltk_data/corpora。
下载数据页 http://www.nltk.org/nltk_data/ ,在该页面下载 stopwords 的zip包,然后上传服务器的目录:/home/XXXXXX/nltk_data/corpora,unzip解压即可。
至此,手动安装 nltk_data 结束,在python脚本中运行代码:
stop_words = set(stopwords.words('english'))
print(stop_words)
就不会出错了。
我在用到的虚拟环境tf1_14下指定了该环境变量,设置环境变量直接在登录服务器的bask环境下输入命令:
参考:https://www.guru99.com/linux-environment-variables.html
创建环境变量:
NLTK_DATA=/home/XXXXXX/local/share/nltk_data
验证该变量值:
echo $NLTK_DATA
这里的目录是自己想要放置该数据的目录,但是这样设置了之后,仍然无法在上面的代码中测试通过。
不知道为什么?