意图识别方法、系统、计算机设备及计算机可读存储介质
文献发布时间:2023-06-19 10:00:31
技术领域
本申请涉及对话系统技术领域,特别是涉及意图识别方法、系统、计算机设备及计算机可读存储介质。
背景技术
在对话系统中,意图识别是一项必不可少的任务,对于用户向系统发送的每一个请求,系统都需要准确理解用户的意图,然后给予正确的答复,提高用户的满意度。人与系统进行多次交互,即可实现多轮对话。意图识别错误,则给出的答复也偏离了用户的真实需求,势必会降低用户继续使用该对话系统的兴趣。
而意图识别本身是一个分类问题,现有的方法主要包括:
1)基于规则模版的意图识别方法,该方法需要人为构建规则模版以及类别信息对用户意图文本进行分类。例如对于航空领域,“订机票”有很多种不同的表达:
①“我要订机票”;
②“有去XX的航班吗”;
③“帮我查一下机票”等等。
根据规则模板的意图识别对于“订机票”这个意图制定的规则为:句子中出现“订机票”三个字,则该句子的意图为“订机票”。至此,仅有第一句能被识别为“订机票”,第二句和第三句则无法识别。
该方法虽然不需要大量的训练数据就可以保证一定的识别准确性,但是模版的覆盖率较低,很多输入query的意图无法识别,特别是在口语化严重的情况下;在意图文本更换类别时,需要专业人员重新构造模版,由此带来的高成本问题无法解决。
2)基于传统机器学习的意图识别方法,该方法需要对语料文本进行关键特征的提取,如关键字、关键词、N-Gram等,然后训练分类器进行意图分类。常用的方法有朴素贝叶斯、支持向量机、逻辑回归、Adaboost等。以支持向量机做意图识别为例,分为四个步骤:文本特征提取、文本特征表示、归一化处理和文本分类。
文本特征提取时先分词并去除停用词,通过例如词频特征选择方法提取特征,使用词频计算出权重并排序,选取TopK个词汇代表文本的语义。直接使用词频进行比较时,容易发生较大的偏差,进行归一化能使文本分类更加精确。经过特征提取、特征表示和归一化处理之后,原文本信息被抽象成一个向量化的样本集,文本分类步骤将此样本集与训练好的模版文件进行相似度计算,若不属于该类别,则与其他类别的模版文件进行计算,直到分到相应的类别。
基于传统机器学习的意图识别方法需要人工提取特征,如关键字、关键词、N-Gram等,成本高,特征的准确性无法保障;存在数据稀疏的问题;同时其传统机器学习方法的分类准确率低,泛化性能较差。
3)基于神经网络的意图识别方法
随着深度学习的不断发展,越来越多的学者们将中文字向量、卷积神经网络、循环神经网络应用于意图识别任务中。使用原始词法特征会导致数据稀疏问题,中文字向量的引入可以解决数据稀疏问题,而且对不同分类内容的表征能力和领域可扩展性更好;采用卷积神经网络提取文本向量表示作为查询分类特征来识别用户意图,可以得到比传统机器学习方法更深层次的特征表示,但是卷积神经网络只能提取到局部予以特征,不能保持语义的连贯性;基于循环神经网络(如LSTM/GRU)的模型将用户输入以序列的形式输入,根据上下文学习词序的语义信息。充分考虑上下文信息从而对意图文本进行更好的特征表示,通过将隐藏状态的最终输出作为意图文本表示,从而得到意图类别结果。
但基于深度学习的意图识别方法对中文的意图识别模型仅考虑字向量或词向量,由于字存在多种组合且有歧义,仅考虑字向量无法准确表达当前语境的信息;由于分词效果并非完全正确,仅考虑词向量可能引入噪音。另一方面,基本采用交叉熵作为损失函数,同等考虑每一个样本对模型的作用,而没有重点考虑较难分类样本的重要性,导致对简单样本的分类效果好而较难样本的分类效果差的问题。
发明内容
本申请实施例提供了一种意图识别方法、系统、计算机设备和计算机可读存储介质,融合字向量及关键词向量实现基于多粒度向量的意图识别,利用Focal loss抑制简单样本权重而让系统更关注较难样本,有效提高分词效果准确率,解决了现有技术对简单样本的分类效果好而较难样本的分类效果差的问题。
第一方面,本申请实施例提供了一种意图识别方法,包括:
数据获取步骤,用于获取待识别文本;
数据预处理步骤,用于对所述待识别文本进行分词并提取关键词,将分词结果及所述关键词转换为向量表示,得到所述待识别文本的字符向量和关键词向量;
文本编码步骤,用于利用循环神经网络分别对所述字符向量和关键词向量进行编码,得到所述待识别文本的字符编码及关键词编码;其中,所述字符编码为文本基于字向量的表示,增加词内字间信息,所述关键词编码为文本基于词向量的表示,用于削弱字符高歧义的情况,准确表达当前语境信息;
意图识别步骤,用于拼接所述字符编码及关键词编码得到所述待识别文本的句子编码,将所述句子编码经一第一全连接层及一Softmax层进行分类并输出文本分类结果,完成意图识别。可选的,所述句子编码通过将字符编码和关键词编码进行向量相加得到。
通过上述步骤,融合文本的字符向量和关键词向量表达文本,一方面利用字符向量充分表达文本字面信息,另一方面利用关键词向量保留文本语义特征,极大程度的保留文本信息。
考虑到在训练的过程中,损失函数一般选择交叉熵损失函数,交叉熵损失函数对所有样本同等对待,在样本分类难易程度不均衡或正负样本不均衡时效果较差。在意图识别任务中,一方面,由于训练样本均为用户口语化内容,有些文本容易识别意图,而有些文本则较难识别意图,样本的难易程度存在较大差别;另一方面,对于一个垂直领域,用户可能仅关心某几个方面而对其他的关注度较小,从而导致类别训练样本分布不均衡,在其中一些实施例中,所述Softmax层的分类损失函数为Focal loss函数。具体的,Focal loss是一个解决分类问题中类别不均衡、分类难度差异的一个loss,通过减少易分类样本的权重,使得模型在训练时更专注于难分类的样本。利用Focal loss作为意图识别的损失函数,解决了现有技术中意图识别样本难以程度差异较大和样本不平衡的问题。
在其中一些实施例中,所述数据预处理步骤进一步包括:
数据提取步骤,用于对所述待识别文本进行分词,并提取所述待识别文本的关键词,得到文本的字符及关键词;具体的,所述分词通过使用Jieba或HanLP(Han LanguageProcessing,简称HanLP)等分词工具得到,所述关键词提取通过TF-IDF(Term Frequency–Inverse Document Frequency,简称TF-IDF)、textrank算法、LDA提取方法(LatentDirichlet Allocation,简称LDA)得到;
数据编码步骤,用于将所述字符及关键词利用One-Hot编码进行向量编码并经一第二全连接层转换为三维字符向量和三维关键词向量;其中,One-Hot编码即独热编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候,其中只有一位有效。具体的,所述第二全连接层的权重采用随机初始化,在训练过程中不断优化。可选的,数据编码步骤也可通过BERT预训练模型实现向量转换。
在其中一些实施例中,所述循环神经网络为LSTM、GRU、Bi-LSTM及Bi-GRU其一或其任意组合。
第二方面,本申请实施例提供了一种意图识别系统,包括:
数据获取模块,用于获取待识别文本;
数据预处理模块,用于对所述待识别文本进行分词并提取关键词,将分词结果及所述关键词转换为向量表示,得到所述待识别文本的字符向量和关键词向量;
文本编码模块,用于利用循环神经网络分别对所述字符向量和关键词向量进行编码,得到所述待识别文本的字符编码及关键词编码;其中,所述字符编码为文本基于字向量的表示,增加词内字间信息,所述关键词编码为文本基于词向量的表示,用于削弱字符高歧义的情况,准确表达当前语境信息;
意图识别模块,用于拼接所述字符编码及关键词编码得到所述待识别文本的句子编码,将所述句子编码经一第一全连接层及一Softmax层进行分类并输出文本分类结果,完成意图识别。可选的,所述句子编码通过将字符编码和关键词编码进行向量相加得到。
通过上述模块,融合文本的字符向量和关键词向量表达文本,一方面利用字符向量充分表达文本字面信息,另一方面利用关键词向量保留文本语义特征,极大程度的保留文本信息。
在其中一些实施例中,所述Softmax层的分类损失函数为Focal loss函数。利用Focal loss作为意图识别的损失函数,解决了意图识别样本难以程度差异较大和样本不平衡的问题。
在其中一些实施例中,所述数据预处理模块进一步包括:
数据提取模块,用于对所述待识别文本进行分词,并提取所述待识别文本的关键词,得到文本的字符及关键词;具体的,所述分词通过使用Jieba或HanLP等分词工具得到,所述关键词提取通过TF-IDF、textrank、LDA提取方法得到;
数据编码模块,用于将所述字符及关键词利用One-Hot编码进行向量编码并经一第二全连接层转换为三维字符向量和三维关键词向量;具体的,所述第二全连接层的权重采用随机初始化,在训练过程中不断优化。可选的,数据编码模块也可通过BERT预训练模型实现向量转换。
在其中一些实施例中,所述循环神经网络为LSTM、GRU、Bi-LSTM及Bi-GRU其一或其任意组合。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的意图识别方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的意图识别方法。
相比于相关技术,本申请实施例提供的意图识别方法、系统、计算机设备和计算机可读存储介质,融合文本字符向量和关键词向量实现意图识别,解决了现有技术中仅考虑字向量或仅考虑词向量的语义丢失问题,提高了识别准确率,无需人工提取特征,降低工作成本,同时使用FocalLoss作为损失函数,解决了常用的交叉熵损失函数缺乏样本重要性权重和样本不均衡问题,削弱简单样本的权重,更关注较难样本对模型的影响。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的意图识别方法的流程示意图;
图2是根据本申请实施例的意图识别系统的结构框图;
图3是根据本申请优选实施例的意图识别方法原理示意图;
图4是根据本申请优选实施例的步骤S202的编码原理示意图。
附图说明:
10、数据获取模块;20、数据预处理模块;30、文本编码模块;
40、意图识别模块;201、数据提取模块;202、数据编码模块。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本实施例提供了一种意图识别方法。图1是根据本申请实施例的意图识别方法的流程示意图,参考图1所示,该流程包括如下步骤:
数据获取步骤S10,用于获取待识别文本;
数据预处理步骤S20,用于对所述待识别文本进行分词并提取关键词,将分词结果及所述关键词转换为向量表示,得到所述待识别文本的字符向量和关键词向量;
文本编码步骤S30,用于利用循环神经网络分别对所述字符向量和关键词向量进行编码,得到所述待识别文本的字符编码及关键词编码;其中,循环神经网络为LSTM、GRU、Bi-LSTM及Bi-GRU其一或其任意组合;
意图识别步骤S40,用于拼接所述字符编码及关键词编码得到所述待识别文本的句子编码,将所述句子编码经一第一全连接层及一Softmax层进行分类并输出文本分类结果,完成意图识别。可选的,所述句子编码通过将字符编码和关键词编码进行向量相加得到,Softmax层的分类损失函数为Focal loss函数。
通过上述步骤,融合文本的字符向量和关键词向量表达文本,一方面利用字符向量充分表达文本字面信息,另一方面利用关键词向量保留文本语义特征,极大程度的保留文本信息;利用Focal loss作为意图识别的损失函数,解决了意图识别样本难以程度差异较大和样本不平衡的问题。
在其中一些实施例中,所述数据预处理步骤S20进一步包括:
数据提取步骤S201,用于对所述待识别文本进行分词,并提取所述待识别文本的关键词,得到文本的字符及关键词;具体的,所述分词通过使用Jieba或HanLP等分词工具得到,所述关键词提取通过TF-IDF、textrank、LDA提取方法其一或其任意得到;
数据编码步骤S202,用于将所述字符及关键词利用One-Hot编码进行向量编码并经一第二全连接层转换为三维字符向量和三维关键词向量;具体的,所述第二全连接层的权重采用随机初始化,在训练过程中不断优化。可选的,数据编码步骤也可通过BERT预训练模型实现向量转换。
下面通过优选实施例对本申请实施例进行描述和说明。图3-4根据本申请优选实施例的意图识别方法原理示意图,参考图1、3-4所示,对本申请优选实施例进行描述和说明。
首先,经步骤S10获取到待识别的文本,进入步骤S20。
在步骤S20中,考虑到中文的词汇在一定程度上比单纯的字更加具体,包含了更加丰富的语义信息,比如我们看到“机票”可以明确知道是什么东西,而“机”和“票”单独存在时可以有多种可能的含义无法准确表示当前语境信息,因此需要对文本进行分词。文本中包含一些停用词如“的”、“了”并不会对文本的语义有正向影响,反而存在干扰,降低模型的训练和预测速度。文本中的关键词往往最能代表文本的主要信息,更加精准的体现文本内容,因此需要先经步骤S201提取文本关键词。可选的,使用Jieba或HanLP等分词工具对训练文本进行分词,然后使用TF-IDF方法提取文本的关键词,具体的,先计算文档中每个词的词频,再计算逆文档频率,将词频乘以逆文档频率得到词汇的权重,将文本内的词汇权重排序选取前K个词汇即为文档的关键词。
参考图3所示,针对输入文本“我明天要出差,帮我看下机票。”的jieba分词结果为如下字符:[′我′,′明天′,′要′,′出差′,′,′,′帮′,′我′,′看′,′下′,′机票′,′。′],使用TF-IDF算法计算得到关键词为[′出差′,′机票′]。
然后经步骤S202对上述字符和关键词进行数据编码。具体的,对于每个字符,假设编码后维度d为3(实验中d=128),图4中所示的,将字符编码为[0,0,1,0],然后经第二全连接层,得到字符的三维编码向量。其中,第二全连接层的权重采用随机初始化,在训练的过程中不断优化得到最终权重。同理,对每个关键词进行编码得到三维向量。如此,得到文本的字符向量及关键词向量。
随后经步骤S30进行基于字符的句子编码和基于关键词的句子编码层,即为根据上述文本的字符向量及关键词向量进行编码,得到文本的字符编码及关键词编码。如图3所示,有两部分序列模型LSTM,LSTM1中是以文本中的字符向量作为输入,得到文本基于字符向量的表示,LSTM
最后,将文本的字符编码e
由此,得到文本分类结果,完成意图识别。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例提供了一种意图识别系统。图2是根据本申请实施例的意图识别系统的结构框图。如图2所示,该意图识别系统包括:数据获取模块10、数据预处理模块20、文本编码模块30及意图识别模块40等模块。本领域技术人员可以理解,图2中示出的意图识别系统结构并不构成对意图识别系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图2对意图识别系统的各个构成部件进行具体的介绍:
数据获取模块10,用于获取待识别文本;
数据预处理模块20,用于对所述待识别文本进行分词并提取关键词,将分词结果及所述关键词转换为向量表示,得到所述待识别文本的字符向量和关键词向量。
文本编码模块30,用于利用循环神经网络分别对所述字符向量和关键词向量进行编码,得到所述待识别文本的字符编码及关键词编码;其中,所述字符编码为文本基于字向量的表示,增加词内字间信息,所述关键词编码为文本基于词向量的表示,用于削弱字符高歧义的情况,准确表达当前语境信息;可选的,循环神经网络为LSTM、GRU、Bi-LSTM及Bi-GRU其一或其任意组合。
意图识别模块40,用于拼接所述字符编码及关键词编码得到所述待识别文本的句子编码,将所述句子编码经一第一全连接层及一Softmax层进行分类并输出文本分类结果,完成意图识别,其中,Softmax层的分类损失函数为Focal loss函数。可选的,所述句子编码通过将字符编码和关键词编码进行向量相加得到。
通过上述模块,融合文本的字符向量和关键词向量表达文本,一方面利用字符向量充分表达文本字面信息,另一方面利用关键词向量保留文本语义特征,极大程度的保留文本信息;利用Focal loss作为意图识别的损失函数,解决了意图识别样本难以程度差异较大和样本不平衡的问题。
在其中一些实施例中,所述数据预处理模块20进一步包括:
数据提取模块201,用于对所述待识别文本进行分词,并提取所述待识别文本的关键词,得到文本的字符及关键词;具体的,所述分词通过使用Jieba或HanLP等分词工具得到,所述关键词提取通过TF-IDF、textrank、LDA提取方法得到。
数据编码模块202,用于将所述字符及关键词利用One-Hot编码进行向量编码并经一第二全连接层转换为三维字符向量和三维关键词向量;具体的,所述第二全连接层的权重采用随机初始化,在训练过程中不断优化。可选的,数据编码模块也可通过BERT预训练模型实现向量转换。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
另外,结合图1描述的本申请实施例意图识别方法可以由计算机设备来实现。计算机设备设备可以包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序。
具体地,上述处理器可以包括中央处理器(CPU),或者特定集成电路(ApplicationSpecific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器可在数据处理装置的内部或外部。在特定实施例中,存储器是非易失性(Non-Volatile)存储器。在特定实施例中,存储器包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(Random AccessMemory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(ProgrammableRead-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器所执行的可能的计算机程序指令。
处理器通过读取并执行存储器中存储的计算机程序指令,以实现上述实施例中的任意一种意图识别方法。
另外,结合上述实施例中的意图识别方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种意图识别方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
- 意图识别方法、系统、计算机设备及计算机可读存储介质
- 意图识别方法、装置、计算机设备和计算机可读存储介质