一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种幽默文本自动生成方法、系统、介质、设备及终端

2022-08-13 13:24:47 来源:中国专利 TAG:


1.本发明属于幽默文本生成技术领域,尤其涉及一种幽默文本自动生成方法、系统、介质、设备及终端。


背景技术:

2.目前,幽默,是人们日常沟通交流的重要组成部分,在传统小品、喜剧、相声以及日常对话中给人们的生活增添了无穷的乐趣。随着人工智能和自然语言处理领域的发展,越来越多的人机智能互动产品走向人们的日常生活。近些年来“siri”、“小爱同学”、“微软小冰”等智能语音助手凭借着良好的交互性、智能性迅速博得了全世界各地的用户的青睐。与此同时,人们不仅仅只满足与智能语音助手简单的对话交流,而是越来越希望智能语音助手在人机语音交互的过程中赋有温度与情感,更加贴近人们日常生活的对话方式。幽默作为人际交往中的重要方式,不仅可以拉近人们之间的距离,更在冲突和问题中充当着重要角色。所以,使智能语音助手赋有幽默性的特点,既可以增加机器的个性化和创造性,又能在人机交互的过程中提升用户的体验。nijholt等人的研究表明,在人机交互的系统中引入幽默特征,能够使总体对话量增加50%。因此,幽默文本生成研究是值得关注的,现阶段对于幽默文本生成的研究多集中于融合外部知识的深度学习方法,并取得了一定的效果,但无法做到兼顾文本中语义特征和幽默特征的要求,生成的幽默文本往往存在语义信息丢失、重复、幽默特性不足的问题,很难在实际的人机交互中提供大量合适的幽默文本。
3.幽默具体分为指称性幽默(referential or conceptual humor)和言语性幽默(verbal humor)。指称性幽默主要通过语言之外的方式表现,如在特定的场景、事件中进行描述,往往更具有逻辑以及深层意义,需要听者有一定的知识、常识、学历等背景。而言语性幽默是通过语言文字的方式来传递幽默,如从双关语、谐音、不一致等语义特征上产生一些幽默,这类幽默易于听者理解,是日常生活中最常见的幽默类型。本发明针对上述两种幽默类型展开研究。
4.较早的幽默文本生成任务主要集中在以固定的模式或特定的表达方式来产生幽默,如词语替换、双关语表达等基本方式。petrovi’c等人通过设置“i like x like i like y,z”的模板,使用无监督学习提取笑点的三元组进行幽默文本的生成。lessard等人发表了基于自动生成双关语的幽默生成研究论文,该论文主要通过自动生成具有简单语音歧义的双关语谜语来产生幽默。ritchie等人也生成了双关语式的幽默。近些年部分研究者通过幽默的不协调性来分析和预测双关语,发现了模棱两可的句子往往更有趣。在上述工作的基础上,yu等人将神经模型应用于双关语生成,他们训练的模型突出了句子中单词不同的含义,通过同形异义来生成幽默。he等人设计的语言模型,通过提高同音词的概率生成双关语,从而使句子变得有趣。然而上述方法都是基于人工的方式观察幽默特征,生成的笑话都比较孤立,不具有开放性。
5.随着深度学习在自然语言处理方向的快速发展,越来越多的幽默文本生成研究开始使用深度学习方法。ren等人通过给定主题采用神经网络方法训练网络模型生成了幽默
文本,有相关研究采用wordnet与conceptnet等网络训练生成了新的幽默词汇及文本,但这些方法是对固定主题和词语进行训练,实际上仍然没有生成开放式的幽默。zhang等人创建了第一个幽默知识数据集,通过将外部背景知识融合到端到端训练模型中,产生了特定类型的幽默,littmad等人构建了一个真实世界上下文-讽刺标题对的数据集,然后利用已有的摘要抽取预训练模型进行微调,从而通过风格迁移生成了幽默的讽刺标题。chakrabarty等人在conceptnet预训练语言型中生成相关常识,随后通过引入常识获取语言不协调性,从而产生幽默。虽然上述借助外部背景知识、常识的方法提取了更多的相关幽默词,但这也容易忽略幽默文本中上下文的语义信息。谭红叶等人在改进的生成对抗网络中引入了笑话特征,一定程度上生成了开放式的幽默,然而由于对幽默特征的提取是在预训练之后进行的,没有充分发挥大规模预训练模型的特点,生成的幽默文本比例仍然相对较低。由此可见,幽默文本生成任务研究具有非常大的挑战。
6.幽默文本生成任务是自然语言生成的一个分支,是一个比较新的文本生成研究方向。它不仅要具备流畅、通顺等一般文本所要求的基本特征,更要具备能够产生笑点的反讽、双关、不一致性等幽默特征。因此,幽默语料对分析、学习幽默特征至关重要。然而,现有的中文幽默文本数据集比较稀缺,很难简单使用深度学习模型从小规模幽默语料中充分学习到潜在的幽默特征,hossain等人也指出,公开幽默数据集的稀缺是计算幽默研究的重要挑战之一。
7.早期基于模板的研究方法都是通过词语替换的方式产生文本,生成的笑话往往都是孤立的,很难生成开放性的幽默文本。同时,基于模板式的填充需要大量的人工标注,消耗大量的人力。因此,基于模板式的幽默文本生成存在诸多缺点,已经不能满足当前人机交互产品对创造性幽默语言的需求。
8.现阶段基于神经网络的幽默文本生成方法通过大规模语料或者外部知识来学习潜在幽默特征,从而生成特定的幽默文本,相对传统幽默生成方式有所改进,但在学习幽默特征的过程中,没有充分发挥预训练模型的优势,生成的句子出现语义信息丢失、过拟合、生成文本重复等问题,很难在实际的人机交互场景中提供大量适合的幽默文本。因此,目前通过小规模幽默文本生成满足语义特征和幽默特征共存的开放式幽默文本是一个比较困难的问题。
9.基于以上分析,要使计算机生成幽默文本不仅需要学习、理解幽默文本中潜在的幽默特征,而且需要将它融合到现有自然语言文本生成的任务当中,这是一项具有挑战的任务。幽默文本生成任务的主要问题如下:
10.1)现有公开中文幽默文本标准数据集稀缺,简单利用现有模型并不能从小规模样本中学习到符合要求的幽默特征
11.2)固定形式下产生的幽默缺少创新型,难以适应现有人工智能产品应用场景
12.3)现有的方法不能综合提取幽默文本中的语义特征和幽默特征,未关注两者的权衡。
13.通过上述分析,现有技术存在的问题及缺陷为:
14.(1)现有的幽默文本生成方法都是基于人工的方式观察幽默特征生成笑话,容易忽略主题一致等语义特征,导致生成的大量语句为了适应相关的幽默特征而与前文不相关,难以生成一句完整的语义通顺的幽默文本,即生成的笑话都比较孤立,不具有开放性。
此外基于人工的方式提取幽默特征需要大量的人工标注,消耗大量的人力。
15.(2)现有的采用神经网络方法训练网络模型生成幽默文本的方法是对固定主题和词语进行训练,当面临训练集外文本输入时,很难生成符合日常交流的幽默文本,因此实际上仍然没有生成开放式的幽默。
16.(3)现有基于神经网络的幽默文本生成方法没有充分发挥预训练模型的优势,未能同时关注幽默文本的语义特征和幽默特征,生成的句子出现语义信息丢失、过拟合、生成文本重复以及幽默特征不足等问题,很难在实际的人机交互场景中提供大量适合的幽默文本。
17.(4)现有的中文幽默文本数据集比较稀缺,很难简单使用深度学习模型从小规模幽默语料中充分学习到潜在的幽默特征;
18.(5)固定形式下产生的幽默缺少创新型,难以适应现有人工智能产品应用场景,且不能综合提取幽默文本中的语义特征和幽默特征,未关注两者的权衡。


