?基於人工智能技術的文本分類系統可以根據語義自動對大量文本進行分類。多種統計理論和機器學習方法被用於自動文本分類。但是最大的問題是特征空間的高維性和文檔表示向量的稀疏性。中文詞條總數超過20萬,高維特征空間對於所有算法來說都太大了。迫切需要壹種有效的特征提取方法來降低特征空間的維數,提高分類的效率和準確率。
?文本分類方法主要分為兩類,基於傳統機器學習方法和深度學習方法。基於傳統機器學習的文本分類方法主要是對文本進行預處理,提取特征,然後對處理後的文本進行矢量化,最後通過常用的機器學習分類算法對訓練數據集進行建模。在傳統的文本分類方法中,文本特征提取的質量對文本分類的準確性有很大的影響。基於深度學習的方法是通過CNN等深度學習模型對數據進行訓練,不需要人工提取數據的特征。影響文本分類準確率的更多的是數據量和訓練的叠代次數。
?與長文相比,短文本由於字數少、描述性信息弱,顯得稀疏、不規範。傳統的機器學習方法緯度高,文本表示稀疏,特征表達能力弱,神經網絡不擅長處理這類數據。另外,特征工程需要人工進行,成本很高,不能很好地滿足短文本分類的需要。深度學習最初在圖像和語音方面取得巨大成功的壹個很重要的原因是圖像和語音的原始數據是連續的、密集的,具有局部相關性。利用深度學習解決大規模文本分類問題,最重要的是解決文本表示,然後利用CNN/RNN等網絡結構,自動獲得特征表達能力,擺脫復雜的人工特征工程。
?
?短文本分類算法廣泛應用於各個行業,如新聞分類、人機寫作判斷、垃圾郵件識別、用戶情感分類、智能文案生成、智能產品推薦等。
?場景壹:商品智能推薦,根據用戶購買的商品名稱對文本進行分類作為預測樣本,獲取用戶的交易類別,結合其他數據構建用戶畫像,根據不同特征的用戶畫像預測用戶的下壹次購買行為,智能推薦商品和服務。
?場景二:文案智能生成,基於高質量文案作為訓練集,得到文本分類模型,當用戶輸入關鍵詞時,智能推薦自適應文案。
?場景三:自動對新聞進行分類或標簽,多個標簽。
場景四:判斷文章是人寫的還是機器寫的。
?場景五:判斷影評中的情緒是積極的、消極的還是中性的,類似的應用場景非常廣泛。
?利用深度學習的詞向量技術,將文本數據從高緯度、高稀疏度的神經網絡的困難方式,轉變為類似圖像、語音的連續密集數據,將詞轉化為密集向量,從而解決文本表示問題。詞向量作為機器學習和深度學習模型的特征,對最終的模型有很大的影響。
?同時利用CNN/RNN等深度學習網絡及其變種解決自動特征提取(即特征表達)問題,對應的文本分類模型如下:
?1)快速文本
?FastText是臉書開源的詞向量和文本分類工具,模型簡單,訓練速度快。FastText的原理是將短文本中的所有詞向量進行平均,然後直接連接到softmax層,同時加入壹些n-gram特征的技巧來捕捉局部序列信息。與其他文本分類模型如SVM、Logistic回歸和神經網絡相比,FastText在保持分類效果的同時大大縮短了訓練時間,同時支持多語言表達。然而,它的模型是基於基於單詞包的英語文本分類方法,組成英語句子的單詞是間隔的。但應用於中文文本時,分詞和標點需要轉換成模型要求的數據格式。
?2)美國有線電視新聞網
?與FastText相比,TextCNN利用CNN(卷積神經網絡)提取句子中類似n-gram的關鍵信息,結構簡單,效果好。
?3)文本神經網絡
雖然TextCNN可以在很多任務中表現出色,但是CNN最大的問題是固定filter_size的視野,壹方面無法對更長的序列信息建模,另壹方面filter_size的超參數調整非常復雜。CNN的本質是表達文本的特征,遞歸神經網絡(RNN)更常用於自然語言處理,可以更好地表達上下文信息。具體來說,在文本分類的任務中,雙向RNN(實際上使用雙向LSTM)在某種意義上可以理解為捕獲可變長度和雙向“n-gram”信息。
4)TextRNN +註意
雖然CNN和RNN在文本分類任務中是有效的,但它們都有壹個缺點,如直覺和可解釋性差。註意機制是自然語言處理領域常用的建模長時記憶機制,可以直觀地給出每個單詞對結果的貢獻,是Seq2Seq模型的標準。其實文本分類在某種意義上可以理解為壹種特殊的Seq2Seq,所以可以考慮註意機制。
?最核心的註意點是翻譯每個目標詞(或預測商品標題文本的類別)所用的語境不同,這樣更合理。添加關註後,可以直觀的說明每個句子和單詞對分類類別的重要性。
5)TextRCNN(TextRNN + CNN)
?使用正向和反向RNN得到每個單詞的正向和反向上下文的表示,使單詞的表示變成單詞向量和正向和反向上下文向量concat的形式,最後連接同壹個卷積層TextCNN,pooling layer,唯壹不同的是卷積層filter_size = 1。
?總結:在實際應用中,CNN模型在中文文本分類中的應用效果壹直很好。研究表明,TextRCNN提高了約1%的準確率,但並不十分顯著。最好的做法是用TextCNN模型把整體任務效果調試到最好,然後再嘗試改進模型。
?
參考:文本分類解決方案概述