一种基于意图理解的服务调用方法和系统技术方案

技术编号:19543732 阅读:16 留言:0更新日期:2018-11-24 20:36
本发明专利技术特别涉及一种基于意图理解的服务调用方法和系统。该基于意图理解的服务调用方法,通过构建基础数据模型和处理工具,构建意图理解模型,使用意图理解模型处理用户请求,综合多种策略识别出实体,根据实体类型确定意图类型,执行服务调用。该基于意图理解的服务调用方法和系统,通过匹配用户请求文本中的实体类型序列来判定意图类型,简单、可控、自然,易于工程化实现,符合大规模应用中的流式处理需要,既提高了命名实体识别的准确率,又提高了用户请求文本中命名实体识别的召回率。

A Service Call Method and System Based on Intention Understanding

The invention particularly relates to a service invocation method and system based on intention understanding. This method of service invocation based on intention understanding constructs the basic data model and processing tools, constructs the intention understanding model, uses the intention understanding model to process user requests, integrates various strategies to identify entities, determines the intention type according to the entity type, and executes the service invocation. The service invocation method and system based on intention understanding is simple, controllable, natural and easy to implement by matching the sequence of entity types in user request text. It meets the needs of stream processing in large-scale applications. It not only improves the accuracy of named entity recognition, but also improves the user request. Find the recall rate of named entity recognition in text.

