本发明涉及自然语言处理领域,特别是涉及一种适于金融领域的训练方法、问答方法、装置及存储介质。
背景技术:
随着人工智能等技术的快速发展,在金融、银行、证券、保险等行业中,逐渐引入了智能客服或问答系统,以缓解客户服务的等待问题。通过使用问答系统,可以释放人力资源,降低成本,提升处理效率,提升客户体验。
实际场景中,用户习惯于使用自然语言进行提问。为了有效处理基于自然语言的问答输入,现有的问答系统,一般包括语料预处理、语义解析、答案匹配等环节。在答案匹配环节中,一般使用搜索引擎技术,采用关键词匹配的方式进行信息检索。而关键词与语义解析环节密切相关。因此,语义解析,是问答系统的关键性环节。尤其是,在银行、金融等垂直领域中,用户的问题涉及非常专业的领域,需要专业、准确的回复。对语义的精确匹配,具有非常高的要求。
而现有的问答系统,一般使用人工定义的规则进行语义解析。这种方式,虽然带来了较高的准确率,但是不够灵活。当有新的语料加入后,需要人工参与建立新的规则。而这一过程需要耗费大量的精力。
同时,这些事先定义的规则,一般仅对规则性强的问句有辨识度。在用户输入方式存在多样化的情况下,现有人工定义的规则,可能不能对用户的输入进行精确的语义解析,进而导致反馈的答案不符合用户的意图。
技术实现要素:
基于此,有必要针对现有银行、金融等垂直领域内的问答系统,因为采用人工定义语义解析规则,存在新规则建立费时费力,不能对多样化的用户输入方式反馈符合用户意图的答案的问题,提供一种适于金融领域的训练方法、问答方法、装置及存储介质。
本申请一实施例提供了一种适于金融领域的训练方法,包括:
获取用于训练的语料数据以及行业词典,所述语料数据包括标准问题语料以及扩展语料;
对所述语料数据进行预处理,所述预处理至少包括分词操作,所述分词操作,至少结合所述行业词典,对所述语料数据进行分词;
根据预处理后的语料数据,构建训练数据集;
初始化词向量矩阵,构建以所述词向量矩阵作为参数的损失函数,根据所述训练数据集和训练网络结构进行训练,直至所述损失函数满足预定结束条件,输出训练好的模型。
在一些实施例中,所述训练数据集包括若干个单元输入,每个单元输入包括一个目标语料、若干正例及若干负例,所述正例为与所述目标语料同义的语料,所述负例为与所述目标语料不同义的语料,所述训练网络结构包括:输入层、映射层、相似度计算层和输出层;
所述输入层,获取一个单元输入;
所述映射层,利用所述词向量矩阵,生成所述单元输入中每个语料的词向量,对每个语料的词向量加权平均得到所述单元输入中每个语料的句子向量;
所述相似度计算层,利用所述语料的句子向量,计算目标语料与单元输入中其他语料的相似度;
所述输出层,根据目标语料与单元输入中其他语料的相似度,输出单元输入的相似度预测值。
在一些实施例中,所述预处理还包括去停词操作和/或同义词扩展操作。
在一些实施例中,所述方法还包括:
利用训练好的模型,获取语料数据的句子向量;
构建语料数据的句子向量的索引。
本申请一实施例还提供了一种适于金融领域的问答方法,包括:
获取训练好的模型;
接收问题语句,对所述问题语句进行预处理;
根据训练好的模型,获取预处理后的问题语句的句子向量;
在语料数据的句子向量中,匹配预处理后的问题语句的句子向量,输出对应的答复。
在一些实施例中,所述语料数据的句子向量构建有索引;
所述在语料数据的句子向量中,匹配预处理后的问题语句的句子向量,输出对应的答复的步骤,具体为,
根据语料数据的句子向量的索引,在语料数据的句子向量中,匹配预处理后的问题语句的句子向量,输出对应的答复。
本申请另一实施例提供了一种适于金融领域的训练装置,包括:
语料数据获取单元,用于获取用于训练的语料数据以及行业词典,所述语料数据包括标准问题语料以及扩展语料;
语料预处理单元,用于对所述语料数据进行预处理,所述预处理至少包括分词操作,所述分词操作,至少结合所述行业词典,对所述语料数据进行分词;
训练数据集构建单元,用于根据预处理后的语料数据,构建训练数据集;
执行训练单元,用于初始化词向量矩阵,构建以词向量矩阵作为参数的损失函数,根据训练数据集和训练网络结构进行训练,直至损失函数满足预定结束条件,输出训练好的模型。
本申请一实施例提供了一种适于金融领域的问答系统,包括训练装置及问答装置,所述训练装置为前面所述的训练装置,输出训练好的模型;
所述问答装置包括:
模型获取单元,用于获取训练好的模型;
问题语句预处理单元,用于接收问题语句,对问题语句进行预处理;
问题语句向量化单元,用于根据训练好的模型,获取预处理后的问题语句的句子向量;
匹配输出单元,用于在语料数据的句子向量中,匹配预处理后的问题语句的句子向量,输出对应的答复。
本申请一实施例还提供了一种机器可读存储介质,其上存储有计算机程序,其中所述计算机程序在由处理器执行时实现前面实施例中任一项所述的适于金融领域的训练方法。
本申请一实施例还提供了一种机器可读存储介质,其上存储有计算机程序,其中所述计算机程序在由处理器执行时实现前面实施例中任一项所述的适于金融领域的问答方法。
使用本申请实施例的训练方法及问答方法,相对于现有基于人工建立语义解析规则的方案,在新增语料时,只需要进行语料扩展,不需要人工参与后续模型的训练过程,可以有效减少人工的劳动量;训练数据集能够充分反映用户提问方式的多样性,训练得到的模型具有良好的健壮性,能够有效应对用户提问方式的多样性,提高了语义匹配的精确度,提供符合用户意图的答案。
附图说明
图1为本申请实施例的应用场景示意图;
图2为本申请一实施例的训练方法的流程示意图;
图3为本申请另一实施例的训练方法的流程示意图;
图4为本申请一实施例中的训练网络结构的示意图;
图5为本申请一实施例的问答方法的流程示意图;
图6为本申请一实施例的训练装置及问答装置的结构示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施方式及实施方式中的特征可以相互组合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本发明。
图1示出了本申请实施例的训练方法及问答方法的应用场景示意图。如图1所示,本申请实施例的训练方法及问答方法可以应用于问答系统10。问答系统10配置有训练装置100以及问答装置200。问答装置200可以通过通信网络502,与用户终端501进行数据通信,对用户通过用户终端501输入的问题,进行精准的答复。训练装置100与问答装置200通信连接,训练装置100向问答装置200提供训练好的词向量矩阵w,以支持问答装置200对用户的问题的答复。
训练装置100以及问答装置200,可以分开设置,也可以合并在一起设置,还可以共享存储设备;可以配置在服务器上,也可以使用个人电脑、移动终端及其他具有一定数据处理能力的智能终端。通信网络502可以是有线通信,也可以是无线通信。
使用本申请实施例的训练方法及问答方法,相对于现有基于人工建立语义解析规则的方案,在新增语料时,只需要进行语料扩展,不需要人工参与后续模型的训练过程,可以有效减少人工的劳动量;训练数据集能够充分反映用户提问方式的多样性,训练得到的模型具有良好的健壮性,能够有效应对用户提问方式的多样性,提高了语义匹配的精确度,提供符合用户意图的答案。
下面对本申请实施例的方案做具体描述。
如图2所示,本申请一实施例公开了一种适于金融领域的训练方法,包括:
步骤s110,获取用于训练的语料数据以及行业词典,所述语料数据包括标准问题语料以及扩展语料。
用于训练的语料数据包括标准问题语料以及扩展语料。标准问题,可以通过梳理本行业内各种业务的常见问题而得到。在标准问题的基础上,通过对用词和/或句式的变化,扩展得到扩展语料。示例的,在得到扩展语料时,可以采用以下的扩展方式:1、用词的变化。比如“办理”扩展为“开通”,“怎么”扩展为“如何”、“怎样”等。2、句式的变化。比如“如何开通银行卡”扩展为“银行卡的办理方式是怎样的”。通过对标准问题语料的扩展,得到扩展语料,可以实现对用户多样性输入的模拟。语料数据中的每一个语料,就代表一个用户问题,针对每个用户问题,都设置有对应的答复。
语料数据还可以包括标注,用于表述该语料与其他语料之间是否属于同义。示例的,标注可以采用数值,同义的语料采用相同数值的标注,不同义的语料采用不同的数值的标注。
对于每个标准问题语料,对由此扩展得到的扩展语料,与该标准问题语料为同义的,二者可以标注为同义。在一些实施例中,不同标准问题语料之间是不同义的。在一些实施例中,若干标准问题语料之间可以是同义的。
行业词典,是指包括有行业专业词汇的词典。行业词典中的行业专业词汇,可以使用人工标注的方式获取,也可以使用行业词汇字典,或者二者综合得到。
步骤s120,对所述语料数据进行预处理,所述预处理至少包括分词操作,所述分词操作,至少结合所述行业词典,对所述语料数据进行分词。
分词操作,即是为了将一个句子进行规范,组成词序列,以便于后续的处理。本实施例中,在进行分词操作时,可以使用常见的分词算法。为了提高分词的准确性,还可以同时结合行业词典。常见的分词算法可以包括基于词典的分词方法、基于统计的分词方法、基于规则的分词方法、基于字标注的分词方法等。在一些示例中,采用基于词典的分词方法,比如使用jieba分词工具,结合行业词典,对语料数据进行分词。
可以理解的是,也可以采用其他分词算法,只要在分词操作时,结合行业词典进行调整即可。
为了提高后续处理的针对性,减少不相关词语的干扰,预处理还包括去停词操作。去停词操作,就是去除语料中的停用词。停用词是指对语句的真实语义作用不大的词语,一般是叹词、语气助词等。去停词操作,可以利用事先构建的停用词字典进行。对于分词操作后的语料,将语料中的每一个词,在停用词字典中进行查找,如果能够查找到,则去除该语料中的该词。
为了进一步提升整体系统的健壮性,预处理还包括同义词扩展操作。在自然语言表达中,同义词的存在,使得特定语义,常常存在多种表达方式。因为语料数据中已经包括了扩展语料,为了平衡处理的计算量以及系统健壮性,预处理的同义词扩展操作,主要对语料中的关键词进行,可以采用现有的中文近义词工具包,比如synonyms等。
步骤s130,根据预处理后的语料数据,构建训练数据集。
从预处理后的语料数据中,筛选语料,组成单元输入,构建训练数据集。训练数据集可以包括若干个单元输入,每个单元输入可以包括一个目标语料、若干正例及若干负例,正例为与目标语料同义的语料,负例为与目标语料不同义的语料。
对于每个单元输入,在确定目标语料之后,即可筛选得到若干正例及负例。对于正例的确定,可以根据语料的标注进行确定;也可以将目标语料的前后语料视为正例,比如目标语料的前一句语料、后一句语料为正例。负例,可以根据语料的标注确定,也可以通过负采样得到。正例的数量为m,负例的数量为n,m、n均为正整数。在一些实施例中,m、n均为2。此时,一个单元输入中包括5个语料——1个目标语料,2个正例,2个负例。可以理解的是,正例的数量m和负例的数量n也可以为不同的数值。
步骤s140,初始化词向量矩阵w,构建以词向量矩阵作为参数的损失函数l,根据训练数据集和训练网络结构进行训练,直至损失函数l满足预定结束条件,输出训练好的模型;
其中,如图4所示,训练网络结构包括:输入层、映射层、相似度计算层和输出层;
输入层,获取一个单元输入;
映射层,利用词向量矩阵w,生成单元输入中每个语料的词向量,对每个语料的词向量加权平均得到单元输入中每个语料的句子向量;
相似度计算层,利用语料的句子向量,计算目标语料与单元输入中其他语料的相似度;
输出层,根据目标语料与单元输入中其他语料的相似度,输出单元输入的相似度预测值。
初始化词向量矩阵w,可以是对词向量矩阵w的元素设置一个初始值,也可以读取存储的词向量矩阵w,比如上一次训练输出的词向量矩阵。
训练时,从训练数据集中获取单元输入(si,s+1…s+m,s-1…s-n),提供给输入层。单元输入中,si为该单元输入中的目标语料,s+1…s+m为正例,s-1…s-n为负例。
映射层,使用词向量矩阵w,对单元输入(si,s+1…s+m,s-1…s-n)进行处理,得到每个语料中所有词的词向量;然后对每个语料的词向量进行加权平均,得到每个语料的句子向量。映射层对语料的词向量进行加权平均时,可以对每个语料中的所有词向量进行,也可以仅对语料中前k个词向量进行(k为预设的正整数值)。在一些示例中,映射层在计算每个语料的句子向量时,仅对语料中前k个词向量进行加权平均。当语料中词长度不够时,可以进行补零;当词长度超过k时,可以进行截断。
相似度计算层,计算目标语料与单元输入中其他语料的相似度。示例的,可以利用语料的句子向量(比如图4中的averagei、average+1、average-1等),通过计算向量之间的余弦
两个句子向量之间的相似度
其中,
输出层prediction,根据相似度计算层得到的相似度,输出单元输入的相似度预测值pθ(si,sj)。为了方便损失函数的处理,输出层对相似度计算层得到的相似度进行归一化处理。示例的,输出层采用softmax算法进行归一化处理。可以理解的是,输出层的归一化处理,还可以采用其他的归一化算法,比如最大最小值归一化、均值归一化、零均值标准化等常用方法。
示例的,对于一个语料,输出层输出的相似度预测值可以表示为:
其中,si为一个单元输入中的目标语料;sj、s′为一个单元输入中的任一语料,s为一个单元输入中的所有语料;
损失函数l,用于表征训练网络结构在训练数据集上的预测分布与真实分布之间的差异大小。一般的,训练时,损失函数l的值越小,表明预测分布越接近真实分布。
损失函数l,可以使用常见的损失函数,比如绝对值损失函数、交叉熵损失函数等。在一些实施例中,损失函数l使用交叉熵损失函数,其公式如下所示:
其中,p(si,sj)为相似度的真实概率,
pθ(si,sj)为相似度预测值,si为一个单元输入中的目标语料,sj为一个单元输入中的任一语料,s+为一个单元输入中的正例,s-为一个单元输入中的负例;θ为词向量矩阵w中的元素,作为训练过程中待更新的参数。
训练的过程就是,基于损失函数l,更新参数θ——即更新词向量矩阵w。通过不断迭代,直到满足训练的结束条件。训练的结束条件,就是损失函数l满足预定结束条件,一般是损失函数l的值满足预设范围。此时,预测分布就可能非常接近真实分布。
参数的更新方法有很多,可以使用常见的参数更新方法,比如梯度下降法、反向传播算法等。示例的,在使用交叉熵损失函数l时,使用反向传播算法,来更新参数θ——即更新词向量矩阵w。
训练结束后,即可得到训练好的模型。训练好的模型包括训练网络结构以及训练好的词向量矩阵w。
步骤s150,利用训练好的模型,获取语料数据的句子向量。
对预处理后的语料数据,利用训练好的模型,处理得到各个语料的句子向量,以用于后续问答处理时直接调用,节省问答处理的时间。
预处理后的语料数据中,一般含有非常多的语料。在后续问答处理时,需要将用户的实际问题与这些语料数据中的语料进行匹配。为了降低后续问答处理时的匹配耗时,如图3所示,训练方法还包括:
步骤s160,构建语料数据的句子向量的索引。
通过构建句子向量的索引,以帮助后续问答处理时用户实际问题的匹配,降低匹配耗时,降低匹配过程的计算量。
针对海量数据,构建索引的方法有很多种,比如kd-tree算法、ball-tree算法、faiss算法、annoy算法等。示例的,可以使用annoy(approximatenearestneighborsohyeah)算法,构建预处理后的语料数据的句子向量的索引。假设预处理后的语料数据中有m个语料,在未使用annoy算法时,进行一次匹配时的计算量为o(m);而使用annoy算法之后,进行一次匹配时的计算量为o(logm),远小于未使用时的计算量o(m),可以极大的降低匹配计算量,降低匹配耗时,提升匹配效率。
本申请实施例公开的适于金融领域的训练方法,利用词向量矩阵,对语料的词向量加权平均,得到语料的句子向量,然后根据句子向量计算语料的相似度,利用相似度分布进行训练;通过对标准问题进行扩展得到扩展语料,使得训练数据集能够充分反映用户提问方式的多样性;构建行业词典,并利用行业词典辅助进行分词操作,提升了分词的准确率。本申请实施例公开的训练方法,相对于现有基于人工建立语义解析规则的方案,在新增语料时,只需要进行语料扩展,不需要人工参与后续模型的训练过程,可以有效减少人工的劳动量;训练数据集能够充分反映用户提问方式的多样性,训练得到的模型具有良好的健壮性,能够有效应对用户提问方式的多样性,提高了语义匹配的精确度。
如图5所示,本申请一实施例还公开了一种适于金融领域的问答方法,包括以下步骤:
步骤s210,获取训练好的模型。
在前述的训练方法中,会得到一个训练好的模型,这个模型会在问答方法中进行使用。
在一些实施例中,问答方法中,也可以包括前面实施例所述的训练方法中的步骤。比如,步骤s210可以具体为:执行训练,得到训练好的模型。在该步骤中,执行训练时,可以执行前面实施例中的训练方法。
步骤s220,接收问题语句,对问题语句进行预处理。
接收用户输入的问题语句,对问题语句进行预处理,以方便后续句子向量的获取以及相似度的计算。预处理,至少包括分词操作。分词操作可以使用常见的分词算法,但同时需要结合行业词典,以提高分词的准确率。常见的分词算法可以包括基于词典的分词方法、基于统计的分词方法、基于规则的分词方法、基于字标注的分词方法等。在一些示例中,采用基于词典的分词方法,比如使用jieba分词工具,结合行业词典,对问题语句进行分词。
为了提高后续处理的针对性,减少不相关词语的干扰,预处理还包括去停词操作。去停词操作,可以利用事先构建的停用词字典进行。对于分词操作后的语料,将问题语句中的每一个词,在停用词字典中进行查找,如果能够查找到,则去除该问题语句中的该词。
步骤s230,根据训练好的模型,获取预处理后的问题语句的句子向量。
然后利用训练好的模型——词向量矩阵w和训练网络结构,得到预处理后的问题语句的句子向量。具体过程可以参见前面实施例中的描述。
步骤s240,在语料数据的句子向量中,匹配预处理后的问题语句的句子向量,输出对应的答复。
语料数据就是事先整理的、可能的用户问题。针对每个用户问题,都设置有答复。在训练过程中,已经利用训练好的模型,对语料数据进行了处理,得到了语料数据的句子向量。
得到问题语句的句子向量之后,即可在语料数据的句子向量中进行匹配。匹配的过程,就是计算两个句子向量之间的相似度,然后进行相似度排序,输出相似度最高的一个语料或者若干个语料作为匹配结果。两个句子向量之间的相似度,可以使用向量之间的余弦
根据匹配结果,输出相似度最高的语料的对应的答复。还可以进一步输出匹配结果中的其他语料,以供用户参考。
为了保证匹配结果的精准性,在匹配时,还可以设置相似度阈值,只有满足相似度阈值的语料,才能作为匹配结果。当没有满足相似度阈值的语料时,可以提示用户换一种方式提问。如此,可以避免将相似度较低的答复输出给用户,保障了匹配结果的精准性。
为了提升匹配的效率,降低匹配耗时和计算量,在一些实施例中,语料数据的句子向量构建有索引;
步骤s240具体包括,根据语料数据的句子向量的索引,在语料数据的句子向量中,匹配预处理后的问题语句的句子向量,输出对应的答复。
针对海量数据,构建索引的方法有很多种,比如kd-tree算法、ball-tree算法、faiss算法、annoy算法等。示例的,可以使用annoy算法构建语料数据的句子向量的索引。在步骤s240中,根据annoy算法构建的语料数据的句子向量的索引,使用annoy算法,在语料数据的句子向量的索引中,匹配预处理后的问题语句的句子向量,得到匹配结果。然后,根据匹配结果,输出对应的答复。
假设预处理后的语料数据中有m个语料,在未使用annoy算法时,进行一次匹配时的计算量为o(m);而使用annoy算法之后,进行一次匹配时的计算量为o(logm),远小于未使用时的计算量o(m),可以极大的降低匹配计算量,降低匹配耗时,提升匹配效率。
本申请实施例公开的问答方法,使用的训练好的模型,具有良好的健壮性,能够有效应对用户提问方式的多样性,精准匹配用户的问题,从而使得反馈给用户的答案更加精准,符合用户的意图。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
如图6所示,本申请另一实施例公开了一种适于金融领域的训练装置,包括:
语料数据获取单元110,用于获取用于训练的语料数据以及行业词典,所述语料数据包括标准问题语料以及扩展语料;
语料预处理单元120,用于对所述语料数据进行预处理,所述预处理至少包括分词操作,所述分词操作,至少结合所述行业词典,对所述语料数据进行分词;
训练数据集构建单元130,用于根据预处理后的语料数据,构建训练数据集;
所述训练数据集可以包括若干个单元输入,每个单元输入包括一个目标语料、若干正例及若干负例,所述正例为与所述目标语料同义的语料,所述负例为与所述目标语料不同义的语料;
执行训练单元140,用于初始化词向量矩阵w,构建以词向量矩阵作为参数的损失函数l,根据训练数据集和训练网络结构进行训练,直至损失函数l满足预定结束条件,输出训练好的模型;
训练网络结构包括:输入层、映射层、相似度计算层和输出层;
输入层,获取一个单元输入;
映射层,利用词向量矩阵w,生成单元输入中每个语料的词向量,对每个语料的词向量加权平均得到单元输入中每个语料的句子向量;
相似度计算层,利用语料的句子向量,计算目标语料与单元输入中其他语料的相似度;
输出层,根据目标语料与单元输入中其他语料的相似度,输出单元输入的相似度预测值;
语料数据向量化单元150,用于利用训练好的模型,获取语料数据的句子向量。
语料数据获取单元110、语料预处理单元120、训练数据集构建单元130、执行训练单元140及语料数据向量化单元150的具体工作方式,可以参见前面实施例训练方法中的描述,在此不再赘述。
在一些实施例中,训练装置100还包括索引创建单元160,用于构建语料数据的句子向量的索引。通过构建句子向量的索引,以帮助后续问答处理时用户实际问题的匹配,降低匹配耗时,降低匹配过程的计算量。索引创建单元160的具体工作方式,可以参见前面实施例训练方法中的描述。
本申请实施例公开的适于金融领域的训练装置,利用词向量矩阵,对语料的词向量加权平均,得到语料的句子向量,然后根据句子向量计算语料的相似度,利用相似度分布进行训练;通过对标准问题进行扩展得到扩展语料,使得训练数据集能够充分反映用户提问方式的多样性;构建行业词典,并利用行业词典辅助进行分词操作,提升了分词的准确率。相对于现有基于人工建立语义解析规则的方案,本身实施例公开的训练装置,在新增语料时,只需要进行语料扩展,不需要人工参与后续模型的训练过程,可以有效减少人工的劳动量;训练数据集能够充分反映用户提问方式的多样性,训练得到的模型具有良好的健壮性,能够有效应对用户提问方式的多样性,提高了语义匹配的精确度。
如图6所示,本申请另一实施例还公开了一种适于金融领域的问答装置,包括:
模型获取单元210,用于获取训练好的模型;
问题语句预处理单元220,用于接收问题语句,对问题语句进行预处理;
问题语句向量化单元230,用于根据训练好的模型,获取预处理后的问题语句的句子向量;
匹配输出单元240,用于在语料数据的句子向量中,匹配预处理后的问题语句的句子向量,输出对应的答复。
模型获取单元210、问题语句预处理单元220、问题语句向量化单元230及匹配输出单元240的具体工作方式,可以参见前面实施例问答方法中的描述。
在一些实施例中,语料数据的句子向量构建有索引,匹配输出单元240具体用于,根据语料数据的句子向量的索引,在语料数据的句子向量中,匹配预处理后的问题语句的句子向量,输出对应的答复。构建索引的方法,比如kd-tree算法、ball-tree算法、faiss算法、annoy算法等。示例的,可以使用annoy算法构建语料数据的句子向量的索引。在步骤s240中,根据annoy算法构建的语料数据的句子向量的索引,使用annoy算法,在语料数据的句子向量的索引中,匹配预处理后的问题语句的句子向量,得到匹配结果。然后,根据匹配结果,输出对应的答复。如此,可以极大的降低匹配计算量,降低匹配耗时,提升匹配效率。
在一些实施例中,问答装置200可以包括有训练装置100的结构,比如,模型获取单元210,用于执行前面实施例中的训练方法,得到训练好的模型。
本申请实施例公开的问答装置,使用的训练好的模型,具有良好的健壮性,能够有效应对用户提问方式的多样性,精准匹配用户的问题,从而使得反馈给用户的答案更加精准,符合用户的意图。
本申请一实施例还提供了一种适于金融领域的问答系统10,如图6所示,包括前述的训练装置100和问答装置200。
本申请一实施例还提供一种机器可读存储介质,其上存储有计算机程序,其中所述计算机程序在由处理器执行时实现上述任一实施例所述的适于金融领域的训练方法或问答方法。
所述系统/计算机装置集成的部件/模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施方式方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,所述计算机程序在被处理器执行时,可实现上述各个方法实施方式的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在本发明所提供的几个具体实施方式中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施方式仅仅是示意性的,例如,所述部件的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
另外,在本发明各个实施例中的各功能模块/部件可以集成在相同处理模块/部件中,也可以是各个模块/部件单独物理存在,也可以两个或两个以上模块/部件集成在相同模块/部件中。上述集成的模块/部件既可以采用硬件的形式实现,也可以采用硬件加软件功能模块/部件的形式实现。
对于本领域技术人员而言,显然本发明实施例不限于上述示范性实施例的细节,而且在不背离本发明实施例的精神或基本特征的情况下,能够以其他的具体形式实现本发明实施例。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明实施例的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明实施例内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统、装置或终端权利要求中陈述的多个单元、模块或装置也可以由同一个单元、模块或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
技术特征:
1.一种适于金融领域的训练方法,其特征在于,包括:
获取用于训练的语料数据以及行业词典,所述语料数据包括标准问题语料以及扩展语料;
对所述语料数据进行预处理,所述预处理至少包括分词操作,所述分词操作,至少结合所述行业词典,对所述语料数据进行分词;
根据预处理后的语料数据,构建训练数据集;
初始化词向量矩阵,构建以所述词向量矩阵作为参数的损失函数,根据所述训练数据集和训练网络结构进行训练,直至所述损失函数满足预定结束条件,输出训练好的模型。
2.根据权利要求1所述的训练方法,其特征在于,所述训练数据集包括若干个单元输入,每个单元输入包括一个目标语料、若干正例及若干负例,所述正例为与所述目标语料同义的语料,所述负例为与所述目标语料不同义的语料,所述训练网络结构包括:输入层、映射层、相似度计算层和输出层;
所述输入层,获取一个单元输入;
所述映射层,利用所述词向量矩阵,生成所述单元输入中每个语料的词向量,对每个语料的词向量加权平均得到所述单元输入中每个语料的句子向量;
所述相似度计算层,利用所述语料的句子向量,计算目标语料与单元输入中其他语料的相似度;
所述输出层,根据目标语料与单元输入中其他语料的相似度,输出单元输入的相似度预测值。
3.根据权利要求1所述的训练方法,其特征在于,所述预处理还包括去停词操作和/或同义词扩展操作。
4.根据权利要求1所述的训练方法,其特征在于,所述方法还包括:
利用训练好的模型,获取语料数据的句子向量;
构建语料数据的句子向量的索引。
5.一种适于金融领域的问答方法,其特征在于,包括:
获取训练好的模型;
接收问题语句,对所述问题语句进行预处理;
根据训练好的模型,获取预处理后的问题语句的句子向量;
在语料数据的句子向量中,匹配预处理后的问题语句的句子向量,输出对应的答复。
6.根据权利要求5所述的问答方法,其特征在于,所述语料数据的句子向量构建有索引;
所述在语料数据的句子向量中,匹配预处理后的问题语句的句子向量,输出对应的答复的步骤,具体为,
根据语料数据的句子向量的索引,在语料数据的句子向量中,匹配预处理后的问题语句的句子向量,输出对应的答复。
7.一种适于金融领域的训练装置,其特征在于,包括:
语料数据获取单元,用于获取用于训练的语料数据以及行业词典,所述语料数据包括标准问题语料以及扩展语料;
语料预处理单元,用于对所述语料数据进行预处理,所述预处理至少包括分词操作,所述分词操作,至少结合所述行业词典,对所述语料数据进行分词;
训练数据集构建单元,用于根据预处理后的语料数据,构建训练数据集;
执行训练单元,用于初始化词向量矩阵,构建以词向量矩阵作为参数的损失函数,根据训练数据集和训练网络结构进行训练,直至损失函数满足预定结束条件,输出训练好的模型。
8.一种适于金融领域的问答系统,其特征在于,包括训练装置及问答装置,所述训练装置为权利要求7所述的训练装置,输出训练好的模型;
所述问答装置包括:
模型获取单元,用于获取训练好的模型;
问题语句预处理单元,用于接收问题语句,对问题语句进行预处理;
问题语句向量化单元,用于根据训练好的模型,获取预处理后的问题语句的句子向量;
匹配输出单元,用于在语料数据的句子向量中,匹配预处理后的问题语句的句子向量,输出对应的答复。
9.一种机器可读存储介质,其上存储有计算机程序,其中所述计算机程序在由处理器执行时实现权利要求1-4任一项所述的适于金融领域的训练方法。
10.一种机器可读存储介质,其上存储有计算机程序,其中所述计算机程序在由处理器执行时实现权利要求5-6任一项所述的适于金融领域的问答方法。
技术总结
本发明涉及适于金融领域的训练方法、问答方法、装置及存储介质,其中,训练方法包括:获取用于训练的语料数据以及行业词典,语料数据包括标准问题语料以及扩展语料;对语料数据进行预处理,构建训练数据集;初始化词向量矩阵,构建以所述词向量矩阵作为参数的损失函数,根据所述训练数据集和训练网络结构进行训练,直至所述损失函数满足预定结束条件,输出训练好的模型。训练得到的模型,具有良好的健壮性,能够有效应对用户提问方式的多样性,精准匹配用户的问题,从而使得反馈给用户的答案更加精准,符合用户的意图。
技术研发人员:孙信中;周培林;黄芝琪;侯晓龙;孙非凡;马标
受保护的技术使用者:深圳市奥拓电子股份有限公司
技术研发日:.10.15
技术公布日:.02.21