當前位置:吉日网官网 - 傳統節日 - 文本分類方法有哪些?

文本分類方法有哪些?

文本分類問題:給定壹個文檔p(它可能包含標題t),將該文檔分類為n個類別中的壹個或多個。

文本分類應用:常見垃圾郵件識別,情感分析。

文本分類方向:主要有兩種分類,多分類和多標簽分類

文本分類方法:傳統的機器學習方法(貝葉斯、svm等。)和深度學習方法(fastText,TextCNN等。).

本文的思路:主要介紹文本分類的處理過程和主要方法。力求讓讀者明白在處理文本分類時從什麽方向入手,關註什麽問題,針對不同場景采取什麽方法。

文本分類的處理大致可以分為文本預處理、文本特征提取和分類模型構建。與英文文本處理和分類相比,中文文本預處理是關鍵技術。

中文分詞是中文文本分類中的壹項關鍵技術。特征粒度遠好於詞粒度,其分類算法大多不考慮詞序信息,基於詞粒度的n元文法信息損失過多。下面簡單總結壹下中文分詞技術:基於字符串匹配的分詞,基於理解的分詞,基於統計的分詞[1]。

1,基於字符串匹配的分詞方法:

流程:這是壹個基於詞典的中文分詞,核心是先建立統壹的詞典表。當壹個句子需要分詞時,首先將句子分成多個部分,每個部分與詞典壹壹對應。如果單詞在詞典中,則分詞成功,否則繼續拆分匹配,直到成功。

核心:詞典、分詞規則、匹配順序是核心。

分析:優點是速度快,時間復雜度可以保持在O(n),實現簡單,效果可以接受;但在處理歧義和不認識的詞時效果不佳。

2.基於理解的分詞方法:基於理解的分詞方法是通過讓計算機模擬人對句子的理解來達到識別單詞的效果。其基本思想是在分詞的同時進行句法和語義分析,利用句法和語義信息處理歧義。它通常包括三個部分:分詞子系統、句法語義子系統和通用控制部分。在總控部分的協調下,分詞子系統可以獲取關於詞和句子的句法和語義信息來判斷分詞的歧義性,即它模擬了人們理解句子的過程。這種分詞方法需要用到大量的語言知識和信息。由於漢語語言知識的概括性和復雜性,很難將各種語言信息組織成機器可以直接閱讀的形式,所以目前基於理解的分詞系統還處於實驗階段。

3、基於統計的分詞方法:

過程:從統計學上講,分詞是壹個概率最大化問題,也就是拆分句子。基於語料庫,統計由相鄰詞組成的詞的概率。相鄰詞出現的次數越多,概率越大。所以分詞是根據概率值進行的,所以壹個完整的語料庫很重要。

主要的統計模型有:N-gram、隱馬爾可夫模型、最大熵模型(ME)、條件隨機場模型(CRF)等。

1,分詞:中文任務分詞必不可少,壹般使用傑霸分詞,行業內的佼佼者。

2.去停用詞:建立停用詞詞典。目前關於停用詞的詞典大約有2000本,停用詞主要包括壹些副詞、形容詞和壹些連詞。維護非索引字表實際上是壹個特征提取的過程,本質上是特征選擇的壹部分。

3.詞性標註:判斷分詞後的詞性(動詞、名詞、形容詞、副詞……),使用街霸分詞時通過設置參數即可得到。

文本分類的核心是如何從文本中提取能夠反映文本特征的關鍵特征,並捕捉特征與類別之間的映射。因此,特征工程非常重要,可以由四部分組成:

1,基於bag模型的特征表示:詞單元(Unigram)構造的bag可能達到幾萬維,如果考慮二元和三元模型,bag的大小可能達到幾十萬,所以基於bag模型的特征表示通常是極其稀疏的。

(1)包特征有三種方法:

(2)優缺點:

2.基於嵌入的特征表示:通過詞向量計算文本的特征。(主要針對短文本)

4.基於任務本身提取的特征:主要是為特定的任務設計的。通過我們對數據的觀察和感知,我們也許能夠發現壹些潛在有用的特征。有時,這些手動特征極大地提高了最終的分類效果。例如,對於分類正面和負面評論的任務,對於負面評論,負面詞的數量是壹個很強的壹維特征。

