N-GRAM介紹:
N-Gram是基於一個假設:第n個詞出現與前n-1個詞相關,而與其他任何詞不相關。(隱馬爾科夫當中的假設。)整個句子出現的概率就等於各個詞出現的概率乘積。各個詞的概率可以通過語料中統計計算得到。
假設句子T是有詞序列w1,w2,w3,…wn組成,用公式表示N-Gram語言模型如下:
p(w2|w1):w2出現的概率是在w1出現的條件概率的基礎上出現;
n取多少合適?
一般常用的N-Gram模型是Bi-gram和Tri-Gram,分別由公式表示如下:
注意上面概率的計算方法,
一個經典的二元語言模型(Bi-gram)的例子:
N-gram可以用來預計或評估一個句子是否合理;
對中文詞性標註,中文分詞有很好的效果;NNLM,CBOW
TF-IDF算法介紹
TF-IDF用於評估字詞對於一個文件集其中一份文件的重要程度,字詞的重要性隨着它在文件中出現的次數成正比增加,隨着它在語料庫中出現的頻率而下降。
詞頻(TF)詞語在文件中出現的次數,一般進行歸一化,防止長文件數字過大;
逆向文件頻率(IDF)是一個詞語普遍重要性的度量,總文件數(語料庫中有多少份文件)除以包含該詞語文件數,再將得到的商取對數。
結論: 在某特定文件內的高頻率詞語,但是在該詞語在整個文件集合中在較少文件中出現,則TF-IDF值較高。
公式:
TF/IDF是兩個不同度量標準的的融合
表示某詞在文件中出現的次數,分母是文件中字數的總和。
,其中|D|表示語料庫文件總數
|{$ j: t_i \in d_j$}| 包含某詞文件總數
加的效果和乘的效果有什麼區別呢?
加的效果是,如果兩個融合的模型有一個效果很好,其效果就會非常高。而乘起來後,只要有一個低,整體的效果就會低。
應用舉例
- 關鍵詞提取
- 句子相似度計算
- 其他算法的前置算法
TF-IDF文章相似度計算流程:
- 使用TF-IDF算法,分別找出兩篇文章的關鍵詞;
- 分別取每篇文章TF/IDF值top15的詞,合併爲一個集合,計算該集合下,每篇文章關鍵詞的相對詞頻;
- 分別生成兩篇文章的詞頻向量;
- 計算兩個向量的餘弦相似度,值越大就表示越相似