基于深度学习和知识库的智能对联生成方法技术

技术编号:38055110 阅读:16 留言:0更新日期:2023-06-30 11:20
本发明专利技术公开了一种基于深度学习和知识库的智能对联生成方法,包括:训练Seq2seq神经网络模型;当用户输入上联数据后,首先从知识库中查询用户输入的上联数据是否为经典古诗词名句,若是则从知识库输出经典古诗词名句对应的下联,若不是则进入知识库用户历史数据中进行查询;在知识库用户历史数据中查询用户是否曾经输入非经典古诗词名句的上联数据,若是则从知识库用户历史数据直接返回下联,若不是则将上联数据作为输入代入seq2seq神经网络模型进行前向处理计算得到下联数据;本发明专利技术达到了人机对对联的实时智能交互。人机对对联的实时智能交互。人机对对联的实时智能交互。

【技术实现步骤摘要】
基于深度学习和知识库的智能对联生成方法


[0001]本专利技术涉及机器学习
,特别是一种基于深度学习和知识库的智能对联生成方法。

技术介绍

[0002]随着人工智能的迅猛发展,深度学习(DL,Deep Learning,简称DL)在自然语言处理领域(Natural Language Processing,简称为NLP)中取得了长足的发展。近年来人工智能和数据库的有机结合,促使知识库系统也取得了长足的发展。
[0003]现在市场上比较成熟的“自动对联系统”有微软亚洲研究院自然语言计算组研发的计算机自动对联系统,和手机端的“对联赏析”APP。现有的对联技术在上下联的语义配合方面存在着一些问题,对联的长度被限制在了10字以内,且不可以含有标点。而且对联系统是纯基于数据库的系统或者是纯基于模型的系统,缺少将两者有机融合的对联系统。现有技术训练对联模型的方法存在如下三个问题:
[0004](1)对联数据数据规模问题,对联数据数据规模相比于网络文本、论坛文本、汉语现代文文本数据规模来说算小数据。前者的数据量级别在几十万级别,而后者的数据量级可以轻松达到百万级别和千万级别。
[0005](2)现有对联训练数据通常采用的是文本对齐方式训练对联模型(例如将文本固定成12个字,文本过长则截断、文本过短则填充占用字符使得文本对齐到12个字),这就造成了模型学习对联特征的时候,学习的数据是有偏差的,部分数据是不全的,部分数据是有噪声的。
[0006](3)基于验证集训练过程仍未能避免模型同时在训练集和验证集都陷入局部最优的情况。
[0007]综合来看,目前针对智能对联方法的研究不多,市面上的产品采用的技术属于早期NLP研究的技术,已建立的模型对于多级自动表征学习存在不充分、欠拟合和过拟合等问题,处理时常常依赖于手动制作特征,且生成的对联受字数限制,生成的对联质量不佳的问题。

技术实现思路

[0008]为解决现有技术中存在的问题,本专利技术的目的是提供一种基于深度学习和知识库的智能对联生成方法,本专利技术达到了人机对对联的实时智能交互。
[0009]为实现上述目的,本专利技术采用的技术方案是:一种基于深度学习和知识库的智能对联生成方法,包括以下步骤:
[0010]步骤1、训练Seq2seq神经网络模型;
[0011]步骤2、当用户输入上联数据后,首先从知识库中查询用户输入的上联数据是否为经典古诗词名句,若是则从知识库输出经典古诗词名句对应的下联,若不是则进入知识库用户历史数据中进行查询;
[0012]步骤3、在知识库用户历史数据中查询用户是否曾经输入步骤1中的非经典古诗词名句的上联数据,若是则从知识库用户历史数据直接返回下联,若不是则将上联数据作为输入代入所述seq2seq神经网络模型进行前向处理计算得到下联数据;
[0013]步骤4、保存seq2seq神经网络模型计算得到下联到数据库中作为知识库用户历史数据;并反馈seq2seq神经网络模型计算得到下联到前端页面进行显示。
[0014]作为本专利技术的进一步改进,步骤1中训练Seq2seq神经网络模型具体包括以下步骤:
[0015]步骤1.1、对同义词替换的对联数据进行增广,具体包括:
[0016](1)在训练集D中随机选择一对曾经未选择的对联d;
[0017](2)对对联d进行分词,选出对联d中的名词、动词、形容词构成集合e;
[0018](3)在集合e中随机选择k个词语在原始对联的对应位置上进行同义词替换;
[0019](4)将新生成的对联d

加入集合D


[0020](5)重复(1)

(4)直到集合D