5.特征融合:在特征維數高、數據模式復雜的情況下,建議采用非線性模型(如流行的GDBT和XG Boost);對於特征維數低、數據模式簡單的情況,建議使用簡單的線性模型(如LR)。

6、主題特色:

LDA(文檔的主題):可以假設文檔集合中有t個主題,壹個文檔可能屬於壹個或多個主題。通過LDA模型可以計算出文檔屬於某個主題的概率,從而可以計算出DxT矩陣。LDA特性在諸如文檔標記的任務中表現良好。

LSI(文檔的潛在語義):文檔的潛在語義是通過分解文檔-詞頻矩陣計算出來的,類似於LDA,是文檔的潛在特征。

這部分不是重點。可以使用傳統機器學習算法中可以用於分類的所有模型,例如NB模型、隨機森林模型(RF)、SVM分類模型、KNN分類模型和神經網絡分類模型。

這裏強調貝葉斯模型,因為業界使用這個模型來識別垃圾郵件[2]。

1,fastText模型:fastText是word2vec的作者Mikolov轉戰臉書:高效文本分類的錦囊妙計[3]後,於16年7月剛剛發表的論文。

模型結構:

改進:註意機制是自然語言處理領域常用的建模長時記憶機制,可以直觀地給出每個單詞對結果的貢獻,基本上已經成為Seq2Seq模型的標準。其實文本分類在某種意義上也可以理解為壹種特殊的Seq2Seq,所以最近才考慮引入註意力機制。

流程:

前向和後向RNN用於獲得每個單詞的前向和後向上下文的表示:

單詞的表示變成了單詞向量和前後向上下文向量相連的形式;

顯然,模型並不是最重要的:壹個好的模型設計對於獲得好的結果非常重要,也是學術界關註的熱點。但在實際中,模型的工作量占用的時間相對較少。雖然第二部分介紹了CNN/RNN及其變種的五種模型,但實際上僅通過CNN就足以在中文文本分類任務中取得非常好的效果。我們的實驗測試表明,RCNN提高了約1%的準確率,但並不十分顯著。最好的做法是用TextCNN模型把整體任務效果調試到最好,然後再嘗試改進模型。

了解妳的數據:雖然應用深度學習有壹個很大的優勢就是不再需要繁瑣低效的人工特征工程,但是如果妳只是把它當成壹個黑箱,那麽妳必然會頻繁地懷疑人生。壹定要理解妳的數據,記住無論傳統方法還是深度學習方法,數據感總是非常重要的。註意badcase分析,了解妳的數據是否合適,為什麽對或者錯。

超參數調整:可以參考深度學習網絡參數調整技巧-知乎專欄

壹定要用dropout:有兩種情況可以避免:數據量極小,或者妳用更好的正則化方法,比如bn。事實上,我們已經嘗試了不同參數的dropout,最好的是0.5,所以如果妳的計算資源有限,默認值0.5是壹個不錯的選擇。

妳不必是softmax loss:這取決於妳的數據。如果妳的任務在多個類別之間不是互斥的,可以嘗試訓練多個二元分類器,即把問題定義為多標簽而不是多類。經過調整,準確率提高了> 1%。

品類失衡:基本上是壹個已經在很多場景下驗證過的結論:如果妳的損失被某些品類所主導,那麽對整體來說多半是負面的。建議可以嘗試用類似booststrap的方法來調整樣品的失重。

避免訓練休克:默認情況下必須加入隨機抽樣因子,盡可能使數據分布iid,默認的洗牌機制可以使訓練結果更加穩定。如果訓練模型仍然非常不穩定,可以考慮調整學習率或mini_batch_size。

知乎的文字多標簽分類大賽,給第壹第二名的介紹網站:

NLP大賽冠軍總結:300萬知乎多標簽文本分類任務(附深度學習源代碼)

2017知乎坎山杯從參賽到第二。

  • 上一篇:求經典玄幻小說
  • 下一篇:國產男士皮鞋哪些品牌質量過硬?
  • copyright 2024吉日网官网