技术实现要素:

19.针对现有技术存在的问题,本发明提供了一种幽默文本自动生成方法、系统、介质、设备及终端,尤其涉及一种毒鸡汤类型的幽默短文本自动生成方法、系统、介质、设备及终端。
20.本发明是这样实现的,一种幽默文本自动生成方法,所述幽默文本自动生成方法包括:
21.根据获取的新的幽默文本生成任务,输入上半句,自动生成对所述上半句翻转的下半句;构建基于生成对抗网络的幽默文本生成模型amq-gan;采用双判别器,分别提取语义特征和幽默特征,由语义特征判别器指导语义通顺、主题一致的语句生成,由幽默特征判别器指导具有不一致性、歧义性和双关语的幽默特征的语句的生成;利用基于对比学习的数据增强以及结合prompt设置特定的幽默文本训练模板,使生成的文本突出幽默的特征。
22.进一步,所述幽默文本自动生成方法包括以下步骤:
23.步骤一,采用基于simcse对比学习的数据增强技术,对同一个句子生成多个不同的句向量;
24.步骤二,采用prompting技术,添加对文本幽默效果进行评判的第三句;
25.步骤三,在生成对抗的过程中,采用语义特征判别器和幽默特征判别器,对生成的句子分别进行语义判别和幽默判别。
26.进一步,所述步骤三中的语义特征判别器用于负责判别前后语句语义、主题是否一致以及是否通顺;
27.所述幽默特征判别器用于通过不一致性、双关、谐音的幽默特征判别文本的幽默质量,两个判别器的输出得分经加权共同指导生成器文本的生成。
28.进一步,所述幽默文本自动生成方法还包括:
29.给定一个长度为m的前半句作为输入:s=[w1,

,wi,

,wm],通过模型自动生成出一个长度为n的后半句s

=[w
′1,

,w
′j,

,w
′n],使s与s

构成的整个文本形成一个颠覆原有认知,达到反差、讽刺效果的笑话;前后两句话构成一种毒鸡汤文,通过模型输出的笑点句产生幽默的效果。
[0030]
进一步,所述amq-gan模型由预训练、对抗训练、语义特征和幽默特征提取三部分组成。
[0031]
(1)预训练部分
[0032]
预训练包括对生成器g、语义特征判别器和幽默特征判别器的预训练。生成器采用gpt-2模型,使用50万条常见的对话语句对生成器进行预训练,使生成器根据输入生成通顺、流畅的一般性回复。采用语义特征判别器和幽默特征器,通过预训练生成器生成的文本分别与常见对话和幽默文本加入标签构建数据集,前者构建为语义数据集训练语义特征判别器,后者构建为幽默数据集训练幽默特征判别器。
[0033]
(2)对抗训练部分
[0034]
采用的最优化目标函数如下式所示:
[0035][0036]
其中,x表示服从真实数据分布的真实样本,d(x)表示判别器对样本x判别为真实样本的概率,g(z)是生成器生成的虚假样本;对生成器的优化就是最小化log(1-d(g(z))),使生成器生成的样本能够欺骗判别器,对判别器的优化则是最大化log(d(x)) log(1-d(g(z))),使判别器能够有效区分真实样本和虚假样本,通过生成器和判别器的训练迭代,促进生成器生成能够欺骗判别器的“真实样本”;引入双判别器对文本的语义特征和幽默特征分别判别。
[0037]
(3)语义特征和幽默特征提取
[0038]
引入语义特征和幽默特征提取模块,用于指导生成器生成具有幽默特征和语义特征的文本;对生成器的语句分别从语义上和幽默性上进行单词级别的计算,以得到奖励分数:
[0039]
1)语义特征提取
[0040]
主要通过话题一致性、语义通顺程度和普遍性判别生成文本的语义特征。
[0041]

