提取文本摘要学习

在自然语言处理领域的研究工作中,文档的关键字提取和摘要的自动生成,都是现在研究的热门

自动提取文本摘要当下最主要的方法有extractive和abstractive

Extractive Summarization 

抽取式的方法基于一个假设,一篇文档的核心思想可以用文档的某一句或几句话来概括。那么这种方法提取摘要的主要任务就变成了找到文本中最重要的话,这样我们就可以把复杂摘要提取问题转变成一个排序问题。

一般Extractive Summarization 问题,我们都会考虑到相关性和新颖性两个指标。相关性是指的是摘要的句子要和文章的内容高度相关,所有的句子能够能够表达文档的意思,而新颖性指的是候选句子中包含冗余信息少,尽可能每句话可以独立地表达出一个独立的意思。处理的基本思路

1、分句/分词。将拿到的文本做分句,一种是用句号,一种是用逗号作为分隔符获取句子。现在市面上有各种分词库,jieba分词完全开源,有集成的python库,简单易用,。jieba分词是基于前缀词典实现高效词图扫描,生成句子中汉字所有可能词情况所构成的有向图,动态规划查找最大概率路径,找出基于词频的最大切分组合。常使用方法:jieba.cut:方法接受三个输入参数:(1)需要分词的字符串;(2)cut_all参数用来控制是否采用全模式;(3)HMM用来控制是否使用HMM模型;jieba.cut_for_search:该方法适合用于搜索引擎倒排索引的分词,粒度比较细,方法接受两个参数:(1)需要分词的字符串(2)是否使用HMM模型。一般默认的分词模式是精确模式。

2、词、句表示成计算机可以理解的量。然后计算一些指标进行排序。常用的方法有(1)Bag of Words.词袋模型将词定义为一个维度,一句话表示成所有张成的空间中的一个高维稀疏向量(2)TFIDF.可以理解为带权重的词袋模型,计算出每个词语的TFIDF值,作为该词的权重。(3)LDA/LSI。将整篇文档利用TFIDF模型表示成一个矩阵,做SVD降维分解,生成两个矩阵,一个是文档-话题矩阵,另一个是词-话题矩阵。得到词-话题矩阵之后,可以得到句子-话题矩阵。(4)Word Embedding .将word表示成一个低维稠密向量,词看成一个向量,句子也可有很多张方法表示成一个向量。

3、排序。常见的方法(1)基于图的排序。将文档的每句话作为节点,句子之间的相似度作为边的权值构建图模型,用PagerRank算法进行求解每个句子的得分(2)基于特征。常用算法TextTeaser,算法主要根据句子长度,句子位置,句子中是否包含标题词,句子关键词提取,通过对以上特征进行打分,最后对句子进行排序。

4、新颖性处理。排序只考虑了相关性并没有考虑新颖性,所以需要引入一个惩罚因子,将新颖性考虑景区,对所有句子重新打分(注意:排名第一的句子不需要重新计算,后面的句子必须和前一句的相似度进行惩罚

5、输出。输出的结果一般是取排序后的前N句话,(注意可读性,因为各个句子都是从不同的段落中选择出来,如果生硬的连起来,难以保证句子通顺)



你可能感兴趣的:(提取文本摘要学习)