瑞士小哥開源文本英雄Texthero:一行代碼完成數據預處理,網友:早用早下班!
新智元報道
來源:GitHub
編輯: 白峰
【新智元導讀】自然語言處理任務的數據通常是雜亂無章的,而文本預處理要消耗大量的時間和精力。近日,GitHub上開源了一個NLP工具箱Texthero,不僅功能完善一個pipeline完成所有操作,速度還超快堪比SpaCy,一起來嘗鮮吧!
NLPer最頭疼的可能就是數據預處理了,拿到的多源數據通常長下面這樣,亂成一團。
? ?
「我只想遠離我的數據集,休息一下。」
如果你已經處理過文本數據並應用過一些機器學習演算法,那麼你肯定了解「NLP 管道」是多麼複雜。
你通常需要寫一堆正則表達式來清理數據,使用 NLTK、 SpaCy 或 Textblob 預處理文本,使用 Gensim (word2vec)或 sklearn (tf-idf、 counting 等)將文本向量化。
即使對於 Python 專家來說,如果考慮不周全,不理解哪些任務是必需的,也很容易迷失在不同的包文檔中。
而現在有一個全新的自然語言處理工具箱,你只需要打開一個新的筆記本,就能像Pandas一樣開始文本數據分析了,先睹為快!
文本英雄:一個pipeline完成所有NLP操作
Texthero 是一個開源的NLP工具包,旨在 Pandas 之上使用單一工具簡化所有 NLP 開發人員的任務。它由預處理、向量化、可視化和 NLP 四個模塊組成,可以快速地理解、分析和準備文本數據,以完成更複雜的機器學習任務。
? ?
Texthero可以輕鬆實現以下功能。
文本數據預處理
和Pandas無縫銜接,既可以直接使用,又可以自定義解決方案十分靈活。
?
導入完數據直接clean ,不要太簡單,所有臟活累活,Texthero都幫你完成了!我們來看看它在後台做了哪些工作。
? ?
Wow!填充缺失值、大小寫轉換、移除標點符號、移除空白字元等應有盡有,這些預處理對普通的文本數據已經足夠了。
而此前,沒有Texthero的話,你只能自定義文本清洗函數,包括去停用詞、去特殊符號、詞幹化、詞型還原等,非常複雜。
? ?
自然語言處理
關鍵短語和關鍵字提取,命名實體識別等等。
? ?
? ?
文本表示
TF-IDF,詞頻,預訓練和自定義詞嵌入。
? ?
?
向量空間分析
聚類(K均值,Meanshift,DBSAN和Hierarchical),主題建模(LDA和LSI)和解釋。
? ?
? ?
文本可視化
一行代碼即可完成關鍵字可視化,向量空間可視化等。
?
不僅功能強大速度還超快!
有網友懷疑融合了這麼多的功能,速度一定有所下降。
而真相是:Texthero 相當快。
Texthero 使用了許多其他庫,因此它的速度在很大程度上受到依賴庫的影響。
但是對於文本預處理: 基本上就是 Pandas (在內存中使用 NumPy)和 Regex,速度非常快。對於tokenize,默認的 Texthero 函數是一個簡單但功能強大的 Regex 命令,這比大多數 NLTK 和 SpaCy 的tokenize快,因為它不使用任何花哨的模型,缺點是沒有 SpaCy 那樣精確。
?
? ?
對於文本表示: TF-IDF 和 Count底層使用 sklearn 進行計算,因此它和 sklearn 一樣快。嵌入是預先計算載入的,因此沒有訓練過程。詞性標註和 NER 是用 SpaCy 實現的。眾所周知,SpaCy 是同類自然語言處理中最快的,它也是工業界使用最多的。
網友:恨不生同時,早用早下班!
作者Jonathan Besomi是一個瑞士的NLP工程師。Texthero開源之後,他也在Reddit耐心回答了網友提問。
網友們用過之後也是紛紛點贊。
一周前放出來,我就能早點下班了!
? ?
? ?
簡直是上帝的傑作!
? ?
? ?
來,快到我碗里來,我要應用到我現在的項目中。
? ?
太酷了!還可以將自己的TensorFlow/PyTorch模塊融合進去。
? ?
當然這不是一個詳盡的文檔,作者稍後會寫一個詳細的博客文章,如果你也感興趣並想加入Texthero,趕緊聯繫作者提交你的代碼吧,或者直接擼一個Texthero中文版出來估計也能賺一波star!
參考鏈接:
https://github.com/jbesomi/texthero
https://texthero.org/
※Cell重磅:熬夜致死,問題不在大腦或心臟,而是腸道!
※Nature、Science停更一天!全球學術界5000名科學家大罷工