自动生成文本摘要
当我们浏览网站站点或搜索新闻的时候,经常能看到这样的题目:“BAT领头,市值8000亿……”、“删前速看!XXX视频流出”等,可是当我们点进去的时候,往往会发现,都是标题党,文章和内容完全不符合!如果这时候有一种工具能先替我们阅读新闻,再提炼出关键内容,那么我们肯定不会再受到标题党的影响,这对我们的生活无疑会有非常大的便利。而这需要的就是“文本摘要自动生成”技术!文本摘要充斥着我们生活的方方面面,新闻关键词的提炼是文本摘要;在像Google、百度等搜索引擎的结果同样需要文本摘要,目前的百度搜索摘要主要还是把关键词前后语句作为摘要,不能反映文章主要内容和关键词的相关度,该升级了。目前主流的文本摘要自动生成有两种方式,一种是抽取式(extractive),另一种是生成式(abstractive)。
抽取式顾名思义,就是按照一定的权重,从原文中寻找跟中心思想最接近的一条或几条句子。而生成式则是计算机通读原文后,在理解整篇文章意思的基础上,按自己的话生成流畅的翻译。抽取式的摘要目前已经比较成熟,但是抽取质量及内容流畅度均差强人意。伴随着深度学习的研究,生成式摘要的质量和流畅度都有很大的提升,但目前也有一些问题,例如在文本长度太长的时候抽取内容不佳。
抽取式摘要是一种比较成熟的方案,其中Text rank排序算法以其简洁、高效的特点被业界广泛运用。大体思想是先去除文章中的一些停用词,什么是停用词呢?停用词可以是使用十分广泛,甚至是过于频繁的一些单词。比如英文的“I”、“is”、“a”、“the”,中文的“我”、“的”之类词几乎在每个文档上均会出现,查询这样的词搜索引擎就无法保证能够给出真正相关的搜索结果,难于缩小搜索范围提高搜索结果的准确性,同时还会降低搜索的效率。因此,在真正的工作中,搜索引擎会忽略掉特定的常用词,在搜索的时候,如果我们使用了太多的停用词,也同样有可能无法得到非常精确的结果,甚至是可能大量毫不相关的搜索结果。另外一种停用词是指文本中出现频率很高,但实际意义又不大的词。这一类主要包括了语气助词、副词、介词、连词等,通常自身并无明确意义,只有将其放入一个完整的句子中才有一定作用的词语。如常见的“的”、“在”、“和”、“接着”之类,比如“SEM分享是个关于SEM的博客”这句话中的“是”、“的”就是两个停用词。过滤掉停用词之后对句子的相似度进行度量,计算每一句相对另一句的相似度得分,迭代传播,直到误差小于0.0001。再对上述得到的关键语句进行排序,便能得到文本中最核心的语句,也就是摘要。抽取式摘要主要考虑单词词频,并没有过多的语义信息,像“猪八戒”,“孙悟空”这样的词汇都会通过切词,独立对待,无法建立文本段落中的完整语义信息。
生成式文本摘要主要依靠深度神经网络结构实现,2014年由GoogleBrain团队提出的Sequence-to-Sequence序列,开启了NLP中端到端网络的火热研究。Sequence-to-Sequence又称为编、解码器(Encoder、Decoder)架构。其中Encoder、Decoder均由数层RNN/LSTM构成,Encoder负责把原文编码为一个向量C;Decoder负责从这个向量C中提取信息,获取语义,生成文本摘要。