CN114580408A - 基于双层注意力联合学习的下联生成方法和装置 - Google Patents

基于双层注意力联合学习的下联生成方法和装置 Download PDF

Info

Publication number
CN114580408A
CN114580408A CN202210230690.4A CN202210230690A CN114580408A CN 114580408 A CN114580408 A CN 114580408A CN 202210230690 A CN202210230690 A CN 202210230690A CN 114580408 A CN114580408 A CN 114580408A
Authority
CN
China
Prior art keywords
word
phrase
words
layer
attention
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210230690.4A
Other languages
English (en)
Other versions
CN114580408B (zh
Inventor
张宇
卜天
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Sci Tech University ZSTU
Original Assignee
Zhejiang Sci Tech University ZSTU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Sci Tech University ZSTU filed Critical Zhejiang Sci Tech University ZSTU
Priority to CN202210230690.4A priority Critical patent/CN114580408B/zh
Publication of CN114580408A publication Critical patent/CN114580408A/zh
Application granted granted Critical
Publication of CN114580408B publication Critical patent/CN114580408B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Data Mining & Analysis (AREA)
  • Probability & Statistics with Applications (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种基于双层注意力联合学习的下联生成方法和装置,采用了一种新颖的“语料‑短语‑词语”的三层文本结构,并在此基础上使用双层注意力联合学习模型来生成下联。模型内部引入了双层注意力机制分别捕获短语层和词语层的关注信息,外部使用联合学习方法将对联的全部子句进行迭代训练,从而优化模型参数。本发明进行了丰富的实验,其中,双层注意力联合学习模型的BLEU值为0.374,该得分明显优于现有使用“词”嵌入的模型。同时,在字数一致率和人工评估等指标上也验证了方法的有效性。

Description

基于双层注意力联合学习的下联生成方法和装置
技术领域
本发明属于计算机数据处理技术领域,具体涉及一种基于双层注意力联合学习的下联生成方法和装置。
背景技术
对联是一种独具特色且历史悠久的中国传统艺术,对联的艺术形式严谨,要求上下联字数相同,语义相对,语调的平仄协调。随着深度学习在自然语言领域中各项技术的发展,针对汉语的文本生成任务也得到了更多的关注,其中,对联的自动生成下联任务是一项极具创新性的研究。与对话系统、机器翻译、诗歌生成等任务不同,下联生成任务不仅需要得到有效的输出,更需要输出下联与输入上联之间满足字数、语义、语调等要求。
近几年,对联的自动生成研究得到了广泛的重视,如张开旭,孙茂松.统计与规则相结合的古文对联应对模型[J].中文信息学报,2009,23(1):100中分别利用了软硬两个规则来完成对联严谨的形式要求;又如Jiang L,Zhou M.使用统计MT方法生成中文对联[C].第22届计算语言学国际会议论文集(Coling 2008),北京,中国,2008:377-384中通过使用统计机器翻译方法,对上联进行“翻译”从而生成下联。最近,基于深度学习的方法在下联生成任务中得到了广泛应用,如黄文明,卫万成,邓珍荣.基于序列到序列神经网络模型的古诗自动生成方法[J].计算机应用研究,2019,12.Research on Automatic中从用户输入的不定长信息中分别提取对联上下句的关键词,进而利用关键字来生成对联;又如Yan R,LiCT,Hu X,et al.具有神经网络结构的对联生成[C]//计算语言学协会第54届年会论文集(第1卷:长论文),柏林,德国,2016:2347-2357中使用seq2seq(sequence to sequence,Sutskever et al.,2014)模型来生成下联,然后引入卷积神经网络(CNN)迭代优化;又如Zhang J,Wang Y,Yuan Z,et al.Personalized real-time movie recommendationsystem:Practical prototype and evaluation[J].Tsinghua中使用Transformer模型(Ashish Vaswani.,2017)来生成下联,同时融合了词性向量来提升生成下联与输入上联之间的词性对应。可见目前使用基于注意力机制(Bahdanau et al.2014)的序列到序列模型生成下联是一种流行的方法,该方法将文本中的字或词语在词嵌入阶段转化为数字向量,并通过训练使模型自动选择恰当的字或词语进行输出,注意力机制使模型加强对相关信息的关注,从而解决了序列到序列模型长期记忆缺失的问题。
但在该流行方法的使用上也存在一个普遍现象,即通常在词嵌入阶段使用“字”的嵌入而不是“词”的嵌入。该现象的出现是由于现有分词工具对词语的分隔不准确造成的,特别当语料库中存在一定低频词时,如对联语料库中的典故、成语和古汉语等,现有分词工具的分隔更加无法保证,它们或将这些词语拆分成了多个词语,或将这些词语的一部分和相邻的字连接成了一个词语。分隔工具的限制导致分词后上下联中各词语无法对应,使用该语料训练模型会造成生成下联的语义割裂和字数不一致的问题。
综上所述,“字”的嵌入将对联拆分字,该方法虽然保证了对联的逐字对应,但也存在一定缺陷。具体来说:1、“字”嵌入破坏了词语的天然语义,如“推敲”是反复斟酌的含义,而“推”和“敲”却表示两个独立的动作。2、“字”嵌入影响了上下联中词语的对应关系,如上联:“淡泊以明志”中的词语“淡泊”和下联“宁静而致远”中的词语“宁静”语义对应,但“字”嵌入却将词的对应拆分为字的对应,即“淡”对应“宁”和“泊”对应“静”。使用“字”嵌入的模型会在下联生成中进行逐字输出,而字对字的生成下联方式难以保留原有词对词的生成下联的韵味,这导致目前的下联生成方法无法良好满足对联需求。
发明内容
本发明的目的之一在于提供一种基于双层注意力联合学习的下联生成方法,提高对联生成中上下联的对仗性,满足对联生成的各方面需求。
为实现上述目的,本发明所采取的技术方案为:
一种基于双层注意力联合学习的下联生成方法,所述基于双层注意力联合学习的下联生成方法,包括:
将语料库中的上下联分别转化为符合“语料-短语-词语”三层文本结构的训练集,包括:
对上下联进行分词得到有序集合;
获取对联中上联和下联对应的有序集合,利用最小公有和数构造短语;
基于所构造的短语,将上下联转化为“语料-短语-词语”三层文本结构表示,得到训练集;
基于“语料-短语-词语”三层文本结构构建双层注意力模型;
采用联合学习方法利用训练集对所述双层注意力模型进行训练得到下联生成模型;
采用所述下联生成模型,针对输入的上联自动生成下联。
以下还提供了若干可选方式,但并不作为对上述总体方案的额外限定,仅仅是进一步的增补或优选,在没有技术或逻辑矛盾的前提下,各可选方式可单独针对上述总体方案进行组合,还可以是多个可选方式之间进行组合。
进一步的,所述获取对联中上联和下联对应的有序集合,利用最小公有和数构造短语,包括:
取分词工具分词后的上联为有序集合A:[a1,a2,...,af,...],分词后的下联为有序集合B:[b1,b2,...,bg,...],f为集合A中词语位置的下标,af表示集合A中第f个词语;g表示集合B中词语位置的下标,bg表示集合B中第g个词语,用“| |”表示词语的字数,|af|表示集合A中第f个词语的字数,|bg|表示集合B中第g个词语的字数;
基于集合A和集合B构造短语,包括:
比较|a1|与|b1|的大小:取f=1,g=1,若|a1|>|b1|,则g=g+1并执行下一步;若|a1|<|b1|,则f=f+1并执行下一步;若|a1|=|b1|,则将[a1]作为上联中的一个短语,将[b1]作为下联中的一个短语,并执行循环判断;
比较|a1|+…+|af|与|b1|+…+|bg|的大小:若(|a1|+…+|af|)>(|b1|+…+|bg|),则g=g+1并重新比较|a1|+…+|af|与|b1|+…+|bg|的大小;若(|a1|+…+|af|)<(|b1|+…+|bg|),则f=f+1并重新比较|a1|+…+|af|与|b1|+…+|bg|的大小;若(|a1|+…+|af|)=(|b1|+…+|bg|),则将[a1,a2,...,af]作为上联中的一个短语,将[b1,b2,...,bg]作为下联中的一个短语并执行循环判断;
循环判断:若集合A中存在词语af+1,则将集合A中的词语a1,a2,...,af删除,把第f个后面的词语af+1,af+2,...整体前移,af+1重新作为集合A中的第一个词语a1,同样地,将集合B中的词语b1,b2,...,bg删除,把第g个后面的词语bg+1,bg+2,...整体前移,bg+1重新作为集合B中的第一个词语b1,并重新执行比较|a1|与|b1|的大小;当集合A中不存在词语af+1时,循环结束,短语构造完成。
进一步的,所述基于所构造的短语,将上下联转化为“语料-短语-词语”三层文本结构表示,包括:
设定短语内词语的个数阈值为X1,“语料-短语-词语”三层文本结构内短语的个数阈值为X2
将位于同一上联或下联中的短语进行有序排列得到初始结构;
对初始结构中,短语内词语个数少于个数阈值X1的短语添加填充符,对短语个数少于个数阈值X2的添加以填充符构成的短语,得到“语料-短语-词语”三层文本结构表示的上下联。
进一步的,所述双层注意力模型由词语编码器、短语编码器、短语解码器和词语解码器构成。
进一步的,所述词语编码器进行如下处理:
将表示为“语料-短语-词语”三层文本结构的上联中的词语通过嵌入矩阵转化为词向量;
取上联中的短语,将每个短语内的词语的词向量传入双向GRU网络中,得到每个短语对应的短语向量;
取上联中的词语,将每个词语的词向量传入单向GRU网络中,得到每个词语对应的隐藏状态。
进一步的,所述短语编码器进行如下处理:
将所述短语向量传入单向GRU网络中,得到每个短语对应的隐藏状态。
进一步的,所述短语解码器进行如下处理:
在短语解码器的GRU单元的每一次循环中执行如下操作:
将第一指定信息传入GRU单元,得到第一向量;
对第一向量和全部短语的隐藏状态进行矩阵乘法,并将矩阵乘法的结果进行归一化处理,得到短语注意力权重;
利用短语注意力权重对全部短语的隐藏状态进行加权求和得到短语上下文向量;
其中,在短语解码器的GRU单元的第一次循环中,所述第一指定信息为以全部短语的隐藏状态整合而成的上联信息;在短语解码器的GRU单元除第一次循环的其余循环中,所述第一指定信息为上一次循环中得到的第一向量。
进一步的,所述词语解码器进行如下处理:
在短语解码器的GRU单元的每一次循环中,词语解码器对本次循环得到的短语上下文向量进行解码,所述词语解码器进行解码包括:
在词语解码器的GRU单元的每一次循环中执行如下操作:
将第二指定信息传入GRU单元,得到第二向量;
对第二向量和全部词语的隐藏状态进行矩阵乘法,并将矩阵乘法的结果进行归一化处理,得到词语注意力权重;
利用词语注意力权重对全部词语的隐藏状态进行加权求和得到词语上下文向量;
其中,在词语解码器的GRU单元的第一次循环中,所述第二指定信息为短语上下文向量;在词语解码器的GRU单元除第一次循环的其余循环中,所述指定信息为上一次循环中得到的第二向量。
进一步的,所述采用联合学习方法利用训练集对所述双层注意力模型进行训练得到下联生成模型,包括:
依次取上联或下联中的每个短语作为起始短语;
由起始短语起向后取个数为组合数的短语与起始短语组成句子,其中组合数为由0逐一递增的整数,组合数递增至所组成的句子中同时包含起始短语和上联或下联中的最后一个短语;
采用交叉熵函数对每条句子计算损失值;
将所有句子的损失值相加作为下联生成模型的损失值;
以下联生成模型的损失值对双层注意力模型进行训练得到下联生成模型。
本发明的目的之二在于提供一种基于双层注意力联合学习的下联生成装置,提高对联生成中上下联的对仗性,满足对联生成的各方面需求。
为实现上述目的,本发明所采取的技术方案为:
一种基于双层注意力联合学习的下联生成装置,包括处理器以及存储有若干计算机指令的存储器,所述计算机指令被处理器执行时实现基于双层注意力联合学习的下联生成方法的步骤。
本发明提供的基于双层注意力联合学习的下联生成方法和装置,采用了一种新颖的“语料-短语-词语”的三层文本结构,并在此基础上使用双层注意力联合学习模型来生成下联。模型内部引入了双层注意力机制分别捕获短语层和词语层的关注信息,外部使用联合学习方法将对联的全部子句进行迭代训练,从而优化模型参数。本发明进行了丰富的实验,其中,双层注意力联合学习模型的BLEU值为0.374,该得分明显优于现有使用“词”嵌入的模型。同时,在字数一致率和人工评估等指标上也验证了方法的有效性。
附图说明
图1为本发明基于双层注意力联合学习的下联生成方法的流程图;
图2为现有技术中分词工具对语料的划分示意图;
图3为本发明“语料-短语-词语”三层文本结构的结构示意图;
图4为本发明双层注意力模型的结构示意图;
图5为本发明实验中GAbS-词单层可视化注意图;
图6为本发明实验中基于双层注意力的PWbHAN-10-3的可视化注意图;
图7为本发明实验中基于双层注意力的PWbHAN-5-6的可视化注意图;
图8为本发明实验中“首部”测试集对模型性能的影响示意图;
图9为本发明实验中“尾部”测试集对模型性能的影响示意图;
图10为本发明实验中“随机”测试集对模型性能的影响示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本发明。
在完成中国传统对联的下联生成任务时,使用“词”的嵌入还是“字”的嵌入是一项鲜少被讨论的话题。事实上,基于“词”嵌入的方法可以保留词语语义关联性,以词语为整体的对应效果优于基于“字”嵌入的逐字对应。因此本实施例提出了一个基于双层注意力联合学习模型的下联生成方法,来弥补现有研究对“词”嵌入使用的限制。如图1所示,该方法具体包括以下步骤:
S1、将语料库中的上下联分别转化为符合“语料-短语-词语”三层文本结构的训练集。
现有分词工具对语料的划分存在一定的局限性,如图2所示,上联中的“龙衔烛”原本对下联中的“蜃结楼”,而分词后的对联为“龙衔”和“烛”对“蜃”和“结楼”,分词后上下联中词语的字数和语义都无法对应。使用这种语料训练的模型会产生对联字数不一致和语义不对应的问题,如向模型输入词语“龙衔”时,无论模型输出“蜃”还是“蜃结楼”,都不满足对联的要求。另外,当语料库存在大量不对应划分的词语时,模型的输出效果会更加杂乱,对联艺术形式的要求将更难满足。
为了弥补现有分词工具的不足,本实施例提出了一种新颖的“语料-短语-词语”三层文本结构,该结构将上下联中不对应划分的词语转化为对应的短语。如图3所示,短语表示后的上联为[[凤舒][五彩][龙衔,烛]],下联为[[鳌,架][三山][蜃,结楼]](“[]”表示短语),经过短语表示后上下联中各短语字数均一致、语义均对应。
三层文本结构在现有“语料-词语”两层文本结构之上构建了一个短语层,短语层的构建使用了一种最小公有和数的方法,该方法不断地对上下联中相邻词语的字数和进行比较,从而将词语组合为短语。具体而言,包括以下步骤:
S1.1、对上下联进行分词得到有序集合。其中分词所采用的分词工具为现有逻辑,本实施例中不对所采用的分词工具进行限制。
S1.2、获取对联中上联和下联对应的有序集合,利用最小公有和数构造短语,包括:
取分词工具分词后的上联为有序集合A:[a1,a2,...,af,...],分词后的下联为有序集合B:[b1,b2,...,bg,...],f为集合A中词语位置的下标,af表示集合A中第f个词语;g表示集合B中词语位置的下标,bg表示集合B中第g个词语,用“| |”表示词语的字数,|af|表示集合A中第f个词语的字数,|bg|表示集合B中第g个词语的字数。
基于集合A和集合B构造短语,即最小公有和数的短语表示方法步骤为:
1)比较|a1|与|b1|的大小:取f=1,g=1,若|a1|>|b1|,则g=g+1并执行下一步(即步骤2);若|a1|<|b1|,则f=f+1并执行下一步(即步骤2);若|a1|=|b1|,则将[a1]作为上联中的一个短语,将[b1]作为下联中的一个短语,并执行循环判断(即步骤3);
2)比较|a1|+…+|af|与|b1|+…+|bg|的大小:若(|a1|+…+|af|)>(|b1|+…+|bg|),则g=g+1并重新比较|a1|+…+|af|与|b1|+…+|bg|的大小(即重新执行步骤2);若(|a1|+…+|af|)<(|b1|+…+|bg|),则f=f+1并重新比较|a1|+…+|af|与|b1|+…+|bg|的大小(即重新执行步骤2);若(|a1|+…+|af|)=(|b1|+…+|bg|),则将[a1,a2,...,af]作为上联中的一个短语,将[b1,b2,...,bg]作为下联中的一个短语并执行循环判断(即步骤3);
3)循环判断:若集合A中存在词语af+1,则将集合A中的词语a1,a2,...,af删除,把第f个后面的词语af+1,af+2,...整体前移,af+1重新作为集合A中的第一个词语a1,af+1后的词语依次类推更新位置,同样地,将集合B中的词语b1,b2,...,bg删除,把第g个后面的词语bg+1,bg+2,...整体前移,bg+1重新作为集合B中的第一个词语b1,bg+1后的词语依次类推更新位置,并重新执行比较|a1|与|b1|的大小(即重新执行步骤1);当集合A中不存在词语af+1时,循环结束,短语构造完成。
S1.3、基于所构造的短语,将上下联转化为“语料-短语-词语”三层文本结构表示,得到训练集。
在三层文本结构表示中,为了保证不同对联所表示的文本结构的结构相同,本实施例利用填充符来弥补字数较短的对联。具体为设定短语内词语的个数阈值为X1,“语料-短语-词语”三层文本结构内短语的个数阈值为X2;将位于同一上联或下联中的短语进行有序排列得到初始结构;对初始结构中,短语内词语个数少于个数阈值X1的短语添加填充符,对短语个数少于个数阈值X2的添加以填充符构成的短语,得到“语料-短语-词语”三层文本结构表示的上下联。
本实施例实验从网上爬取了约70万对对联语料,经过逐条统计发现,97.6%的语料其短语内词语个数不大于3,91.3%的语料其短语个数不大于10。故为了加快模型编码,本实施例将3作为短语内词语个数的阈值,即取X1=3,将10作为短语个数的阈值,即取X2=10,过滤不符合阈值条件的对联。需要说明的是,当使用其他语料库时,应重新统计语料的短语内词语个数和短语个数取值,然后根据统计结果确定二者的阈值。
由于短语内词语个数阈值为3,且短语个数阈值为10,故需要对各语料词语和短语的个数进行扩展。首先,对于短语内部而言,如果词语个数少于3个,则使用PAD(padding,将不同长度的语料扩展为相同长度时的填充符)将全部短语内词语个数扩展为3。其次,对于语料而言,如果短语个数少于10个,则使用[PAD,PAD,PAD]将全部语料的短语个数扩展至10。整个语料库都通过上述方式进行扩展。仍以图3中所述对联为例,经过两步扩展后的“语料-短语-词语”三层文本结构的表示如下(P是PAD的简写):
上联:[[凤舒,P,P],[五彩,P,P],[龙衔,烛,P],[P,P,P],[P,P,P],[P,P,P],[P,P,P],[P,P,P],[P,P,P],[P,P,P]]
下联:[[鳌,架,P],[三山,P,P],[蜃,结楼,P],[P,P,P],[P,P,P],[P,P,P],[P,P,P],[P,P,P],[P,P,P],[P,P,P]]
S2、基于“语料-短语-词语”三层文本结构构建双层注意力模型。
双层注意力模型利用了三层文本结构来实现下联生成任务,双层注意力模型有效改善现有模型在使用“词”嵌入时,生成下联与输入上联字数不一致的问题。
如图4所示,本实施例应用在下联生成中的双层注意力模型(Phrase Word modelbased on Hierarchical Attention Networks,简称PWbHAN)由词语编码器(或称子词编码器)、短语编码器、短语解码器、词语解码器(或称子词解码器)四部分构成。首先,词语编码器将词语的信息整合为短语的信息,然后,短语编码器将短语的信息整合为语料的信息。接着,短语解码器对10个短语的隐藏状态计算权重,得到与短语解码器GRU单元第t+1次(0≤t≤tp-1)循环相关的短语信息;其中,在短语解码器每一次GRU单元循环的内部,针对其输出的相关短语信息,使用词语解码器对30个词语的隐藏状态计算权重,得到与词语解码器GRU单元第t'+1次(0≤t'≤tw-1)循环相关的词语信息。最后,根据相关词语的信息实现输出。
假定对联语料库中有L条上联ci(1≤i≤L),ci为语料库中的第i条上联,每一条上联中包含10个短语pij(1≤j≤10),pij为语料库中的第i条上联中第j个短语,每一个短语中包含3个词语wijk(1≤k≤3),即wijk表示第i条语句中第j个短语中的第k个词语。特别地,为了模型使用的方便,本实施例另外将词语以其在语句中的位置来表示,如ci中包含了30个词语,故wijk可以另外表示为wiz(1≤z≤30),其中:
z=3×(j-1)+k (1)
1)词语编码器
词语编码器由两部分组成。一部分为短语信息编码—将词语的信息整合起来作为短语的信息,另一部分为词语信息编码—将词语及其附近词语的信息进行整合。将上联语句输入到模型后,词语编码器首先将上联语句的词语通过嵌入矩阵We转化为词向量xijk=We·wijk,带入公式(1)词向量xijk还可以映射为词向量xiz。本实施例使用一个随机初始化的嵌入矩阵We,其参数在训练中不断优化。上述两部分内容取文献Yang Z,Yang D,Dyer C,etal.Hierarchical Attention networks for document classification[C]//Proceedings of the 2016 conference of the North American chapter of theassociation for computational linguistics:human languagetechnologies.Stroudsburg,USA,2016:1480-1489.使用的GRU进行。
11)短语信息编码:
将短语pij内3个词语的词向量xijk(1≤k≤3)传入基于双向GRU网络的编码器中,双向GRU网络从正反两方向进行编码,避免了重视新向量、忽视旧向量的问题。将正向GRU的最后一个输出
Figure BDA0003540408510000101
和反向GRU的最后一个输出
Figure BDA0003540408510000102
进行拼接,得到概括了第j个短语中3个词信息的短语向量xi_pj。本实施例使用下标“p”标记该向量与短语(phrase)信息有关。
Figure BDA0003540408510000103
Figure BDA0003540408510000104
Figure BDA0003540408510000105
重复公式(2_a)-(2_c)过程10次得到全部短语的短语向量xi_pj(1≤j≤10),各短语的编码过程相互独立,X_pi为ci的全部短语向量集合,即:
X_pi=[xi_p1,xi_p2,......,xi_p10] (3)
12)词语信息编码:
将上联ci内30个词的词向量xiz(1≤z≤30)传入基于单向GRU网络的编码器中,单向GRU网络减小了短语信息之间的相互影响。得到每个词语的隐藏状态hi_wz(1≤z≤30)。本实施例使用下标“w”标记该向量与词(word)信息有关。
[hi_w1,hi_w2,......,hi_w30]=GRU(xiz),z∈[1,30] (4)
H_wi为ci的全部词语隐藏状态集合,即:
H_wi=[hi_w1,hi_w2,......,hi_w30] (5)
2)短语编码器
得到全部短语向量集合X_pi后,将上联ci内10个短语的短语向量xi_pj(1≤j≤10)传入基于单向GRU的编码器中,得到了各短语的隐藏状态hi_pj(1≤j≤10),hi_pj编码了j前短语的部分语义,但仍以短语j的语义为主。其中,隐藏状态hi_p10编码了上联ci的全部信息。
[hi_p1,hi_p2,......,hi_p10]=GRU(xi_pj),j∈[1,10] (6)
H_pi为ci的全部短语隐藏状态集合,即:
H_pi=[hi_p1,hi_p2,......,hi_p10] (7)
3)短语解码器
短语解码器对整条上联ci的信息hi_p10进行解码,短语解码器的GRU单元共循环tp次,每次循环使用Attention机制对10个短语向量H_pi计算权重,进而加权求和得到上下文向量
Figure BDA0003540408510000111
(0≤t≤tp-1),
Figure BDA0003540408510000112
整合了短语解码器GRU单元第t+1次循环的相关短语的信息。t是短语编码器GRU单元的循环参数。
当t=0时,将以全部短语信息整合而成的上联信息hi_p10传入GRU单元,得到第一向量
Figure BDA0003540408510000113
对第一向量
Figure BDA0003540408510000114
和全部短语隐藏状态H_pi进行矩阵乘法,其结果传入softmax函数进行归一化处理,最终得到注意力权重
Figure BDA0003540408510000115
(B为本模型设定的batch_size),
Figure BDA0003540408510000116
的第“1”维中记录了10个短语的权重值。利用权重
Figure BDA0003540408510000117
对H_pi加权求和得到短语解码器的上下文向量
Figure BDA0003540408510000118
(简称短语上下文向量),
Figure BDA0003540408510000119
整合了第1次循环中相关短语的信息。当0<t≤tp-1时,将上一次循环中GRU的输出第一向量
Figure BDA00035404085100001110
传入GRU单元得到向量
Figure BDA00035404085100001111
循环(公式8-10)过程tp-1次,共另外得到tp-1个上下文向量
Figure BDA00035404085100001112
(0<t≤tp-1),每个上下文向量
Figure BDA00035404085100001113
都整合了短语解码器GRU单元第t+1次循环中相关短语的信息。过程如下所示:
Figure BDA00035404085100001114
Figure BDA00035404085100001115
Figure BDA00035404085100001116
其中,*表示哈达玛乘积,即向量元素相乘。
4)词语解码器
在短语解码器GRU单元的每一次循环中,词语解码器对其相关短语的信息
Figure BDA00035404085100001117
(0≤t≤tp-1)进行解码,词语解码器的GRU单元共循环tw次,每次循环使用Attention机制对30个词隐藏状态H_wi计算权重,进而对加权求和得到上下文向量
Figure BDA0003540408510000121
(0≤t'≤tw-1),
Figure BDA0003540408510000122
整合了词语解码器GRU单元第t'+1次循环的相关词的信息,t'是词语解码器中GRU单元的循环参数。
当t'=0时,将以相关短语整合而成的上下文向量
Figure BDA0003540408510000123
传入GRU单元,得到第二向量
Figure BDA0003540408510000124
对第二向量
Figure BDA0003540408510000125
和全部词隐藏状态H_wi进行矩阵乘法,其结果传入softmax函数进行归一化处理,最终得到注意力权重
Figure BDA0003540408510000126
Figure BDA0003540408510000127
的第“1”维中记录了30个词的权重值。利用权重
Figure BDA0003540408510000128
对H_wi加权求和得到词语解码器的上下文向量
Figure BDA0003540408510000129
(简称词语上下文向量),
Figure BDA00035404085100001210
整合了第1次循环中相关词的信息。当0<t'≤tw-1,将上一次循环中GRU的输出
Figure BDA00035404085100001211
再次传入GRU单元得到向量
Figure BDA00035404085100001212
循环公式(11)-(13)过程tw-1次,共另外得到tw-1个上下文向量
Figure BDA00035404085100001213
(0<t'≤tw-1),每个上下文向量
Figure BDA00035404085100001214
都整合了词语解码器GRU单元第t'+1次循环中相关词的信息。过程如下所示:
Figure BDA00035404085100001215
Figure BDA00035404085100001216
Figure BDA00035404085100001217
在词语解码器GRU单元的每一次循环中,使用词信息和短语信息共同作为模型的输出考虑因素。具体来说,当词语解码器GRU单元进行第t'+1次循环时,将整合了相关词信息的上下文向量
Figure BDA00035404085100001218
和包含相关短语信息的向量
Figure BDA00035404085100001219
拼接后传入一个1层无偏的MLP网络中,然后经过tanh函数处理得到蕴含输出信息的向量
Figure BDA00035404085100001220
为了使
Figure BDA00035404085100001221
的第“1”维长度映射到下联词典长度上,即将长度wordencoder_hidden_size+phrasedecoder_hidden_size转化为长度len(vocabsecond_line),将
Figure BDA00035404085100001222
再传入一个1层的MLP网络中,其结果传入softmax函数中进行归一化处理,进而得到输出
Figure BDA00035404085100001223
如公式(14)、(15)所示。
Figure BDA00035404085100001224
Figure BDA0003540408510000131
模型输出的过程分别嵌入于短语解码器和词语解码器的两层循环中,外层短语解码器GRU单元循环了tp次,内层词语解码器GRU单元循环了tw次。经过步骤(8)-(15),共得到tp×tw个输出
Figure BDA0003540408510000132
(0≤t≤tp-1,0≤t'≤tw-1)。
S3、采用联合学习方法利用训练集对所述双层注意力模型进行训练得到下联生成模型。
双层注意力模型PWbHAN有效改善了基于“词”嵌入生成下联的字数对应问题,但随着输入上联中短语复杂程度的增加,模型生成下联的水平有一定的下降。进一步实验发现,对模型输入与训练集相关度较高的上联时,如替换或删除上联中的少量短语,模型生成下联的能力较好;但对模型输入与训练集相关度较低的上联时,如随机的从多条上联中选取短语构成上联,模型生成下联的能力不佳,上下联间各短语字数和短语含义的对应水平有所降低。本实施例经过分析认为,该现象的出现是由于训练阶段过于强调上下联整体的对应关系,忽略了上下联中各部分的对应关系。
由于模型PWbHAN的泛化能力有限,当输入与训练语料相似的上联时,模型输出的效果很好;输入与训练语料相关性较小的上联时,模型的输出能力大大减弱。为了解决这个问题,本发明提出双层注意力联合学习模型(Phrase Word model based on HierarchicalAttention Networks and Joint Learning,简称PWbHAN+JL),PWbHAN+JL对训练语料中不定长、不同位置的对联子句都予以重视,从而使得模型测试阶段的泛化能力大幅提升。利用三层文本结构中各对应短语字数相同的特性,本模型将对联语料中全部不定长的相邻短语连接作为子句。
在模型训练中引入交叉熵函数对模型的输出计算损失值
Figure BDA0003540408510000133
符号(1,10)表示模型输出了上联ci中从第1到第10个短语的对应词语,每个短语都输出3个词。本实施例使用
Figure BDA0003540408510000134
表示上联ci对应的真实值(即下联)的one-hot编码,
Figure BDA0003540408510000135
为便于损失的计算,将模型输出的tp×tw
Figure BDA0003540408510000136
(0≤t≤tp-1,0≤t'≤tw-1)拼接为yi,拼接过程以内层词语解码器循环的输出为主序,
Figure BDA0003540408510000137
过程如下所示:
Figure BDA0003540408510000141
Figure BDA0003540408510000142
对循环参数tw和tp的取值进行讨论。由于本实施例中设定的短语内词语个数阈值为3(即短语和词之间的对应比是1:3),且如公式(11)所述词语解码器以短语整合的信息为对象进行解码,故词语解码器负责输出词的循环参数tw一定是3的倍数。又因经过扩展后的对联上句包含3×10=30个词语,故本模型中的循环参数tw和tp分别存在两种对应取值:当内层循环参数tw=3时,外层循环参数tp=10;当内层循环参数tw=6时,外层循环参数tp=5。
在此基础上,本实施例引入联合学习后在模型训练中依次取上联或下联中的每个短语作为起始短语;由起始短语起向后取个数为组合数的短语与起始短语组成句子,其中组合数为由0逐一递增的整数,组合数递增至所组成的句子中同时包含起始短语和上联或下联中的最后一个短语;采用交叉熵函数对每条句子计算损失值;将所有句子的损失值相加作为下联生成模型的损失值;以下联生成模型的损失值对双层注意力模型进行训练得到下联生成模型。
以短语个数阈值=10为例,上联ci可以构造
Figure BDA0003540408510000143
等55个子句,符号(n,m)表示上联ci中从第n到第m个短语连接而成的子句,其中1≤n≤10,n≤m≤10。同样,下联也可以构造55个子句,上下联构造的各个子句一一对应。然后,将ci的每条子句逐条输入到PWbHAN模型中,各子句依次执行公式(2-17)的过程并得到对应损失值
Figure BDA0003540408510000144
1≤n≤10,n≤m≤10。最后,将55个
Figure BDA0003540408510000145
相加作为PWbHAN+JL的损失值Li,计算公式如下:
Figure BDA0003540408510000146
需要说明的是,模型训练为现有公开过程,本实施例中强调损失值的计算,其他训练过程与现有技术相同。
S4、采用所述下联生成模型,针对输入的上联自动生成下联。
本实施例的下联生成方法具有以下优点:
(1)针对现有分词工具的局限,即分词后的上下句无法逐词对应的现象,提出了一种新颖的“语料-短语-词语”的三层文本结构。该结构在“语料-词语”两层本发明结构上增添了一个短语层,该层利用了一种名为最小公有和数的方法来对现有分词工具的分隔结果进行重划分,从而使得构造出来的短语实现一对一映射。
(2)在三层文本结构的基础上进一步构造了一个双层注意力模型PWbHAN。该模型分别在“语料-短语”和“短语-词语”两结构中使用了两次Attention机制,即先由“语料-短语”结构中的Attention关注上联中的重要短语,再由“短语-词语”结构中的Attention关注重要短语中的重要词语。与单层Attention机制相比,双层Attention忽略不相关信息的能力更强,而且能够满足基于“词”嵌入生成下联的严谨艺术形式要求。
(3)引入联合学习来构造双层注意力联合学习模型PWbHAN+JL。该模型利用三层文本结构各对应短语字数相同的特性实现—将对联语料中全部不定长相邻短语作为对联子句,并逐条使用PWbHAN模型进行训练,最后将各对联子句的损失值求和作为PWbHAN+JL模型的损失。引入联合学习后,模型对语料的各个子句都予以了重视,极大的增强了模型的泛化能力。
为验证本实施例方法有效性,下面结合具体实验做进一步解释说明:
1)数据库(语料库):
本实验在中国对联网(https://www.duiduilian.com/)上搜集了717054副对联作为数据集。数据集中12字以下的对联有621344副,其余对联平均18个字;将数据集使用“字”的嵌入表示后,其全部上联包含54326个字,全部下联包含55165个字;将数据集使用“词”的嵌入表示后,全部上联包含891121个词,全部下联包含931233个词;将数据集使用本发明提出的三层文本结构表示后,约有85%的对联,其所包含的短语数少于4个(此处指经过[PAD,PAD,PAD]符号扩展前的短语个数),剩余对联包含的平均短语数为8个。
2)实验对比设置:
本实验共进行了三组对比实验。第一组实验将本实施例提出的两个模型PWbHAN和PWbHAN+JL与现有模型的性能进行对比;第二组实验对PWbHAN模型中内层循环参数tw和外层循环参数tp的不同取值进行消融实验;第三种实验使用不同复杂程度的测试集对全部模型的泛化能力进行对比。
第一组实验设置了5种方法对比:GAbS-字(取自文献Zhe Wang,Wei He.etal.Chinese Poetry Generation with Planning based Neural Network[C].Proceedings of COLING 2016,the 26th International Conference onComputational Linguistics:Technical Papers,pages 1051-1060,Osaka,Japan,December 11-17 2016以及朱媛媛.基于循环神经网络的对联生成模型研究.[D].[硕士论文].吉林大学,2018.)、GAbS-词、Transformer-词(来源于文献张江.基于深度神经网络的对联生成系统的研究与实现.[D].[硕士论文].南京邮电大学,2020.)、和本发明提出的PWbHAN-10-3以及PWbHAN+JL,使用符号“-字”和“-词”标记该模型基于“字”或“词”的嵌入,使用符号“10-3”表示PWbHAN模型的循环参数tp=10和tw=3。GAbS(GRU+Attention basedSeq2seq model)是一种基于单层注意力机制的序列到序列模型。Transformer是一种基于自注意力(self-Attention)的序列到序列模型,self-Attention(来源于Vaswani A,Shazeer N,Parmar N,et al.Attention is all you need[C]//Advances in neuralinformation processing systems.Long Beach CA,USA,2017:5998-6008.)机制对同一个语句内部元素之间计算相关度。本实验将GAbS-字和GAbS-词两模型进行对比,用于展现“字”嵌入和“词”嵌入在下联生成任务上的性能差距;以GAbS-词,Transformer-词和PWbHAN-10-3三个模型进行对比,用于展现不同模型在“词”嵌入上生成下联上的效果;以PWbHAN+JL和PWbHAN-10-3两模型展示加强子句对应要求对模型性能的影响。
第二组实验设置了2种方法对比:PWbHAN-10-3和PWbHAN-5-6。该实验调整了循环参数tp和tw的两种对应取值,通过可视化方法来展示循环参数tp和tw及其对应的双层注意力机制如何对三层文本结构进行关注,进而展现PWbHAN在下联生成任务中忽视无关信息的能力。
第三组实验仍使用了第一组实验中涉及的5种方法。该实验构造了“首部”、“尾部”和“随机”三种复杂度依次递增的测试集,来对各模型应对不同难度测试数据时的表现进行对比。
3)评估指标:
本实验使用了自动评价模型BLEU(IBM 2002)、上下联字数一致率(简称为:字数一致率)和人工评估三种方式来评估模型。BLEU(Papineni et al.2002)最初用于机器翻译领域,后来在许多文本生成任务上都得到了应用,都使用了Bleu指标对下联生成的结果进行评估。针对“词”嵌入方法难以保证上下联字数一致的问题,本发明对全部测试集计算了生成下联与输入对联之间的字数一致率,从而衡量各模型生成的下联在字数上是否规范。最后,本发明引用了人工评估(例如封颖超杰,周姿含,张玮,谭思危,邵瑞敏,陈佳舟,陈为.“为你写诗”:面向中国古典诗歌的可视化交互创作系统[J/OL].计算机辅助设计与图形学学报:1-8[2021-08-03].http://kns.cnki.net/kcms/detail/11.2925.TP.20210719.1559.006.html.。又如胡韧奋,李绅,诸雨辰.基于深层语言模型的古汉语知识表示及自动断句研究[J].中文信息学报,2021,35(4):8-15.。又如张晨阳,杜义华.短文本自动生成技术研究进展[J].数据与计算发展前沿,2021,3(3):111-125.)的方法来对生成的下联进行打分,本实验筛除了上下联字数不一致的对联,仅对字数规范的对联进行打分。评估共邀请了3位语文教师,每位评估者都从语义、语境、流畅程度等角度对生成的下联进行打分,分值从1到5,最后取各位评估者打分的平均值作为模型的最终评分。
4)模型配置与训练:
本实验使用随机初始化的词嵌入矩阵We来表示词语或字的词向量,嵌入维度是256维。为了方便进行参数传递,本实验将两个编码器和两个解码器中GRU的隐藏层维度都设定为256、隐藏层层数都设定为1。本模型设定的batch_size的大小B为128。使用jieba分词作为本发明语料的分词工具。
5)实验结果分析:
51)整体性能对比
表1整体性能对比
BLEU 字数一致率 人工评估
GAbS-字 0.125 100%<sup>*</sup> 3.2
GAbS-词 0.014 25% 1.2
Transformer-词 0.026 27% 2.1
PWbHAN-10-3 0.142 65% 3.4
PWbHAN+JL 0.374<sup>*</sup> 94% 3.5<sup>*</sup>
表1展示了5个模型的整体性能,使用*表示各性能下的最好结果。结果表明,PWbHAN+JL在各个评价指标上都具有突出优势。从BLEU值上看,GAbS-词和Transformer-词平均低于GAbS-字0.1,这说明传统模型在基于“词”嵌入时的效果普遍较差,Transformer-词中的self-Attention机制相比GAbS-词中的Attention机制在处理“词”嵌入略有优势,但仍无法达到理想效果。PWbHAN-10-3的得分高于传统GAbS-词0.128,高于Transformer-词0.114,这正是因为三层文本结构和双层注意力机制的引入,从而改善了基于“词”嵌入模型生成下联的效果。PWbHAN+JL的得分最优,其BLEU值不仅超过基于“词”嵌入的GAbS-词0.36,而且超过基于“字”嵌入的GAbS-字0.249,由于联合学习的引入使得对联中的各个子句都得到了充分的学习。从字数一致率上看,GAbS-词和Transformer-词平均为26%,这说明基于“词”嵌入的传统模型生成的绝大多数下联都难以实现字数一致的要求。PWbHAN-10-3提升至65%,说明三层文本结构对于字数的限定是有效的。PWbHAN+JL的字数一致率接近100%,通过对子句的联合学习使得模型对于大多数输入都能得到对应字数的子句输出。从人工评估上看,PWbHAN-10-3和PWbHAN+JL的得分高于GAbS-字,这是因为“词”嵌入方法有效保留了词语语义,相比“字”嵌入方法更能保留语料库中词语对应的水平。
52)双层注意力的可视化:
为了证明双层注意力机制比单层注意力机制忽略不相关信息的能力更强,本实验将基于单层注意力的GAbS-词与基于双层注意力的PWbHAN-10-3和PWbHAN-5-6进行对比,如图5~7所示为3个模型的可视化注意图。其中,图5的每一行表示了GAbS中解码器GRU单元的循环,图6和7的每一行表示了PWbHAN中词语解码器GRU单元的循环。图5~7中的input区域内填充在文字区域的颜色表示对词语予以关注,颜色越深表示对该词语的关注程度越强。图6和图7中的input区域内填充在文字下方的颜色表示对短语予以关注,颜色越深表示对该短语的关注程度越强。
从结果可以看出,双层注意力模型比单层注意力模型忽略不相关信息的能力更强。具体来说,单层注意力模型不仅对上联中的待对词语予以了高关注,也同样对其附近的不相关词语予以了高关注。如图5,其t1时刻的目标输出词语为“浮盏”,“浮盏”的待对词语为“垂”和“绦”,但GAbS-词对词语“未解”也予以了高关注,同样,在t2和t3时刻也存在这个问题。这种关注方法会导致模型的性能大幅降低,例如输入“垂绦未解”时,模型很可能会输出词语“浮盏”,输出与输入在语义和字数上都无法对应。而本发明提出的双层注意力模型改善了这个问题,其第一层注意力会关注与输出相关的短语,其第二层注意力从相关短语中选择相关词语进行关注,这种机制可以有效减小对无关词语关注。如图6的t1-3时刻所示,PWbHAN-10-3的第一层注意力对短语[垂,绦,p]予以了最高关注,对短语[未解,p,p]也予以了一定关注。接下来,其第二层注意力会依据短语关注后的结果对词语进行关注,而此时对词语的关注并不会“一视同仁”,模型会先从信息量多的短语中选取词语赋予高关注,再从信息量低的短语中选词语进行低关注,或直接忽略低关注短语中的词语。如图6的t1-3时刻仅对词语“未解”予以了一个极小关注。对比图6和7展示不同循环参数取值对词语生成的影响,对于PWbHAN-10-3来说,内层循环参数tw=3,故外层循环以一个短语为目标,内层循环中针对关注的短语连续输出3个词语;对于PWbHAN-5-6来说,内层循环参数tw=6,故外层循环以2个短语为目标,内层循环中针对关注的短语连续输出6个词语。与单短语关注相比,双短语关注又整合了更多短语的信息。以图7的t1-3时刻为例,模型不仅对目标输出[浮盏,p,p][犹思,p,p]对应的短语为[垂,绦,p][未解,p,p]予以了高关注,也对短语[清凉,p,p]予以了一个低关注。在实际应用中,可以根据不同的输出需求来确定循环参数的取值,如模型可以通过多短语关注来融合上联中更多的信息,也可以通过单短语关注使得生成的词语与待对词语的对应更加精准,或者在多短语关注的基础上叠加更多解码器来实现精准的输出要求。
53)泛化能力研究
为了测试各模型对训练集的依赖性以及应对复杂测试数据的能力,本实验分别构造了“首部”、“尾部”和“随机”等三种测试集,每种测试集都从各模型对应的训练集中抓取字、词语或短语,并将这些字、词语或短语连接起来作为三种测试语料。具体来说,“首部”测试集将训练集中的每条语料截取前n个字、词语或短语,然后连接作为测试语料;“尾部”测试集将训练集中的每条语料截取后n个字、词语或短语,然后连接作为测试语料;“随机”测试集从训练集中的n条语料中分别随机选取1个字、词语或短语,然后按选取顺序连接作为测试语料。三种测试集的复杂度逐步增加,“首部”测试集与训练集最为相似,故难度最低;“尾部”测试集失去了训练集中最先输出的信息,故难度增加;“随机”测试集中的语料与训练集相似度最低,难度最大。本实验使用BLEU作为性能指标。
由图8~10可知(图8和图9中各折线所对应的模型与图10中一致),PWbHAN+JL模型在三种测试集的表现都远远高于其他4种模型,其在首部测试集上的平均BLEU值为0.475,高于其他4种模型值142%;其在尾部测试集上的平均BLEU值为0.443,高于其他4种模型297%;其在随机测试集上的平均BLEU值为0.370,超过其他4种模型7倍以上。实验结果证明,GAbS-字、GAbS-词、Transformer-词和PWbHAN_10_3等模型不具备良好的泛化能力,这些方法在首部测试集上的表现较好,这是因为模型获取了与训练集相似的上下文,即包含对联首部信息的上下文;其在尾部测试集上的表现次佳,表明模型有一定动态学习上下文的能力,但这种能力仅限于一副对联而言;在随机测试集上的表现说明这些模型无法动态整合多条对联的信息。而PWbHAN+JL模型具有很强的泛化能力,通过联合学习的引入强制模型重复地学习一副对联的不同部分,进而消除了模型对训练语料的依赖性。在测试阶段,PWbHAN+JL将一条新的对联“拆分”成多个部分,这种方法不仅能够整合多条对联的信息,而且能对多条对联的信息进行比较,如输入对联的某一部分对应了训练集中不同的输出时,模型会比较不同输出与新对联上下文之间的语境契合程度,进而选择最为合适的短语作为输出。
随着字/词语/短语数量的增长,全部模型在首、尾部测试集和随机测试集上的BLEU值呈现出了相反的趋势。其原理较为直观:首、尾部测试集对联越长则越接近训练集的上联,故生成下联更接近训练语料的目标值;随机测试集对联越长则越杂乱,生成下联接近训练集目标值的难度更大。进一步分析发现,不同模型在两类测试集上的相差程度有所区别。其中,PWbHAN+JL模型在两类测试集上的差距最小,其在首、尾部测试集上的BLEU值分别高于随机测试集28.3%和19.6%;而GAbS-词在首、尾部测试集上的BLEU值平均高于随机测试集280%,Transformer-词和PWbHAN_10_3两模型在首部测试集上的BLEU值平均高于随机测试集480%。实验结果说明,各模型在处理与训练集相关度大的测试集时性能相对较好,但处理与训练集相关度小的测试集时,只有PWbHAN+JL模型的性能依然良好,其他模型的性能同比相差较大。
本发明提出的基于双层注意力联合学习的下联生成方法。首先使用三层文本结构对现有分词工具的分词结果进行重划分,然后使用双层注意力机制来生成下联,最后引入联合学习将对联各子句迭代训练。本模型能够解决“词”嵌入方法生成下联的语义割裂和字数不一致两大问题,同时通过联合学习方法增加模型的泛化能力。通过实验表明,本发明的方法同其他方法相比在BLEU上平均提升了0.313,在字数一致率上平均提升了55%,人工评估上平均提升了1分。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.基于双层注意力联合学习的下联生成方法,其特征在于,所述基于双层注意力联合学习的下联生成方法,包括:
将语料库中的上下联分别转化为符合“语料-短语-词语”三层文本结构的训练集,包括:
对上下联进行分词得到有序集合;
获取对联中上联和下联对应的有序集合,利用最小公有和数构造短语;
基于所构造的短语,将上下联转化为“语料-短语-词语”三层文本结构表示,得到训练集;
基于“语料-短语-词语”三层文本结构构建双层注意力模型;
采用联合学习方法利用训练集对所述双层注意力模型进行训练得到下联生成模型;
采用所述下联生成模型,针对输入的上联自动生成下联。
2.如权利要求1所述的基于双层注意力联合学习的下联生成方法,其特征在于,所述获取对联中上联和下联对应的有序集合,利用最小公有和数构造短语,包括:
取分词工具分词后的上联为有序集合A:[a1,a2,...,af,...],分词后的下联为有序集合B:[b1,b2,...,bg,...],f为集合A中词语位置的下标,af表示集合A中第f个词语;g表示集合B中词语位置的下标,bg表示集合B中第g个词语,用“||”表示词语的字数,|af|表示集合A中第f个词语的字数,|bg|表示集合B中第g个词语的字数;
基于集合A和集合B构造短语,包括:
比较|a1|与|b1|的大小:取f=1,g=1,若|a1|>|b1|,则g=g+1并执行下一步;若|a1|<|b1|,则f=f+1并执行下一步;若|a1|=|b1|,则将[a1]作为上联中的一个短语,将[b1]作为下联中的一个短语,并执行循环判断;
比较|a1|+…+|af|与|b1|+…+|bg|的大小:若(|a1|+…+|af|)>(|b1|+…+|bg|),则g=g+1并重新比较|a1|+…+|af|与|b1|+…+|bg|的大小;若(|a1|+…+|af|)<(|b1|+…+|bg|),则f=f+1并重新比较|a1|+…+|af|与|b1|+…+|bg|的大小;若(|a1|+…+|af|)=(|b1|+…+|bg|),则将[a1,a2,...,af]作为上联中的一个短语,将[b1,b2,...,bg]作为下联中的一个短语并执行循环判断;
循环判断:若集合A中存在词语af+1,则将集合A中的词语a1,a2,...,af删除,把第f个后面的词语af+1,af+2,...整体前移,af+1重新作为集合A中的第一个词语a1,同样地,将集合B中的词语b1,b2,...,bg删除,把第g个后面的词语bg+1,bg+2,...整体前移,bg+1重新作为集合B中的第一个词语b1,并重新执行比较|a1|与|b1|的大小;当集合A中不存在词语af+1时,循环结束,短语构造完成。
3.如权利要求1所述的基于双层注意力联合学习的下联生成方法,其特征在于,所述基于所构造的短语,将上下联转化为“语料-短语-词语”三层文本结构表示,包括:
设定短语内词语的个数阈值为X1,“语料-短语-词语”三层文本结构内短语的个数阈值为X2
将位于同一上联或下联中的短语进行有序排列得到初始结构;
对初始结构中,短语内词语个数少于个数阈值X1的短语添加填充符,对短语个数少于个数阈值X2的添加以填充符构成的短语,得到“语料-短语-词语”三层文本结构表示的上下联。
4.如权利要求1所述的基于双层注意力联合学习的下联生成方法,其特征在于,所述双层注意力模型由词语编码器、短语编码器、短语解码器和词语解码器构成。
5.如权利要求4所述的基于双层注意力联合学习的下联生成方法,其特征在于,所述词语编码器进行如下处理:
将表示为“语料-短语-词语”三层文本结构的上联中的词语通过嵌入矩阵转化为词向量;
取上联中的短语,将每个短语内的词语的词向量传入双向GRU网络中,得到每个短语对应的短语向量;
取上联中的词语,将每个词语的词向量传入单向GRU网络中,得到每个词语对应的隐藏状态。
6.如权利要求5所述的基于双层注意力联合学习的下联生成方法,其特征在于,所述短语编码器进行如下处理:
将所述短语向量传入单向GRU网络中,得到每个短语对应的隐藏状态。
7.如权利要求6所述的基于双层注意力联合学习的下联生成方法,其特征在于,所述短语解码器进行如下处理:
在短语解码器的GRU单元的每一次循环中执行如下操作:
将第一指定信息传入GRU单元,得到第一向量;
对第一向量和全部短语的隐藏状态进行矩阵乘法,并将矩阵乘法的结果进行归一化处理,得到短语注意力权重;
利用短语注意力权重对全部短语的隐藏状态进行加权求和得到短语上下文向量;
其中,在短语解码器的GRU单元的第一次循环中,所述第一指定信息为以全部短语的隐藏状态整合而成的上联信息;在短语解码器的GRU单元除第一次循环的其余循环中,所述第一指定信息为上一次循环中得到的第一向量。
8.如权利要求7所述的基于双层注意力联合学习的下联生成方法,其特征在于,所述词语解码器进行如下处理:
在短语解码器的GRU单元的每一次循环中,词语解码器对本次循环得到的短语上下文向量进行解码,所述词语解码器进行解码包括:
在词语解码器的GRU单元的每一次循环中执行如下操作:
将第二指定信息传入GRU单元,得到第二向量;
对第二向量和全部词语的隐藏状态进行矩阵乘法,并将矩阵乘法的结果进行归一化处理,得到词语注意力权重;
利用词语注意力权重对全部词语的隐藏状态进行加权求和得到词语上下文向量;
其中,在词语解码器的GRU单元的第一次循环中,所述第二指定信息为短语上下文向量;在词语解码器的GRU单元除第一次循环的其余循环中,所述指定信息为上一次循环中得到的第二向量。
9.如权利要求1所述的基于双层注意力联合学习的下联生成方法,其特征在于,所述采用联合学习方法利用训练集对所述双层注意力模型进行训练得到下联生成模型,包括:
依次取上联或下联中的每个短语作为起始短语;
由起始短语起向后取个数为组合数的短语与起始短语组成句子,其中组合数为由0逐一递增的整数,组合数递增至所组成的句子中同时包含起始短语和上联或下联中的最后一个短语;
采用交叉熵函数对每条句子计算损失值;
将所有句子的损失值相加作为下联生成模型的损失值;
以下联生成模型的损失值对双层注意力模型进行训练得到下联生成模型。
10.基于双层注意力联合学习的下联生成装置,包括处理器以及存储有若干计算机指令的存储器,其特征在于,所述计算机指令被处理器执行时实现权利要求1至权利要求9中任意一项所述方法的步骤。
CN202210230690.4A 2022-03-10 2022-03-10 基于双层注意力联合学习的下联生成方法和装置 Active CN114580408B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210230690.4A CN114580408B (zh) 2022-03-10 2022-03-10 基于双层注意力联合学习的下联生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210230690.4A CN114580408B (zh) 2022-03-10 2022-03-10 基于双层注意力联合学习的下联生成方法和装置

