文本摘要方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文本摘要方法相关的知识,希望对你有一定的参考价值。
参考技术A《Term Weighting Approaches in Automatic Text Retrieval》
TF-IDF的主要思想是:如果某个词或短语在一篇文章中出现的频率高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。其计算公式如下:
其中, TF表示词频(Term Frequency) , IDF表示逆向文件频率(Inverse Document Frequency) 。 TF表示词在文档d中出现的频率 ,而IDF的主要思想是:如果包含词t的文档越少,IDF越大,则说明词条t具有很好的类别区分能力。
词频(TF) 指的是某一个给定的词语在该文件中出现的频率。这个数字是对 词数 (term count)的归一化,以防止它偏向长的文件。对于在某一特定文件里的词语来说,它的重要性可表示为:
其中分子是该词在文件中的出现次数,而分母则是在文件中所有字词的出现次数之和
逆向文件频率(IDF) 指的是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取以10为底的对数得到:
某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。其计算公式如下:
TF-IDF算法基于假设 :对区别文档最有意义的词语应该是那些在文档中出现频率高,而在整个文档集合的其他文档中出现频率少的词语,因此引入TF词频作为测度,就可以体现同类文本的特点;另外考虑到单词区别不同类别的能力,TF-IDF法认为一个单词出现的文本频数越小,它区别不同类别文本的能力就越大,因此引入了逆文本频度IDF的概念,以TF和IDF的乘积作为特征空间坐标系的取值测度,完成对TF权重的调整,其目的在于突出重要单词,抑制次要单词。 本质上IDF是一种试图抑制噪音的加权 ,且单纯认为文本频数小的单词就越重要,文本频数大的单词就越无用,显然并不完全正确。IDF的简单结构并不能有效地反映单词的重要程度和特征词的分布情况,使其无法很好地完成对权值调整的功能,所以TF-IDF法的精度并不是很高。此外,在TF-IDF算法中并没有体现出单词的位置信息,特征词在不同的位置对文章内容的反映程度不同,其权重的计算方法也应不同。
使用TF_IDF模型实现文本摘要任务,具体思想如下 :
《TextRank: Bringing Order into Texts》
最经典的TextRank通过将文本建模成无向全连接图结构,在图上利用PageRank迭代计算每个节点的重要性分数,从而能够提取关键节点。对于关键词提取而言, 图上的每个节点即为文档的词,边则代表词和词之间的共现关系,即在长度为N的滑动窗口内部的所有词认为是存在共现关系的 ,这些词也就相互之间有边连接。这里构造的图是无边权的,计算节点V_i的PageRank分数的方法如下式,d的存在目的是为了使模型有一定的概率跳到图上其它随机点上,避免孤立点计算出现死循环,一般取d=0.85,初始节点分数均为1。注意下式是迭代计算的,一般设为20次:
对于关键句提取而言,图上的节点代表文档中的句子,边权则用下式计算,其中S_i,S_j为两个句子,w_k代表句子中的词,也即节点边权定义为和两个句子词重叠率成正比,之所以还要除以句子长度的对数之和, 是考虑到越长的句子越可能出现重叠的词 :
关键句提取中TextRank方法建立的图为带边权的图,因而以下式计算PageRank分数,这里w_ij即为节点V_i,V_j之间的边权大小,d的规定同上:
故,基于上述方法可知, TextRank方法是无监督的不需要训练
这里使用 sklearn 实现,使用TextRank抽取文档中的关键句,实现无监督提取文本摘要
A Robustly Optimized BERT Pretraining Approach
Roberta本质上是一个调到最优的bert模型。chinese-roberta-wwm-ext针对中文任务的特点,对roberta的训练策略进行了进一步的优化
整体改进 :
输入 :原始文本是一个句子,如“使用语言模型来预测下一个词的probability”,经过分词和随机mask后,会得到预处理文本“使 用 语 言 [MASK] [MASK] 来 [MASK] [MASK] 下 一 个 词 的 [MASK] [MASK] [MASK]”,这里采用了全词掩码策略
输出 :对[MASK]位置的词进行预测,输出概率值
预训练过程 :集成了RoBERTa和BERT-wwm的优点,对两者进行了一个自然的结合。 和之前本目录中的模型之间的区别如下:
Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
mT5是T5的多语言变体 ,已在包含101中语言的新的基于Common Crawl的数据集中进行了预训练。mT5的模型架构和训练过程与T5紧密相似,其改进点在于:使用GeGLU非线性(Shazeer,2020年)激活函数,在更大模型中缩放dmodel而不是改变dff, 对无标签数据进行预训练而没有dropout等措施。
本项目直接加载降级处理后的mT5模型(hugging Face库中对应的版本为:csebuetnlp/mT5_multilingual_XLSum), 输入文本通过tokenizer进行分词得到对应的token id (支持最大长度为512),然后调用generate函数,将编码的输入文本进行解码,目前项目在解码过程中的超参数设置如下:支持最大长度max_length=70, 解码所用的beam search所保留的beam值为4。然后将得到的generate token ids经过tokenizer解码生成具体预测的文本。
ROUGE英文全称 Recall-Oriented Understudy for Gisting Evaluation ,专注于 召回率而非精度 。N指的是N-gram,它会查看有多少个参考译句中的n元词组出现在了输出之中
公式的分母是统计在参考译文中N-gram的个数,而分子是统计参考译文与机器译文共有的N-gram个数。
对两个生成句和参考句(word piece进行tokenize)分别用bert提取特征,然后对2个句子的每一个词分别计算内积,可以得到一个相似性矩阵。基于这个矩阵,我们可以分别对参考句和生成句做一个最大相似性得分的累加然后归一化,得到bertscore的precision,recall和F1:
给测试集的句子赋予较高几率值的语言模型较好,当语言模型训练完以后,测试集中的句子都是正常的句子,那么训练好的模型就是在测试集上的几率越高越好,对于句子s
它的概率为:
困惑度与测试集上的句子概率相关,其基本思想是: 给测试集的句子赋予较高概率值的语言模型较好,当语言模型训练完之后,测试集中的句子都是正常的句子,那么训练好的模型就是在测试集上的概率越高越好 ,公式如下:
以上是关于文本摘要方法的主要内容,如果未能解决你的问题,请参考以下文章