话题一致性
[0042]
前后两句组成的句向量词义距离较近则讨论的话题比较一致:
[0043]
q1=cos(s,s

)。
[0044]

语义通顺程度
[0045]
语义通顺程度是评价文本的语义基础指标,通过计算给定文本主体句s生成笑点句s

的前向概率,以及给定笑点句s

生成主体句的后向概率来评估生成幽默文本的语义通顺程度:
[0046]
q2=logp(s

|s) logp
backward
(s|s

);
[0047]

普遍性
[0048]
利用50w大规模语料数据集进行作为常见词语集,通过计算笑点句中的词语出现在常见词语集的概率计算该笑点句的普遍性:
[0049]
q3=logp(wi)。
[0050]
2)幽默特征提取
[0051]
幽默特征判别器根据目标幽默特征提取模块来判断文本幽默的质量,提取的幽默特征如下:
[0052]

歧义性
[0053]
歧义是产生笑话的重要条件之一,因此歧义特征可以作为笑话的一个重要组成部分。通过计算生成文本中的歧义词数量来评价该文本的好笑程度。
[0054][0055]
其中ambiguities(wi)表示笑话中第i个词具有不同义项的数量。
[0056]

语音相似性
[0057]
押韵属性是笑话的重要特征之一。押韵使两个不同的字音调、韵母相同,从而产生笑点。通过计算主体句和笑点句中押韵词的个数,来评价生成文本的语音相似性。
[0058]
其中rhymes(s,s

)表示主体句与笑点句中押韵词的个数,n代表幽默文本中主体句与笑点句的总词数。
[0059]

不一致性
[0060]
分析前半句和后半句组成的词语集vs和vs′
,如果其中的两个词语之间的相似度较小,则认为前后语句构成笑话。
[0061]
q6=min{cos(vs,vs′
)}。
[0062]
进一步,所述对抗训练部分包括:
[0063]
1)生成器训练
[0064]
生成器采用的是预训练后gpt-2模型,在生成器训练阶段中引入对比学习技术、prompting技术和强化学习方法。
[0065]

基于对比学习的数据增强
[0066]
采用simcse技术对幽默文本进行数据扩充。在训练过程中,通过修改模型dropout mask大小,增加输入文本的向量表示,并且同一输入文本的不同向量表示彼此之间拉近,而不同输入文本的向量表示则彼此疏远,从而使得扩充后的幽默文本向量彼此更加接近。
[0067]

引入提示技术
[0068]
在生成器中的训练中,对样本插入prompt模板,从而使模型有效学习语言模型中幽默特征。prompt模板决定模型的效果和文本生成的质量,手动设置4个提示模板来获取最优模型;在幽默文本的前、中、后位置分别添加不同的提示,前缀性的模板对幽默文本的产生更有效。
[0069]

