文本分類(機器學習方法)


文本分類實現步驟:
  1. 定義階段:定義數據以及分類體系,具體分為哪些類別,需要哪些數據
  2. 數據預處理:對文檔做分詞、去停用詞等准備工作
  3. 數據提取特征:對文檔矩陣進行降維、提取訓練集中最有用的特征
  4. 模型訓練階段:選擇具體的分類模型以及算法,訓練出文本分類器
  5. 評測階段:在測試集上測試並評價分類器的性能
  6. 應用階段:應用性能最高的分類模型對待分類文檔進行分類
特征提取的幾種經典方法:
  • Bag-of-words:最原始的特征集,一個單詞/分詞就是一個特征。往往會導致一個數據集有上萬個特征,有一些的簡單指標可以篩選掉一些對分類沒幫助的詞語,如去停用詞、計算互信息熵等。但總的來說,特征維度都很大,每個特征的信息量太小
  • 統計特征:TF-IDF方法。主要是用詞匯的統計特征來作為特征集,每個特征都有其物理意義,看起來會比 bag-of-word 好,實際效果差不多
  • N-gram:一種考慮詞匯順序的模型,也就是 N 階 Markov 鏈,每個樣本轉移成轉移概率矩陣,有不錯的效果
分類器方法:
  • 朴素貝葉斯(Naive Bayesian, NB)

    對於給定的訓練集,首先基於特征條件獨立學習輸入、輸出的聯合概率分布 P(X, Y),然后基於此模型,對給定的輸入 x ,利用貝葉斯定理求出后驗概率最大的輸出 y

    假設P(X, Y)獨立分布,通過訓練集合學習聯合概率分布 P(X, Y)

    \[P(X,Y)=P(Y|X)·P(X)=P(X|Y)·P(Y) \]

    根據上面的等式可得貝葉斯理論的一般形式

    \[P(Y=c_k|X=x)=\frac{P(X=x|y=c_k)·P(Y=c_k)}{\sum_k{P(X=x|Y=c_k)·P(Y=c_k)}} \]

    分母是根據全概率公式得到

    因此,朴素貝葉斯可以表示為:

    \[y=f(x)=argmax_{c_k}\frac{P(Y=c_k)\prod_{j}{P(X^{(j)}=x^{(j)}|Y=c_k)}}{\sum_{k}{P(Y=c_k)\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_k)}} \]

    為了簡化計算,可以將相同的分母去掉

    優點:實現簡單,學習與預測的效率都很高

    缺點:分類的性能不一定很高

  • 邏輯回歸(Logistic Regression, lR)

    一種對數線性模型,它的輸出是一個概率,而不是一個確切的類別

    邏輯斯蒂函數:

    \[h_\theta(x)=\frac{1}{1+e^{-\theta Tx}},P(Y=1|X;\theta)=h_{\theta}(x),P(Y=0|x;\theta)=1-h_{\theta}(x) \]

    圖像:

    對於給定數據集,應用極大似然估計方法估計模型參數

    \[l(\theta)=logL(\theta)=\sum_{i=1}^{N}y^{(i)}logh(x^{i})+(1-y^{i})log(1-h(x^{i})) \]

    優點:實現簡單、分類時計算量小、速度快、存儲資源低等

    缺點:容易欠擬合、准確率不高等

  • 支持向量機(Support Vector Machine, SVM)

    在特征空間中尋找到一個盡可能將兩個數據集合分開的超平面(hyper-plane)

    對於線性不可分的問題,需要引入核函數,將問題轉換到高維空間中

    優點:可用於線性/非線性分類,也可以用於回歸;低泛化誤差;容易解釋;計算復雜度低;推導過程優美

    缺點:對參數和核函數的選擇敏感

中文垃圾郵件分類實戰

數據集分為:ham_data.txt 和 Spam.data.txt , 對應為 正常郵件和垃圾郵件

其中每行代表着一個郵件

主要過程為:

  1. 數據提取
  2. 對數據進行歸整化和預處理
  3. 提取特征(tfidf 和 詞袋模型)
  4. 訓練分類器
    • 基於詞袋模型的多項式朴素貝葉斯
    • 基於詞袋模型的邏輯回歸
    • 基於詞袋模型的支持向量機
    • 基於 tfidf 的多項式朴素貝葉斯
    • 基於 tfidf 的邏輯回歸
    • 基於 tfidf 的支持向量機
  5. 用 准確率(Precision)、召回率(Recall)、F1測度 來評價模型

代碼放在 GitHub 上了

https://github.com/CuveeFer/my-nlp

結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM