一种基于深度学习的智能问答方法技术

技术编号:19857982 阅读:19 留言:0更新日期:2018-12-22 11:48
本发明专利技术公开了一种基于深度学习的智能问答方法,包括如下步骤:步骤1,采集原始对话数据;步骤2,数据预处理,所述数据预处理包括对原始对话数据的文本的向量化表示和标记,步骤3,构建Seq2seq模型,建立编码层(Encoder)和解码层(Decoder),连接Encoder层与Decoder层得到Seq2seq模型;步骤4,模型预测,所述模型预测是根据上述构建的Seq2seq模型,并用原始对话数据加以训练后,以问题数据为输入,模型自动生成评论数据。达到通过深度学习,将问题直接映射到回答,从而对问答方法的整体进行优化,避免了误差传递的问题,而且极大的降低了系统的复杂性的效果。

【技术实现步骤摘要】
一种基于深度学习的智能问答方法
本专利技术涉及自然语言处理领域,特别是涉及一种基于深度学习的智能问答方法。
技术介绍
随着人工智能时代的带来,走在潮流最前沿的领域是对话式交互(个人助理或聊天机器人)和计算机视觉以及自动驾驶——由于硬件和大数据的进步,以及有着革命性发展的机器学习技术(仅仅在几年内就在一定范围内取得了巨大进步)。人工智能的进步使得以前那些被认为是超出了机器可处理范围的问题在现在也能被迎刃而解了,并且这种技术产品已经成为了我们日常生活中触手可及的商品。个人助理或聊天机器人的本质大多是开放领域的智能问答,在目前的问答系统中,基于检索匹配结合传统机器学习的思想仍然是NLP的主流,一般先通过语义分析提取关键词、关键词匹配、算法判定句子功能(计算距离这个句子最近的标识好的句子),最后再从提前准备的数据库里提供用户输出结果。显然,这明显谈不上智能,只能算一种搜索功能的实现,而缺乏真正的语言能力。而且应用场景在国内主要还是垂直领域如客服机器人,其特点是知识有限,稳定性高。但是对于开放领域的智能问答,仅仅依靠知识库的检索是远远不够的,如日常对话、闲聊等对话场景,这就需要基于深度学习的对话生成构建策略。首先,从数据上看,经过前些年互联网的发展,很多应用都积累到了足够量的数据。当数据量增大,以SVM、CRF等为代表的浅层模型,因为模型较浅,无法对海量数据中的非线性关系进行建模,所以不能带来性能的提升。相反,以CNN、RNN为代表的深度模型,能够随着模型复杂性的增加,对数据进行更精准的建模,从而得到更好的效果。其次,从算法上看,基于深度学习的方法,可以使用endtoend方式进行解决。比如聊天对话任务,如果用传统的方法,需要分词、提取关键词、关键词匹配、相似度计算等冗长的流程,每一步产生的误差都有可能对其他步骤产生影响,这使得原来的传统方法的构建复杂度很大。因此需要一种更好的办法,将问题直接映射到回答,从而对问答方法的整体进行优化,避免了误差传递的问题,而且极大的降低了系统的复杂性。
技术实现思路
本专利技术所要解决的技术问题是克服现有技术的不足,提供一种基于深度学习的智能问答方法。为解决上述技术问题,本专利技术提供一种基于深度学习的智能问答方法,其特征在于,包括如下步骤:采集原始对话数据;步骤2,数据预处理,所述数据预处理包括对原始对话数据的文本的向量化表示和标记,所述对原始对话数据的文本的向量化表示是指将原始对话数据的文本转化为模型可理解的数字,所述对原始对话数据的文本的标记是指在原始对话数据的文本中加入标识符,所述标识符包括起始标识符和结束标识符;步骤3,构建Seq2seq模型,先建立编码层(Encoder)和解码层(Decoder),连接Encoder层与Decoder层得到Seq2seq模型;所述编码层中,首先定义输入的张量(Tensor),同时要对字母进行嵌入(Embedding),再输入到递归神经网络层(RNN);在解码层中,将评论数据的序列作为输入传给解码层中递归神经网络层的每个阶段,所述解码层包括训练(training)解码层和预测(predicting)解码层;步骤4,模型预测,所述模型预测是根据上述构建的Seq2seq模型,并用原始对话数据加以训练后,以问题数据为输入,模型自动生成评论数据。所述步骤1中,所述原始对话数据包括问题数据与评论数据,所述问题数据记为source_data,所述评论数据记为target_data;所述步骤2中,先对原始对话数据的文本进行分词,再采用独热编码(One-HotEncoding)的编码形式将原始对话数据的文本转化为模型可理解的数字。所述步骤2中,对原始对话数据的文本进行标记是指:加入以下四种字符,<PAD>主要用来进行字符补全;<EOS>和<GO>都是用在解码层的序列中,告诉解码器句子的起始与结束;<UNK>则用来替代一些未出现过的词或者低频词;即:<PAD>:补全字符;<EOS>:解码器端的句子结束标识符;<UNK>:低频词或者一些未遇到过的词等;<GO>:解码器端的句子起始标识符;具体实现步骤包括:2.1,构造映射表,根据原始数据的情况确定向量空间;2.2,将原始单词转换为向量空间中的一个向量。所述步骤3中,使用TensorFlow中的tf.contrib.layers.embed_sequence来对输入进行嵌入(Embedding),具体实现步骤包括:3.1,词嵌入,通过Embedding得到低维度的语义向量;3.2,构造Encoder,这里我们采用LSTM的单元。所述步骤3中,在解码层中,需要对target数据进行预处理然后构造解码层,所述对target数据进行预处理是指,将target数据序列中的最后一个字符去掉,同时还需要在前面添加<go>标识,告诉模型这代表一个句子的开始。所述步骤3中,构造解码层包含以下5个部分:1)对target数据进行嵌入;2)构造解码层的RNN单元;3)构造输出层,从而得到每个时间序列上的预测结果;4)构造训练解码层(trainingdecoder);5)构造预测解码层(predictingdecoder);这里将解码层分为了训练解码层(trainingdecoder)和预测解码层(predictingdecoder),训练解码层(trainingdecoder)和预测解码层(predictingdecoder)是共享参数的,也就是通过训练解码层(trainingdecoder)学得的参数,预测解码层(predictingdecoder)会拿来进行预测,在训练阶段,直接使用targetdata中序列的元素输入到解码层中,而在预测阶段,没有targetdata,只有t-1阶段的输出和隐层状态。本专利技术所达到的有益效果:通过深度学习,将问题直接映射到回答,从而对问答方法的整体进行优化,避免了误差传递的问题,而且极大的降低了系统的复杂性。不同于传统基于特定数据库进行检索的方法,由数据驱动的自动生成对话方法可以生成一种全新的回复,因此相对更为灵活,也更适用于开放域的问答场景。附图说明图1为本专利技术的示例性实施例的流程简图;图2为本专利技术的示例性实施例的编码层与解码层中的target序列结构示意图。具体实施方式下面结合附图和示例性实施例对本专利技术作进一步的说明:如图1所示,示例性实施例的流程包括以下步骤:步骤1,采集原始对话数据,利用互联网爬虫技术抓取了百万级的某社交网络平台的评论数据,包括问题数据与评论数据,分别记为source_data和target_data;步骤2,数据预处理,先对原始对话数据(包括问题数据与评论数据)进行分词,中文分词技术作为一个独立的研究领域,技术繁杂,本文不再赘述其具体技术细节,而直接采用现成的分词工具(Jieba),同时采用独热编码(One-HotEncoding)的编码形式将文本转化为模型可理解的数字,。独热编码,直观来说就是有多少个状态就有多少比特,本文档来自技高网
...