强化学习
[0070]
采用蒙特卡洛搜索方法对生成器的语句进行搜索补充。在生成器训练过程中,对每一个状态都通过蒙特卡洛搜索方法进行补齐,得到一个完整的句子序列,将序列分别送入语义判别器和幽默判别器得到该状态下的语义奖励分数和幽默奖励分数的加权值,对所有状态获取奖励分数后,利用奖励对生成器进行策略梯度更新,从而指导生成器生成符合要求的幽默文本。
[0071]
2)判别器训练
[0072]
语义判别器和幽默判别器均采用lstm网络,对输入的句子进行二分类;语义判别器用于判别生成器生成句子的语义真假,幽默判别器用于判别生成器生成句子的幽默真假。
[0073]
生成器通过蒙特卡洛搜索方法得到完整的语句后,将给定的前半句分别与生成器
生成的后半句与幽默语料中真实的后半句组成fake humor和real humor,并打上相应的标签,通过语义判别器和幽默判别器分别进行判别,语义判别器得到语义判别分数sf,幽默判别器得到幽默判别分数hf,将两部分的分数通过权重参数w
sh
组合拼接为shf,利用得到的shf指导训练生成器;
[0074]
shf=w
sh
·
(sf,hf)。
[0075]
本发明的另一目的在于提供一种应用所述的幽默文本自动生成方法的幽默文本自动生成系统,所述幽默文本自动生成系统包括:
[0076]
数据处理模块,用于构建语料库并进行数据的预处理;
[0077]
模型训练模块,用于进行预训练,构建幽默文本生成模型,生成幽默文本;
[0078]
评价模块,用于分别进行自动评级和人工评价。
[0079]
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
[0080]
提出新的幽默文本生成任务,输入上半句,自动生成下半句,下半句是上半句的翻转;构建基于生成对抗网络的幽默文本生成模型amq-gan;采用双判别器,分别提取语义特征和幽默特征,由语义特征判别器指导语义通顺、主题一致的语句生成,由幽默特征判别器指导具有不一致性、歧义性和双关语的幽默特征的语句的生成;采用基于对比学习的数据增强技术,并采用prompt设置特定的幽默文本训练模板,使生成的文本更能突出幽默的特征。
[0081]
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
[0082]
提出新的幽默文本生成任务,输入上半句,自动生成下半句,下半句是上半句的翻转;构建基于生成对抗网络的幽默文本生成模型amq-gan;采用双判别器,分别提取语义特征和幽默特征,由语义特征判别器指导语义通顺、主题一致的语句生成,由幽默特征判别器指导具有不一致性、歧义性和双关语的幽默特征的语句的生成;采用基于对比学习的数据增强技术,并采用prompt设置特定的幽默文本训练模板,使生成的文本更能突出幽默的特征。
[0083]
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的幽默文本自动生成系统。
[0084]
结合上述的技术方案和解决的技术问题,请从以下几方面分析本发明所要保护的技术方案所具备的优点及积极效果为:
[0085]
第一、针对上述现有技术存在的技术问题以及解决该问题的难度,紧密结合本发明的所要保护的技术方案以及研发过程中结果和数据等,详细、深刻地分析本发明技术方案如何解决的技术问题,解决问题之后带来的一些具备创造性的技术效果。具体描述如下:
[0086]
本发明提出了一种新的幽默文本生成任务:输入上半句,自动生成下半句,下半句是上半句的翻转,这种上下两个半句的形式,长度适中,既考虑了上下文的联系又能凸显幽默的本质。
[0087]
针对该任务本发明提出了基于生成对抗网络的毒鸡汤幽默文本生成模型(amq-gan,anti-motivational quotes),输入文本的上半句,由生成器生成含有幽默特征的下半
句,由判别器评价生成文本的语义一致性和幽默特性。本发明提供的模型主要通过下面的方法提升生成文本的语义一致性和幽默特性:1)为了解决现有幽默文本语料规模较小的问题,本发明通过基于simsce对比学习方法进行数据增强;2)为了更好的满足逻辑一致性以及幽默特性,本发明通过添加prompt模板的方式以更好学习预训练模型中的幽默特性;3)为了兼顾文本的主题约束、行文通顺以及幽默的要求,本发明对生成器生成的文本向量先进行向量分解,然后对其语义特征和幽默特征分别评判,经加权后共同指导生成器的文本生成。在人工收集构建的数据集上的实验结果验证了本发明模型的有效性和可行性,bleu指标和人工幽默评判上都有很大的提高。
[0088]
本发明提出的模型综合利用了多种手段来提升幽默文本开放性生成的性能:
[0089]
(1)引入对比学习技术simcse,通过对比学习得到了更多语义相近的句子,学习到了更多原始文本中的相似特性,从而在文本生成时产生了更多相似的词语,一定程度上解决了幽默文本数据集稀缺的问题,说明simcse技术对模型学习语义特征起到了积极的作用。
[0090]
(2)通过引入prompting技术后,使模型有效学习到了预训练语言模型中自带的幽默特征,不同于以往预训练模型的下游任务,prompt模板的设置使幽默文本生成任务更接近预训练语言模型,借助prompt模板可以有效的从预训练模型提取的大量特征中学习到幽默特征,从而产生更多的幽默,prompting技术的引入有效提升了模型对幽默特征的学习能力。
[0091]
(3)在上述系统的基础上,本发明又引入了双判别器,语义特征判别器和幽默判别器对生成器生成具有语义特征和幽默特征的文本都起到了关键的指导作用,相比较gans网络中的单判别器指导,本发明提出的两个判别器能更好的促进生成器生学习文本中的语义信息和幽默信息,从而在模型生成中产生了更多符合要求的开放式幽默文本。
[0092]
第二,把技术方案看做一个整体或者从产品的角度,本发明所要保护的技术方案具备的技术效果和优点,具体描述如下:
[0093]
本发明提出毒鸡汤幽默文本生成任务,该任务更符合日常交流生活中的对话特点,因此更能体现幽默文本生成任务的本质。本发明设计amq-gan模型,通过simcse技术、prompting技术、语义特征判别和幽默特征判别器,有效指导生成器生成了具有语义特征和幽默特征的开放式文本。实验结果表明,本发明提出的模型在一定程度上实现了开放性幽默文本的要求。
[0094]
第三,作为本发明的权利要求的创造性辅助证据,还体现在以下几个重要方面:
[0095]
(1)本发明的技术方案填补了国内外业内技术空白:
[0096]
幽默文本生成任务作为文本生成领域的重要研究内容,其中针对幽默短文本相关的研究尚处于起步阶段,且难度较大。其原因在于该任务针对的文本长度较短,现有方法很难直接从短文本中获取足够的上下文信息并从中提取语义特征和幽默特征,想要产生符合要求的幽默语句,需要借助丰富的外部知识和语言学基础。已有少部分研究针对幽默短文本任务展开研究,然而过多的引入外部知识容易造成参数过多增加模型难度,且容易忽略主题一致等语义特征,生成的语句往往存在与前文不相关的问题。
[0097]
本发明立足于此,提出一种短文本的新型幽默文本生成任务:毒鸡汤幽默文本生成任务。该任务生成的毒鸡汤文本类型,文本较短,符合人际交往中简短对话的形式,幽默
效果突出,满足幽默短文本生成任务的特点。针对该任务提出了毒鸡汤幽默文本生成模型,该模型融合数据增强技术和prompting技术,使用语义特征判别器和幽默特征判别器双判别器充分学习短文本中的语义信息和幽默信息,并通过实验验证了该模型解决任务的有效性。因此本发明提出了一种新型的幽默短文本生成任务,并提供了相应的方法。
[0098]
(2)本发明的技术方案是否解决了人们一直渴望解决、但始终未能获得成功的技术难题:
[0099]
人们对于幽默文本生成任务的研究一直专注于生成具备开放性的高质量幽默文本,然而由于幽默文本生成过程中不仅要考虑语句本身的语义通顺还要兼顾相关的幽默特性,要在训练集外的开放式文本上生成笑话更具有难度。目前大多数幽默文本生成采用的为基于模板的方法,此种方法需要大量的人工标注,耗时耗力,且生成的笑话来源于特定的模板,并不具有开放性幽默文本生成的特点,仅有少部分研究生成了具备一定开放性的幽默文本,但是生成的幽默文本比例较低且幽默文本质量不高,即存在语句不通顺或者幽默特性不足的问题。
[0100]
除了方法的限制外,幽默文本生成领域还存在一个重要挑战:公开幽默数据集的匮乏。幽默数据集作为幽默文本生成任务的基础,在国内研究现状中十分稀缺,因此如何在小规模幽默文本数据集上进行幽默文本生成任务研究成为了又一难题。
[0101]
本发明针对幽默文本生成现状,致力于由小规模数据集上生成高质量的开放性幽默文本。针对该任务特点,提出了基于生成对抗网络的毒鸡汤幽默文本生成模型(amq-gan,anti-motivational quotes),并通过自行收集预处理数据集,构建了一定规模的中文幽默文本语料库。在该语料库上训练后的amq-gan模型取得了优于已有方法的效果,生成了质量较高的开放性幽默文本,实现了在小规模数据集上生成具备一定开放性的高质量幽默文本。
附图说明
[0102]
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
[0103]
图1是本发明实施例提供的幽默文本自动生成方法流程图;
[0104]
图2是本发明实施例提供的幽默文本自动生成系统结构框图;
[0105]
图3是本发明实施例提供的幽默文本自动生成系统构架图;
[0106]
图4是本发明实施例提供的amq-gan模型幽默文本生成框架示意图;
[0107]
图5是本发明实施例提供的amq-gan模型生成器的强化学习过程示意图;
[0108]
图中:1、数据处理模块;2、模型训练模块;3、评价模块。
具体实施方式
[0109]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0110]
针对现有技术存在的问题,本发明提供了一种幽默文本自动生成方法、系统、介质、设备及终端,下面结合附图对本发明作详细的描述。
[0111]
一、解释说明实施例。为了使本领域技术人员充分了解本发明如何具体实现,该部分是对权利要求技术方案进行展开说明的解释说明实施例。
[0112]
如图1所示,本发明实施例提供的幽默文本自动生成方法包括以下步骤:
[0113]
s101,采用基于simcse对比学习的数据增强技术,对同一个句子生成多个不同的句向量;
[0114]
s102,采用prompting技术,添加对文本幽默效果进行评判的第三句;
[0115]
s103,在生成对抗的过程中,采用语义特征判别器和幽默特征判别器,对生成的句子分别进行语义判别和幽默判别。
[0116]
如图2所示,本发明实施例提供的幽默文本自动生成系统包括:
[0117]
数据处理模块1,用于构建语料库并进行数据的预处理;
[0118]
模型训练模块2,用于进行预训练,构建幽默文本生成模型,生成幽默文本;
[0119]
评价模块3,用于分别进行自动评级和人工评价。
[0120]
本发明实施例提供的幽默文本自动生成系统构架图如图3所示。
[0121]
下面结合具体实施例对本发明的技术方案作进一步的说明。
[0122]
本发明聚焦于开放式幽默短文本生成,提出了一个新的任务:毒鸡汤类型格言的自动生成器。输入名人名言的前半句,由模型自动生成颠覆或反转前半句语义的后半句从而达到“情理之中,意料之外”的效果。例如,输入“上帝在给你关上一扇门的时候”,输出为“还会给你的脑袋夹一下”。这类幽默文本生成任务,由于文本较短,符合人际交往中简短对话的形式,幽默效果突出,更能体现幽默文本生成任务的开放性幽默要求。
[0123]
针对此任务,本发明提出了基于生成对抗网络的毒鸡汤幽默文本生成模型(amq-gan,anti-motivational quotes)。输入文本的上半句,由生成器生成含有幽默特征的下半句,由判别器评价生成文本的语义一致性和幽默特性。模型主要通过下面的方法提升生成文本的语义一致性和幽默特性:
[0124]
1)为了解决现有幽默文本语料规模较小的问题,通过基于simsce对比学习方法进行数据增强;2)为了更好的满足逻辑一致性以及幽默特性,通过添加prompt模板的方式以更好学习预训练模型中的幽默特性;3)为了兼顾文本的主题约束、行文通顺以及幽默的要求,对生成器生成的文本向量先进行向量分解,然后对其语义特征和幽默特征分别评判,经加权后共同指导生成器的文本生成。在人工收集构建的数据集上的实验结果验证了该模型的有效性和可行性,bleu指标和人工幽默评判上都有很大的提高。
[0125]
一、问题的定义
[0126]
在本任务中,给定一个长度为m的前半句作为输入:s=[w1,

,wi,

,wm],通过模型自动生成出一个长度为n的后半句s

