一、TF-IDF
tf-idf = tf(词频)*idf(逆词频)
其中tf(词频)为该词在该文档中出现的次数/该文档总次数,
idf(逆词频) = log(N/1+N(x)),N为总文档数,N(x)为文档中出现该词的文档数。
二、Textrank
TextRank思想非常简单:通过词之间的相邻关系构建网络,然后用PageRank迭代计算每个节点的rank值,排序rank值即可得到关键词。
TextRank将某一个词与其前面的N个词、以及后面的N个词均具有图相邻关系(类似于N-gram语法模型)。具体实现:设置一个长度为N的滑动窗口,所有在这个窗口之内的词都视作词结点的相邻结点;则TextRank构建的词图为无向图。
TextRank的迭代计算公式如下:
其中,WS(Vi)表示结点Vi的rank值,In(Vi)表示结点Vi的前驱结点集合,Out(Vj)表示结点Vj的后继结点集合,d为damping factor用于做平滑。该公式仅仅比PageRank多了一个权重项Wji,用来表示两个节点之间的边连接有不同的重要程度。
Textrank效果一般不优于TF-IDF,倾向于将频繁词作为关键词。并且涉及到构建词图及迭代计算,所以提取速度较慢。
三、LDA
文档主题生成模型,词袋模型,完全考虑词语的分布来判断其主题分布,并依据每个文本的主题概率分布来进行聚类。LDA的目的就是要识别主题,即把文档—词汇矩阵变成文档—主题矩阵(分布)和主题—词汇矩阵(分布)。计算词分布与文档分布的相似度,取相似度最高的几个词。
LDA 采用词袋模型。所谓词袋模型,是将一篇文档,我们仅考虑一个词汇是否出现,而不考虑其出现的顺序。在词袋模型中,“我喜欢你”和“你喜欢我”是等价的。与词袋模型相反的一个模型是n-gram。
缺点是局限性大,受样本种类限制,投影空间的维数最多为样本数量N-1维。