一種使用快速、簡單有效的文本分類方法

問題及需求

使用CNN,LSTM,Attention based model建立一個文本分類深度模型固然很好很強(qiáng)大,但是實(shí)際情況是,數(shù)據(jù)集和模型同等重要,到哪里去搞質(zhì)量好的打標(biāo)簽的訓(xùn)練樣本在短時(shí)間內(nèi)是一個問題。應(yīng)對短平快,沒有數(shù)據(jù)集的情況下,能否找到一種可用的文本分類方法解決問題呢?

本文方法的切入點(diǎn):快速,簡單,有效。
雖然方法比較簡單,但是作為一個trade off,在一定程度上能快速有效解決項(xiàng)目中實(shí)際用到的文本分類問題。

工具及方法

Tools:

  • Bloom Filter(布隆過濾器)

對于原理來說很簡單,位數(shù)組+k個獨(dú)立hash函數(shù)。將hash函數(shù)對應(yīng)的值的位數(shù)組置1,查找時(shí)如果發(fā)現(xiàn)所有hash函數(shù)對應(yīng)位都是1說明存在,很明顯這個過程并不保證查找的結(jié)果是100%正確的。

Bloom Filter的這種高效是有一定代價(jià)的:在判斷一個元素是否屬于某個集合時(shí),有可能會把不屬于這個集合的元素誤認(rèn)為屬于這個集合(false positive)。因此,Bloom Filter不適合那些“零錯誤”的應(yīng)用場合。而在能容忍低錯誤率的應(yīng)用場合下,Bloom Filter通過極少的錯誤換取了存儲空間的極大節(jié)省。

  • cell word bank(細(xì)胞詞庫)

可以理解為一個詞典,一系列相關(guān)的詞匯,比如“傳染病詞庫”,里面就包含了各種跟傳染病相關(guān)的詞,比如流行性感冒,狂犬病等等,搜狗輸入法有所收集??梢栽诰W(wǎng)站上下載到。

  • word2vec(詞向量)

谷歌開源的一個詞向量提取工具,在我們文本分類工作的作用是找近義詞,詞向量有很多有趣的性質(zhì),比如近義詞就是通過尋找word embedding之后得到的詞向量,其夾角較小或者歐幾里得距離較近的一組向量。在本方法中用于近義詞擴(kuò)充細(xì)胞詞庫。

具體方法:
采用樸素貝葉斯的思想,分詞->統(tǒng)計(jì)文本中的詞在每個細(xì)胞詞庫中出現(xiàn)的次數(shù)。細(xì)胞詞庫及其詞的近義詞擴(kuò)充(使用word2vec)在程序初始化的時(shí)候已經(jīng)在布隆過濾器中存好。這樣處理之后得到一個向量,向量的每一維度就是文本在對應(yīng)細(xì)胞詞庫中出現(xiàn)的次數(shù)。最簡單的算法就是,在一個領(lǐng)域出現(xiàn)的詞越多,就說明我的文本屬于這個領(lǐng)域的可能性越大。

比如有這樣一個文本“習(xí)近平總書記出席G20杭州峰會”,其中習(xí)近平、總書記、出席、峰會都映射到了政治敏感的細(xì)胞詞庫中,那么我這個文本極有可能屬于政治敏感類。

在實(shí)際項(xiàng)目中發(fā)現(xiàn),這個方法的可用程度非常高。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容