=[w
′1,

,w
′j,

,w
′n],使s与s

构成的整个文本形成一个颠覆原有认知,达到反差、讽刺效果的笑话。前后两句话构成了一种毒鸡汤文,通过模型输出的笑点句产生幽默的效果,一些幽默文本示例如表1所示。
[0127]
表1幽默文本示例
[0128][0129]
二、amq-gan模型
[0130]
本发明采用了基于目标幽默特征提取生成对抗网络的幽默文本生成方法。为了进一步提高幽默文本生成的质量,主要采用了下面的方法:
[0131]
1)由于现有的中文幽默文本语料较少,本发明采用了基于simcse对比学习的数据增强技术,对同一个句子生成多个不同的句向量,从而缓解了语料偏少的问题;
[0132]
2)为了更好的适应预训练模型,使模型不断学习文本的潜在幽默特征,本发明采用了prompting技术,添加了对文本幽默效果进行评判的第三句,提高了模型对预训练语言模型幽默特征的学习能力;
[0133]
3)在生成对抗的过程中,为了更好的指导生成器生成幽默语句,采用语义特征判别器和幽默特征判别器,对生成的句子分别进行语义判别和幽默判别。语义特征判别器主要负责判别前后语句语义、主题是否一致以及是否通顺等;而幽默特征判别器主要通过不一致性、双关、谐音等幽默特征来判别文本的幽默质量,两个判别器的输出得分经加权来共同指导生成器文本的生成。
[0134]
amq-gan模型主要由预训练、对抗训练、语义特征和幽默特征提取三部分组成,整体架构如图4所示。
[0135]
1、预训练部分
[0136]
预训练包括对生成器g、语义特征判别器和幽默特征判别器的预训练。采取预训练的原因一是为了让生成器和判别器在对抗生成网络中有一个良好的起点,提高训练的速度;二是提前训练好一个具备良好功能的生成器,减轻幽默数据集过少带来的不利影响。生成器采用了gpt-2模型,首先使用50万条常见的对话语句对生成器进行预训练,使其能根据输入生成通顺、流畅的一般性回复。本发明采用双判别器,即语义特征判别器和幽默特征器。通过预训练生成器生成的文本分别与常见对话和幽默文本加入标签构建数据集,前者构建为语义数据集训练语义特征判别器,后者构建为幽默数据集训练幽默特征判别器。
[0137]
2、对抗训练部分
[0138]
对抗训练借鉴goodfellow等人提出的gan(generative adversarial networks)的改进模型,采用的最优化目标函数如式(1)所示:
[0139][0140]
其中,x表示服从真实数据分布的真实样本,d(x)表示判别器对样本x判别为真实样本的概率,g(z)是生成器生成的虚假样本。对生成器的优化就是最小化log(1-d(g(z))),使生成器生成的样本能够欺骗判别器,对判别器的优化则是最大化log(d(x)) log(1-d(g(z))),使判别器能够有效区分真实样本和虚假样本,通过生成器和判别器的训练迭代,最
终促进生成器生成能够欺骗判别器的“真实样本”。本发明在此基础上,引入了双判别器对文本的语义特征和幽默特征分别判别,更加适合本发明所研究的幽默文本生成任务。
[0141]
2.1生成器训练
[0142]
生成器采用的是预训练后gpt-2模型,为了使模型在小规模幽默文本数据集充分学习到幽默特征信息,本发明在生成器训练阶段中引入了对比学习技术、prompting技术和强化学习方法。
[0143]
(1)基于对比学习的数据增强
[0144]
本发明为了解决难以在小规模样本中学习幽默特征的问题,采用了simcse技术对幽默文本进行数据扩充。在训练过程中,通过修改模型dropout mask大小,增加了输入文本的向量表示,并且同一输入文本的不同向量表示彼此之间拉近,而不同输入文本的向量表示则彼此疏远,从而使得扩充后的幽默文本向量彼此更加接近。通过simcse技术扩充的句向量的质量高于以往工作,利用数据扩充解决了小规模样本在幽默特征上提取不足的问题。
[0145]
(2)引入提示(prompting)技术
[0146]
提示技术已经被证明在小规模数据集更能适应预训练模型,不需要引入额外的参数就可以使预训练模型与下游任务保持一致。因此,本发明为了更好的使下游任务学习到预训练语言模型中幽默文本的特征,在生成器中的训练中,对样本插入了prompt模板,从而使模型有效学习语言模型中幽默特征。prompt模板决定了模型的效果和文本生成的质量,本发明手动设置了4个提示模板来获取最优模型,如表2所示。本发明在幽默文本的前、中、后位置分别添加了不同的提示,实验发现,前缀性的模板对幽默文本的产生更有效。
[0147]
表2模板示例
[0148][0149]
(3)强化学习
[0150]
在生成器训练过程中,将给定幽默语料的前半句和生成器生成的后半句进行拼接组合的句子,分别输入到语义特征判别器和幽默特征判别器得到语义奖励分数和幽默奖励分数,从而指导生成器的生成。然而生成器在训练过程中,一次只能输出一个单词,但判别器只能对一个句子序列进行判别,所以为了判别每个单词的语义得分和幽默得分,本发明采用了蒙特卡洛搜索方法对生成器的语句进行搜索补充,如图5所示。
[0151]
在生成器训练过程中,对每一个状态都通过蒙特卡洛搜索方法进行补齐,得到一个完整的句子序列,将序列分别送入语义判别器和幽默判别器就可以得到该状态下的语义奖励分数和幽默奖励分数的加权值,对所有状态获取奖励分数后,利用该奖励对生成器进行策略梯度更新,从而指导生成器生成符合要求的幽默文本。
[0152]
2.2判别器训练
[0153]
语义判别器和幽默判别器均采用lstm网络,对输入的句子进行二分类。语义判别
器用来判别生成器生成句子的语义真假,幽默判别器用来判别生成器生成句子的幽默真假。
[0154]
生成器通过蒙特卡洛搜索方法得到完整的语句后,将给定的前半句分别与生成器生成的后半句与幽默语料中真实的后半句组成fake humor和real humor,并打上相应的标签,通过语义判别器和幽默判别器分别进行判别,语义判别器得到语义判别分数sf,幽默判别器得到幽默判别分数hf,将两部分的分数通过权重参数w
sh
组合拼接为shf,利用得到的shf来指导训练生成器。
[0155]
shf=w
sh
·
(sf,hf)
ꢀꢀꢀꢀꢀꢀ
(2)
[0156]
3、语义特征和幽默特征提取
[0157]
为了加强模型对幽默特征和语义特征的学习能力,本发明引入了语义特征和幽默特征提取模块,用来指导生成器生成具有幽默特征和语义特征的文本。本发明对生成器的语句分别从语义上和幽默性上进行了单词级别的计算,以得到奖励分数:
[0158]
(1)语义特征提取
[0159]
主要通过话题一致性、语义通顺程度、普遍性来判别生成文本的语义特征。
[0160]
1)话题一致性
[0161]
本发明认为前后两句组成的句向量词义距离较近则讨论的话题也比较一致:
[0162]
q1=cos(s,s

)
ꢀꢀꢀꢀꢀꢀꢀ
(3)
[0163]
2)语义通顺程度
[0164]
语义通顺程度是评价文本的语义基础指标,本发明通过计算给定幽默文本主体句s生成笑点句s

