原标题:基于 Python 的自动文本提取:抽象法和生成法的比较
本文为 AI 研习社编译的技术博客,原标题 :Text Summarization in Python: Extractive vs. Abstractive techniques revisited
翻译 | 田栋文、二十六 整理 | 凡江
原文链接:https://rare-technologies.com/text-summarization-in-python-extractive-vs-abstractive-techniques-revisited/
本博客是对文本摘要的简单介绍,可以作为当前该领域的实践总结。它描述了我们(一个RaRe 孵化计划中由三名学生组成的团队)是如何在该领域中对现有算法和Python工具进行了实验。
我们将现有的 提取方法(Extractive)(如LexRank,LSA,Luhn和Gensim现有的TextRank摘要模块)与含有51个文章摘要对的Opinosis数据集进行比较。我们还尝试使用Tensorflow的文本摘要算法进行抽象技术(Abstractive),但由于其极高的硬件需求(7000 GPU小时,$ 30k云信用额),因此无法获得良好的结果。
为什么要文字摘要?
随着推送通知和文章摘要获得越来越多的需求,为长文本生成智能和准确的摘要已经成为流行的研究和行业问题。
文本摘要有两种基本方法:提取法和抽象法。前者从原始文本中提取单词和单词短语来创建摘要。后者学习内部语言表示以生成更像人类的摘要,来解释原始文本的意图。
文本摘要有两种基本方法:提取和抽象。
提取文本摘要
首先,简单描述当前已经存在的一些流行的文本摘要算法和实现:
Gensim中的文本摘要
gensim.summarization模块实现了TextRank,这是一种Mihalcea等人的论文中基于加权图的无监督算法。它也被另一个孵化器学生Olavur Mortensen添加到博客 - 看看他在此博客上之前的一篇文章。它建立在Google用于排名网页的流行PageRank算法的基础之上。TextRank的工作原理如下:
预处理文本:删除停止词并补足剩余的单词。
创建把句子作为顶点的图。
通过边缘将每个句子连接到每个其他句子。边缘的重量是两个句子的相似程度。
在图表上运行PageRank算法。
选择具有最高PageRank分数的顶点(句子)
在原始TextRank中,两个句子之间的边的权重是出现在两个句子中的单词的百分比。Gensim的TextRank使用Okapi BM25函数来查看句子的相似程度。它是Barrios等人的一篇论文的改进。
PyTeaser
PyTeaser是Scala项目TextTeaser的Python实现,它是一种用于提取文本摘要的启发式方法。
TextTeaser将分数与每个句子相关联。该分数是从该句子中提取的特征的线性组合。TextTeaser中的特征如下:
titleFeature:文档和句子标题共有的单词数。
sentenceLength: