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是两个不同度量标准的的融合
表示某词在文件中出现的次数,分母是文件中字数的总和。
|{$ j: t_i \in d_j$}| 包含某词文件总数
加的效果和乘的效果有什么区别呢?
加的效果是,如果两个融合的模型有一个效果很好,其效果就会非常高。而乘起来后,只要有一个低,整体的效果就会低。
应用举例
- 关键词提取
- 句子相似度计算
- 其他算法的前置算法
TF-IDF文章相似度计算流程:
- 使用TF-IDF算法,分别找出两篇文章的关键词;
- 分别取每篇文章TF/IDF值top15的词,合并为一个集合,计算该集合下,每篇文章关键词的相对词频;
- 分别生成两篇文章的词频向量;
- 计算两个向量的余弦相似度,值越大就表示越相似