当前位置:   article > 正文

手动安装Python NLTK语言包_nltk.download('cmudict')

nltk.download('cmudict')

本人在学习NLTK之初,为安装nltk的语言数据集。可谓撒费苦心,最终失败。但我都是按照书上的说明做的呀,怎么就是安装不了呢?

  1. >>> import nltk
  2. >>> nltk.download()

经分析,发现是默认的下载器下载数据太慢太慢太慢了——根本就没动嘛,也没有任何进度提示。.于是我就找了度娘。找到了官网文档。

http://www.nltk.org/data.html

一直翻到最后,看到“Manual installation”。于是着手操作。

但是当点开http://www.nltk.org/nltk_data/后,我傻眼了。107项,手动下载岂不是要把人累疯。于是想到用程序解决。

第一步:找到所有包的链接。保存到csv文件,供下一步使用,代码如下:

  1. import pandas as pd
  2. import bs4
  3. import requests
  4. import lxml
  5. xml = requests.get('https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml')
  6. html = bs4.BeautifulSoup(xml.text, 'lxml')
  7. packages = html.find_all('package')
  8. table_list = []
  9. for pp in packages:
  10. table_list.append({'name':pp['name'], 'url':pp['url']})
  11. df = pd.DataFrame(table_list)
  12. df.to_csv('nltk.csv')
  13. print('get nltk url Done!')

第二步:使用下载工具下载数据文件。

这里推荐迅雷,复制url后,能自动识别并下载。

最后一步:定义解压文件的方法,处理url地址,解析出数据文件和文件所在的包(文件夹),并将文件解压。代码如下:

  1. import pandas as pd
  2. import zipfile
  3. import os
  4. def unzipfile(src_file, dest_dir, password=None):
  5. if password:
  6. password = password.encode()
  7. zf = zipfile.ZipFile(src_file)
  8. try:
  9. zf.extractall(path=dest_dir, pwd=password)
  10. except RuntimeError as e:
  11. print(e)
  12. finally:
  13. pass
  14. zf.close()
  15. df = pd.read_csv('nltk.csv')
  16. prefix = 'https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/packages/'
  17. def cuturl(url):
  18. folder = url[len(prefix):]
  19. return "../nltk_data/" + folder[:folder.find('/')] #"../nltk_data/"的设置要根据实际代码运行的位置和想要存放解压文件的路径决定
  20. def getfile(url):
  21. folder = url[len(prefix):]
  22. return "../nltk/" + folder[folder.find('/')+1:] # ../nltk/ 的路径为下载工具下载的数据集文件所在路径
  23. df['destfolder'] = df['url'].map(lambda x: cuturl(x))
  24. df['zipfile'] = df['url'].map(lambda x: getfile(x))
  25. #df['destfolder'] = df['url'].map(lambda x: getfile(x))
  26. #开始根据df的信息进行解压操作
  27. for ff in df.values:
  28. #print(ff)
  29. print(ff[4],ff[3])
  30. if not os.path.exists(ff[4]):
  31. continue
  32. unzipfile(ff[4], ff[3])
  33. print('Done')

PS:如何你指定的解压路径不是根目录,最后需要将整个nltk_data目录移到某个盘符的根目录下,不然nltk找不到文件。

以上为在Windows 10下的安装步骤,供参考。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/729572
推荐阅读
相关标签
  

闽ICP备14008679号