系統學習NLP(二十六) NBSVM

2021-10-01 04:06:08 字數 1209 閱讀 3438

**:baselines and bigrams: ******, good sentiment and topic classification

參考: 跟原文有一定差異,理解不一致。

樸素貝葉斯(***** bayes, nb)和支援向量機(support vector machines, svm)的變體常被用作文字分類的基線方法,但它們的效能因模型變體、使用的特性和任務/資料集的不同而有很大差異。sida wang 和 christopher d. manning基於兩種演算法的特質,提出了nbsvm演算法,實驗證明,nbsvm在情緒分析資料集上優於大多數演算法的結果,甚至有時能達到start-of-the-art,因此在文字分類中常被作為乙個有用的baseline。

整體思想是把 nb 和 svm 的長處綜合一下,構造乙個簡單的線性模型。在幾個情感分析的資料集上結合 bigram 得到的效果不錯。

方法也很簡單,就是用 nb 和 svm 的思想來構造乙個線性分類器:

具體可以拆解成四個部分:

1. 構造權重向量 r:

其中,簡單來說就是求正負樣本上所有特徵出現的頻率的比值的對數。這就是模型中的 nb 部分,只不過對二分類問題用正負樣本特徵的頻率比直接替代了分別求概率然後比較的步驟。

注意:把log裡面的比例項,在貝葉斯理論裡,叫做貝葉斯因子,衡量的乙個理論優於另乙個理論的相對確證性,也是似然概率的比值,所以,這裡的log-count ratio計算出的權重向量,衡量的是整體的訓練集上資料x支援正樣本的概率是支援負樣本的概率的倍數。這個比例取log後,就是評分卡里的woe,即證據權重。

2. 多項式 nb

在 mnb 中

3. svm

把帶 l2 約束的 svm 的優化目標函式寫出來:

經驗證 l2-loss 比 l1-loss 表現好,而且穩定(這個**需要驗證啊?理論就可以得到這個結論)。實現時使用了 liblinear 庫。

4. svm + nb features

怎麼把 nb 和 svm 搓到一起的呢?

目標函式還是 svm 的 l2-loss,但 x(k)這裡變成了 r̂ ∘f^(k)。這個圈表示對應位置元素相乘,即所謂的 element-wise product,實際上就是二值化後的輸入又加入了 nb 分類權重。其實就是mnb特徵,即上面紅色部分的nb權重跟原始特徵做加權,得到mnb特徵,這麼做,有利於長文字分類,作者說還可以在 mnb 和 svm 間做個均衡:

系統學習NLP(二十七) EMLo

deep contextualized word representations 參考 elmo的語言理解是通過 訓練單詞序列中的下乙個單詞來實現,這項任務被稱為語言建模。這是很方便的,因為我們有大量的文字資料,這樣的模型不需要標籤就可以從中學習。今天給大家介紹一篇2018年提出的 deep con...

系統學習NLP(二十八) GPT

improving language understandingby generative pre training 本文對2018年openai提出的 improving language understandingby generative pre training 做乙個解析。乙個對文字有效的...

Swift學習筆記(二十六) 擴充套件

1.擴充套件的作用 1 使用擴充套件新增屬性 2 使用擴充套件新增方法,可變方法 3 使用擴充套件新增構造器 4 使用擴充套件新增下標 5 使用擴充套件新增巢狀型別 2.擴充套件的特性 1 使用擴充套件新增屬性,方法,可變方法,構造器,下標,巢狀型別 2 可以使乙個已有型別符合乙個或者多個協議 3 ...