TextRank算法提取关键词的Java实现
转载: 码农场 » TextRank算法提取关键词的Java实现 谈起自动摘要算法,常见的并且最易实现的当属TF-IDF,但是感觉TF-IDF效果一般,不如 TextRank 好。 TextRank是在 Google的PageRank算法启发下,针对文本里的句子设计的权重算法,目标是自动摘要。它利用投票的原理,让每一个单词给它的邻居(术语称窗口) 投赞成票,票的权重取决于自己的票数。这是一个“先有鸡还是先有蛋”的悖论,PageRank采用矩阵迭代收敛的方式解决了这个悖论。TextRank也 不例外: PageRank的计算公式: 正规的TextRank公式 正规的TextRank公式在PageRank的公式的基础上,引入了边的权值的概念,代表两个句子的相似度。 但是很明显我只想计算关键字,如果把一个单词视为一个句子的话,那么所有句子(单词)构成的边的权重都是0(没有交集,没有相似性),所以分子分母的权值w约掉了,算法退化为PageRank。所以说,这里称关键字提取算法为PageRank也不为过。 另外,如果你想提取关键句(自动摘要)的话,请参考姊妹篇《 TextRank算法自动摘要的Java实现 》。 TextRank的Java实现 先看看测试数据: 程序员(英文Programmer)是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员