词频与排序
TF-IDF
TF-IDF算法(Term Frequency-Inverse Document Frequency,词频-逆文档频次算法)由两部分组成:TF算法以及IDF算法。TF算法是统计一个词在一篇文档中出现的频次,其基本思想是,一个词在文档中出现的次数越多,则其对文档的表达能力越强。而IDF算法则是统计一个词在文档集的多少个文档中出现,其基本思想是,如果一个词在越少的文档中出现,则其对文档的区分能力也就越强。
TF的计算常用式:
其中 表示词 在文档 中出现的频次,但是仅用频次来表示,那长文本的词出现频次高的概率更大,这会影响到比较。所以计算时会对词频进行归一化,分母部分就是统计文档中每个词出现次数的总和,也就是文档的总词数。
IDF的计算常用式:
其中 为文档集中总文档数, 为文档集中出现词 的文档数量。分母加 是采用了拉普拉斯平滑,避免有部分新的词没有在语料库中出现过而导致分母出现零的情况。
TF-IDF的计算常用式:
TF和IDF公式怎么融合,是相乘还是相加,IDF要不要取对数,经过理论推导与实验研究后,发现上式为较有效的计算方式之一。
TextRank
TextRank算法可以脱离语料库的背景,仅对单篇文档进行分析就可以提取该文档的关键词。TextRank算法的基本思想来源于PageRank算法。PageRank的基本思想有两条:
1) 链接数量。一个网页被越多的其他网页链接,说明这个网页越重要。
2) 链接质量。一个网页被一个越高权值的网页链接,说明这个网页越重要。
为 的入链集合, 为 的出链集合, 为 的出链数量,每个网页将它自身的分数平均贡献给每个出链。若 链向 , 则 即为 贡献给 的分数。将 的所有入链贡献给他的分数全部加起来,就是 自身的得分:
算法开始时会将所有网页的得分初始化为 ,然后通过多次迭代来对每个网页分数进行收敛。收敛时的得分就是网页的最终得分,如不收敛则限定最大迭代数,停止时的分数为网页得分。为避免一些没有出链入链的网页得分为 的情况,我们加入阻尼系数 来帮助平滑,即从所有总分中分出一部分给这些网页:
以上是PageRank的理论,也是TextRank的基础。不同的是PageRank是有向无权图,而TextRank则是有权图,因为在计分时除了考虑链接句的重要性外,还要考虑两个句子间的相似性。计算每个句子给它链接句的贡献时,需要通过计算权重占总权重的比例来分配。在这里,权重就是两个句子的相似度,相似度的计算可采用编辑距离,余弦距离等。另外,我们在对一篇文章进行自动摘要时,默认每个句子和其他所有句子都是有链接关系的,也就是一个有向完全图。
当TextRank用于关键词抽取时,与应用在自动摘要时有两点不同:1、词与词之间的关联没有权重;2、每个词不是与文档中所有词都有链接。
基于第一点不同,TextRank与PageRank就一致了(链接无权重),即
基于第二点不同,每个词不是与所有词链接,我们使用滑窗界定谁与谁链接,如下例:
“世界献血日,学校团体、献血服务志愿者等可到血液中心...”,经分词后“世界,献血,日,学校,团体,献血,服务,志愿者,等”,现窗口设为 ,则得:
1)[世界,献血,日,学校,团体] 2)[献血,日,学校,团体,献血]
3)[日,学校,团体,献血,服务] 4)[学校,团体,献血,服务,志愿者]
每个窗口内所有的词都有链接关系。得到了链接关系,我们就可以套用TextRank公式,对每个词进行得分计算,最后选择最高的 个词作为关键词。
Last updated