天天看点

安装texthero踩过的坑

手头有一份以excel存储的文本数据,在用pandas读入后,想要用自然语言处理的一些库进行处理,在查找资料的时候发现了texthero这个库,在做数据清洗,自然语言处理的时候非常方便,因此就想安装下来用一用。下文记录了安装这个库踩过的一些坑。ヾ(•ω•`)o

1 介绍

Texthero 是一个开源的NLP工具包,旨在 Pandas 之上使用单一工具简化所有 NLP 开发人员的任务。它由预处理、向量化、可视化和 NLP 四个模块组成,可以快速地理解、分析和准备文本数据,以完成更复杂的机器学习任务。

👉官网传送门:https://texthero.org/

👉github源码传送门:https://github.com/jbesomi/texthero

👉访问这个网站要注意科学上网

2 安装

截止动笔写此文,目前发布的textthero的版本是1.1.0。官网给出的安装指南是通过pip工具

pip install texthero
           

可是,你以为这样就结束了吗?too young too naive!/(ㄒoㄒ)/~~ 问题才刚刚开始

3 出现的问题

问题1:发生警告

解决方法:进入命令行提示的文件夹d:\program files (x86)\python37\lib\site-packages)

删除~ip开头的文件夹即可。这样的文件夹有2个。

~ip
~ip 20.0.2.dist-info
           

问题2:导入失败-nltk download失败

[nltk_data] Error loading stopwords: <urlopen error [WinError 10054]
[nltk_data]     远程主机强迫关闭了一个现有的连接。>
Traceback (most recent call last):
  File "D:\software\Anaconda3\lib\site-packages\nltk\corpus\util.py", line 83, in __load
    root = nltk.data.find("{}/{}".format(self.subdir, zip_name))
  File "D:\software\Anaconda3\lib\site-packages\nltk\data.py", line 585, in find
    raise LookupError(resource_not_found)
LookupError:
**********************************************************************
  Resource stopwords not found.
  Please use the NLTK Downloader to obtain the resource:

  >>> import nltk
  >>> nltk.download('stopwords')

  For more information see: https://www.nltk.org/data.html

  Attempted to load corpora/stopwords.zip/stopwords/

  Searched in:
    - 'C:\\Users\\60913/nltk_data'
    - 'D:\\software\\Anaconda3\\nltk_data'
    - 'D:\\software\\Anaconda3\\share\\nltk_data'
    - 'D:\\software\\Anaconda3\\lib\\nltk_data'
    - 'C:\\Users\\60913\\AppData\\Roaming\\nltk_data'
    - 'C:\\nltk_data'
    - 'D:\\nltk_data'
    - 'E:\\nltk_data'
**********************************************************************



During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\software\Anaconda3\lib\site-packages\texthero\__init__.py", line 18, in <modu
    from . import stopwords
  File "D:\software\Anaconda3\lib\site-packages\texthero\stopwords.py", line 22, in <mod
    DEFAULT = set(nltk_en_stopwords.words("english"))
  File "D:\software\Anaconda3\lib\site-packages\nltk\corpus\util.py", line 120, in __get
    self.__load()
  File "D:\software\Anaconda3\lib\site-packages\nltk\corpus\util.py", line 85, in __load
    raise e
  File "D:\software\Anaconda3\lib\site-packages\nltk\corpus\util.py", line 80, in __load
    root = nltk.data.find("{}/{}".format(self.subdir, self.__name))
  File "D:\software\Anaconda3\lib\site-packages\nltk\data.py", line 585, in find
    raise LookupError(resource_not_found)
LookupError:
**********************************************************************
  Resource stopwords not found.
  Please use the NLTK Downloader to obtain the resource:

  >>> import nltk
  >>> nltk.download('stopwords')

  For more information see: https://www.nltk.org/data.html

  Attempted to load corpora/stopwords

  Searched in:
    - 'C:\\Users\\60913/nltk_data'
    - 'D:\\software\\Anaconda3\\nltk_data'
    - 'D:\\software\\Anaconda3\\share\\nltk_data'
    - 'D:\\software\\Anaconda3\\lib\\nltk_data'
    - 'C:\\Users\\60913\\AppData\\Roaming\\nltk_data'
    - 'C:\\nltk_data'
    - 'D:\\nltk_data'
    - 'E:\\nltk_data'
**********************************************************************
           

nltk试图下载停用词的数据集,但是链接网络失败了。

解决方法一:

import nltk
nltk.download() 
           

在执行完download()方法后,会有一个下载框跳出来,点击download即可。

安装texthero踩过的坑

但成功率不行。因为下面这个网站程序访问的时候连不上,但奇怪的是,手动是可以访问的。

https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml
           

解决方法二:

只好手动下载,做到这一步,真的要哭唧唧。/(ㄒoㄒ)/~~

官网传送门:https://github.com/nltk/nltk_data

👉:注意下载 gh-pages分支下的packages文件

如何下载github的单个文件夹呢?github本身没有提供这样的工具,但是我们可以用DownGit。

DownGit传送门1:https://yehonal.github.io/DownGit/#/home

DownGit传送门2:http://tool.mkblog.cn/downgit/#/home

把下面这个地址贴到downgit的输入框中,即可下载。

安装texthero踩过的坑
https://github.com/nltk/nltk_data/tree/gh-pages/packages
           

下载完成后的文件格式是一个压缩包,把这个压缩包解压,然后放在以上报错中提示的任何一个位置即可,注意修改文件夹名称为nlk_data

- 'C:\\Users\\60913/nltk_data'
    - 'D:\\software\\Anaconda3\\nltk_data'
    - 'D:\\software\\Anaconda3\\share\\nltk_data'
    - 'D:\\software\\Anaconda3\\lib\\nltk_data'
    - 'C:\\Users\\60913\\AppData\\Roaming\\nltk_data'
    - 'C:\\nltk_data'
    - 'D:\\nltk_data'
    - 'E:\\nltk_d
           

问题3:导入失败-en_core_sm下载失败。

在进入python工具后,执行 import texthero时,发生了httpconnection报错。由于错误未能及时记录下来,在此仅作文字描述。

报错信息类似于此。在导入texthero的时候,它试图通过spacy下载en_core_web_sm,但网络无法链接。

或者是类似于这样

只好手动进行下载。

要注意1.1.0版本的texthero对应的spacy版本是2.3.7。手动下载en_core_sm时,需要保证前两位版本号匹配,故我们需要下载2.3.0版本的en_core_sm

en_core_sm官网传送门:https://github.com/explosion/spacy-models/releases/tag/en_core_web_sm-2.3.0

页面拖到下方,可以看到2.3.0版本的en_code_sm有3个类型的文件可供下载,我们选择tar.gz进行下载。

pip --default-timeout=10000 install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.3.0/en_core_web_sm-2.3.0.tar.gz
           

这样,texthero就安装完毕啦!

参考文档

  1. texthero的初次使用
  2. NLPer的福音! 数据预处理工具Texthero
  3. spacy和en安装

继续阅读