【新智元導讀】自然語言處理任務的數據通常是雜亂無章的,而文本預處理要消耗大量的時間和精力。近日,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 是同類自然語言處理中最快的,它也是工業界使用最多的。
網友:恨不生同時,早用早下班!