基于bert模型的意图识别方法、装置及相关设备
技术领域
1.本发明涉及人工智能领域,尤其涉及一种基于bert模型的意图识别方法、装置及相关设备。
背景技术:
2.近年来通过深度神经网络进行对话状态管理已成为对话机器人领域的主流技术。对话状态管理具体来说是对话机器人通过识别用户意图和槽位抽取,实现与用户交互完成特定任务。其中,意图是表明用户想实现何种目的,例如订机票还是订火车票;而槽位是指完成对话的关键要素,例如在订票流程中必须要填写的出发时间、出发地、目的地等要素。
3.传统的技术是将意图识别视为多分类任务,预先定义好一定类别的意图,通过各种神经网络模型实现分类。通过这些方法完成意图识别需要对每个任务进行大量的标注,需要耗费较多人力和时间成本,影响了实际应用范围。当前技术发展趋势是在预置了丰富语义特征的开源预训练模型(例如bert模型)基础上,再进行优化改进,以达到更好的效果。
技术实现要素:
4.本发明实施例提供了一种基于bert模型的意图识别方法、装置及相关设备,旨在解决现有技术中意图识别准确性不高的问题。
5.第一方面,本发明实施例提供了一种基于bert模型的意图识别方法,其包括:
6.将训练语料进行分词处理得到多个单词,并基于多个所述单词构建语料矩阵,其中,所述训练语料包含多个对话序列;
7.根据所述训练语料中每个对话序列的先后顺序确定所述对话序列内每个单词的对话序列标识向量;以及获取所述训练语料中每一单词在所述语料矩阵的邻接词序列,并根据所述邻接词序列计算得到对应的邻接语义向量;
8.获取所述训练语料中每个单词的词向量及位置向量,并对所述词向量、位置向量、对话序列标识向量以及邻接语义向量进行组合,得到所述训练语料每个单词的输入向量;
9.基于所述输入向量,通过预置的bert模型对所述输入向量进行预测,得到所述输入向量所属意图的预测概率,从而构建意图识别模型;
10.获取待识别的目标语料对应的目标输入向量,通过所述意图识别模型进行意图识别,得到意图识别结果。
11.第二方面,本发明实施例提供了一基于bert模型的意图识别装置,其包括:
12.构建模块,用于将训练语料进行分词处理得到多个单词,并基于多个所述单词构建语料矩阵,其中,所述训练语料包含多个对话序列;
13.计算模块,用于根据所述训练语料中每个对话序列的先后顺序确定所述对话序列内每个单词的对话序列标识向量;以及获取所述训练语料中每一单词在所述语料矩阵的邻接词序列,并根据所述邻接词序列计算得到对应的邻接语义向量;
14.组合模块,用于获取所述训练语料中每个单词的词向量及位置向量,并对所述词
向量、位置向量、对话序列标识向量以及邻接语义向量进行组合,得到所述训练语料每个单词的输入向量;
15.预测模块,用于基于所述输入向量,通过预置的bert模型对所述输入向量进行预测,得到所述输入向量所属意图的预测概率,从而构建意图识别模型;
16.识别模块,用于获取待识别的目标语料对应的目标输入向量,通过所述意图识别模型进行意图识别,得到意图识别结果。
17.第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的基于bert模型的意图识别方法。
18.第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的基于bert模型的意图识别方法。
19.本发明实施例提供了一种基于bert模型的意图识别方法、装置及相关设备。该方法包括对训练语料进行分词处理得到多个单词,并基于多个所述单词构建语料矩阵;根据所述训练语料中每个对话序列的先后顺序确定所述对话序列内每个单词的对话序列标识向量;以及获取所述训练语料中每一单词在所述语料矩阵的邻接词序列,并根据所述邻接词序列计算得到对应的邻接语义向量;获取所述训练语料中每个单词的词向量及位置向量,并对所述词向量、位置向量、对话序列标识向量以及邻接语义向量进行组合,得到所述训练语料每个单词的输入向量;基于所述输入向量,通过预置的bert模型对所述输入向量进行预测,得到所述输入向量所属意图的预测概率,从而构建意图识别模型;获取待识别的目标语料对应的目标输入向量,通过所述意图识别模型进行意图识别,得到意图识别结果。该方法考虑了单词在语料中的位置联系和语义联系,增加单词在语料矩阵中的邻接语义向量和对话序列标识向量,提高意图识别的准确性。
附图说明
20.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1为本发明实施例提供的基于bert模型的意图识别方法的流程示意图;
22.图2为本发明实施例提供的基于bert模型的意图识别方法中遮掩步骤的流程示意图;
23.图3为图2中步骤s105的一子流程示意图;
24.图4为本发明实施例提供的基于bert模型的意图识别方法步骤s110的子流程示意图;
25.图5为本发明实施例提供的基于bert模型的意图识别方法步骤s120的子流程示意图;
26.图6为本发明实施例提供的基于bert模型的意图识别方法步骤s120的子流程示意图;
27.图7为本发明实施例提供的基于bert模型的意图识别方法步骤s120的子流程示意
图;
28.图8为本发明实施例提供的基于bert模型的意图识别装置的示意性框图;
29.图9为本发明实施例提供的基于bert模型的意图识别方法的语料矩阵示意图;
30.图10为本发明实施例提供的基于bert模型的意图识别方法中计算邻接语义向量的计算示意图。
具体实施方式
31.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
32.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
33.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
34.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
35.请参阅图1为本发明实施例提供的意图识别方法的流程示意图,该方法包括步骤s110~s150。
36.步骤s110、对训练语料进行分词处理得到多个单词,并基于多个所述单词构建语料矩阵,其中,所述训练语料包含多个对话序列;
37.本实施例中,为了使训练模型的效果达到最佳,在利用样本语料训练模型前,根据预置的遮掩规则对样本语料进行遮掩,得到训练模型用的训练语料。其中,训练语料包含多轮对话的对话序列,每一对话序列中包括单词对话中提问与回答的语料。通过分词技术对训练语料进行分词处理得到多个单词,并基于多个单词构建语料矩阵。通过语料矩阵可以反映文本中邻接词语之间的语义信息。例如,基于单词构建9
×
9的语料矩阵。
38.在一实施例中,如图2所示,在步骤s110之前,包括:
39.步骤s101、获取样本语料,统计样本语料中每个所述对话序列中每一单词的词频和逆文档频率,并计算所述词频和逆文档频率的乘积,得到每个单词对应的tf
‑
idf值;
40.步骤s102、将所述对话序列中每个单词按照所述tf
‑
idf值从低到高排序并标识位置序号,得到tf
‑
idf属性队列;
41.步骤s103、统计所述对话序列中所有单词的所属词性,并根据所述词性对应的占比从低到高对所述对话序列中的单词进行排序并标识位置序号,得到词性属性队列,所属词性至少包括名词、副词、形容词;
42.步骤s104、计算所述对话序列每个单词在所述tf
‑
idf属性队列及词性属性队列中对应的位置序号乘积,并根据乘积结果从低到高排序,得到mask队列;
43.步骤s105、对所述mask队列的单词进行随机遮掩,得到所述训练语料。
44.本实施例中,为了使模型学习到样本语料中词频较低或所属词性占比较低的单词,对样本语料进行遮掩处理,得到用于训练模型的训练语料。遮掩处理具体包括:统计样本语料中每个对话序列中每一单词的词频和逆文档频率,并计算词频和逆文档频率的乘积,得到每个对话序列中每一单词对应的tf
‑
idf值;将对话序列中每个单词按照tf
‑
idf值从低到高排序并标识位置序号,得到tf
‑
idf属性队列;统计对话序列中所有单词的所属词性,并按词性对应的占比从低到高对对话序列中的单词进行排序并标识位置序号,得到词性属性队列;计算对话序列每个单词在tf
‑
idf属性队列及词性属性队列中对应的位置序号乘积,并根据乘积结果从低到高排序,得到mask队列;按遮掩规则对mask队列的单词进行随机遮掩,得到训练语料。需要知道的是,对于tf
‑
idf值相等的单词,或词性所占比例相等的单词,在tf
‑
idf属性队列或词性属性队列中的位置序号为同一个,排名靠后的单词对应的位置序号再依次累加。例如,两个单词的tf
‑
idf值相等,在tf
‑
idf属性队列都为10,那么接下去的单词位置序号则为12。此外,样本语料可以是各种对话机器人与客户的对话语料等。对话序列中单词的词性至少包括名词、形容词、副词及数词等词性,且优先排列名词词性的单词。
45.在一实施例中,如图3所示,步骤s105包括:
46.步骤s1051、随机从所述mask队列中选择若干单词作为目标遮掩单词,其中单词在所述mask队列中越靠前,被选择的概率越低;
47.步骤s1052、按预置比例从所述目标遮掩单词中选择一部分替换为所述样本语料中的任意一个单词,从所述目标遮掩单词中选择一部分替换为指定符号,以及保持其余部分不变,得到所述训练语料。
48.本实施例中,随机从mask队列中选择若干单词作为目标遮掩单词,然后根据预置比例从目标遮掩单词中选择一定比例的单词替换为样本语料中的任一单词,一定比例替换为指定符号,其余的单词保持不变,得到用于训练意图识别模型的训练语料。其中,mask队列中单词越靠后,被选择的概率相对越高,越能使模型能够学习到样本语料中更重要的单词与上下文内容的语义关联,得到更丰富的语义特征。
49.例如,假设mask队列为[“我”、“北京”、“飞机”],则“飞机”被遮掩的概率高于“我”。预设目标遮掩单词40%的单词替换为样本语料中的任一单词,40%替换为符号unk,20%保持不变,最终得到用于训练意图识别模型的训练语料。
[0050]
在一实施例中,如图4所示,步骤s110包括:
[0051]
步骤s111、将所述训练语料进行分词,得到每一对话序列中提问与回答的所有单词;
[0052]
步骤s112、按顺序将每一对话序列中提问与回答的所有单词进行排列,并在每一提问以及每一回答的首个单词前分别添加提问序号和回答序号,以及对未填充部分进行补全,构建得到n
×
n语料矩阵。
[0053]
本实施例中,将训练语料进行分词处理,得到每一对话序列中提问与回答的所有单词;按顺序将每一对话序列中提问与回答的所有单词进行排列,并在每一提问以及每一回答的首个单词前分别添加提问序号和回答序号,以及对未填充部分进行补全,构建n
×
n语料矩阵。如图8所示,在对话机器人的每个问题以及客户的每个回答前添加对应的提问序号(如u1至u6)和对应的回答序号如(s1至s6),构建9
×
9的语料矩阵。
[0054]
步骤s120、根据所述训练语料中每个对话序列的先后顺序确定所述对话序列内每个单词的对话序列标识向量;以及获取所述训练语料中每一单词在所述语料矩阵的邻接词序列,并根据所述邻接词序列计算得到对应的邻接语义向量;
[0055]
本实施例中,首先根据训练语料中每个对话序列的先后顺序确定对话序列内每个单词的对话序列标识向量。接着确定语料矩阵中每一单词的邻接词序列;最后根据邻接词序列进行计算,得到每个单词的邻接语义向量。其中,每个单词至少存在一个邻接词序列。
[0056]
例如,如图9所示,在9
×
9的语料矩阵的语料矩阵中,以第5行的“请问”为例,选择其邻接的左、左上、左下、上、下、右上、右、右下8个方位的单词作为第1个邻接词序列;第二次以一个单词的步长向外延伸取16个单词作为第2个邻接词序列;第三次以两个单词为步长向外延伸取24个单词作为第3个邻接词序列;第四次以两个单词为步长向外延伸取32个单词作为第3个邻接词序列。依次类推,一个单词存在一个或多个邻接词序列。需要注意的是,若某个方向的单词已超过第二文档矩阵最边缘,此时首先做单词补全,以指定符号(unk)填充,构建最后一个该单词的最后一个邻接词序列。
[0057]
在一实施例中,如图5所示,步骤s120包括:
[0058]
步骤s121、按时间顺序定义所述训练语料中每个对话序列的序号;
[0059]
步骤s122、将所述序号作为对应对话序列内每个单词的对话序列标识向量。
[0060]
本实施例中,根据训练语料中每个对话序列的发生时间,对每个对话序列进行排序,确定每个对话序列的序号;以序号作为对话序列内每个单词的对话序列标识向量。例如,第5对话序列中的每一个单词的对话序列标识向量为5。
[0061]
在一实施例中,如图6所示,步骤s120还包括:
[0062]
步骤s123、根据每个单词与所述语料矩阵中其他单词的距离确定所述语料矩阵中每个单词的邻接词序列;
[0063]
步骤s124、基于所述邻接词序列,采用预置的gru模型计算每个单词的前向邻接语义向量和后向邻接语义向量,并将所述前向邻接语义向量和后向邻接语义向量进行拼接,得到所述邻接语义向量,其中,每个单词至少存在一个邻接语义向量。
[0064]
本实施例中,根据每个单词与语料矩阵中其他单词的距离确定语料矩阵中每个单词的邻接词序列。如图10所示,一个单词至少存在一个邻接词序列,对于一个单词的第k个邻接词序列,采用预置的gru模型计算每个单词的前向邻接语义向量和后向邻接语义向量,并将前向邻接语义向量和后向邻接语义向量进行拼接,得到第k个邻接语义向量。需要注意的是,由于语料矩阵中一个单词存在一个或多个邻接词序列,因此,一个单词存在一个或多个邻接语义向量。其中,k为邻接词序列的序号,对一个单词的所有邻接语义向量赋予权重,k越大权重越小。权重赋予规则如下:根据k值对同一个单词的每个邻接语义向量赋予权重,k越大权重越小。
[0065]
在一实施例中,如图7所示,步骤s124之后,还包括:
[0066]
步骤s125、按预置邻接语义规则对每一所述单词的所有邻接语义向量进行排序,得到邻接向量矩阵及标签向量,所述标签向量为所述邻接向量矩阵中每个邻接语义向量的序号;
[0067]
步骤s126、根据预置权重矩阵函数计算所述邻接向量矩阵中每一所述邻接语义向量的权重。
[0068]
本实施例中,对一个单词的每个邻接语义向量赋予权重,权重的计算方式如下:将一个单词的所有邻接词序列按序号从低到高排序,得到该单词的邻接向量矩阵和标签向量。其中,标签向量为所有邻接语义向量的序号。接着根据权重矩阵函数计算邻接向量矩阵中每一邻接语义向量的权重。其中,一个单词的所有邻接语义向量的权重之和为1,若存在单词的所有邻接语义向量的权重之和不为1,则用归一化处理使得同一单词的所有邻接语义向量的权重之和为1。
[0069]
权重矩阵函数如下:
[0070][0071]
其中,w
adj
(m
×
n)表示邻接向量矩阵,表示权重向量,y表示标签向量,m表示邻接语义向量个数,n表示向量维数。
[0072]
步骤s130、获取所述训练语料中每一单词的词向量及位置向量,并对每一单词对应的所述词向量、位置向量、对话序列标识向量以及邻接语义向量进行组合,得到所述训练语料每个单词的输入向量;
[0073]
本实施例中,获取训练语料中每一个单词对应的词嵌入相邻和位置向量。其中,单词的词嵌入向量可以通过word2vec、glove等词嵌入模型计算获得;位置向量采用预置的transformer模型中正余弦方式计算获取。然后逐一组合训练语料中每一个单词对应的词向量、位置向量、对话序列标识向量以及邻接语义向量,得到训练语料每一个单词对应的输入向量。
[0074]
步骤s140、基于所述输入向量,通过预置的bert模型对所述输入向量进行预测,得到所述输入向量所属意图的预测概率,从而构建意图识别模型;
[0075]
本实施例中,基于输入向量,通过预置的bert模型对输入向量进行预测,得到输入向量所属意图的预测概率;然后根据预置的损失函数计算预测概率与输入向量所属真实意图之间的概率损失,并根据概率损失对bert模型的模型参数进行优化调整,以最终的bert模型作为意图识别模型。其中,需要知道的是,bert模型的网络结构由多层transformer
‑
encoder模型组成,transformer
‑
encoder模型为transformer模型中的编码器。
[0076]
步骤s150、获取待识别的目标语料对应的目标输入向量,通过所述意图识别模型进行意图识别,得到意图识别结果。
[0077]
本实施例中,基于上述步骤确定意图识别模型后,将目标识别语料对应的目标输入向量输入语义识别模型进行意图识别,得到相应的预测概率,根据预测概率确定最终的意图识别结果。
[0078]
该方法考虑了单词在语料中的位置联系和语义联系,增加单词在语料矩阵中的对话序列标识向量和邻接语义向量,提高意图识别的准确性。
[0079]
本发明实施例还提供一种基于bert模型的意图识别装置,该基于bert模型的意图识别装置用于执行前述基于bert模型的意图识别方法的任一实施例。具体地,请参阅图8,图8是本发明实施例提供的基于bert模型的意图识别装置的示意性框图。该基于bert模型的意图识别装置100可以配置于服务器中。
[0080]
如图8所示,意图识别装置100包括构建模块110、计算模块120、组合模块130、预测模块140、识别模块150。
[0081]
构建模块110,用于将训练语料进行分词处理得到多个单词,并基于多个所述单词构建语料矩阵,其中,所述训练语料包含多个对话序列;
[0082]
计算模块120,用于根据所述训练语料中每个对话序列的先后顺序确定所述对话序列内每个单词的对话序列标识向量;以及获取所述训练语料中每一单词在所述语料矩阵的邻接词序列,并根据所述邻接词序列计算得到对应的邻接语义向量;
[0083]
组合模块130,用于获取所述训练语料中每一单词的词向量及位置向量,并对每一单词对应的所述词向量、位置向量、对话序列标识向量以及邻接语义向量进行组合,得到所述训练语料每个单词的输入向量;
[0084]
预测模块140,用于基于所述输入向量,通过预置的bert模型对所述输入向量进行预测,得到所述输入向量所属意图的预测概率,从而构建意图识别模型;
[0085]
识别模块150,用于获取待识别的目标语料对应的目标输入向量,通过所述意图识别模型进行意图识别,得到意图识别结果。
[0086]
在一实施例中,意图识别装置100还包括:
[0087]
第一统计模块,用于统计每个所述对话序列中每一单词的词频和逆文档频率,并计算所述词频和逆文档频率的乘积,得到每个单词对应的tf
‑
idf值;
[0088]
第一排序模块,用于将所述对话序列中每个单词按照所述tf
‑
idf值从低到高排序并标识位置序号,得到tf
‑
idf属性队列;
[0089]
第二统计模块,用于统计所述对话序列中所有单词的所属词性,并根据所述词性对应的占比从低到高对所述对话序列中的单词进行排序并标识位置序号,得到词性属性队列,所属词性至少包括名词、副词、形容词;
[0090]
第二排序模块,用于计算所述对话序列每个单词在所述tf
‑
idf属性队列及词性属性队列中对应的位置序号乘积,并根据乘积结果从低到高排序,得到mask队列;
[0091]
遮掩模块,用于对所述mask队列的单词进行随机遮掩,得到训练语料。
[0092]
在一实施例中,遮掩模块包括:
[0093]
选择子单元,用于随机从所述mask队列中选择若干单词作为目标遮掩单词,其中单词在所述mask队列中越靠前,被选择的概率越低;
[0094]
遮掩子单元,用于按预置比例从所述目标遮掩单词中选择一部分替换为训练语料中的任意一个单词,从所述目标遮掩单词中选择一部分替换为指定符号,以及保持其余部分不变。
[0095]
在一实施例中,构建模块110包括:
[0096]
分词单元,用于将所述训练语料进行分词,得到每一对话序列中提问与回答的所有单词;
[0097]
构建单元,用于按顺序将每一对话序列中提问与回答的所有单词进行排列,并在每一提问以及每一回答的首个单词前分别添加提问序号和回答序号,以及对未填充部分进行补全,构建n
×
n语料矩阵。
[0098]
在一实施例中,计算模块120包括:
[0099]
标识单元,用于按时间顺序定义所述训练语料中每个对话序列的序号;
[0100]
确定单元,用于将所述序号作为对应对话序列内每个单词的对话序列标识向量。
[0101]
在一实施例中,计算模块120包括:
[0102]
邻接词序列确定单元,用于根据每个单词与所述语料矩阵中其他单词的距离确定所述语料矩阵中每个单词的邻接词序列;
[0103]
语义向量计算单元,用于基于所述邻接词序列,采用预置的gru模型计算每个单词的前向邻接语义向量和后向邻接语义向量,并将所述前向邻接语义向量和后向邻接语义向量进行拼接,得到所述邻接语义向量,其中,每个单词至少存在一个邻接语义向量。
[0104]
在一实施例中,计算模块120还包括:
[0105]
邻接语义向量排序单元,用于按所述邻接语义规则确定每一所述单词的所有邻接语义向量并排序,得到邻接向量矩阵及标签向量,所述标签向量为所述邻接向量矩阵中每个邻接语义向量的序号;
[0106]
权重计算单元,用于根据预置权重矩阵函数计算所述邻接向量矩阵中每一所述邻接语义向量的权重。
[0107]
在一实施例中,计算模块120还包括:
[0108]
对话序列排序单元,用于按时间顺序定义所述训练语料每个对话序列的序号;
[0109]
确定单元,用于将所述序号作为对应对话序列内每个单词的对话序列标识向量。
[0110]
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如上所述的基于bert模型的意图识别方法。
[0111]
在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如上所述的基于bert模型的意图识别方法。
[0112]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0113]
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
[0114]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
[0115]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0116]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read
‑
only memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0117]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
技术特征:
1.一种基于bert模型的意图识别方法,其特征在于,包括:对训练语料进行分词处理得到多个单词,并基于多个所述单词构建语料矩阵,其中,所述训练语料包含多个对话序列;根据所述训练语料中每个对话序列的先后顺序确定所述对话序列内每个单词的对话序列标识向量;以及获取所述训练语料中每一单词在所述语料矩阵的邻接词序列,并根据所述邻接词序列计算得到对应的邻接语义向量;获取所述训练语料中每一单词的词向量及位置向量,并对每一单词对应的所述词向量、位置向量、对话序列标识向量以及邻接语义向量进行组合,得到所述训练语料每一单词的输入向量;基于所述输入向量,通过预置的bert模型对所述输入向量进行预测,得到所述输入向量所属意图的预测概率,从而构建意图识别模型;获取待识别的目标语料对应的目标输入向量,通过所述意图识别模型进行意图识别,得到意图识别结果。2.根据权利要求1所述的意图识别方法,其特征在于,在所述对训练语料进行分词处理得到多个单词,并基于多个所述单词构建语料矩阵的步骤之前,包括:获取样本语料,统计样本语料中每个所述对话序列中每一单词的词频和逆文档频率,并计算所述词频和逆文档频率的乘积,得到每个单词对应的tf
‑
idf值;将所述对话序列中每个单词按照所述tf
‑
idf值从低到高排序并标识位置序号,得到tf
‑
idf属性队列;统计所述对话序列中所有单词的所属词性,并根据所述词性对应的占比从低到高对所述对话序列中的单词进行排序并标识位置序号,得到词性属性队列,所属词性至少包括名词、副词、形容词;计算所述对话序列每个单词在所述tf
‑
idf属性队列及词性属性队列中对应的位置序号乘积,并根据乘积结果从低到高排序,得到mask队列;对所述mask队列的单词进行随机遮掩,得到所述训练语料。3.根据权利要求2所述的意图识别方法,其特征在于,所述对所述mask队列的单词进行随机遮掩,得到所述训练语料,包括:随机从所述mask队列中选择若干单词作为目标遮掩单词,其中单词在所述mask队列中越靠前,被选择的概率越低;按预置比例从所述目标遮掩单词中选择一部分替换为所述样本语料中的任意一个单词,从所述目标遮掩单词中选择一部分替换为指定符号,以及保持其余部分不变,得到所述训练语料。4.根据权利要求1所述的意图识别方法,其特征在于,所述将训练语料进行分词处理得到多个单词,并基于多个所述单词构建语料矩阵,包括:将所述训练语料进行分词,得到每一对话序列中提问与回答的所有单词;按顺序将每一对话序列中提问与回答的所有单词进行排列,并在每一提问以及每一回答的首个单词前分别添加提问序号和回答序号,以及对未填充部分进行补全,构建n
×
n语料矩阵。5.根据权利要求1所述的意图识别方法,其特征在于,所述根据所述训练语料中每个对
话序列的先后顺序确定所述对话序列内每个单词的对话序列标识向量,包括:按时间顺序定义所述训练语料中每个对话序列的序号;将所述序号作为对应对话序列内每个单词的对话序列标识向量。6.根据权利要求1所述的意图识别方法,其特征在于,所述获取所述训练语料中每一单词在所述语料矩阵的邻接词序列,并根据所述邻接词序列计算得到对应的邻接语义向量,包括:根据每个单词与所述语料矩阵中其他单词的距离确定所述语料矩阵中每个单词的邻接词序列;基于所述邻接词序列,采用预置的gru模型计算每个单词的前向邻接语义向量和后向邻接语义向量,并将所述前向邻接语义向量和后向邻接语义向量进行拼接,得到所述邻接语义向量,其中,每个单词至少存在一个邻接语义向量。7.根据权利要求6所述的意图识别方法,其特征在于,在所述基于所述邻接词序列,采用预置的gru模型计算每个单词的前向邻接语义向量和后向邻接语义向量,并将所述前向邻接语义向量和后向邻接语义向量进行拼接,得到所述邻接语义向量之后,还包括:按预置邻接语义规则对每一所述单词的所有邻接语义向量进行排序,得到邻接向量矩阵及标签向量,所述标签向量为所述邻接向量矩阵中每个邻接语义向量的序号;根据预置权重矩阵函数计算所述邻接向量矩阵中每一所述邻接语义向量的权重。8.一种基于bert模型的意图识别装置,其特征在于,包括:构建模块,用于对训练语料进行分词处理得到多个单词,并基于多个所述单词构建语料矩阵,其中,所述训练语料包含多个对话序列;计算模块,用于根据所述训练语料中每个对话序列的先后顺序确定所述对话序列内每个单词的对话序列标识向量;以及获取所述训练语料中每一单词在所述语料矩阵的邻接词序列,并根据所述邻接词序列计算得到对应的邻接语义向量;组合模块,用于获取所述训练语料中每个单词的词向量及位置向量,并对所述词向量、位置向量、对话序列标识向量以及邻接语义向量进行组合,得到所述训练语料每个单词的输入向量;预测模块,用于基于所述输入向量,通过预置的bert模型对所述输入向量进行预测,得到所述输入向量所属意图的预测概率,从而构建意图识别模型;识别模块,用于获取待识别的目标语料对应的目标输入向量,通过所述意图识别模型进行意图识别,得到意图识别结果。9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的基于bert模型的意图识别方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求1至7中任一项所述的基于bert模型的意图识别方法。
技术总结
本发明实施例公开了基于Bert模型的意图识别方法、装置及相关设备。该方法包括:对训练语料进行分词处理得到多个单词,并基于多个单词构建语料矩阵;构建训练语料中每个单词的对话序列标识向量以及邻接语义向量;获取训练语料中每一单词的词向量及位置向量,并对每一单词对应的词向量、位置向量、对话序列标识向量以及邻接语义向量进行组合,得到每个单词的输入向量;基于输入向量,通过预置的Bert模型对所输入向量进行预测,得到输入向量所属意图的预测概率,从而构建意图识别模型;获取目标识别语料对应的目标输入向量,通过意图识别模型进行意图识别,得到意图识别结果。该方法使意图识别更准确。图识别更准确。图识别更准确。
技术研发人员:王伟 黄勇其 于翠翠 张黔
受保护的技术使用者:润联软件系统(深圳)有限公司
技术研发日:2021.03.25
技术公布日:2021/6/29
转载请注明原文地址:https://doc.8miu.com/read-12947.html