点击上方关注,All in AI中国
为了快速了解长文档的内容,我们将在阅读文章或书籍时进行总结。在英语中,我们做过阅读理解的都知道,每篇文章的第一个(或前两个)句子很有可能代表整篇文章。当然,主题句有时也可以是最后一句。
在NLP中,有两种方法可以进行文本摘要。第一个是提取方法,是一种从文章中提取关键词或句子的简单方法。这种方法会有一些限制,证明它的性能不是很好。第二个是抽象方法,基于给定的文章生成新的句子,它需要更先进的技术。
阅读本文后,你会:
- 了解PageRank算法
- 理解TextRank算法
- 我们如何使用TextRank算法进行汇总
PageRank算法由Google开发,用于搜索网站的最重要性,以便使Google搜索结果与查询相关。
在PageRank中,它是一个有向图。在开始时,所有节点具有相等的分数。
算法
第一个公式是PageRank的简化版本,我们将使用它来进行演示。第二个有点复杂,因为它涉及另一个参数,即阻尼因子“d”。默认情况下,d为0.85
我们来看看简化版。在迭代1中,这是PageRank计算的方式:
A:(1/4)/ 3 因为只有C指向A,所以我们使用先前的C分数(迭代0)除以C指向的节点数(即3)
B:(1/4)/ 2 +(1/4)/ 3。 A和C都指向B,因此先前的A分数(迭代0)除以A指向的节点数(即2)。对于C,它与前一个相同,即(1/4)/ 3。
问题:我们什么时候应该停止迭代?
根据理论,它应该计算,直到得分没有大的更新。
TextRank
为什么我们需要在TextRank之前引入PageRank?因为TextRank的思想来自PageRank并使用类似的算法(图形概念)来计算重要性。
区别:
- TextRank图是无向的。意味着所有的边都是双向的
- 边缘的权重是不同的,而在PageRank中它是1。有不同的计算方法,如BM25、TF-IDF。
有很多不同的文档相似性实现,如BM25、余弦相似性、IDF修正余弦。您可以选择最适合您的问题,如果您对这些算法一无所知,请告诉我们,我们会将其包含在以后的共享中。
第1步:环境设置
步骤2:导入库
结果
第3步:初始测试内容
第四步:尝试不同的比例
返回用于输入语句数量的比例参数用法。
结果
第5步:尝试不同的字数
单词统计参数是控制结果的另一个变量。 如果同时输入了word_count和ratio,比率将被忽略。
结果
对于整个代码,您可以从github查看。
(https://github.com/makcedward/nlp/blob/master/sample/nlp-text_summarization_extractive.ipynb)