Publications (2)

Publication Number Publication Date
CN114580408A true CN114580408A (zh) 2022-06-03
CN114580408B CN114580408B (zh) 2024-05-07

Family

ID=81778383

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210230690.4A Active CN114580408B (zh) 2022-03-10 2022-03-10 基于双层注意力联合学习的下联生成方法和装置

Country Status (1)

Country Link
CN (1) CN114580408B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228571A (zh) * 2018-02-01 2018-06-29 北京百度网讯科技有限公司 对联的生成方法、装置、存储介质及终端设备
CN109408812A (zh) * 2018-09-30 2019-03-01 北京工业大学 一种基于注意力机制的序列标注联合抽取实体关系的方法
JP2019091172A (ja) * 2017-11-13 2019-06-13 日本電信電話株式会社 句構造学習装置、句構造解析装置、方法、及びプログラム
CN111126061A (zh) * 2019-12-24 2020-05-08 北京百度网讯科技有限公司 对联信息生成方法和装置
CN112883709A (zh) * 2021-04-18 2021-06-01 沈阳雅译网络技术有限公司 一种利用自然语言处理技术自动生成对联的方法
US20210216862A1 (en) * 2020-01-15 2021-07-15 Beijing Jingdong Shangke Information Technology Co., Ltd. System and method for semantic analysis of multimedia data using attention-based fusion network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019091172A (ja) * 2017-11-13 2019-06-13 日本電信電話株式会社 句構造学習装置、句構造解析装置、方法、及びプログラム
CN108228571A (zh) * 2018-02-01 2018-06-29 北京百度网讯科技有限公司 对联的生成方法、装置、存储介质及终端设备
CN109408812A (zh) * 2018-09-30 2019-03-01 北京工业大学 一种基于注意力机制的序列标注联合抽取实体关系的方法
CN111126061A (zh) * 2019-12-24 2020-05-08 北京百度网讯科技有限公司 对联信息生成方法和装置
US20210216862A1 (en) * 2020-01-15 2021-07-15 Beijing Jingdong Shangke Information Technology Co., Ltd. System and method for semantic analysis of multimedia data using attention-based fusion network
CN112883709A (zh) * 2021-04-18 2021-06-01 沈阳雅译网络技术有限公司 一种利用自然语言处理技术自动生成对联的方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"Encoder–Decoder Couplet Generation Model Based on ‘Trapezoidal Context’ Character Vector", 《THE COMPUTER JOURNAL 》, 30 November 2019 (2019-11-30) *
ZHANG YU: ""Lower Couplet Generation Model Based on Double-Layers Attention"", 《ICMLCA 2021; 2ND INTERNATIONAL CONFERENCE ON MACHINE LEARNING AND COMPUTER APPLICATION》, 17 March 2021 (2021-03-17) *
刘鉴;张怡;张勇;: "基于双向LSTM和自注意力机制的中文关系抽取研究", 山西大学学报(自然科学版), no. 01, 15 February 2020 (2020-02-15) *
卫万成: "基于神经网络的诗歌与对联自动生成方法研究", 《硕士电子期刊》, 1 May 2019 (2019-05-01) *
廖荣凡: "更具有感情色彩的诗歌生成模型", 《 计算机系统应用 》, 15 May 2020 (2020-05-15) *