【技术实现步骤摘要】
一种基于意图理解的服务调用方法和系统
本专利技术涉及任务型对话系统
,特别涉及一种基于意图理解的服务调用方法和系统。
技术介绍
任务型对话系统可以根据用户提出的请求,完成相应的任务,如买票、订餐、购物、天气查询等,广泛应用在苹果Siri、微软Cortana、百度度秘等语音助手中。其处理流程主要包括四部分:语音识别、意图理解、对话管理、自然语言生成;其中,意图理解将用户输入的非结构化请求文本转换为结构化的语义表示,对话管理根据意图理解的结果和上下文语境等因素调用服务;由此可知,基于意图理解的服务调用是任务型对话系统的核心。意图理解输出的结构化语义表示包括三部分:域、意图、槽;其中,域(domain)是用户请求的范围,意图(intent)是用户请求的类型,槽(slot)是刻画用户请求的实体。例如,在请求“订一张上海飞北京的头等舱,下午五点出发”中,域是“订票”、意图是“飞机”、槽是“出发地=上海、目的地=北京、时间=下午五点”。域、意图和槽构成结构化语义的层次结构。其中,每种意图都有对应的服务程序,将“槽”中的实体转换为参数,调用服务程序即可处理用户请求。除了切换系统外,“域”在同一个系统中通常不发生变化,所以意图理解的主要工作是意图分类和实体识别。常用方法包括下述3种:(1)基于规则的方法使用关键词/正则表达式匹配来判定意图类型,同时抽取实体。这种方法灵活、简单,不需要训练数据;但需要大量的规则,随着规则的增加,维度难度也随之上升。(2)基于传统机器学习的方法首先,在语料中标注出实体和意图类型;然后,根据实体标注结果,通过HMM、CRF等方法训练出实体识别器;随后,根据语料特征和意图类型,通过SVM、LR等传统机器学习方法生成意图分类器。该方法源于数据驱动,具有一定的泛化能力。但是该方法需要大量精确标注的语料,对于给定类型的意图而言,用户提问的方式有限,语料数量很少;任务型对话系统中的语料都是短文本,可供训练的特征不多;上述两方面影响了该方法的准确性。此外,传统机器学习程序具有“黑箱”特性,内部运行机理复杂、参数不易调整、结果可解释性较差。(3)基于深度学习的方法需要综合CNN、LSTM、CRF等多种方法,主要包括两部分内容,如下:A、构建意图分类器:首先,通过词汇向量化,将语料转换为向量;然后,将意图分类视为短文本分类,使用CNN训练向量化后的语料,生成意图分类模型。B、构建命名实体识别器:首先,通过数据预处理(分句、分词)工具处理输入语句,得到词汇特征向量;然后,使用CNN处理每个单词的字符,得到对应的字符特征向量;随后,组合词汇特征向量和字符特征向量,传入双向LSTM网络进行训练,得到输入语句的信息特征;最后,将双向LSTM输出的语句信息特征作为CRF层的输入,使用CRF模型进行训练,得到命名实体识别模型。该方法通过两级(词汇+字符)向量化+双向LSTM的方式,获得了输入数据的信息特征,包括不同标签的概率转移矩阵,以及输入字符被标记为不同标签的概率,已经包含命名实体的标注信息,再通过最后的CRF处理,可以准确抽取出命名实体。但是,这种方法用到CNN、LSTM等神经网络模型,涉及相当复杂的数学知识,不易被普通使用者掌握;深度学习网络包含的层数和节点数极其庞大,运行速度很慢;本方法自身的“黑箱”特性导致其参数不易调整、可解释性较差。此外,任务型对话系统的语料较少,会影响深度学习的准确性。综上所述,在任务型对话系统的意图理解中,常用方法存在步骤复杂、不易调整、解释性差等问题;此外,语料数量少也会影响这些方法的准确性。基于上述情况,本专利技术设计了一种基于意图理解的服务调用方法和系统。
技术实现思路
本专利技术为了弥补现有技术的缺陷,提供了一种简单高效的基于意图理解的服务调用方法和系统。本专利技术是通过如下技术方案实现的:一种基于意图理解的服务调用方法,其特征在于,包括以下步骤:S1:构建基础数据模型和处理工具,包括将实体名称转换为类型名称的基于字符索引的“实体->类型”映射表,获取常见类型实体名称的常用实体解析器和基于CRF(ConditionalRandomField,条件随机场)模型的中文分词和词性标注器;S2:构建意图理解模型,包括基于CRF模型的少量语料环境下命名实体识别器和基于命名实体类型标识符的意图分类模式;S3:使用意图理解模型处理用户请求,首先综合多种策略识别出实体,然后根据实体类型确定意图类型,最后执行服务调用。所述步骤S1中,构建基于字符索引的“实体->类型”映射表,具体包括以下步骤:S111:制作领域实体表,即同一类型下的实体名称列表,每种类型分别对应一张实体表;S112:制作同义词实体网,所述同义词实体网为图形结构,图中每个结点对应一个实体,结点名称就是实体名称,不同结点的名称不同,如果两个结点表示同一个实体,则二者互为同义词,用一条边连接二者;如果所有结点互为同义词,则它们构成全连通图;S113:构建“实体->类型”映射表,所述“实体->类型”映射表要体现1对多的关系,当同一个实体名称属于不同的类型时,采用符号“/”将对应的类型连接起来,具体构建步骤如下:S1131:新建“实体->类型”映射表;S1132:读取第1个同义词实体网的信息;S1133:获取实体的类型;S1134:访问该同义词实体网的每个结点,根据每个结点的名称构建由实体名称和实体类型构成的二元组,插入到“实体->类型”映射表;S1135:判断同义词实体网是否读取完毕,如果没有,转步骤S1136,否则转步骤S1137;S1136:读取下1个同义词实体网的信息,转步骤S1133;S1137:保存“实体->类型”映射表;S114:建立“实体->类型”映射表的字符索引;所述基于字符索引的“实体->类型”映射表,具有下述特征:S1141:若干名称中包含相同首字符的实体构成一棵树,表示对应实体到类型的映射关系;S1142:所有的树构成森林,实现基于字符索引的“实体->类型”映射功能;S1143:在每棵树中,非叶结点由单个汉字构成,从根结点到叶结点前驱的路径表示实体,路径结点的名称序列是实体的名称,叶结点表示对应实体的类型,其名称是实体的类型名称;S1144:森林和树都有方向,对任意一个非叶结点的前驱结点而言,它所有的子结点,都按照字典序在下面一层自左向右排列;S1145:由于同一实体可能会对应多种类型,所以允许非叶结点的前驱结点有多个子节点。所述步骤S1中,构建常用实体解析器用于识别命名实体识别器不易抽取的特殊类型实体,正则表达式如下:中文姓名:/^([a-zA-Z0-9\u4e00-\u9fa5\·]{1,10})$/时间:/^(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/电话:/^(0\d{2,3}[-|]?)?(\d{7,8})([-|]?\d{3,5})?$/。所述步骤S1中,采用《现代汉语语料库加工规范—词语切分与词性标注》规范中文分词和词性标注,同时采用CRF++训练NLP(NaturalLanguageProcessing,自然语言处理)领域中本文档来自技高网
...

【技术保护点】
1.一种基于意图理解的服务调用方法,其特征在于,包括以下步骤:S1:构建基础数据模型和处理工具,包括将实体名称转换为类型名称的基于字符索引的“实体‑>类型”映射表,获取常见类型实体名称的常用实体解析器和基于CRF(Conditional Random Field,条件随机场)模型的中文分词和词性标注器;S2:构建意图理解模型,包括基于CRF模型的少量语料环境下命名实体识别器和基于命名实体类型标识符的意图分类模式;S3:使用意图理解模型处理用户请求,首先综合多种策略识别出实体,然后根据实体类型确定意图类型,最后执行服务调用。

【技术特征摘要】
1.一种基于意图理解的服务调用方法,其特征在于,包括以下步骤:S1:构建基础数据模型和处理工具,包括将实体名称转换为类型名称的基于字符索引的“实体->类型”映射表,获取常见类型实体名称的常用实体解析器和基于CRF(ConditionalRandomField,条件随机场)模型的中文分词和词性标注器;S2:构建意图理解模型,包括基于CRF模型的少量语料环境下命名实体识别器和基于命名实体类型标识符的意图分类模式;S3:使用意图理解模型处理用户请求,首先综合多种策略识别出实体,然后根据实体类型确定意图类型,最后执行服务调用。2.根据权利要求1所述的基于意图理解的服务调用方法,其特征在于:所述步骤S1中,构建基于字符索引的“实体->类型”映射表,具体包括以下步骤:S111:制作领域实体表,即同一类型下的实体名称列表,每种类型分别对应一张实体表;S112:制作同义词实体网,所述同义词实体网为图形结构,图中每个结点对应一个实体,结点名称就是实体名称,不同结点的名称不同,如果两个结点表示同一个实体,则二者互为同义词,用一条边连接二者;如果所有结点互为同义词,则它们构成全连通图;S113:构建“实体->类型”映射表,所述“实体->类型”映射表要体现1对多的关系,当同一个实体名称属于不同的类型时,采用符号“/”将对应的类型连接起来,具体构建步骤如下:S1131:新建“实体->类型”映射表;S1132:读取第1个同义词实体网的信息;S1133:获取实体的类型;S1134:访问该同义词实体网的每个结点,根据每个结点的名称构建由实体名称和实体类型构成的二元组,插入到“实体->类型”映射表;S1135:判断同义词实体网是否读取完毕,如果没有,转步骤S1136,否则转步骤S1137;S1136:读取下1个同义词实体网的信息,转步骤S1133;S1137:保存“实体->类型”映射表;S114:建立“实体->类型”映射表的字符索引;所述基于字符索引的“实体->类型”映射表,具有下述特征:S1141:若干名称中包含相同首字符的实体构成一棵树,表示对应实体到类型的映射关系;S1142:所有的树构成森林,实现基于字符索引的“实体->类型”映射功能;S1143:在每棵树中,非叶结点由单个汉字构成,从根结点到叶结点前驱的路径表示实体,路径结点的名称序列是实体的名称,叶结点表示对应实体的类型,其名称是实体的类型名称;S1144:森林和树都有方向,对任意一个非叶结点的前驱结点而言,它所有的子结点,都按照字典序在下面一层自左向右排列;S1145:由于同一实体可能会对应多种类型,所以允许非叶结点的前驱结点有多个子节点。3.根据权利要求1所述的基于意图理解的服务调用方法,其特征在于:所述步骤S1中,构建常用实体解析器用于识别命名实体识别器不易抽取的特殊类型实体,正则表达式如下:中文姓名:/^([a-zA-Z0-9\u4e00-\u9fa5\·]{1,10})$/时间:/^(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/电话:/^(0\d{2,3}[-|]?)?(\d{7,8})([-|]?\d{3,5})?$/。4.根据权利要求1所述的基于意图理解的服务调用方法,其特征在于:所述步骤S1中,采用《现代汉语语料库加工规范—词语切分与词性标注》规范中文分词和词性标注,同时采用CRF++训练NLP(NaturalLanguageProcessing,自然语言处理)领域中的数据标注模型,构建基于CRF模型的中文分词和词性标注器;在中文分词中,使用BEMS方式标记每个汉字字符:B表示分词开始,E表示分词结束,M表示分词中间,S表示单个分词;在中文词性标注中,采用《现代汉语语料库加工规范—词语切分与词性标注》规定的40种词性标记,同时在词性标记前面添加分词位置标记B、E、M或S;CRF++在训练数据标注模模型的过程中,为了得到质量较好的中文分词和词性标注模型,需要设置不同的参数进行训练,得到若干模型,选择预测性能最好的,影响模型准确性的参数包括以下两个:A、-c:浮点型参数,默认是1,用于调节训练结果的拟合程度,数值过大会产生过拟合(在训练集上效果很好,测试集上效果很差,即泛化性很差)现象;B、-f:整数型参数,设置参与训练特征出现的最小次数,默认是1,当数据量很大时,仅出现1次的特征数量多达百万,全部参与运算的话,会带来严重的计算成本,此时需要增大该参数;同时,为了减少数据过拟合以及从有限数据中获取尽可能多的有效信息,对于每组f和c生成的模型,使用K折交叉验证评估其效果。5.根据权利要求1所述的基于意图理解的服务调用方法,其特征在于:所述步骤S2中,构建基于CRF模型的少量语料环境下命名实体识别器,具体包括以下步骤:S211:对用户请求文本进行中文分词和词性标注,生成二元组列表语料;所述二元组列表语料,具有下述特征:S2111:每条用户请求文本对应一个二元组序列;S2112:序列元素由分词词汇和词性组成的二元组构成;S2113:按照用户请求文本的分词顺序排列序列元素;S212、在二元组列表语料中标注出实体及其类型,以及对应的意图类型,生成三元组列表语料;所述三元组列表语料,具有下述特征:S2121:每条用户请求文本对应一个三元组序列和一种意图类型;S2122:序列元素由分词、词性和实体类型构成的三元组序列构成;S2123:按照用户请求文本的分词顺序排列序列元素;S2124:在处理过程中,如果用户的某个标注结果,分词后成为多个词汇,则每个词汇都需要标注该命名实体对应的类型;S213:使用CRF++训练三元组列表语料,生成命名实体识别器;在训练过程中,不断调整参数-c和-f,得到若干命名实体识别模型,使用K折交叉验证评估模型性能,最后选择识别效果最好的。6.根据权利要求1所述的基于意图理解的服务调用方法,其特征在于:所述步骤S2中,构建基于命名实体类型标识符的意图分类模式,所述意图分类模式是由若干[$命名实体类型名称]构成的字符串;具体包括以下步骤:S221:新建意图分类模式列表;S222:读取第1个三元组列表语料的信息;S223:获取实体类型序列R1;S224:将R1转换为字符串形式,相邻项之间用空格隔开,得到序列R2;S225:将序列R2中标注不是“O”的项前面加上“$”,然后在首尾加上中括号,得到序列R3;S226:剔除序列R3中标注为“O”的项,得到序列R4;S227:判断序列R4中是否存在多个相同的相邻项,如果存在,转步骤S228,否则转步骤S229;S228:保留序列R4中多个相同相邻项中的一项,其余相同项均删除,得到序列R5,转步骤S22A;S229:将序列R4直接赋值给序列R5;S22A:删除序列R5中相邻项之间的空格,得到序列R6;S22B:检索序列R6是否已经存在于意图分类模式列表中,如果不存在,转步骤S22C,否则转步骤S22D;S22C:将序列R6添加到意图分类模式列表中;S22D:判断三元组列表语料是否读取完毕,如果没有,转步骤S22E,否则转步骤S22F;S22E:读取下1个三元组列表语料的信息,转步骤S223;S22F:保存意图分类模式列表。7.根据权利要求1所述的基于意图理解的服务调用方法,其特征在于:所述步骤S3中,基于混合策略的实体识别,具体包括以下步骤:S311:使用基于CRF模型的中文分词和词性标注器处理用户请求文本,得到二元组列表语料L1;S312:使用命名实体识别器从二元组列表语料L1中抽取出实体列表E1;S313:从二元组列表语料...

【专利技术属性】
技术研发人员:王功明王建华郭运艳李明明王本强
申请(专利权)人:浪潮软件股份有限公司
类型:发明
国别省市:山东,37

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

1