php
php 自动摘要 库
一、php 自动摘要 库
PHP 自动摘要库:简化内容摘要生成过程
在网页内容的展示中,经常会遇到需要生成文章摘要的情况。传统上,这通常需要人工提炼文章主旨,然后进行精炼呈现。 然而,在大规模网站或动态内容更新频繁的情况下,手动生成摘要工作量巨大且不切实际。于是,利用 PHP 自动摘要库成为了一个重要的解决方案。
PHP 自动摘要库通过程序化技术,能够智能提取文章核心信息,生成简明扼要的内容摘要。这种自动化处理不仅减轻了人力成本,提高了效率,而且能够保持摘要的客观性和一致性。 基于算法和规则, PHP 自动摘要库可以智能地分析文本内容,提取关键字、句子,从而生成通顺且具有代表性的摘要内容。
借助 PHP 自动摘要库,网站管理员能够轻松实现文章列表、搜索结果页等需要摘要展示的页面内容布局。在用户浏览页面时,清晰的摘要内容可以帮助用户快速了解文章要点,提升用户体验。 与传统手动生成摘要相比,利用自动摘要库生成的摘要更具客观性和通用性,可以更好地满足用户对内容快速预览的需求。
优秀的 PHP 自动摘要库特点
- 智能提取关键信息:自动摘要库能够智能分析文章文本,提取关键字、句子,准确把握文章核心内容。
- 提高内容展示效率:减少人工生成摘要的时间成本,提高网站内容展示效率。
- 客观性和一致性:自动摘要生成过程客观、一致,避免主观干扰或遗漏。
- 自定义配置和调整:可根据网站需求对摘要生成算法进行定制配置或调整,满足不同展示要求。
- 支持多语言处理:能够处理中文、英文等多语言文章内容,保证摘要生成的准确性。
PHP 自动摘要库作为网站内容展示与优化的利器,被广泛应用于新闻资讯网站、博客平台、电商网站等各类网站。 通过自动摘要生成,这些网站能够提升内容展示效率、增强用户体验,为用户提供更快速准确的信息获取途径。 在信息爆炸的时代,如何用智能化手段提升信息传达效率,已成为众多网站管理员亟需解决的问题。
PHP 自动摘要库的应用场景
PHP 自动摘要库不仅仅局限于文章摘要生成,在各种网站应用场景中都能发挥重要作用。以下是一些常见的应用场景:
- 网站文章列表:在文章列表页显示摘要,帮助用户快速浏览内容。
- 搜索引擎结果页:在搜索结果展示中显示摘要,提高搜索结果吸引力。
- 新闻资讯网站:自动生成新闻摘要,简洁明了地呈现新闻要点。
- 博客平台:自动提取博文要点,方便读者预览和选择阅读兴趣。
- 电商网站:在商品列表页展示产品概要,引导用户点击查看详情。
通过在上述场景中应用 PHP 自动摘要库,网站能够更好地向用户传递信息,提高内容消化效率,增强用户粘性,从而实现网站流量和转化率的提升。 合理灵活地运用自动摘要生成技术,将为网站内容展示带来全新的体验,提升网站核心竞争力。
PHP 自动摘要库的未来发展趋势
随着互联网信息量的持续爆炸式增长, PHP 自动摘要库作为信息处理的重要工具,将有着广阔的发展前景。未来,我们可以期待以下方面的发展:
- 更加智能化:自动摘要库将会借助机器学习、自然语言处理等先进技术,提升智能化水平。
- 多模式适配:针对不同类型的网站内容,自动摘要库将提供多种模式适配,满足不同需求。
- 定制化服务:为大型网站提供个性化的自动摘要解决方案,满足复杂内容解析与展示需求。
- 跨语种支持:能够更好地支持多语种信息处理,提升国际化应用能力。
- API 开放:提供 API 接口,与其他系统集成,实现更广泛的应用场景。
PHP 自动摘要库的未来发展将会更加广阔和多元化,为网站内容展示与用户体验带来更多惊喜。随着技术的不断进步和应用场景的不断扩展, 自动摘要生成技术将成为网站内容处理中不可或缺的重要环节,为网站发展注入新的活力与动力。
在信息时代的洪流中,利用 PHP 自动摘要库优化网站内容展示,不仅是一种趋势,更是推动网站进步的重要举措。因此,掌握并合理运用自动摘要生成技术,将成为网站管理员的必备技能之一。 通过提升内容展示效率和用户体验,实现信息的快速获取与传递,网站将在竞争激烈的网络世界中脱颖而出,赢得更多用户的青睐与信赖。
二、php自动生成序号怎么解决?
在PHP中自动生成序号通常可以使用一个计数器变量或者利用数据库自增主键来实现。通过在循环过程中不断增加计数器变量的值或者在数据库插入新记录时使用自增主键,就能够实现自动生成序号的功能。
另外,还可以使用foreach循环来遍历数组并自动生成序号。总的来说,通过合理利用计数器变量、数据库自增主键或者循环遍历等方法,可以轻松地解决PHP自动生成序号的问题。
三、如何给word自动添加摘要?
在word选项中开启自动摘要工具,然后点击“自动摘要”选项设置后即可自动生成摘要,具体操作请参照以下步骤。
1、首先打开word文档后点击左上角的office按钮,在其界面中选择右下角的“word选项”点击。
2、然后在弹出的“word选项”对话框中,点击左边的“自定义”。
3、然后在“从下列位置选择命令”中选择“所有命令”选项,在下面的命令栏中找到“自动摘要工具”。
4、然后点击“添加”按钮将命令添加到右面的工具栏中,点击“确定”将其加入快速访问工具栏。
5、接着点击快速访问工具栏中的“自动摘要工具”下拉菜单中的“自动摘要”选项。
6、弹出“自动编写摘要”对话框,可在其中更改“相当于原长的百分比”,并选择摘要类型,将摘要设置在文档顶部、突出显示要点、新建文档生成摘要等摘要格式。
7、然后在文档顶端插入摘要或摘录文字,即可生成摘要。完成以上设置后,即可在Word文档中自动生成摘要。
四、Word文档如何自动生成摘要?
1、首先打开word文档后点击左上角的office按钮,在其界面中选择右下角的“word选项”点击。
2、然后在弹出的“word选项”对话框中,点击左边的“自定义”。
3、然后在“从下列位置选择命令”中选择“所有命令”选项,在下面的命令栏中找到“自动摘要工具”。
4、然后点击“添加”按钮将命令添加到右面的工具栏中,点击“确定”将其加入快速访问工具栏。
5、接着点击快速访问工具栏中的“自动摘要工具”下拉菜单中的“自动摘要”选项。
6、弹出“自动编写摘要”对话框,可在其中更改“相当于原长的百分比”,并选择摘要类型,将摘要设置在文档顶部、突出显示要点、新建文档生成摘要等摘要格式。
7、然后在文档顶端插入摘要或摘录文字,即可生成摘要。完成以上设置后,即可在Word文档中自动生成摘要。
五、如何为word自动添加摘要?
1、点击word文档左上角的office按钮,在下拉菜单中选择右下角的“word选项”
2、在弹出的“word选项”对话框中,点击左边的“自定义”
3、在“从下列位置选择命令”中选择“所有命令”,然后在下面的命令栏中找到“自动摘要工具”
4、点击“添加”,将命令添加到右面的工具栏中,然后点击“确定”将其加入快速访问工具栏
5、点击快速访问工具栏中的“自动摘要工具”下拉菜单中的“自动摘要”
6、弹出“自动编写摘要”对话框,可在其中更改“相当于原长的百分比”,并选择摘要类型,将摘要设置在文档顶部、突出显示要点、新建文档生成摘要等摘要格式
六、论文目录摘要怎么自动生成?
论文目录摘要需要用到引用菜单栏里的自动生成目录功能
七、论文摘要怎么自动生成?
您好,论文摘要的自动生成可以通过机器学习和自然语言处理技术实现。一般来说,这个过程包括以下几个步骤:
1. 数据预处理:收集和清洗原始论文数据,包括去除无用的标点符号、停用词和数字等。
2. 特征提取:提取有意义的关键词和短语作为文本特征,可以使用TF-IDF、LDA等算法。
3. 摘要生成:根据特征向量和摘要生成算法,自动生成摘要。
4. 摘要评估:使用自动摘要评估指标,如ROUGE、BLEU等,对自动生成的摘要进行评估和优化。
需要注意的是,自动生成的摘要可能存在一定的误差或不完整性,因此需要人工进行检查和修改。
八、怎么用PHP实现自动登录网站?
用cookie,登陆验证用户名密码通过的话,执行setcookie('login','ture');设置一个cookie。在留言本上加入这段:<
?phpif(!$_COOKIE['logo']=='ture'){Header("Location: login.php");//login,php换成你的登陆页面 exit;}//下面就写你留言本的代码就好?>
九、如何编写让php页面自动刷新?
PHP页面自动刷新可借助JS来实现,简单示例如下:<?php echo "系统当前时间戳为:";echo "<br/>";echo time();//<!--JS 页面自动刷新 -->echo ("<script type=\"text/javascript\">");echo ("function fresh_page()"); echo ("{");echo ("window.location.reload();");echo ("}"); echo ("setTimeout('fresh_page()',1000);"); echo ("</script>");?>
十、文本自动摘要目前有哪些优秀的成果?
前言
文本摘要(text summarization)要求将长文本中的重要信息用若干句话进行概括。因为其下游应用广泛,文本摘要一直是非常经典且重要的NLP任务。一般来说,文本摘要可以分成抽取式(extractive)和生成式(abstractive)两种范式,前者从输入文本中选取句子或者短语,而后者旨在直接生成摘要文本。
随着算力和数据量的提高,设计各种方法对预训练的语言模型(BART,T5,GPT等)进行微调已经成为了文本摘要的主流。而当这些方法的性能逐渐提高,人们开始意识到仅仅对照一个测试集中人写的参考摘要计算文本重叠或者语义重叠(如Rouge或者BERTScore)已经很难区分哪个模型表现更好,随之而来的就是一系列和细粒度评价指标相关的后续工作。这些工作可以粗略分为四个思路:
- 细化评价维度:人在评估一个文本摘要模型时,会从不同维度上进行判断。如果能设计出更加细化的评价维度,就能够更具体地说明某个模型在哪个方面会比其他模型更强。比如,[1]定义了如下四个重要评估维度。
- 相关性(relevance):摘要包含的信息是否为文中重要信息。
- 一致性(consistency):摘要是否有事实性错误。本文关注的忠实度(faithfulness)也和一致性较为相关。
- 流畅性(fluency):摘要中的单个句子是否通顺。
- 连贯性(coherence):摘要整体是否行文流畅连贯。
- 评估评价指标:早期工作提出了很多摘要的评价指标,这些指标是否和人的评估吻合?在哪个维度上更加吻合?这方面的工作可以被称为元评估(meta-evaluation),即通过计算评价指标和人对同一个摘要模型输出评分的相关系数来评估该指标的好坏。较早的工作如[2]收集了人在上述四个维度上对很多摘要模型的打分来和自动指标比较,而最新的工作如[3]提出现有的指标在评估GPT-3生成的摘要时和人的吻合度极低,对评估评价指标提出了新的挑战。
- 提升打分性能:根据收集到的人在若干维度上的打分,设计一些新的评价指标来提升自动指标和人的打分吻合度。
- 提升模型性能:根据对应维度的最优秀的评价指标,提升模型在该维度上的表现。
摘要模型的评估仍然是一个很大的话题,在短短一篇文章中很难全部理清。本文会就模型生成摘要的忠实度维度,讨论如下几个问题的最近进展:
- 什么是忠实度(faithfulness)?(本篇)
- 如何评估摘要模型的忠实度?(本篇)
- 如何提升摘要模型的忠实度?(下篇)
什么是忠实度?
较早关注文本摘要中的忠实度问题的文章包括[4][8][9]。我们就首先来介绍一下[4],这篇文章系统地探索了hallucination, faithfulness, 以及factuality的概念。
On Faithfulness and Factuality in Abstractive Summarization [4]
本文探讨了如下几个核心概念:
- hallucination(幻觉):一般指自然语言生成模型生成了输入文本之外的信息 [6][7]。这些信息可以是无关的噪声或者发散性的语句。在文本创作的时候,hallucination并不是一件坏事,但是在文本摘要这类任务上,一般hallucination很少存在。本文作者把hallucination分为内在(intrinsic)和外在(extrinsic)两类进行讨论。“内在”指文本摘要把原文中的信息用一种新的方式呈现,而这种新的呈现方式不被原文所支持。“外在”指文本摘要引入了原文中没有的新信息。
- faithfulness(忠实性):忠实性一般指生成的摘要中的信息是否能输入文本所支持,可以理解成和hallucination负相关。
- factuality(真实性):真实性一般指生成的摘要中信息的真实性。一段不忠实于原文的摘要,可以同时有很高的真实性,这种信息被作者叫作“factual hallucination”。作者的立场是文本摘要中的factual hallucination如果结合了背景知识以生成更好的总结,则是可以被接受的。
本篇作者通过对五种模型生成的摘要进行评估,总结出三个主要发现:(1)生成式文本摘要模型很容易生成忠实性很低的信息,即hallucination;(2)经过预训练的模型忠实度更高;(3)Rouge,BERTScore等评价指标不如文本蕴含(NLI)的模型能更好评估文本摘要模型的忠实性。下面简单总结一些论文中重要的结果。
数据集:本篇主要使用XSUM数据集,输入一篇新闻文本,输出一句话长度的摘要。
摘要模型:本篇考虑的模型有(1)经典的摘要模型PTNet,TConvSeq2Seq,TranS2S,这些模型不需要预训练;(2)预训练语言模型GPT2和用BERT初始化的BERTS2S;以及(3)人写的参考摘要(GOLD)。
这些摘要模型的忠实度如何?
作者招募了一些标注员来评估(1)上述摘要模型的幻觉现象严重程度和(2)幻觉的类型。结果如下图所示。I指intrinsic hallucination出现的比例,E指extrinsic hallucination的比例。Faith.指忠实的摘要所占的比例,+Fact.指忠实或者真实的摘要占的比例。GPT-2因为自动打分(Rouge, BertScore)的表现太差了,作者就没有让人来评估它。
从表格中首先可以看到,GOLD(原数据集的标签)中有很多的extrinsic hallucination,这主要是因为XSUM这个数据集是用文章的第一句话作为标签,因此在数据集上训练出的模型也会出现这个问题。再看intrinsic hallucination,人写的标签中也会出现一些,主要是因为人结合了自己的背景知识对文章中的信息进行了组合。然而,模型的instrinsic hallucination的水平比人高很多,说明模型中确实也存在这个问题。比较不同模型,PTGen由于复制的机制,extrinsic hallucination水平比较低,但是intrinsic hallucination问题最大。经过预训练的模型BERTS2S的hallucination情况最轻,即忠实度最高。作者的解释比较模糊,只是说预训练会导致BERTS2S对领域比较敏感,更不容易被训练数据集中的噪音影响。
最后,作者再次让人检查四个模型中的输出,找出不忠实但是真实的摘要。做完这一步之后,作者发现BERTS2S生成真实摘要的比例比其他模型好很多。
能否自动评估忠实度?
接下来,本篇主要探讨了如何自动评估忠实度,也就等价于自动找出hallucination。作者训练了两种模型,认为他们可能会有帮助:(1)在Multi-NLI上训练了一个文本蕴含(entailment)的模型,如果模型判断摘要不被输入蕴含,则摘要不忠实;(2)作者从QA的角度出发,用模型在摘要上生成(问题,回答),如果这些问题不能根据输入被正确回答,则摘要引入了新的信息,即hallucination。作者把这两个指标连同Rouge和BERTScore在之前的标注上进行了评估,发现文本蕴含对于忠实度的判断和人相关性最高。
作者接着就用文本蕴含对几个模型进行了评估,cont.为模型判断矛盾的比例,也就是文本蕴含这个指标判断模型不忠实的比例。可以看到BERTS2S在这个指标上表现最好,和人类接近。
最后,作者也简单探索了一下,表示可以用人类标注的数据来学习一个更好的打分模型,也可以用这个指标来选择模型。另外,因为忠实度是不参考标签的(reference-free),所以一般来说要和基于标签的指标(如Rouge)一起使用。
其他阅读
个人认为在早期尝试定义忠实度的文章中,[4]做得是较为优秀的。除此之外,这两篇更早的文章也可以进一步参考:
- Faithful to the Original: Fact Aware Neural Abstractive Summarization [9]
- Ranking Generated Summaries by Correctness: An Interesting but Challenging Application for Natural Language Inference [8]
如何评估忠实度和真实性?
评价摘要的忠实度和真实度的主要参考是人工评估 [2, 5, 16],即使设计指标来自动评估,也需要通过计算和人的相关性进行检验。自动评估的工作主要分成如下几个流派:
- 先把摘要/正确答案/原文中的信息转化为特定的格式,然后进行对比 [10]。
- 训练模型预测摘要中的信息是否被原文蕴含 [8]。
- 通过QA模型来评估原文和摘要的信息是否一致 [12, 13]。
- 设计更加统一的打分模型 [14, 15, 17]。
对于每一种流派,我们选取一篇有代表性的文章介绍主要方法。
Assessing The Factual Accuracy of Generated Text [10]
本篇是设计真实度的自动指标的工作中最早的尝试之一。思路很有开创性,但是在方法的设计和通用性上有一定的局限性。
主要方法
本篇中,作者主要关注的是模型生成的摘要是否事实正确。主要的方法是训练一个模型把模型的预测和正确答案分别解析成事实关系的元组(主语, 关系, 宾语),然后进行匹配,将准确度作为模型生成摘要的真实性。作者进行了一些简化,如果模型生成了无法根据正确答案来判断的事实关系,这些事实关系会被直接过滤掉,不在考虑范围之内。这个框架主要的难点在于如何从摘要中抽取出事实。为了解决这个问题,本篇通过维基百科构建了一个数据集,对于每篇文章,找到一个主要实体,然后在数据库中搜索文章中其他实体和主要实体的关系,如果有关系则构建一个正例,否则构建一个负例。然后,作者尝试在这个数据集上训练了三种不同模型:
- 命名实体抽取+关系检测(只判断两个实体之间是否存在关系,不对关系进行分类)
- 命名实体抽取+关系分类
- 端到端地生成所有事实关系
结果
作者选取了一个摘要模型的30条输出,让人基于正确答案判断输出是否事实正确,去除掉无法判断的部分,然后和不同的指标计算相关系数。OpenIE是一个自动关系提取的工具,作者意在比较OpenIE和本文新训练的模型。可以看到本文设计的指标和人的标注相关性最高。但是我们从表格中也可以看到,Rouge-2这种和事实性完全无关的指标都有一定的相关性,说明本篇设计的方法和用户研究比较有局限性。
一些本篇没有解决的问题
- 本篇的方法只能处理预先定义好的一个关系集合
- 忽略了原文中存在但是正确答案中没有的事实关系
- 本篇只处理了事实正确性,没有考虑忠实度
Evaluating the Factual Consistency of Abstractive Text Summarization [5]
本篇和[1]来自同一组作者。[1]是一篇议论文,主要点明了摘要的自动评估中缺乏了对于consistency的关注,即很少评估摘要和输入是否在事实信息上保持一致。[5]可以看成[1]的后续,目的是想办法来解决[1]点出的问题。这里的"factual consistency"虽然里面有"fact",但是含义应该和忠实度更为吻合,因为主要关注的都是摘要的信息是否都能被输入所支持,而不是摘要的信息是否都是正确的。
主要方法
本篇中,作者通过半监督的方式来训练一个事实一致性的模型。这个模型给定一对(文章,摘要),预测摘要是否和文章事实一致。训练集的构建方式是选定文章,从中抽取出一个句子,然后基于这个句子生成正例(忠实摘要)和负例(不忠实摘要)。正例主要通过同义改写的方式获得,作者把这些句子翻译成法语/德语/中文/西班牙语/俄语,然后再翻译回英语。对于负例,作者设计了一些规则如取反/改掉代词/改掉句中实体/改数字/加噪音的方式。从[4]的角度来看,前两种方法属于引入intrinsic hallucination,最后两种属于extrinsic hallucination,改掉实体可以是intrinsic或者extrinsic,取决于如何实现。作者也提到这种数据增强的方式对2018-19年抽象程度比较低的摘要模型是足够的,站在2023年来看,我们在过去的半年中看到了很强很可控的ChatGPT和GPT-4,想要评估它们生成的摘要,本篇的设计就不一定足够了。
接下来,作者用这些增强的数据微调BERT来作为打分模型。具体的训练目标有两种:(1)只训练一个二分类模型,称为FactCC;(2)在此基础之上,同时预测错误出现的开始和结束位置,称为FactCCX。根据原文的报告,训练开销还是很大的,需要8张V100上训练一天。考虑到每换一个新的领域都需要重新训练模型,本文的方法算不上很高效。
实验
本文主要的实验场景是[8]提出的数据集,这个数据集包含了CNN-DM验证集的200篇文章,目标是每篇文章的五个摘要按照正确性重新排序,评估的主要指标是正确性最高的摘要是否被排在首位。比较的方法也来自于[8],主要是一些其他的NLI模型。另外比较的两个基线是在MNLI或者FEVER上微调BERT。可以看到FactCC在这个数据集上识别最正确的摘要的性能强于其他模型。
FactCCX的另一个好处是可以对标注证据,用来对不正确的信息进行解释。作者进一步做了两种标注实验:(1)问标注者FactCCX标注的证据是否有用;(2)让人来判断正确性并且标注证据,评估人标注的证据和FactCCX给出的证据是否吻合。结果见下图,可以看到效果还是比较好的。
一些本篇没有解决的问题
- 作者发现对抽象程度比较高的摘要经常会被识别为不正确。换句话说,模型很难分辨改动很大的同义改写和extrinsic hallucination。不过,这两者之间可能本身就有很多交集 [4]。
Asking and Answering Questions to Evaluate the Factual Consistency of Summaries [12]
一条很直接的思路:如果摘要引入新的信息或者修改了原文信息,如果对这些信息提问,回答的模型分别参考原文和摘要时就会找到不同的答案。本篇和[13]思路非常相近,一起上了ACL 2020的主会,到现在引用数也比较接近。也不知道这两组作者之间是否有一些其他的恩怨,就选取靠前的一篇总结一下了: )
主要方法
本篇设计的指标QAGS主要分成三个步骤:
- 根据文本摘要生成若干问题。本文使用了一个在NewsQA上训练的BART模型来根据答案(命名实体)生成问题。在摘要文本中随机选取若干个命名实体,然后用beam search的方式解码出若干个问题。
- 基于输入或者摘要生成这些问题的答案。本文使用一个在SQuAD2.0上微调过的BERT模型来抽取式地生成答案。
- 比较两个版本答案的吻合率,吻合率越高则忠实度越高。本文使用token-level F1进行评估。
实验结果
作者首先比较了一下QAGS和之前的指标相比和人评估faithfulness分数的相关系数,发现QAGS最高。这里作者baseline的选取并不是很全面,感觉至少应该比较一下基于NLI的方法。
之后,作者重复了FactCC的实验场景,展示出来QAGS能进一步提高rerank的准确度。
一些本篇没有解决的问题
- 对于高度抽象的summary,抽取式的QA加上exact match的F1很难评估忠实度。
- 用某一个具体的数据集来训练问题生成和问答模型可能会很难泛化。作者提的框架是很好的,只是在2023年回看,或许QG和QA的模型都可以换成LLM来实现。
SummEval: Re-evaluating Summarization Evaluation [16]
在介绍接下来的方法之前,我们先介绍一个人工评估的数据集:SummEval。本文承接[1][5],同样来自Salesforce。通过看之前的几篇文章,不难发现在当时自动指标设计研究中的主要问题是评估指标性能(即meta-evaluation)的实验规模有点太小。为了解决这个问题,[16]的作者对23个模型在CNN/Dailymail上的100篇文章上的数据进行了标注。标注的内容就是相关性(relevance),一致性(consistency),流畅性(fluency),连贯性(coherence)四个指标。然后对比了当时较为常见的指标和人工标注的一致性。SummEval是第一个比较大的文本摘要的元评估数据集,后续设计新指标的研究如[14][15]等都在SummEval上进行了测试。
Compression, Transduction, and Creation: A Unified Framework for Evaluating Natural Language Generation [14]
在本文之前,大部分的自然语言生成评估的工作局限于特定某个任务的特定某个维度。本文提出了一个更加统一的框架,将自然语言生成的任务分成三类:压缩(compression,如文本摘要)、转导(transduction,如翻译)、创造(creation,如故事生成)。作者引入了一个中心的概念叫“信息对齐”(information alignment)。将a到b对齐的过程记作align(a->b),这是一个和a中token的数量相同的向量,计算的是a的每个token在多大程度上和b一致。在这个框架下评估这三种任务,主要需要解决两个问题:
(1)如何把三种任务的目标用对齐来表达?
- 对于文本压缩类任务,作者认为主要的目标是“一致性”(consistency)和“相关性”(relevance)。一致性表达为align(输出->输入),即输出的每个token都应该能在输入中找到一定的对应。相关性表达为两项,分别是align(正确答案->输出)和align(输出->输入),最终的分数是两项分别求平均再乘起来。这里会有一点点奇怪,(1) 看起来两个目标没有完全分开,作者的说法是相关性也需要模型的输出和输入文本有一定的一致性; (2)似乎这个指标只有recall,没有考虑precision(比如align(输出->正确答案))。
- 对于文本转导类任务,作者设计的是一个类似F1的指标,称作信息留存(preservation),用align(输入->输出)和align(输入->输出)进行计算。
- 对于文本创造类任务,作者设计了“吸引力“(engagingness)和“接地性”(groundedness)。这里主要用了对话生成作为例子。engagingness用align(输出,[对话历史,背景知识])来评估,groundedness用align(输出,背景知识)来评估。
(2)如何实现align函数?
作者考虑了三种实现方式:用嵌入逐个token进行匹配(E),用序列标注的方式打分(D),直接估计(R)。大意如下图所示。具体的实现就略过了,可以参考原文附录。主要的实现方法是给定输入先用无监督的方法生成输出,然后进行同义改写,之后再进行掩码用BART重新预测,重新预测的部分就视为负例,其他部分视为正例。
实验
作者分别在文本摘要、风格转换、对话的三类任务上进行了评估。由于文本的侧重点原因,我们只看一下文本摘要上一致性的结果,对应的就是忠实度。主要就在[16][12]的数据上进行了实验,baseline就是FactCC和QAGS。可以看到D在众多评估指标中表现最好,E在XSUM上的表现非常差,作者认为主要是因为XSUM的摘要抽象程度很高,不好匹配。
Towards a Unified Multi-Dimensional Evaluator for Text Generation [15]
本篇发表在[14]一年之后,主要的动机是[14]很难评估一些维度,比如文本摘要上的naturalness和coherence。和[14]的EDR不同,本篇把打分转化成使用T5做Boolean QA的形式。给定模型输出x,正确答案y,输入/背景c,以及维度d_i对应的问题q_i(一个Yes/No的问题),模型的打分可以写成如下形式:
举个例子,下图就展示了评估coherence和relevance的模板。
训练
UniEval的训练主要分成两步:
- 首先,先将T5在四类中间任务上进行微调:(1)NLI,(2)开头句预测,(3)CoLA,(4)QA。作者把这四类任务都转化成了答案为Yes/No的Boolean QA形式,总数据量大约186k。训练之后的中间模型即为MingZhong/unieval-intermediate · Hugging Face。
- 然后,根据实际要评估任务的不同,设计一系列维度。对于每个维度,通过进行各种基于规则的扰动构造Boolean QA格式的训练数据。比如对于文本摘要,作者就设计了coherence, consistency, fluency, relevance四个维度。在训练时作者发现同时训练这些任务会导致一些冲突,更好的训练方法是逐个任务微调,在微调后面任务时重放(replay)20%左右之前的数据。
实验
作者在三类任务上进行实验:summarization, data-to-text, dialogue。这里我们只看一下SummEval的结果:
之后,作者也进行了一些其他分析,指出UniEval的范式的一大好处就是可以很容易泛化到新的维度上。作者在“可理解度”的新维度和data-to-text的新任务上进行了实验,展示出来了很好的泛化效果。不过个人认为在UniEval的框架下,想要在目标任务的评估上做到最好,还是需要对模型进行一定程度的微调,这一点在[17]上有所改进。另外作者也进行了一些ablation studies,展示出对忠实度/一致性来说NLI的中间任务是很重要的。把所有维度放在一起考虑,QA的中间任务是最重要的。
GPTEval: NLG Evaluation using GPT-4 with Better Human Alignment [17]
本篇是非常新的一篇文章,在笔者写作本篇综述时刚刚放出来。本文的出发点是很明显的:大语言模型(LLM)的能力似乎在GPT-3和GPT-4上产生了质的飞跃,那么将其作为评估指标,“大模型评价小模型”就听起来越来越有可行性了。本文提出了一种利用chain-of-thought(CoT)来提升LLM打分模型的机制,主要工作流程如下:将任务的定义和评估维度的定义输入LLM,先生成评估的步骤,然后把这些文本再加上需要评估的输入和输出,用一种填表的方式再次输入LLM得到分数。最后,用1~5的分数乘上对应概率得到一个更细粒度的分数。
本文的实验设定直接采用了UniEval的主要设定,发现如下:(1)本文的方法基本可以在UniEval的benchmark上做到sota,在评估比较开放性的对话生成任务上尤为有效;(2)本文的方法对输入模板比较敏感,CoT可以提升性能;(3)分数乘上概率让最终的打分变得更细粒度;(4)本文的方法相比人类会更偏好LLM的输出。另外,本文也发现GPT-4比GPT-3.5在大多数情况下有显著的提升。总的来说,本文更像是一篇分析部分还没有完全完成的早期版本的“占位”文章,同时在方法上的novelty也不是很高。所以本文也不过多分析,对实验结果感兴趣的读者可以直接查看原文。
总结
在本篇文章中,我们首先通过一篇早期工作讨论了忠实度和真实度的含义是什么。然后,我们综述了评估文本摘要忠实度/真实度/一致性的各种方法。可以看到不管是对于不同任务还是不同评价维度,较为普遍的趋势是趋向于大而统一:更大的元评估实验设定、更多的预训练、更大的模型、更统一的视角,等等等等。当下,GPT-4的出色表现引起热议,但是似乎构建更可控、可解释、鲁棒的文本生成指标仍然是一个开放问题,还有很长的路要走。
下篇文章中,我们会探讨一下提升近期文本摘要的忠实性的相关工作。
References
[1] Neural Text Summarization: A Critical Evaluation (Kryscinski et al., EMNLP-IJCNLP 2019)
[2] SummEval: Re-evaluating Summarization Evaluation (Fabbri et al., TACL 2021)
[3] News Summarization and Evaluation in the Era of GPT-3 (Goyal et al., arXiv 2022)
[4] On Faithfulness and Factuality in Abstractive Summarization (Maynez et al., ACL 2020)
[5] Evaluating the Factual Consistency of Abstractive Text Summarization (Kryscinski et al., EMNLP 2020)
[6] Object Hallucination in Image Captioning (Rohrbach et al., EMNLP 2018)
[7] Hallucinations in Neural Machine Translation (Lee et al., NIPS IRASL 2020)
[8] Ranking Generated Summaries by Correctness: An Interesting but Challenging Application for Natural Language Inference (Falke et al., ACL 2019)
[9] Faithful to the Original: Fact Aware Neural Abstractive Summarization (Cao et al., AAAI 2018)
[10] Assessing The Factual Accuracy of Generated Text (Goodrich et al., KDD 2019)
[11] Ensure the Correctness of the Summary: Incorporate Entailment Knowledge into Abstractive Sentence Summarization (Falke et al., ACL 2019)
[12] Asking and Answering Questions to Evaluate the Factual Consistency of Summaries (Wang et al., ACL 2020)
[13] FEQA: A Question Answering Evaluation Framework for Faithfulness Assessment in Abstractive Summarization (Durmus et al., ACL 2020)
[14] Compression, Transduction, and Creation: A Unified Framework for Evaluating Natural Language Generation (Deng et al., EMNLP 2021)
[15] Towards a Unified Multi-Dimensional Evaluator for Text Generation (Zhong et al., EMNLP 2022)
[16] SummEval: Re-evaluating Summarization Evaluation (Fabbri et al., TACL 2021)
[17] GPTEval: NLG Evaluation using GPT-4 with Better Human Alignment (Yang et al., arXiv 2023)
热点信息
-
在Python中,要查看函数的用法,可以使用以下方法: 1. 使用内置函数help():在Python交互式环境中,可以直接输入help(函数名)来获取函数的帮助文档。例如,...
-
一、java 连接数据库 在当今信息时代,Java 是一种广泛应用的编程语言,尤其在与数据库进行交互的过程中发挥着重要作用。无论是在企业级应用开发还是...
-
一、idea连接mysql数据库 php connect_error) { die("连接失败: " . $conn->connect_error);}echo "成功连接到MySQL数据库!";// 关闭连接$conn->close();?> 二、idea连接mysql数据库连...
-
要在Python中安装modbus-tk库,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python解释器。您可以从Python官方网站(https://www.python.org)下载和安装最新版本...