使用TextRank生成文本摘要

因为项目内容中涉及自动生成文本摘要的功能,因此学习了一下TextRank算法实现摘要提取。

1.介绍一下TextRank算法

TextRank算法的思想是,拟定一个通用的评分标准,给文本中的每一个句子打分,所得分数就是该句子的权重,最后得到权重排名靠前的几个句子,构成最终的文本摘要。这就是所谓的TextRank自动生成摘要。

TextRank对每一个句子的打分思想由PageRank的迭代思想衍生而来,公式如下:


在这个公式中,WS(i)表示第i个句子的权重,右侧的求和表示的是每一个句子对所在文本的贡献程度。求和部分的分子wji表示两个句子j和i的相似程度,分母则是文本中相对应的部分的句子的权重之和,WS(Vj)表示上次迭代j的权重。

从整个公式可以看出这是一个反复迭代的过程。

由于wji需要计算两个句子的相似程度,因此这里我们需要引入另外的相似度算法,通常推荐使用BM25,这是目前已知的计算结果较为准确的算法之一。

这个公式中的d是一个常数,称为阻尼系数,通常在算法中我们取其值为0.85,当然也可以根据实际的情况进行调整。


2.TextRank算法的Java实现

2.1首先需要声明相关的变量

/**
 * 阻尼系数(DampingFactor),一般取值为0.85
 */
final double d = 0.85f;
/**
 * 最大迭代次数
 */
final int max_iter = 200;
final double min_diff = 0.001f;
/**
 * 文档句子的个数
 */
int D;
/**
 * 拆分为[句子[单词]]形式的文档
 */
List<List<String>> docs;
/**
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值