N-GRAM文本挖掘

N-GRAM介紹:

N-Gram是基於一個假設:第n個詞出現與前n-1個詞相關,而與其他任何詞不相關。(隱馬爾科夫當中的假設。)整個句子出現的概率就等於各個詞出現的概率乘積。各個詞的概率可以通過語料中統計計算得到。
假設句子T是有詞序列w1,w2,w3,…wn組成,用公式表示N-Gram語言模型如下:
P(T)=P(w1)P(w2w1)p(w3w1w2)p(wnw1w2w3...)P(T) = P(w1)*P(w2|w1)*p(w3|w1w2)*p(wn|w1w2w3...)
p(w2|w1):w2出現的概率是在w1出現的條件概率的基礎上出現;
n取多少合適?

一般常用的N-Gram模型是Bi-gram和Tri-Gram,分別由公式表示如下:
注意上面概率的計算方法,P(w1begin)=w1/P(w2w1)=w1,w2/w1P(w1|begin)=以w1爲開頭的所有句子/句子總數;P(w2|w1)=w1,w2同時出現的次數/w1出現的次數,以此類推
一個經典的二元語言模型(Bi-gram)的例子:
N-gram可以用來預計或評估一個句子是否合理;
對中文詞性標註,中文分詞有很好的效果;NNLM,CBOW

TF-IDF算法介紹

TF-IDF用於評估字詞對於一個文件集其中一份文件的重要程度,字詞的重要性隨着它在文件中出現的次數成正比增加,隨着它在語料庫中出現的頻率而下降。
詞頻(TF)詞語在文件中出現的次數,一般進行歸一化,防止長文件數字過大;
逆向文件頻率(IDF)是一個詞語普遍重要性的度量,總文件數(語料庫中有多少份文件)除以包含該詞語文件數,再將得到的商取對數。
結論: 在某特定文件內的高頻率詞語,但是在該詞語在整個文件集合中在較少文件中出現,則TF-IDF值較高。

公式:
TF/IDF是兩個不同度量標準的的融合
TF/IDF=TFijIDFiTF/IDF = TF_ij * IDF_i
TFi,j=ni,jknk,j,ni,jTF_{i,j} = \frac {n_{i,j}} {\sum_{k}n_{k,j}},n_{i,j}表示某詞在文件中出現的次數,分母是文件中字數的總和。
IDFi=logDj:tidj+1IDF_i=log{\frac {|D|}{|{j:t_i \in d_j}+1|}} ,其中|D|表示語料庫文件總數

|{$ j: t_i \in d_j$}| 包含某詞文件總數

加的效果和乘的效果有什麼區別呢?

加的效果是,如果兩個融合的模型有一個效果很好,其效果就會非常高。而乘起來後,只要有一個低,整體的效果就會低。

應用舉例

  1. 關鍵詞提取
  2. 句子相似度計算
  3. 其他算法的前置算法

TF-IDF文章相似度計算流程:

  1. 使用TF-IDF算法,分別找出兩篇文章的關鍵詞;
  2. 分別取每篇文章TF/IDF值top15的詞,合併爲一個集合,計算該集合下,每篇文章關鍵詞的相對詞頻;
  3. 分別生成兩篇文章的詞頻向量;
  4. 計算兩個向量的餘弦相似度,值越大就表示越相似
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章