Windows7 平台下Python+NLTK环境搭建
来源:互联网 发布:企业文档数据加密 编辑:程序博客网 时间:2024/06/05 20:15
今天帮一朋友搭建python+nltk开发环境,以前用过python,但是没有使用过Natural Language Toolkit(NLTK)这么专业的package,自我感觉这东西搭建起来应该也很简单,毕竟网上资料一搜一大堆,而且看着都很靠谱,但是真的等到搭建的时候才发觉不是那么回事,浪费了接近一下午的时间才搞定,晚饭都没吃,现在把过程写下来,希望对使用nltk的童鞋有所帮助。
首先给出我的开发环境:
windows 7 64位 + python 3.3.2 32位
声明一下:由于NLTK的官方网页给出的安装步骤中提到“Install Python 3.4: http://www.python.org/ downloads (avoid the 64-bit versions)”,即告诉大家别下载64位的python,因此我使用的是32位3.3.2版本。
下面给出搭建具体过程以及过程中出现问题的解决方案:(最开始我是参考《windows环境下搭建python+nltk开发环境》,因此各位也可以先看看这个贴子)
Install Python 3.3.2,并确保将路径加入到环境变量中
Install Numpy,下载对应python 3.3版本的,我下载的是 numpy-1.9.0-win32-superpack-python3.3.exe (官网推荐大家安装)
Install NLTK,选择以管理员身份安装 ,安装成功后应该能够在Python安装目录的..\Lib\site-packages中会找到nltk文件夹
Install PyYAML,同样选择以管理员身份安装
一般到这个时候,大家都感觉NLTK已经安装完毕,然后按照官网上的步骤运行python,输入:import nltk。但是现实很残酷,在这一步中,大家很可能看到一堆显眼的红色字体,其中可能会有这么关键的一句:ImportError: No module named six,这说明python中没有安装module six 导致。因此接下来的步骤应该是:
- Install pip。大家可以根据Pip的官网步骤安装,主要是下载get-pip.py文件(将网页上内容复制,新建一个txt,将内容复制进去,修改文件为get-pip.py),然后以管理员身份运行cmd,输入:python get-pip.py,等待pip安装成功。当然,这里要把cmd路径修改为get-pip.py所在路径。pip安装成功后所在路径为:..\Python\Scripts
- 将pip.exe所在路径加入到环境变量中,我的pip.exe所在路径为C:\Program Files (x86)\Python\Scripts
- Install Six module,重新以管理员身份运行cmd,输入:pip install six,等待安装完成。
使用nltk,当然要配置数据源,即安装nltk_data,官网给出的步骤是输入:
>>> import nltk>>> nltk.download()虽然你期待出现“showing info http://www.nltk.org/nltk_data/”,并出现下面的图像:
但事实是你可能会遇到以下错误:ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。就是这个问题,让我抓狂了很长时间,为此,我甚至找到了微软专门为解决WinEoor 10054而发布的一个补丁,而获得这个补丁竟然还需要填写个人邮箱,微软才会把链接发给你,而我竟然真的这么做了,并将补丁下载下来,补丁名:Windows6.1-KB981344-v2-x64。事实证明所有这些都没有任何卵用,问题依然没有得到解决。
要解决这个问题,还有一个官网上提供的笨方法,那就是自己去网站下载:http://www.nltk.org/nltk_data/,按照官网指示,下载完成后,将其解压放到一个文件夹中,然后将该文件夹所在路径加入到环境变量中,该环境变量需要命名为NLTK_DATA,我是将所有文件解压,放到了文件夹nltk_data中,路径:C:\DevelopTools\nltk_data。
到了这里问题感觉已经解决,运行几个例子应该没有任何问题,输入:
>>> from nltk.corpus import brown>>> brown.words()
进行测试,预期结果是:
['The', 'Fulton', 'County', 'Grand', 'Jury', 'said', ...]但现实是可能会得到以下结果:
Traceback (most recent call last): File "C:\Program Files (x86)\Python\lib\site-packages\nltk\corpus\util.py", line 63, in __load try: root = nltk.data.find('corpora/%s' % zip_name) File "C:\Program Files (x86)\Python\lib\site-packages\nltk\data.py", line 624, in find raise LookupError(resource_not_found)LookupError: ********************************************************************** Resource 'corpora/brown.zip/brown/' not found. Please use the NLTK Downloader to obtain the resource: >>> nltk.download() Searched in: - 'C:\\DevelopTools\\nltk_data' - 'C:\\Users\\Chogori_Ma/nltk_data' - 'C:\\nltk_data' - 'D:\\nltk_data' - 'E:\\nltk_data' - 'C:\\Program Files (x86)\\Python\\nltk_data' - 'C:\\Program Files (x86)\\Python\\lib\\nltk_data' - 'C:\\Users\\Chogori_Ma\\AppData\\Roaming\\nltk_data'**********************************************************************During handling of the above exception, another exception occurred:Traceback (most recent call last): File "<pyshell#3>", line 1, in <module> brown.words() File "C:\Program Files (x86)\Python\lib\site-packages\nltk\corpus\util.py", line 99, in __getattr__ self.__load() File "C:\Program Files (x86)\Python\lib\site-packages\nltk\corpus\util.py", line 64, in __load except LookupError: raise e File "C:\Program Files (x86)\Python\lib\site-packages\nltk\corpus\util.py", line 61, in __load root = nltk.data.find('corpora/%s' % self.__name) File "C:\Program Files (x86)\Python\lib\site-packages\nltk\data.py", line 624, in find raise LookupError(resource_not_found)LookupError: ********************************************************************** Resource 'corpora/brown' not found. Please use the NLTK Downloader to obtain the resource: >>> nltk.download() Searched in: - 'C:\\DevelopTools\\nltk_data' - 'C:\\Users\\Chogori_Ma/nltk_data' - 'C:\\nltk_data' - 'D:\\nltk_data' - 'E:\\nltk_data' - 'C:\\Program Files (x86)\\Python\\nltk_data' - 'C:\\Program Files (x86)\\Python\\lib\\nltk_data' - 'C:\\Users\\Chogori_Ma\\AppData\\Roaming\\nltk_data'**********************************************************************
看到这些,我就呵呵了,一阵头大,赶紧上网找资料,但是没有一个能够解决我的问题,然后我仔细看了看出现的问题,然后心里有一万只羊驼奔腾而过,“Resource 'corpora/brown' not found”仔细看着这一句,对!就是这一句,你就会知道,单纯的将nltk data解压到某一个文件夹中是不够的,你需要将这些文件移动到一个名为corpora文件夹中,因此 正确的路径应该类似这样:C:\DevelopTools\nltk_data\corpora,而环境变量依然是: C:\DevelopTools\nltk_data。
到这里,环境终于配置完成,测试一下,你会得到期待的结果:
>>> brown.words()['The', 'Fulton', 'County', 'Grand', 'Jury', 'said', ...]
PS: 今年是反转的一年,所以很多事情都会遇到神转折,看完以上内容,大家也许会问为什么“ConnectionResetError”我没有贴出错误代码,那么我告诉你,那是因为就在我写这篇博客时!对!就在我要贴代码时!我重新运行了一遍nltk.dpwnload(),然后我得到了那个我期待依旧的画面。。。。。!!!!这不是我想看到的啊!!!!!
后记:好开心(这是什么心态啊)!!第二天重新运行import nltk 和 nltk.download()又出现了昨天遇到的错误,现在把错误信息贴上:
>>> import nltk>>> nltk.download()Traceback (most recent call last): File "<pyshell#1>", line 1, in <module> nltk.download() File "C:\Program Files (x86)\Python\lib\site-packages\nltk\downloader.py", line 655, in download self._interactive_download() File "C:\Program Files (x86)\Python\lib\site-packages\nltk\downloader.py", line 974, in _interactive_download DownloaderGUI(self).mainloop() File "C:\Program Files (x86)\Python\lib\site-packages\nltk\downloader.py", line 1234, in __init__ self._fill_table() File "C:\Program Files (x86)\Python\lib\site-packages\nltk\downloader.py", line 1530, in _fill_table items = self._ds.collections() File "C:\Program Files (x86)\Python\lib\site-packages\nltk\downloader.py", line 499, in collections self._update_index() File "C:\Program Files (x86)\Python\lib\site-packages\nltk\downloader.py", line 825, in _update_index ElementTree.parse(compat.urlopen(self._url)).getroot()) File "C:\Program Files (x86)\Python\lib\urllib\request.py", line 156, in urlopen return opener.open(url, data, timeout) File "C:\Program Files (x86)\Python\lib\urllib\request.py", line 469, in open response = self._open(req, data) File "C:\Program Files (x86)\Python\lib\urllib\request.py", line 487, in _open '_open', req) File "C:\Program Files (x86)\Python\lib\urllib\request.py", line 447, in _call_chain result = func(*args) File "C:\Program Files (x86)\Python\lib\urllib\request.py", line 1268, in http_open return self.do_open(http.client.HTTPConnection, req) File "C:\Program Files (x86)\Python\lib\urllib\request.py", line 1253, in do_open r = h.getresponse() File "C:\Program Files (x86)\Python\lib\http\client.py", line 1143, in getresponse response.begin() File "C:\Program Files (x86)\Python\lib\http\client.py", line 354, in begin version, status, reason = self._read_status() File "C:\Program Files (x86)\Python\lib\http\client.py", line 316, in _read_status line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") File "C:\Program Files (x86)\Python\lib\socket.py", line 297, in readinto return self._sock.recv_into(b)ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。>>>弹出的NLTK Downloader没有任何东西:
还会有下面的提示:
出现以上情况,我所提出的解决方案就可以用上了,要是大家正常运行 nltk.download()那是再好不过了。
- Windows7 平台下Python+NLTK环境搭建
- windows下搭建python+NLTK开发环境
- win7下python nltk环境搭建
- python NLTK 环境搭建
- Python-NLTK环境搭建
- python NLTK环境搭建
- python NLTK 环境搭建
- windows7下Python环境搭建
- windows环境下搭建python+nltk开发环境
- windows环境下搭建python+nltk开发环境
- ubuntu12.04 Eclipse Python下的nltk环境搭建
- windows7 安装python +nltk
- python+NLTK自然语言处理 环境搭建
- 64位 win7下nltk 环境搭建
- windows7平台下配置Apache+Python-CGI开发运行环境
- Windows下Python机器学习环境搭建(pip numpy scipy matplotlib scikit-learn nltk)
- NLTK开发环境搭建
- Android NDK开发环境搭建(Windows7平台)
- 单链表顺序存储相关操作的c语言实现
- Android:动画效果translate、scale、alpha、rotate详解
- springmvc整合mybatis出现Could not autowire field:No matching bean of type错误
- JAVA实现旋转数组的最小数字问题(《剑指offer》)
- CSS列表
- Windows7 平台下Python+NLTK环境搭建
- Codeforces 492D Vanya and Computer Game
- ROS-机器人操作系统(ROS)浅析----第二章
- 关于system()实现中阻塞sigchld信号的问题(转帖) http://blog.chinaunix.net/uid-17044717-id-2835670.html
- linux设备列表
- BNUoj Rectangle 在矩形中查找矩形的种类
- php中使用memcache扩展的性能问题
- hdu 5480(前缀和)
- Swift教程-视频拍摄教程