手頭有一份以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即可。

但成功率不行。因為下面這個網站程式通路的時候連不上,但奇怪的是,手動是可以通路的。
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的輸入框中,即可下載下傳。
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就安裝完畢啦!
參考文檔
- texthero的初次使用
- NLPer的福音! 資料預處理工具Texthero
- spacy和en安裝