Also Published As

Publication number Publication date
CN114580408B (zh) 2024-05-07

Similar Documents

Publication Publication Date Title
CN107133211B (zh) 一种基于注意力机制的作文评分方法
CN107967262B (zh) 一种神经网络蒙汉机器翻译方法
CN108280112A (zh) 摘要生成方法、装置及计算机设备
CN112765345A (zh) 一种融合预训练模型的文本摘要自动生成方法及系统
CN106484682A (zh) 基于统计的机器翻译方法、装置及电子设备
CN108628935A (zh) 一种基于端到端记忆网络的问答方法
CN110457661B (zh) 自然语言生成方法、装置、设备及存储介质
CN105261358A (zh) 用于语音识别的n元文法模型构造方法及语音识别系统
CN111125333B (zh) 一种基于表示学习与多层覆盖机制的生成式知识问答方法
CN112257465B (zh) 一种基于图像描述生成的多模态机器翻译数据增强方法
CN110334196B (zh) 基于笔画和自注意力机制的神经网络中文问题生成系统
CN110765755A (zh) 一种基于双重选择门的语义相似度特征提取方法
CN107679225A (zh) 一种基于关键词的回复生成方法
CN114880461A (zh) 一种结合对比学习和预训练技术的中文新闻文本摘要方法
Feng et al. Dialogue discourse-aware graph convolutional networks for abstractive meeting summarization
CN111666756A (zh) 一种基于主题融合的序列模型文本摘要生成方法
CN113657123A (zh) 基于目标模板指导和关系头编码的蒙语方面级情感分析方法
CN111144410A (zh) 一种跨模态的图像语义提取方法、系统、设备及介质
CN111708877B (zh) 基于关键信息选择和变分潜在变量建模的文本摘要生成法
CN113239666A (zh) 一种文本相似度计算方法及系统
CN112183109A (zh) 基于mass的诗句生成信息隐写方法
CN111552801A (zh) 基于语义对齐的神经网络自动摘要模型
CN106898341B (zh) 一种基于共同语义空间的个性化音乐生成方法及装置
CN113392629B (zh) 基于预训练模型的人称代词消解方法
CN115796187A (zh) 一种基于对话结构图约束的开放域对话方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant