天天看點

安裝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安裝

繼續閱讀