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. 计算两个向量的余弦相似度,值越大就表示越相似
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章