的前向概率,以及给定笑点句s

生成主体句的后向概率来评估生成幽默文本的语义通顺程度:
[0165]
q2=logp(s

|s) logp
backward
(s|s

)
ꢀꢀꢀꢀꢀꢀ
(4)其中,p(s

|s)计算生成幽默文本的前向概率,p
backward
(s|s

)则计算后向概率。
[0166]
3)普遍性
[0167]
本发明认为幽默文本往往来源于日常生活中常见的、普遍的词语,利用50w大规模语料数据集作为常见词语集,通过计算笑点句中的词语出现在常见词语集的概率来分析该笑点句是否具有普遍性。
[0168]
q3=logp(wi)
ꢀꢀꢀꢀꢀꢀ
(5)
[0169]
(2)幽默特征提取
[0170]
幽默特征判别器主要是根据目标幽默特征提取模块来判断文本幽默的质量,提取的幽默特征如下:
[0171]
1)歧义性
[0172]
歧义是产生笑话的重要条件之一,因此歧义特征可以作为笑话的一个重要组成部分。本发明认为生成的幽默文本中含有的歧义词越多,该文本就更加有趣可笑。
[0173][0174]
其中ambiguities(wi)表示笑话中第i个词具有不同义项的数量。
[0175]
2)语音相似性
[0176]
押韵属性是笑话的重要特征之一。押韵使两个不同的字音调、韵母相同,从而产生
笑点。本发明通过计算幽默文本主体句和笑点句中押韵词的个数,来评价生成文本的语音相似性。
[0177][0178]
其中rhymes(s,s

)表示幽默文本中主体句与笑点句中押韵词的个数,n代表幽默文本中主体句与笑点句的总词数。
[0179]
3)不一致性
[0180]
不一致理论认为笑话的主体句与笑点句之间存在的矛盾和冲突往往能使读者发笑,该理论是幽默语言学中幽默判别的重要指标,也是现在幽默语言学普遍接受的理论。所以,考虑幽默文本主体句和笑点句组成的词语集vs和vs′
,如果其中存在两个词语之间的相似度越小,则认为前后语句存在的矛盾越大。
[0181]
q6=min{cos(vs,vs′
)}
ꢀꢀꢀꢀꢀꢀꢀ
(8)
[0182]
二、应用实施例。为了证明本发明的技术方案的创造性和技术价值,该部分是对权利要求技术方案进行具体产品上或相关技术上的应用实施例。
[0183]
本发明提出的amq-gan模型不仅考虑到适应预训练模型,而且在对抗训练中也对文本的语义特征和幽默特征进行了全面提取和学习,生成的幽默文本在通顺程度、主题一致性、幽默程度均优于基线模型,所以本发明提出的方法可生成更开放式幽默文本。本发明模型生成的典型幽默文本示例如表3所示。
[0184]
表3幽默文本输出示例
[0185][0186]
三、实施例相关效果的证据。本发明实施例在研发或者使用过程中取得了一些积极效果,和现有技术相比的确具备很大的优势,下面内容结合试验过程的数据、图表等进行描述。
[0187]
本发明筛选了1000条幽默文本语料作为测试样本,把测试样本划分为前半句和后半句,给定前半句输入,由模型生成出的后半句与前半句组成的1000条幽默文本,记为自动评价样本t-1000,采用自动评价bleu方法和人工评价方法对生成样本t-1000进行测试,从而验证模型的有效性。由于人工评价的代价过高,本发明代码在t-1000随机筛选出500条样本作为人工评价样本,记为人工评价样本t-500。
[0188]
同时,为了验证本发明模型生成的幽默文本是否具有开放性,本发明对模型进行了开放性测试。在微博常见对话中,随机选取了100条样本,将测试样本的前半句输入到模
型中,由模型输出后半句,将两部分组成100条模型输出的开放式幽默文本,记为t-100样本,采用人工评价对开放式样本进行评价。
[0189]
模型的对比方法采用谭红叶等人提出的汉语幽默计算模型,该模型基于生成对抗网络,生成器和判别器均采用双层lstm,通过对生成语句直接计算不一致性、语音相似性等幽默特征来指导生成器进行幽默文本生成。
[0190]
本发明的评价方法主要采用bleu自动评价和人工评价。bleu是机器翻译等自然语言生成任务中使用最广泛的自动评价指标之一,bleu指标利用n-gram比较幽默文本的前半句和后半句文之间的相似性,n-gram值越高生成的文本相似程度也越高,本发明采用bleu-4值对模型的结果进行自动评价。
[0191][0192]
其中n=4。pn计算每个n-gram最相似的候选句子,代表文本生成的准确率,bp为长度惩罚因子,目的是避免评价偏向于长度过短的语句,提高文本生成的召回率。wn是对pn的加权,设置大小为1/n,即1/4。
[0193]
对于创造性的幽默文本生成,模型生成的赋有幽默性的语句可能和人类产生的幽默话语有着显著的差别,所以利用n-gram对模型进行自动评价并不理想。因此,本发明对每个模型生成的幽默文本都进行了人工评估。本发明设置了三个打分项:1)文本的语义通顺程度1-5分;2)文本的主题一致性共分成1-5分;3)幽默程度:1-5分。对人工评价样本t-500和t-100进行打分,每个段子由3个人打分,若加和分值高于9分,且每项分数不低于2分,则认为生成的语句为幽默文本,否则为非幽默文本。本发明对在测试样本t-1000上对不同模型进行了bleu-4自动评价,在测试样本t-500上对三个模型进行了人工评价。同时,为了验证模型生成的幽默文本是否具有开放性,在开放性样本t-100上进行了人工评价。其中,joke代表被人工评价认定为幽默的文本占生成文本的比例。评价结果如表4所示。
[0194]
表4自动和人工评价结果
[0195][0196]
从实验结果可以看出,本发明提出的amq-gan模型在bleu-4自动评价指标和人工评价指标上均优于基线模型。seq2seq没有引入额外的参数来学习幽默特征,所以效果一般。gans模型虽然引入额外的参数来学习幽默特征,但由于没有充分发挥预训练模型的作用,并且采用单判别器对幽默特征针对性的提取不够,因此效果还有待提升。
[0197]
表5三种模型的不同输出示例
[0198][0199]
三个模型生成的幽默文本示例如表5所示。从给定的示例可以看出三种模型均可生成较为通顺且与前半句主题一致的后半句,这符合预训练模型的特点,即通过大规模数据集学习到了语言特征。然而在幽默程度上,seq2seq模型由于没有关注幽默特征,生成的语句几乎不具有幽默性,gans模型在预训练模型的基础上采用对抗方法,指导生成器生成了幽默文本,但由于缺乏对幽默特征的全面学习,幽默文本生成的比例不高。通过开放性的测试结果可以看出,本发明提出的模型在joke
t-100
(%)指标上优于基线模型,验证了模型在一般、开放的文本进行幽默生成的有效性。本发明提出的模型综合利用了多种手段来提升幽默文本开放性生成的性能:
[0200]
(1)引入对比学习技术simcse,通过对比学习得到了更多语义相近的句子,学习到了更多原始文本中的相似特性,从而在文本生成时产生了更多相似的词语,一定程度上解决了幽默文本数据集稀缺的问题,说明simcse技术对模型学习语义特征起到了积极的作用。
[0201]
(2)通过引入prompting技术后,使模型有效学习到了预训练语言模型中自带的幽默特征,不同于以往预训练模型的下游任务,prompt模板的设置使幽默文本生成任务更接近预训练语言模型,借助prompt模板可以有效的从预训练模型提取的大量特征中学习到幽默特征,从而产生更多的幽默,prompting技术的引入有效提升了模型对幽默特征的学习能力。
[0202]
(3)在上述系统的基础上,本发明又引入了双判别器,语义特征判别器和幽默判别器对生成器生成具有语义特征和幽默特征的文本都起到了关键的指导作用,相比较gans网络中的单判别器指导,本发明提出的两个判别器能更好的促进生成器生学习文本中的语义信息和幽默信息,从而在模型生成中产生了更多符合要求的开放式幽默文本。
[0203]
综上,本发明提出毒鸡汤幽默文本生成任务,该任务更符合日常交流生活中的对话特点,因此更能体现幽默文本生成任务的本质。本发明设计amq-gan模型,通过simcse技术、prompting技术、语义特征判别和幽默特征判别器,有效指导生成器生成了具有语义特
征和幽默特征的开放式文本。实验结果表明,本发明提出的模型在一定程度上实现了开放性幽默文本的要求。
[0204]
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
[0205]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献