-
2021-05-11 15:48:01
自动文摘类型
功 能 划 分 = { 指 示 型 文 摘 报 道 型 文 摘 评 论 型 文 摘 功能划分= \begin{cases} 指示型文摘\\ 报道型文摘 \\评论型文摘 \end{cases} 功能划分=⎩⎪⎨⎪⎧指示型文摘报道型文摘评论型文摘
数 量 划 分 = { 单 文 档 摘 要 多 文 档 摘 要 数量划分= \begin{cases} 单文档摘要\\ 多文档摘要 \end{cases} 数量划分={单文档摘要多文档摘要
语 言 种 类 = { 单 语 言 摘 要 跨 语 言 摘 要 语言种类= \begin{cases} 单语言摘要\\ 跨语言摘要 \end{cases} 语言种类={单语言摘要跨语言摘要
文 摘 与 原 文 关 系 = { 摘 录 型 理 解 型 文摘与原文关系= \begin{cases} 摘录型\\ 理解型 \end{cases} 文摘与原文关系={摘录型理解型
文 摘 应 用 = { 普 通 型 ( 作 者 观 点 ) 面 向 用 户 查 询 文摘应用= \begin{cases} 普通型(作者观点)\\ 面向用户查询 \end{cases} 文摘应用={普通型(作者观点)面向用户查询
更多相关内容 -
论文研究-一种基于主题词集的自动文摘方法.pdf
2019-07-22 20:28:41提出一种基于主题词集的文本自动文摘方法,用于自动提取文档文摘。该方法根据提取到的主题词集,由主题词权重进行加权计算各主题词所在的句子权重,从而得出主题词集对应的每个句子的总权重,再根据自动文摘比例选取... -
论文研究-自动文摘方法分析.pdf
2019-07-22 19:03:15介绍了目前自动文摘的四种实现方法,并对这四种方法的优缺点进行了较为详细的分析与比较,介绍了它们的应用实例。最后讨论了一种面向非受限领域的综合式中文自动文摘方法。 -
生成式自动文摘的深度学习方法综述.pdf
2021-08-18 21:25:44生成式自动文摘的深度学习方法综述.pdf -
keras实现基于语义理解的自动文摘实现
2020-05-12 12:01:51keras实现基于语义理解的自动文摘实现;实现中文文本清洗处理,词向量引入,深度学习实现基于语义理解的中文摘要自动生成。 -
textrank自动文摘抽取python代码
2018-11-14 12:01:09textrank自动文摘抽取python代码,已经打包好,可以当作工具直接用,也可以作为python练习 -
自动文摘生成
2019-09-07 19:53:53自动文摘技术概要 文本自动文摘(automatic summarization/abstracting)是利用计算机自动实现文本分析、内容归纳和摘要自动生成的技术。 在目前的研究中,已经有很多技术被用于解决文本的自动摘要生成...自动文摘技术概要
文本自动文摘(automatic summarization/abstracting)是利用计算机自动实现文本分析、内容归纳和摘要自动生成的技术。
在目前的研究中,已经有很多技术被用于解决文本的自动摘要生成。有的研究针对文档中所包含的句子进行排序,使用句子权重较大的句子构成文档的摘要;也有的研究将自动摘要生成问题视为对文档中的句子进行多分类的问题,利用统计学习的方法对文档中的句子进行分类吗,进而生成对应的文档的摘要。最近随着深度学习的流行,已经有大量的研究使用神经模型进行文本摘要的自动生成。
自动文摘的分类
按照不同的标准可以将自动文本摘要分成不同的类型,可以按照以下5个标准进行分类:功能、输入文本数量、原文语言、摘要和原文的关系、摘要的应用等。
按照文摘的功能划分,可以分成3类:
- 指示型文摘(Indicative)
- 报道型文摘(Informative)
- 评论型文摘(Evaluative)
按照输入文本的数量,可以分成:
- 单文档摘要(Single-document Summarization)
- 多文档摘要(Multi-document Summarization)
按照原文语言划分:
- 单语言摘要(Monoligual)
- 跨语言摘要(Crosslingual)
根据摘要和原文的关系可以分成:
- 摘录型文摘(Extractive)
- 理解型文摘(Abtractive)
根据摘要的应用进行划分:
- 普通型文摘(Generic)
- 面向用户查询的文摘(query-oriented)
自动文摘的处理
对于自动文摘的生成,可以概括为3个主要过程:
- 文本分析:对原文本进行分析处理,识别冗余信息(尤其在多文档自动摘要生成时);
- 文本内容的选取和泛化:从文档中识别重要信息,通过摘录或者概括的方法(或通过计算分析的方法)对文本进行压缩;
- 文本转换和生成:对原文内容进行重组或根据内部表示生成文摘。
多文档自动摘要的生成
目前,多文档自动摘要生成方法同城涉及到更广泛的技术问题,因此多文档摘要自动生成技术受到研究人员的广泛关注。多文档文摘是将同一个主题下的多个文本描述的主要信息按压缩比提炼出一个文本的自然语言处理技术。
目前,无论是单文档摘要还是多文档摘要,采用的方法一般为基于抽取的方法(extracting method)或称摘录型方法和基于理解的方法(abstracting method)。在单文档摘要中,一般采用前者。但对于多文档来说,不同主题下的文档中不可避免的存在信息重叠和信息差异,因此,如何避免信息重叠并且反映出不同文档的信息差异是其首要目标。为了实现该目标,需要在句子层做以下工作:压缩、合并、切分等。所以,多文档摘要面临的问题更加复杂。
另外,单文档的输出句子一般都按照句子在原文中出现的顺序排 列,而在多文档摘要中,大都采用时间顺序排列句子,如何准确地得到 每个句子的时间信息,也是多文档文摘中需要解决的一个重要问题。
自动文摘过程通常包括三个基本步骤,但实现基本步骤的方法可以是基于句子抽取的,也可以是基于内容理解的,或者是基于结构分析的或其他方法。但无论采用什么样的方法,都必须面对三个关键问题:
- 文档冗余信息的识别和处理;
- 重要信息的识别;
- 生成摘要的连贯性;
以下将简单介绍解决上述关键问题的方法。
冗余信息的识别
通常有两种方法:
- 聚类:测量所有句子对之间的相似性,然后用聚类方法识别公共信息的主题;
- 候选法:系统首先测量候选文段与已选文段之间的相似度,仅当候选段有足够的新信息时才将其入选;如最大边缘相关法MMR(maximal marginal relevance);
重要信息的辨别
主要有两种方法:
- 抽取法:选出每个聚类中有代表性的部分(一般为句子),默认这些代表性的部分(句子)可以表达这个聚类中的主要信息;
- 信息融合法:目的是要生成一个简洁、通顺并能反映这些句子(主题)之间共同信息的句 子。为达到这个目标,要识别出对所有入选的主题句都共有的短语,然后将之合并起来。由于集合意义上的句子交集效果并不理想,因此,需要一些其他技术来实现融合,这些技术包括句法分析技术、计算主题交 集(theme intersection)等;
确保文摘的一致性和连贯性
需要对句子进行排序,主要有两种方法:
- 时间排序法(chronological ordering):一般选定某一个时间为参考点,然后计算其他相对时间的绝对时间;
- 扩张排序算法(augmented algorithm):目的是试图通过将有一定内容相关 性的主题(topically related themes)放在一起来降低不流畅性;
虽然很多学者致力于理解式方法的研究,但摘录型的摘要方法仍是实用性自动摘要的主流方法。已有的摘录型方法的主要思路是从文章中提取特征,然后采用有监督或者无监督的机器学习方法对句子进行分类、打分,并进行句子抽取和排序。
文摘评测
文摘自动评测是自然语言处理中比较棘手的问题,相对于机器翻 译、信息检索等其他技术的评测更加困难,因为理论上根本没有完美的摘要作参考。
传统的评价方法主要是人工审查,通过以下几个指标来评价摘要的质量:一致性、简洁性、文法合理性、可读性和内容含量。在DUC(Document Understanding Conference)评测中,主要有5项人工评测指标:
- 文摘的合乎语法性(grammaticality)
- 非冗余性(non-redundancy)
- 指代的清晰程度(referential clarity)
- 聚焦情况 (focus)
- 结构及一致性(structure and coherence)
有研究者曾将文摘自动评估方法分成两类:
- 内部 (intrinsic)评价方法:与文摘系统的目的相关,它通过直接分析摘要的质量来评价文摘系统;
- 外部(extrinsic)评价方法:它是 一种间接的评价方法,与系统的功能相对应,将文摘应用于某一个特定的任务中,根据摘要功能对特定任务的效果来评价自动文摘系统的性能,如对于信息检索任务而言,可以对比采用摘要进行检索与采用原文进行检索的准确率差异,通过文摘对检索系统的效果来评价文摘系统的性能;
内部评价方法
这种评价方法源于信息抽取技术,可以按信息的覆盖面和正确率来评价文摘的质量,一般采用将系统结果与“理想摘要”相比较的方法。在信息抽取评测中,将原文的关键要点抽取出来,然后与人工抽取的内容相比较,计算其召回率(recall)、准确率(precision)、 冗余率(overgeneration)和偏差率(fallout)等几个指标。
r e c a l l = c o r r e c t + ( p a r t i a l × 0.5 ) p o s s i b l e recall=\frac{correct+(partial \times 0.5)}{possible} recall=possiblecorrect+(partial×0.5)
r e c a l l = c o r r e c t + ( p a r t i a l × 0.5 ) a c t u a l recall=\frac{correct+(partial \times 0.5)}{actual} recall=actualcorrect+(partial×0.5)
o v e r g e n e r a t i o n = s p u r i o u s a c t u a l overgeneration=\frac{spurious}{actual} overgeneration=actualspurious
f a l l o u t = i n c o r r e c t + s p u r i o u s p o s s i b l e i n c o r r e c t fallout=\frac{incorrect+spurious}{possible incorrect} fallout=possibleincorrectincorrect+spurious
其中:- correct:正确的响应数;
- partial:部分正确的响应数;
- possible:所有可能的答案数,包括两部分,一部分为答案数,另一部分是候选答案中与系统响应匹配的个数;
- actual:系统给出的实际响应个数;
- spurious:伪响应数,本来没有答案但系统给出的多余(superfluous)响应;
- incorrect:不正确的响应数;
- possible incorrect:可能不正确的答案数,可以用possible数减去正确的答案数来计算;
- overgeneration:测试的是系统生成的伪响应的比率
- fallout:测试的是可能不正确的答案中系统错误响应和伪响应所占的比率;
内部评价方法存在的主要困难是“理想摘要”的获得问题,而外部评测方法则与测试的特定任务密切相关。
一般地,内部评测方法又可分为两类:
- 形式度量(form metrics):侧重于语法、全文的连贯性和组织结构;
- 内容度量(content metrics)
一种典型的方法是,系统输出与一个或多个人工的理想摘要做逐句的或者逐片段的比较来计算召回率和精确率;另一种常用的方法包括kappa方法和相对效用方法(relative utility),这两种方法都是通过随机地抽取原文中的一些段落,测试系统对应这些段落产生的摘要质量来评测系统整体性能的。
最近的研究中,用于自动文摘生成的评测方法主要有两个:
- BLEU:基于机器翻译系统评测中的评分方法提出了一种文摘自动评测方法[2];
- ROUGE:对BLEU方法加以改进,提出并实现了基于最长公共子串和指定句子内词对的共现统计的评测方法 (ROUGE),并证明该评测方法与人工评测具有很好的一致性[3];
参考文献
[1] 统计自然语言处理(第二版),宗成庆 著,清华大学出版社
[2] Chin-Yew Lin Eduard H. Hovy From Single to Multi-document Summarization. 457-464 ACL 2002
[3] Chin-Yew Lin Franz Josef Och Automatic Evaluation of Machine Translation Quality Using Longest Common Subsequence and Skip-Bigram Statistics. 605-612 ACL 2004备注
- 本书(参考文献)的第一篇读书笔记
- 未来打算整理成专栏
- 详细深入了解参考原书
-
简易中文自动文摘系统(合集)
2019-07-30 10:55:49简易中文自动文摘系统(一):绪论 自动文摘的介绍 自动文摘分类 简易中文自动文摘系统(二):中文语料库的准备 中文语料库 jieba分词 简易中文自动文摘系统(三):模型训练 词向量 word2vec与自然语言...目录
简易中文自动文摘系统(一):绪论
自动文摘的介绍
随着大数据时代的到来,对于海量数据,自然语言处理越来越成为计算机科学和深度学习、人工智能领域重要研究方向。自然语言处理基于语言学、计算机科学、统计学等基础科学并重点集成于语言分析的人工智能一大分支。因此,自然语言处理的研究主要涉及自然语言,即人们生活中交流使用的语言,目前来说,国际上主流的语言有汉语、英语、法语、德语等等,它们的单词,句型,语法等都完全不相似,各有各的特点,因此自然语言的研究对于不同语言有着不同的处理方式,这也是自然语言处理的困难之一。总而言之,自然语言处理既与计算机科学息息相关,也与自然语言学有重要联系,但它也不完全等同于计算机科学+自然语言学。自然语言处理重点是对文章的语法语义语境进行分析处理,并经过一些算法,得能够有效分析处理人类自然语言的计算机系统及核心算法。
人工智能的出现和深度学习的普及,自动文摘的提出,让传统人工文章摘要地位受到冲击。通过获取不同的自然语言,并使用计算机系统对文档进行语法语句语义的分析处理,生成一篇文章的摘要,可以做到对文摘的主要内容进行提取,节省读者的不必要阅读时间,大大提高了文章的阅读效率。但是传统的人工编写文章摘要在大数据时代,成本过于昂贵,并且得到优秀的文章摘要需要耗费大量时间,效率低下,显得力不从心,因此使用计算机进行自然语言处理快速得到文章的摘要技术得到飞速发展。
自动文摘分类
目前自动文摘的方法主要有两种:机械文摘和理解文摘。
机械文摘是抽取式的自动文摘方法,通过提取文档中已存在的关键词和句子形成摘要。机械文摘适用范围广,已经有应用于实际工程的抽取式自动文摘系统。抽取式自动文摘,顾名思义,是从整篇文章中获取一些关键句,将这些句子有机组合,得到一篇文章摘要,期间不修改句子本身。其中涉及到的技术有关键词、关键句抽取,句子语义分析,从而完成一篇简单自动文摘的目的。
理解文摘是生成式的自动文摘方法,通过自然语言处理对文章的内容进行分机器分析、理解,再使用自然语言生成技术,生成不同于文章中原有句子的自动文章摘要。一般来说,抽理解文摘可以比抽取更有效地压缩文本,但是可以做到这一点的自动文摘系统更难以开发,因为它们需要使用自然语言生成技术,而自然语言生成技术本身就是一个仍在不断发展的技术。
自动文摘是人工智能、自然语言处理领域的一个重要研究方向,经过50多年的研究发展,自动文摘技术已经可以运用于一部分自动文摘任务,但仍需突破很多关键技术,才能提高其应用价值、扩大其应用范围。
简易中文自动文摘系统(二):中文语料库的准备
前文已经提及,汉语的语法和句型不同于英语,在进行分析之前需要进行分词。首先我们需要的是一个中文语料库,本文使用的是维基百科的中文语料库,大小约为1.57GB,下载之后从中提取中文语料库。再使用opencc将语料库繁简体转化之后,使用jieba分词将语料库中的段落、句子进行分词得到最终用于模型训练的中文语料库。
中文语料库
本文使用的中文语料库为维基百科的中文语料库。通过以下链接进行下载:
http://download.wikipedia.com/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2
下载之后得到的是一个压缩包:
下载WikiExtractor.py文件,该脚本文件是意大利程序员使用Python研发的维基百科抽取器,简洁并且功能强大,可以抽取出维基百科中文语料库的内容并输出到文本文件。我们在macOS的终端运行以下命令行,使用Wikipedia Extractor抽取正文文本:
bzcat zhwiki-latest-pages-articles.xml.bz2 | python WikiExtractor.py -b 1000M -o extracted >output.txt
其中-b 1000M是将文本以1000M大小为单位进行分割;output.txt存储的是输出过程中日志信息而非所抽取的正文文本。
上图是抽取出的语料库,我们发现是繁体中文库。
我们这里使用opencc对语料库进行简化。同样,在macOS终端输入以下命令行:
opencc -i wiki_00 -o zh_wiki_00 -c zht2zhs.ini
opencc -i wiki_01 -o zh_wiki_01 -c zht2zhs.ini
得到简体中文的语料包zh_wiki_00和zh_wiki_01。简化后如下:
jieba分词
jieba分词是支持Python语言的中文分词组件。jieba分词在深度学习,自然语言处理中有着广泛使用,用法简单。
# encoding=utf-8 import jieba import jieba.posseg as pseg seg_list = jieba.cut("我来到南京邮电大学", cut_all=True) print("Full Mode: " + "/ ".join(seg_list)) # 全模式 seg_list = jieba.cut("我来到南京邮电大学", cut_all=False) print("Default Mode: " + "/ ".join(seg_list)) # 精确模式 seg_list = jieba.cut("他就职于华为南京研究所") # 默认是精确模式 print("/".join(seg_list)) seg_list = jieba.cut("小明本科毕业于南京邮电大学,后在北京邮电大学深造") print("/".join(seg_list)) seg_list = jieba.cut_for_search("小明本科毕业于南京邮电大学,后在北京邮电大学深造") # 搜索引擎模式 print("/".join(seg_list)) words = pseg.cut("我爱南京的新街口")#查看词性 for word, flag in words: print('%s %s' %(word, flag))
输出结果如下:
运行以下代码,完成语料库的分词:
# encoding = utf-8 import jieba import codecs import re f = codecs.open('cut_zh_wiki_00.txt', "a+", 'utf-8') for line in open("zh_wiki_00"): for i in re.sub('[a-zA-Z0-9]', '', line).split(' '): if i != '': data = list(jieba.cut(i, cut_all = False)) readline = ' '.join(data) + '\n' f.write(readline) f.close()
分词结果如下:
由于在本实验中的停用词对结果影响可以忽略,所以本文并未进行去停用词,具体的去停用词方法读者可以自行上网查阅资料参考,去除停用词后语料库的数据将更为干净,结果更为精确。
简易中文自动文摘系统(三):模型训练
词向量
词向量是自然语言处理(Natural Language Processing)中的一组语言建模和特征学习技术的名称,其中来自语料库的单词短语对应着唯一的多维向量。理论上,词向量涉及到了从每一个单词的高维度向量空间到低维度的连续向量空间的多维向量。生成这种映射的方法包括降维词共现矩阵,神经网络,基于概率的模型以及单词所在语境显示。已经有研究表明,单词和短语向量作为基础输入表示时,可以提高NLP任务的性能,如句法分析和情感分析。
最初的词向量是冗长的,它使用的是词向量维度大小为整个单词表的大小,对于每个具体的单词,将其对应位置置1。如一个由6个单词组成的单词表,单词“北京”序号为1,“上海”序号为2,“南京”序号为3,则它们的词向量为(1,0,0,0,0,0),(0,1,0,0,0,0)和(0,0,1,0,0,0)。这种编码称之为离散表示(One hot representation)。显然,对于中文词库,需要的向量维数过于庞大,但也带来一个好处,就是在高维向量中,很多应用任务线性可分。
分布式表示(Dristributed representation)可以解决离散表示所带来的问题。它的思路是通过对于给定的某一特定自然语言的语料库进行训练,将语料库中每个单词都映射到一个相对维度较低的词向量上来。这些单词构成的低维向量集合构成了一个自然语言的向量空间,进而可以用统计学的方法来研究词与词之间的潜在关系。这个低维的词向量的维度一般需要我们在训练时自己来指定。如对于上文同样的6个单词的单词表,“北京”的词向量可能为(0.9,0.19,0.25),“上海”的词向量可能为(0.9,0.31,0.85),这样子就完成了较低维度的词向量来表示较多的单词,这个低维词向量的维度和具体值在不同的实际情况中有所不同。这种方式的词向量模型使得各个单词之间有了相似关系,对于自然语言处理产生帮助。
目前的词向量(通常是向量空间模型)的主要限制之一是单词的可能含义被合并成单个表示(语义空间中的单个矢量)。基于感知的词向量模型是解决这个问题的方法:单词的单词意义在向量空间中表示为不同的向量。但是目前来说发展较为局限,进展缓慢。
目前仍有许多科研人员和高校研究院在研究词向量模型的优化与降维。 2013年,Google公司计算机科学家Tomas Mikolov领导的一个科研团队创建了word2vec,这个词向量工具包可以比以前的方法更快地训练矢量空间模型。目前来说,许多新兴词向量技术更多的依赖于神经网络,替代了早期广泛流行的n-gram模型和无监督学习模型。
word2vec与自然语言模型
word2vec(word to vector)是Google公司于2013年推出的用于自然语言处理的深度学习开源训练集,是一组用于训练生成词向量的模型, 该神经网络模型层数不多,一般为两层,经过训练可重构语言的语境。word2vec用于将单词转换为多维词向量。它可以将百万数量级的语料库进行高效训练,通过所给语料库中各个单词的位置和词频等信息算出各个词向量。我们可以根据向量与向量之间的关系,来分析单词与单词之间的关系,挖掘文档中单词的联系。word2vec将输入的大量文本作为输入,并生成一个向量空间,通常为几百个维度,每个唯一的单词在语料库中被分配一个相应的空间向量。词向量位于向量空间中,使得在语料库中共享公共上下文的词在空间中彼此靠近。
自然语言模型,就是通过对自然语言的单词,句子进行建模,表示为计算机可以理解并处理的数学语言,使得计算机将其视为机器语言,并使用机器语言的处理方式来处理并分析人类的自然语言。word2vec可以利用两种模型架构中的任何一种来产生分布式的词语表达:CBOW连续词袋(continuous bags of words)模型或连续跳跃词(skip-gram)模型。在连续词袋结构中,模型从周围环境词的窗口中预测当前词,上下文词语的顺序不影响预测(词袋假设)。在连续跳跃式体系结构中,模型使用当前词来预测环境词的周围窗口。skip-gram体系结构权衡附近的上下文词语比距离更远的上下文词语重。相对来说,CBOW速度快,而skip-gram速度较慢,但对于处理不常见的词语,后者做得更好。
模型训练
Python中word2vec的模型训练十分简单,我们只需导入gensim.models下的word2vec包,并使用之前获取的已分词的维基百科中文语料库进行训练,得到可用于中文文档的词向量模型。代码如下:
from gensim.models import word2vec import logging logging.basicConfig(format = '%(asctime)s : %(levelname)s : %(message)s', level = logging.INFO) sentences = word2vec.LineSentence(u'./cut_zh_wiki_00.txt') model = word2vec.Word2Vec(sentences, size=200, window=10, min_count=64, sg=1, hs=1, iter=10, workers=25) model.save(u'./word2vec2');
其训练时间较长,本人的计算机配置(2.8GHz四核 Intel Core i7,16GB内存,Intel HD Graphics 630 1536 MB)所需要训练时间约为3小时。训练结束,我们得到了基于维基百科中文语料的中文词向量模型word2vec2。接下来我们使用一组简单的单词来测试模型。测试代码如下:
#!/usr/bin/env python # -*- coding:utf-8 -*- from gensim.models import word2vec model = word2vec.Word2Vec.load("word2vec2") s = model.similarity(u'南京', u'上海') print "'南京'与'上海'的相似度为:",s s = model.similarity(u'南京', u'北京') print "'南京'与'北京'的相似度为:",s print print("与'南京'最相近的单词:") result = model.most_similar(u'南京') for each in result: print each[0], each[1] print print("与'邮电'最相近的单词:") result = model.most_similar(u'邮电') for each in result: print each[0], each[1] print print("与'大学'最相近的单词:") result = model.most_similar(u'大学') for each in result: print each[0], each[1]
结果如下图:
可以根据实际情况分析,我们训练出的模型的词向量关系可信度较高,也说明维基百科中文语料库的资料较为准确,可以用于接下来的自动文摘研究。
简易中文自动文摘系统(四):TextRank算法实现
PageRank算法
PageRank是由拉里佩奇和谢尔盖布林于1996年在斯坦福大学开发的,适用于新兴搜索引擎的内核算法部分之一。谢尔盖布林认为,互联网中的所有页面都适用于一种特殊的层次结构:在一个页面中有越多的指向其他网页的链接,那么这个页面所获得的评分就越高,权值越大。由Rajeev Motwani和Terry Winograd于1998年联合撰写的一篇文章中,提出来PageRank算法思想和谷歌搜索引擎的最早版本;不久之后,拉里佩奇和谢尔盖布林基于谷歌搜索引擎成立了著名的谷歌公司。虽然PageRank算法得到的网页评分只是决定Google搜索结果排名的众多因素之一,但PageRank至今仍然是所有谷歌网络搜索工具的基础。
PageRank算法输出一个概率分布,用于表示随机点击链接的人可能会到达任何特定页面的可能性。 可以为任意大小的文档集合计算PageRank。在一些研究论文中假定在计算过程开始时,分布在集合中的所有文档中均匀分布。PageRank计算需要多次通过,称为“迭代”,通过集合来调整近似的PageRank值,以更贴近地反映理论的真实值。
概率表示为介于0和1之间的数值。通常将0.5概率表示为发生某事的“50%几率”。 因此,0.5的PageRank意味着点击随机链接的人有50%的机会将被导向0.5 PageRank的文档。
那么根据以上设计思想,佩奇设计了下面的计算公式:
这就是著名的PageRank算法公式。其中,S(V_i)是网页i的重要性(PR值);d是阻尼系数,一般为0.85;In(V_i)是整个互联网中所存在的有指向网页i的链接的网页集合;Out(V_j)是网页j中存在的指向所有外部网页的链接的集合;|Out(V_j)|是该集合中元素的个数。
上图是一个简单的PageRank网络数学模型,以百分比表示(Google使用对数标度)。即使链接到C的链接较少,页面C的PageRank也高于页面E,这是由于页面C的输入链和输出链来自一个评分很高的页面B,因此页面C也会具有较高的评分。如果从随机页面开始的网络浏览者有85%的可能性从他们正在访问的页面中选择一个随机链接,并且有15%的可能性跳到整个网络中随机选择的页面,他们最终有8.1%的概率停留在页面E。(跳到任意页面的15%可能性对应于85%的阻尼因子)没有阻尼,所有网页浏览者最终都会在页面A,B或C上结束,而所有其他页面都会使PageRank为零。在存在阻尼的情况下,即使网页没有自己的外发链接,页面A也可以有效链接到网页中的所有页面。根据上图可以绘制出如下表格:
我们把这张表格称为交叉矩阵表,它反映了在一个互联网中,各个网页之间的链接关系,通过这个表格可以直接计算每张网页被其它网页引用的次数,在使用科学的公式进行计算,可以粗略算出这张网页在互联网上的重要程度。
TextRank
TextRank是一种用于自然语言处理的通用基于图的排序算法。本质上,它在专门为特定NLP任务设计的图表上运行PageRank。对于关键词提取,它使用一些文本单元集作为顶点来构建图。边是基于文本单元顶点之间的语义或词汇相似度的度量。与PageRank不同的是,边缘通常是无向的,可以加权以反映相似程度。一旦图形被构建,它就被用来形成一个随机矩阵,结合一个阻尼因子(如在“随机冲浪模型”中),并且通过找到对应于特征值1的特征向量来获得顶点的排名(即在图上随机游走的平稳分布)。
TextRank算法公式如下:
其中,WS(V_i)表示句子i的权重(weight sum),右侧的求和表示每个相邻句子对本句子的贡献程度。在单文档中,我们可以粗略认为所有句子都是相邻的,不需要像多文档一样进行多个窗口的生成和抽取,仅需单一文档窗口即可。求和的分母w_ji表示两个句子的相似度,而分母仍然表示权重,WS(V_j)代表上次迭代出的句子j的权重,因此,TextRank算法也是类似PageRank算法的、不断迭代的过程。
1.文本预处理
def cut_sentences(sentence): puns = frozenset(u'.') tmp = [] for ch in sentence: tmp.append(ch) if puns.__contains__(ch): yield ''.join(tmp) tmp = [] yield ''.join(tmp)
2.句子相似度计算
def two_sentences_similarity(sents_1, sents_2): counter = 0 for sent in sents_1: if sent in sents_2: counter += 1 return counter / (math.log(len(sents_1) + len(sents_2)))
def cosine_similarity(vec1, vec2): tx = np.array(vec1) ty = np.array(vec2) cos1 = np.sum(tx * ty) cos21 = np.sqrt(sum(tx ** 2)) cos22 = np.sqrt(sum(ty ** 2)) cosine_value = cos1 / float(cos21 * cos22) return cosine_value
def compute_similarity_by_avg(sents_1, sents_2): if len(sents_1) == 0 or len(sents_2) == 0: return 0.0 vec1 = model[sents_1[0]] for word1 in sents_1[1:]: vec1 = vec1 + model[word1] vec2 = model[sents_2[0]] for word2 in sents_2[1:]: vec2 = vec2 + model[word2] similarity = cosine_similarity(vec1 / len(sents_1), vec2 / len(sents_2)) return similarity
3.句子权重计算
def calculate_score(weight_graph, scores, i): length = len(weight_graph) d = 0.85 added_score = 0.0 for j in range(length): denominator = 0.0 fraction = weight_graph[j][i] * scores[j] for k in range(length): denominator += weight_graph[j][k] if denominator == 0: denominator = 1 added_score += fraction / denominator weighted_score = (1 - d) + d * added_score return weighted_score
4.句子排序
def weight_sentences_rank(weight_graph): scores = [0.5 for _ in range(len(weight_graph))] old_scores = [0.0 for _ in range(len(weight_graph))] while different(scores, old_scores): for i in range(len(weight_graph)): old_scores[i] = scores[i] for i in range(len(weight_graph)): scores[i] = calculate_score(weight_graph, scores, i) return scores
5.生成文摘
def summarize(text, n): tokens = cut_sentences(text) sentences = [] sents = [] for sent in tokens: sentences.append(sent) sents.append([word for word in jieba.cut(sent) if word]) sents = filter_model(sents) graph = create_graph(sents) scores = weight_sentences_rank(graph) sent_selected = nlargest(n, zip(scores, count())) sent_index = [] for i in range(n): sent_index.append(sent_selected[i][1]) return [sentences[i] for i in sent_index]
6.主函数
if __name__ == '__main__': with open("njuptcs.txt", "r") as njuptcs: txt = [line.strip() for line in open("njuptcs.txt", "r").readlines()] text = njuptcs.read().replace('\n', '') print '原文为:' for i in txt: print i summarize_text = summarize(text, 5) print '摘要为:' for i in summarize_text: print i
至此,TextRank算法实现的单文档自动文摘完成,下一章我们看看成果。
简易中文自动文摘系统(五):自动文摘实现及总结
经过上述的工作以及编程,我们使用Python已经设计出简要的中文自动文摘系统。我们选取一段关于南京邮电大学计算机学院、软件学院、网络空间安全学院的简介,选择其中经过本文模型训练选择的权重最高的5句话作为摘要。
输出结果为:
本实验中使用的中文语料库为维基百科中文语料库,维基百科中文语料库的质量较高,而且领域广泛(适合本文研究的问题),经过测试模型的结果也是如此——对于“北京”、“南京”、“大学”等词的测试都较为准确。当然它的缺点也有,突出缺点就是语料库的语句数量较少,相比于国内的北大中文语料库、哈工大中文语料库、百度百科中文语料库和互动百科中文语料库等千万级别的语料库,数据量要少一个数量级(约91万条),最明显的是对于一些中文特有的人名的识别。的确,在实验的文章中有一个单词并未实现分词:“余人次”,故本人将该词替换为“多人”,成功识别。其中分词使用到的是jieba分词,jieba分词作为一个python的中文分词外部包,安装与使用非常方便,功能也非常强大,基本可以完成对日常中文语句的精确分词。
本文介绍了PageRank算法和TextRank算法,并重点研究了TextRank算法对单一文档中各个句子、单词的权重计算,做出评价分析进行重点语句筛选,抽取出文章摘要这一过程的原理。
文章重点研究了机械文摘的抽取式自动文摘算法,并用其实现了简单中文文档的自动文摘生成。并以一篇南京邮电大学计算机学院、软件学院、网络空间安全学院的简介为例,对该文章进行分句、分词,使用得到的模型进行训练,得到自动文摘。诚然,本文并未进行模型评价和优化,这对于在进一步的研究中可以对模型进行评价和优化。
随着大数据时代的到来,指数级的数据增长对数据信息筛选提出更高的要求。国外Google、Amazon和国内百度、腾讯等公司早已对自然语言理解进行研究,国内外各大高等院校(如麻省理工学院、北京大学、北京邮电大学、清华大学、上海交通大学、哈尔滨工业大学等)也对自动文摘进行了卓有建树的研究。因此,在大数据+人工智能的时代,从学习Python编程语言,建立集成开发环境,学习中文语料的处理方法,查阅自然语言处理的资料,学习自动文摘模型,学习TextRank算法的原理,到实现单文档自动文摘算法,都要通过不断学习技术和知识来实现。
本文参考:https://blog.csdn.net/reigns_
对自动文摘五篇进行了合集汇总和修改
-
基于隐主题马尔科夫模型的多特征自动文摘
2021-03-05 20:23:51提出在不破坏文章结构的前提下,从单文档扩展到多文档的自动文摘策略,最终搭建完善的自动文摘系统。在DUC2007标准数据集上的实验证明了隐主题马尔科夫模型和文档特征的优越性,所实现的自动文摘系统ROUGE值有明显... -
基于自然语言处理的自动文摘系统
2017-12-19 16:20:40在总结各种不同类型的自动文摘系统的特点的基础上,将基于潜在语义分析和篇章多级依存结构的文摘方法相结合,一种综合型的自动文摘系统。 -
chinese_abstractive_corpus:教育行业新闻 自动文摘 语料库 自动摘要
2021-05-15 00:31:38自动文摘分为两种: 抽取式 抽象式 语料库收集了教育培训行业主流垂直媒体的历史文章(截止到2018年6月5日)大约24500条数据集。主要是为训练抽象式模型而整理,每条数据有summary(摘要)和text(正文),两个字段,... -
论文研究-主题与子事件发现的多文档自动文摘.pdf
2019-09-08 12:01:37在协作通信中为了对抗同步误差,可基于OFDM技术在中继节点采用空频码实现协作分集和多径分集。OFDM可以抗定时误差,但对载波频率偏移非常敏感,对于协作通信,多个载波频率偏移的存在使得频率补偿很难实现。... -
论文研究-一种基于统计的自动文摘系统 .pdf
2019-08-16 11:21:01一种基于统计的自动文摘系统,姚建仁,王枞,自动文摘是自然语言处理领域里一个重要课题,本文在传统方法基础上提出了一种中文自动文摘的方法。在文章中,我们提出了基于连续�� -
中文自动文摘关键技术总结
2019-04-11 15:17:34中文自动文摘关键技术总结 搜索微信公众号:‘AI-ming3526’或者’计算机视觉这件小事’ 获取更多AI干货 csdn:https://blog.csdn.net/abcgkj github:https://github.com/xiaoming3526/ai-ming3526 定义 所谓自动...中文自动文摘关键技术总结
搜索微信公众号:‘AI-ming3526’或者’计算机视觉这件小事’ 获取更多AI干货
csdn:https://blog.csdn.net/abcgkj
github:https://github.com/xiaoming3526/ai-ming3526
定义
所谓自动文摘就是利用计算机自动地从原始文献中提取文摘,文摘是全面准确地反映某一文献中心内容地简单连贯的短文。
应用
互联网迅速发展伴随着每天产生大量的文本数据,文摘是文本的主要内容,用户想查询和了解自己关注的话题需要花费大量时间进行选择和阅读文章,并且文摘任务单靠人工也是无法实现的。为了应对这种状况,学术界尝试使用计算机技术实现对文献的自动处理,自动文摘即为研究之一。应用场景:
- Web搜索引擎需要
- 问答系统的知识融合
- 舆情监督系统的热点和专题追踪
分类
根据与原文的关系分为:
- 抽取式:抽取式文摘从原文中选取相关句子形成文摘。这种方法需要定义规则或特征集合,根据特征对原文句子进行打分排序,得分高的句子选择为文摘句。
- 生成式:生成式文摘对原文句子进行切分,重新组合形成文摘,一般为原文中没有出现的句子,需要自然语言理解和文本生成技术。
根据处理文档的数量分为:
- 单文本文摘:单文档文摘对一篇文档进行处理,产生该文档的文摘。
- 多文档文摘:多文档文摘将多篇相同主题的文档聚集在一起,对这些文档进行处理,形成一篇该文档簇的文摘。
根据面向的用户分为:
- 面向查询的自动文摘:按照用户的特定需求产生特定主题的文档摘要,又称为与主题相关的文摘。
- 一般性自动文摘:给用户提供一般性的文档摘要,又称为与主题无关的文摘。本文研究一般性自动文摘。
根据是否需要训练语料库分为:
- 有监督自动文摘:需要训练语料库,提前对训练语料库进行标记,在自动文摘系统中,对模型不断的学习优化,最后得到最优的自动文摘系统。
- 无监督自动文摘:不需要训练语料库,不需要不断的迭代学习,可以直接按照算法生成文摘。
本文主要从抽取式和生成式两方面进行介绍。
抽取式
- 基于规则和统计的方法
- 基于图模型的方法
- 基于主题的文摘方法
- 基于整数线性规划方法
- 机器学习等
基于规则和统计的文摘方法
主要思想:是将文本看作是句子的线性序列,将句子看作是词的线性序列,通过计算句子的权重得分,排序抽取重要的句子。
计算句子权重的依据主要包括:
- 词频(TF-IDF)
- 句子位置
- 句子与标题的相似度等。
优点: 简单易用,不受领域限制,在新闻领域基于规则的方法效果突出。
缺点: 对词句的使用大多停留于表面信息,且容易造成文摘句子冗余,在主题覆盖面上也很难满足。故学者一般都将基于规则和统计的方法与其他方法相结合,例如 Ko, Youngjoong[6]提出一种结合统计信息和上下文信息的自动文摘方法。
基于图模型的文摘方法
主要思想: 将句子作为节点,构建拓扑结构图,边的建立主要通过计算两个句子间的相似度,如果相似度大于给定的阈值,则两个节点之间建立一条边。
用于文本的基于图模型的排序算法代表算法:
TextRank LexRank 句子相似度 两个句子的相同词个数,也就是词共现个数计算 基于 TF-IDF 向量的余弦相似度方法 面向的文档对象数量 单文档 多文档 图模型文摘抽取的主要步骤:
- 语料库预处理(包括分句,分词,去停用词,词性过滤)
- 图模型构建(包括节点的建立和边的建立)
- 图模型的计算(主要是迭代计算节点的权重,直至节点的权重收敛到指定的收敛域)
- 图模型排序(主要是将节点按权重降序排序,按原文顺序输出权重较大的节点)
- 文摘输出
图模型的构建的主要步骤:
- 节点的建立: 经典的TextRank 和 LexRank 算法都是以句子为节点,当图模型排序后,直接输出节点形成文摘。同时这两种算法还可以用于文档关键字的抽取,在抽取关键字时,则是以词项为节点。Litvak[9]以词项为节点,利用 HITS(全称 Hypertext-Induced Topic Search)算法[10]抽取关键词,将包含关键词的句子抽取作为文摘。Goyal[11]利用伯努利模型产生主题词,以主题词为节点建立图模型。
- 边的建立: 边的建立主要是计算两个句子的相似度,可以用两个句子的相似度作为两个节点间边的权值。在句子相似度计算上,TextRank 算法使用的是词共现方法,将两个句子的共同词的个数作为两句子的相似度。LexRank 算法采用的是余弦相似度方法。
这两种方法虽然也能有效的计算两句子相似度,但忽略了句子的语义信息。
Ferreira[12]提出了一种包含了句法分析、语法分析以及语义成分分析的句子相似度测量方法。Wei[13]提出一种基于查询的句子相似度计算方法,指出query 不应只限于影响节点,更应该影响节点间的权重,并开发了一种基于查询的相似度度量方法。Ramesh 提出基于 WordNet 的句子相似度计算方法,在许多情况下,两个完全不同的篇章单元可能存在语义相关,希望通过 WordNet 资源和语义图来克服这种问题,该算法使用文本节点之间的语义关联来构造语义图,并利用排序算法对节点进行排序。Ramesh[14]提出基于维基百科的句子相似度计算方法,建立一个句子-概念二部图,然后在图上迭代更新对输入句子进行排序。并且在建立的多个二部图模型上都得到了收敛性质。
基于主题的文摘方法
基于主题的自动文摘方法主要利用文本的语义信息,挖掘句子间的语义关系,将代表文本主题的句子最佳文摘。
- 张明慧[15]实现了基于主题模型的多文档自动文摘系统,其中主题模型采用LDA模型,LDA是一个多层产生式概率模型,能够检测文本的主题分布。系统使用LDA 为多文档集合建模,通过计算句子在不同主题上的概率分布的相似度作为句子的重要度,并根据句子重要度抽取文摘句。
- Neto[16]提出先用 TextTiling 算法对文本进行分区,再结合 TF-IDF 算法将文本分成几个主题簇,最后对每个主簇利用 TF-ISF(Term Frequency -Inverse Sentence Frequency)算法抽取文摘句。
- Angheluta [17]提出了一种基于文本结构树的主题分割自动文摘方法。
基于整数规划的文摘方法
基于整数规划的自动文摘方法是将文摘抽取问题转化成整数线性规划问题,在文摘长度等若干限制条件下,求全局最优解。
- Dan G[18]提出了基于概念的 ILP((Integer Linear Programming )文摘抽取模型,指出在文摘长度的限制条件下,文摘包含的概念的权重量最大,因为此问题是一个 NP 问题,所以必须将权值较小的概念剪枝,才能有效解决此问题。
- Boudin[19]基于 Dan 提出的模型,并进行多组实验,得出当概念取 bi-gram 时,文摘效果最好。若 bi-gram 中包含的是两个停止词或者是重复词,则此概念忽略,且将概念在文本中的出现频率作为它的权重,排序剪枝。
基于 ILP 的文摘抽取系统的过程是:文档清理(文档格式化,去除无用符);分句(使用 splitta1分句,每行一句);抽取概念并计算其权重;句子剪枝(将词数少于 10 的句子剪枝);写 ILP 需要的问题描述公式,并调用 ILP solver2,将文摘结果按原文顺序输出。
基于 ILP 的文摘抽取方法效果较好,在文摘长度的约束条件下,最大化文摘和原文的相似度,能覆盖到整篇文档,且减少冗余。
缺点: 是由于选择概念和计算权重等计算量较大,比其他文摘抽取方法耗时久。生成式
在自然语言处理领域,生成式文摘研究一直是一个热门且复杂的课题,生成式自动文摘系统应该是能理解所有文档内容并且重新组织产生连贯的、简短的且能传达原文重要信息的摘要[20]。
本文重点使用解码器是根据编码器对源语言的抽象表示预测目标词序列的,正是这种抽象表示为生成式自动文摘提供了可能。本文虽然实现了基于深度学习模型的生成式自动文摘,但仍有很多弊端,如生成重复词等问题。部分生成式自动文摘方法都是将生成过程分成两部分[21]:
- 利用无监督的文摘抽取方法和语言知识抽取原文中的关键元素
- 利用文本生成和语言学技术重写或释义抽取的元素产生简洁的摘要。
近年来,深度学习方法在很多自然语言处理任务上表现突出。括语音识别、机器翻译、自动问答、命名实体识别等多项任务中深度学习都表现出相当不错的成绩。学术界也开始将深度学习模型应用于生成式自动文摘任务。
障碍: 公开的大规模文摘语料太少,并且人工构建大规模文摘语料十分难。经典的 DUC,TAC 和 TREC 语料也只有数百篇人工英文文摘。
EMNLP 2015发布了一个大规模新浪微博中文文摘语料库,包含 240 多万篇人工文摘和微博原文,并且提出了一个基于 GRU 的 Encoder-Decoder 深度学习模型方法作为基线方法[25] 。
论文中对比了将单个汉字作为输入(将字典大小降到 4,000)和将分词后的词语作为输入(词典大小降到 50,000),实验结果显示将单个汉字作为输入效果更好,原因是词典大小有限,有些文章中的词不在词典中,出现未登录词的情况。并对比了两种模型结构,第一种结构是在 Decoder 中不使用所有文本,即只将 RNN 最后一层的隐状态作为 Decoder 的输入。第二种结构是 Decoder中使用所有文本,即将 Decoder 的所有隐状态的组合作为 Decoder 的输入[26]。实验结果显示使用所有的文本的模型效果更好。在 RNN 方面,使用 Chung 提出的 GRU(gated recurrent unit)模型[27]GRU 被证明效果与 LSTM 差别不大,但在收敛速度上更胜一筹[28]。因为现有的生成式文摘方法经常遇到未登录词和生成重复词问题,针对这两个问题,NLPCC2017 年 Single Document Summarization任务中 The state of art 的系统提出了基于双向 LSTM 的 Encoder-Decoder 模型和Joint Attention 机制的方法,针对未登录词问题,使用在输入序列加上 Subword机制[29]处理。针对生成重复词问题,使用 Joint Attention 机制,在 Decoder 输入序列加 Attention 机制,为了在每个 timestep 存储和传送更加全面的信息,并在Encoder 输出序列加 Attention 机制,通过回顾之前的输出信息来避免生成重复短语,这是因为 Encoder 所有时刻的输出共用一个 Context Vector,后边的信息可能会将之前的信息稀释或者覆盖。
自动文摘评价指标
自动文摘评价指标主要从文摘的连贯性、可读性、信息覆盖度、长度、冗余度等方面来评价,目前比较流行的方法是 ROUGE 方法,ROUGE 评价方法是由 Flick[30]基于机器翻译的自动评价方法研发的。该评价方法的主要思想是通过比较生成的文摘和人工文摘之间的相似内容,一般是 N 元词共现来评价文摘质量,是自动文摘领域比较权威的测评方法。ROUGE 评价包括五个评价指标:
-
ROUGE-N,系统文摘和人工文摘的 n-gram 共现统计。ROUGE-1 表示意愿字共现,ROUGE-2 代表二元字共现。ROUGE-N 只能评价准确率,不能评价召回率。 ROUGE-N 计算公式如式(1-1)所示。
-
ROUGE-L,基于系统文摘和人工文摘的最长公共子序列。
-
ROUGE-W,在 ROUGE-L 的基础上,引入了加权洗漱,考虑了序列的连续匹配。
-
ROUGE-S,基于系统文摘和人工文摘的顺序词对统计。F 值计算公式如式(1-8)所示,召回率计算如式(1-6)所示,精确率计算如式(1-7)所示。
-
ROUGE-SU,对 ROUGE-S 和 ROUGE-1 进行综合加权。Lin[31]通过实验证明:ROUGE-2,ROUGE-L,ROUGE-W 和 ROUGE-S 用于单文档自动文摘任务时效果较好;ROUGE-1,ROUGE-L,ROUGE-W,ROUGE-SU 用于评价短文摘时效果较好;ROUGE-1,ROUGE-L,ROUGE-W,ROUGE-SU 用于多文档自动文摘任务时效果较好(匹配时需要去停止词);使用多个人工文摘可以提高评价的准确性。
中文单文档自动文摘的部分方法
参考文献
1.张洪荣. 中文自动文摘关键技术研究与实现[D].哈尔滨工业大学,2018.
2.百度百科 -
基于语义的自动文摘研究综述 (2009年)
2021-05-24 14:08:41自动文摘是自然语言处理的一个分支研究领域。基于语义的自动文摘方法解决自动文摘处理中语言复杂性问题,在克服领域局限性的同时从本质上提高文摘的质量。常用语义模型包括统计主题模型和语义知识模型。基于语义的... -
基于文本聚类和NLU的自动文摘研究 (2005年)
2021-05-23 11:29:59针对当前自动文摘方法的缺陷,提出了基于文本聚类和自然语言理解的自动文摘实现方法。将文本聚类引入自动文摘中,实现多文档的自动文摘。提出了基于标题和段首句的二次自动分词算法。实验结果表明,分词正确率和召回... -
几个机器翻译与自动文摘评价指标
2020-03-22 18:04:42自然语言中的机器翻译或者自动文摘任务的评价指标主要分为两大类:客观评价指标(即使用一些可计算的评价指标)和主观评价指标(即人工评测,通常是领域专家或者学者)。 客观评价指标有: BLEU ROUGE METEOR CIDEr... -
自动文摘系统实现总结
2019-01-21 12:42:39自动文摘系统实现总结 应用场景 利用Ai系统帮助人把不同分类的大量文档自动做总结,重要点总结,比较典型公司美国alphasense公司主要做这块终端抽取重要信息,大量节省人力成本和时间成本 自动文摘有两种方式 基于... -
面向自动文摘的文本结构划分 (2008年)
2021-05-07 11:14:23文本结构划分是自动文摘研究中的一个关键阶段,也是自然语言处理领域的重要课题.本文通过构建段落向量空间模型,提出一种综合考察相邻段落相似度和连续段落平均相似度的意义段划分方法,使文摘内容更加全面,结构... -
论文研究-基于关键词的维吾尔单文档自动文摘技术研究.pdf
2019-09-12 04:01:32近年来,基于英文和中文的自动文摘技术获得广泛关注并取得长足进展,而对少数民族语言的自动文摘研究还不够充分,例如维吾尔语。构造了一个面向维吾尔语的自动文摘系统。首先利用维吾尔语的语言学知识对文档进行... -
基于文本聚类的自动文摘系统的研究与实现 (2006年)
2021-05-26 02:04:30针对当前自动文摘方法的不足,提出了基于文本聚类和自然语言理解的自动文摘实现方法。可以克服常规自动文摘方法的不足,使文摘的质量和效果得到大大的提高。将文本聚类引入自动文摘中,不但使单文档的文摘质景得到... -
python自然语言处理—自动文摘评测方法
2020-10-08 00:56:34自动文摘评测方法 ROUGE ROUGE(Recall-Oriented Understudy for Gisting Evaluation) ,在 2004年由 ISI的 Chin-Yew Lin提出的一种自动摘要评价方法,是评估自动文摘以及 机器翻译的一组指标。 ROUGE基于摘要... -
搜索引擎-基于自动文摘与用户反馈的个性化搜索引擎系统的研究与设计.pdf
2022-06-27 01:24:20搜索引擎-基于自动文摘与用户反馈的个性化搜索引擎系统的研究与设计.pdf -
人工智能-语音识别-自动文摘和文本过滤中自然语言智能信息处理技术的研究.pdf
2022-06-28 09:33:30人工智能-语音识别-自动文摘和文本过滤中自然语言智能信息处理技术的研究.pdf -
论文研究-自动文摘基集语句的提取与润色的数学模型.pdf
2019-07-22 18:21:37针对统计和理解相结合的自动文摘方法,提出了一种新的内容词、有效词和特征词的动态加权函数以及句子重要性的动态加权函数。鉴于基于统计的自动文摘结果常常出现语句间缺乏连贯性及信息冗余的问题,设计了句间语义... -
基于TextRank算法的自动文摘
2021-12-16 22:19:13-------前言:随着互联网、社交媒体的迅速发展,各类新闻文章层出不穷,读者在面对海量新闻信息时,难以有效发现哪些是自己感兴趣的新闻内容。为了帮助读者快速了解新闻文章,并找到其感兴趣的新闻内容。... -
基于隐主题马尔科夫模型的多特征自动文摘 (2014年)
2021-06-01 02:52:39提出在不破坏文章结构的前提下,从单文档扩展到多文档的自动文摘策略,最终搭建完善的自动文摘系统。在DUC2007标准数据集上的实验证明了隐主题马尔科夫模型和文档特征的优越性,所实现的自动文摘系统ROUGE值有明显... -
基于统计的自动文摘(中文)
2014-04-10 10:58:40IK中文分词,将句子重要程度化为所含词的重要程度来考虑,主要考虑词语的词频、文中位置、句中位置三方面的权重。 (修改版,非原创) -
基于机器学习的自动文摘研究综述_曹洋
2018-12-19 02:17:50[摘要]探讨基于机器学习的自动文摘研究中的特征选取、算法选择、模型训练、文摘提取和模型评测等 主要过程; 重点分析3 种主要的机器学习算法: 朴素贝叶斯、隐马尔科夫和条件随机场,阐释3 种算法的基本思 想,在对... -
基于事件要素的自动文摘抽取
2021-03-03 21:20:31基于事件要素的自动文摘抽取