数据量满足训练要求;
[0021](6)将训练集D和集合D

进行合并输出新的训练集Train;
[0022](7)对验证集V重复(1)

(6)的操作,得到新的验证集Valiad;
[0023]步骤1.2、生成基于不定长动态的batch数据,具体包括:
[0024]1)读取所有的训练样本Train,并通过分词器转为ID数组;
[0025]2)定义变量A,用于保存不同字数对的样本个数;
[0026]3)定义变量B,用于保存不同字数对样本个数的分布概率;
[0027]4)根据变量A和变量B,进行随机选对联长度,然后随机选对联样本,以生成字数都一样的一个batch数据C;
[0028]5)定义变量D,取batch和C长度中最小值;
[0029]6)从C中随机挑选D个样本,为数据集E作为返回;
[0030]步骤1.3、对基于动态交叉验证的模型验证进行训练,具体包括:
[0031]①
在每一次模型迭代中,从验证集Valiad中随机选择m个对联;
[0032]②
将m个对联划分成n个子集,每个子集样本数量为m/n个;
[0033]③
对每一个子集模型都进行预测并得到每个子集合上正确率和损失值;
[0034]④
对n个子集的正确率和损失值计算平均值;
[0035]⑤
当平均正确率大于设定的正确率阈值或者平均损失值在一定迭代次数后不再下降时候则表明模型已训练充分,模型可以退出训练循环;
[0036]步骤1.4、输出模型文件并将模型发布成服务。
[0037]作为本专利技术的进一步改进,在步骤1.4中,若模型是用tensorflow训练则输出.h5文件,若模型是用pytorch训练则输出.pt文件。
[0038]本专利技术的有益效果是:
[0039]1、本专利技术采用了了同义词替换的对联数据增广、基于不定长动态batch数据生成、基于动态交叉验证的模型验证;使得模型能够在海量数据情况下,完美的学习到对联特征,并避免模型陷入局部最优,进而使得模型更智能;
[0040]2、本专利技术的模型训练相比于传统方法模型生成文本质量更高、所需数据量更少、所需迭代次数更少。
附图说明
[0041]图1为本专利技术实施例中Seq2seq神经网络模型训练的流程图;
[0042]图2为本专利技术实施例中对联生成的流程图。
具体实施方式
[0043]下面结合附图对本专利技术的实施例进行详细说明。
[0044]实施例
[0045]一种基于深度学习和知识库的智能对联生成方法,本实施例基于深度学习技术(seq2seq2深度神经网络)和对联知识库组成;本实施例的输入数据是至少三个汉字的对联上联;本实施例的输出数据是与上联字数相等且相对对仗的下联数据。例如:对本专利技术的上联输入“这个碗又大又圆”,则本专利技术的下联会输出“这般情更好更新”。
[0046]本本实施例提供的技术方案主要有两个部分,seq2seq模型训练部分和对联生成部分。
[0047](1)Seq2seq模型训练:
...

【技术保护点】

【技术特征摘要】
1.一种基于深度学习和知识库的智能对联生成方法,其特征在于,包括以下步骤:步骤1、训练Seq2seq神经网络模型;步骤2、当用户输入上联数据后,首先从知识库中查询用户输入的上联数据是否为经典古诗词名句,若是则从知识库输出经典古诗词名句对应的下联,若不是则进入知识库用户历史数据中进行查询;步骤3、在知识库用户历史数据中查询用户是否曾经输入步骤1中的非经典古诗词名句的上联数据,若是则从知识库用户历史数据直接返回下联,若不是则将上联数据作为输入代入所述seq2seq神经网络模型进行前向处理计算得到下联数据;步骤4、保存seq2seq神经网络模型计算得到下联到数据库中作为知识库用户历史数据;并反馈seq2seq神经网络模型计算得到下联到前端页面进行显示。2.根据权利要求1所述的基于深度学习和知识库的智能对联生成方法,其特征在于,步骤1中训练Seq2seq神经网络模型具体包括以下步骤:步骤1.1、对同义词替换的对联数据进行增广,具体包括:(1)在训练集D中随机选择一对曾经未选择的对联d;(2)对对联d进行分词,选出对联d中的名词、动词、形容词构成集合e;(3)在集合e中随机选择k个词语在原始对联的对应位置上进行同义词替换;(4)将新生成的对联d

加入集合D

;(5)重复(1)

(4)直到集合D

数据量满足训练要求;(6)将训练集D和集合D

进行合并输出新的训练集T...

【专利技术属性】
技术研发人员:黎宇梁斌张闪闪
申请(专利权)人:四川九州电子科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1