【技术保护点】
1.一种基于深度学习的智能问答方法,其特征在于,包括如下步骤:步骤1,采集原始对话数据;步骤2,数据预处理,所述数据预处理包括对原始对话数据的文本的向量化表示和标记,所述对原始对话数据的文本的向量化表示是指将原始对话数据的文本转化为模型可理解的数字,所述对原始对话数据的文本的标记是指在原始对话数据的文本中加入标识符,所述标识符包括起始标识符和结束标识符;步骤3,构建Seq2seq模型,先建立编码层(Encoder)和解码层(Decoder),连接Encoder层与Decoder层得到Seq2seq模型;所述编码层中,首先定义输入的张量(Tensor),同时要对字母进行嵌入(Embedding),再输入到递归神经网络层(RNN);在解码层中,将评论数据的序列作为输入传给解码层中递归神经网络层的每个阶段,所述解码层包括训练(training)解码层和预测(predicting)解码层;步骤4,模型预测,所述模型预测是根据上述构建的Seq2seq模型,并用原始对话数据加以训练后,以问题数据为输入,模型自动生成评论数据。

【技术特征摘要】
1.一种基于深度学习的智能问答方法,其特征在于,包括如下步骤:步骤1,采集原始对话数据;步骤2,数据预处理,所述数据预处理包括对原始对话数据的文本的向量化表示和标记,所述对原始对话数据的文本的向量化表示是指将原始对话数据的文本转化为模型可理解的数字,所述对原始对话数据的文本的标记是指在原始对话数据的文本中加入标识符,所述标识符包括起始标识符和结束标识符;步骤3,构建Seq2seq模型,先建立编码层(Encoder)和解码层(Decoder),连接Encoder层与Decoder层得到Seq2seq模型;所述编码层中,首先定义输入的张量(Tensor),同时要对字母进行嵌入(Embedding),再输入到递归神经网络层(RNN);在解码层中,将评论数据的序列作为输入传给解码层中递归神经网络层的每个阶段,所述解码层包括训练(training)解码层和预测(predicting)解码层;步骤4,模型预测,所述模型预测是根据上述构建的Seq2seq模型,并用原始对话数据加以训练后,以问题数据为输入,模型自动生成评论数据。2.如权利要求1所述的一种基于深度学习的智能问答方法,其特征在于:所述步骤1中,所述原始对话数据包括问题数据与评论数据,所述问题数据记为source_data,所述评论数据记为target_data;所述步骤2中,先对原始对话数据的文本进行分词,再采用独热编码(One-HotEncoding)的编码形式将原始对话数据的文本转化为模型可理解的数字。3.如权利要求2所述的一种基于深度学习的智能问答方法,其特征在于:所述步骤2中,对原始对话数据的文本进行标记是指:加入以下四种字符,<PAD>主要用来进行字符补全;<EOS>和<GO>都是用在解码层的序列中,告诉解码器句子的起始与结束;<UNK>则用来替代一些未出现过的词或者低频词;即:<PAD>:补全字符;<EOS&gt...

【专利技术属性】
技术研发人员:钟力夏宇房鹏展
申请(专利权)人:百卓网络科技有限公司
类型:发明
国别省市:江苏,32

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

1