文本摘要实验报告
摘要
摘要[中文]
本实验主要关注子模函数最大化,并基于该方法实现了抽取式文本摘要。本实验借助 requests 和 BeautifulSoup 等库,选取包含诸多同主题英文文本的新闻网站 ChinaDaily 进行爬取,通过对网站 culture/heritage 种子页面以及对包含具体新闻内容的页面的源代码进行分析,借助爬虫获取所需同主题文本内容。通过转换为小写、去除标点符号等非文本、进行词干提取等手段,对许多同主题长文本进行文本预处理;并借助 genism 库,获得各个文本的关键词列表。最终,以贪心算法思想,通过爬山算法,提取出100句每轮迭代中覆盖关键词最多的句子,得到抽取式文本摘要。
Abstract [英语]
This experiment mainly focuses on the maximization of submodular function, and based on this method, extractive text summarization is realized. This experiment uses libraries such as requests and BeautifulSoup to select the news website ChinaDaily that contains many English texts on the same subject to crawl. Through the analysis of the website culture/heritage seed page and the source code of the page containing specific news content, the crawler obtains all the information. Need to be the same as the subject text content. By converting to lowercase, removing non-text such as punctuation, and performing stemming, many long texts with the same topic are preprocessed; and with the help of the genism library, the keyword list of each text is obtained. Finally, with the idea of greedy algorithm, through the hill-climbing algorithm, the 100 sentences that cover the most keywords in each round of iteration are extracted, and the extractive text summary is obtained.
一、 项目概述(阐明该项目的科学和应用价值,以及相关工作进展并描述项目的主要内容)
目前关于子模函数最大化,可分为三类问题:最大化受基数约束的子模函数,无约束的子模最大化和子模福利。
最大化受基数约束的子模函数问题:输入是非负单调子模函数 f : N → R ≥ 0 f : N → R_{≥0} f:N→R≥0,以及 1 1 1 到 n n n 之间的整数 k k k ,目标为找到大小最大为 k k k 的集合 A A A 来最大化函数 f f f 。
解决该问题的算法主要有:The Greedy Algorithm ( f , k ) (f, k) (f,k),Random Greedy ( f , k ) (f, k) (f,k),以及Sample Greedy ( f , k , ε ) (f, k, ε) (f,k,ε)。
- The Greedy Algorithm ( f , k ) (f, k) (f,k) 算法从空集开始,然后在 k 次迭代中向其中添加元素。在每次迭代中,算法向其当前解添加将该解的值增加最多的单个元素。该算法的近似比可达到 1 − 1 / e 1 - 1 /e 1−1/e 。
- Random Greedy ( f , k ) (f, k) (f,k)算法是The Greedy Algorithm ( f , k ) (f, k) (f,k)的随机化版本,适用于子模型目标函数 f 不是单调的情况。该算法在每次迭代中找到大小至多为 k 的集合 M,最大化集合中元素相对于当前解的总边际贡献。然后,该算法在其当前解中最多添加一个 M 中的元素,这种选择方式使得 M 的每个元素都有恰好 1/k 的概率被添加到解中。该算法近似比为 1 / e 1/ e 1/e 。若 f f f 单调,则近似比为 1 − 1 / e 1 - 1 /e 1−1/e。
- Sample Greedy ( f , k , ε ) (f, k, ε) (f,k,ε)算法思路为查询元素的随机子集,并使用它以足够高的概率恢复 M 的至少一个元素(即,找到相对于当前解,其边际贡献在前 k 个边际贡献中的元素)。其中, ε ∈ [ e − k , 1 − 1 / e ] ε ∈ [e^{−k} , 1 − 1/e] ε∈[e−k,1−1/e],用于平衡oracle queries的数量和输出的质量。该算法近似比为 ( 1 − 1 / e − ε ) (1 − 1/e − ε) (1−1/e−ε)。
无约束的子模最大化问题:子模最大化的变形,目标仍然为最大化子模函数,但是对于可选的可行子集没有限制。
解决该问题的算法主要有:Random Sample ( f ) (f) (f) 和 Double Greedy ( f ) (f) (f)。
- Random Sample ( f ) (f) (f) 算法以 1/2 的概率独立地将每个元素带到解中。该算法维护两个随机解,且每次加到解中的元素 u 1 , u 2 , … … , u n u_{1},u_{2},……,u_{n} u1,u2,……,un是N 中元素的某种(任意)排序。该算法是无约束下模最大化问题的1/4 近似算法。如果函数 f 还是对称的,那么算法是 1/2 近似算法。
- Double Greedy ( f ) (f)