基于人工智能的语义识别方法、装置和语义识别设备
文献发布时间:2023-06-19 10:51:07
技术领域
本申请涉及人工智能中的语义识别技术领域,特别涉及基于人工智能的语义识别方法、装置和语义识别设备。
背景技术
人机对话系统是新一代的人机交互界面,Bot平台是一种模型训练平台, Bot平台为开发人员提供了一个快速能力构建的平台,支持诸如三方业务方快速构建对话的技能,用于其业务功能的交互触发。Bot平台为开发人员提供一键触发按钮可自动训练开发人员配置的技能模型。当开发人员重新训练模型时,重新训练获得的模型与之前训练获得的模型可能不一致,导致置信度波动较大,具体可以表现为上一次可以识别的语料在重新训练获得的模型下不能识别,或之前训练获得的模型无法识别的语料在重新训练获得的模型上可以识别。精心调整的语料,准确率和/或召回率等指标会有大幅波动不满足预期,这种重新训练模型导致的不稳定性最终会影响开发人员的体验。
发明内容
本申请提供了一种基于人工智能的语义识别方法、装置和语义识别设备,本申请还提供一种计算机可读存储介质,以实现在训练语料无添加、删除或修改的情况下,可以保持两次及多次训练获得的模型无明显差异,使得开发人员的测试语料在多次训练获得的模型中具有几乎相同的置信度(差异 <0.01),进而使准确率波动变小,从而提高开发人员的体验。
第一方面,本申请提供了一种基于人工智能的语义识别方法,包括:
获取用户输入的查询语句;
通过预先训练的语义识别模型对所述查询语句进行识别,获得所述查询语句的意图;其中,所述预先训练的语义识别模型是利用训练语料和负向语料训练的,所述负向语料是根据所述训练语料的编码值映射到负向语料集合中抽取的;其中,上述训练语料是开发人员在模型训练平台,例如:Bot平台上配置的,上述负向语料集合是上述模型训练平台提供的;
根据所述查询语句和所述查询语句的意图,获得所述查询语句对应的响应;
显示所述查询语句对应的响应。
上述基于人工智能的语义识别方法中,负向语料是根据训练语料的编码值通过映射关系抽取的,当训练语料无添加、删除或修改时,训练语料的编码值不变,并且映射关系也不会改变,因此根据训练语料的编码值通过映射关系抽取的负向语料也不会改变,由于训练语料和抽取的负向语料不变,因此利用训练语料和负向语料训练获得的模型的稳定性较高,可以实现在训练语料无添加、删除或修改的情况下,保持两次及多次训练获得的模型无明显差异,使得开发人员的测试语料在多次训练获得的模型中具有几乎相同的置信度(差异<0.01),进而使准确率波动变小,从而提高开发人员的体验。
其中一种可能的实现方式中,所述获取用户输入的查询语句包括:获取用户通过文本输入的查询语句;或者,
获取用户通过语音输入的查询语句;或者,
获取用户输入的图片,对所述图片进行识别,获取所述图片中包括的查询语句。
也就是说,用户可以通过文本、语音或图片的方式输入上述查询语句。
其中一种可能的实现方式中,所述语义识别模型的训练过程包括:根据需要抽取的负向语料的数量,对训练语料进行分组;对每组训练语料进行编码,获得每组训练语料的编码值;根据所述编码值抽取第一类型的负向语料和第二类型的负向语料,其中,上述第一类型的负向语料可以为闲聊负向语料,第二类型的负向语料可以为高频正向词汇负向语料;利用所述训练语料、所述第一类型的负向语料和所述第二类型的负向语料进行训练,获得所述语义识别模型。
具体地,在对每组训练语料进行分组之后,可以分别对每组训练语料进行编码,从而可以使每组训练语料具有唯一的编码值,编码方式可以包括: hash值或simHash值等;
进一步地,在根据需要抽取的负向语料的数量,对训练语料进行分组之前,还可以对上述训练语料进行排序。具体地,可以采用以下排序方式对上述训练语料进行排序:按照字符串、训练语料的哈希(Hash)值或者训练语料的simHash值等进行排序,当然还可以采用其他的排序方式对训练语料进行排序,本实施例不作限定。本实施例通过对训练语料进行排序,可以在训练语料完全相同的情况下,使分组后的编码值不因语料顺序的变化而有变化,保证训练语料的分组不发生变化。
本申请中,在对训练语料进行分组之后,对每组训练语料进行编码,根据上述编码值抽取第一类型的负向语料和第二类型的负向语料,然后利用上述训练语料、上述第一类型的负向语料和上述第二类型的负向语料进行训练,获得语义识别模型,从而实现了根据训练语料的编码值唯一地抽取负向语料,将负向语料生成的随机化方法变成稳定的生成方法,在训练语料没有添加、删除或修改的情况下,可以保持两次及多次训练获得的模型无明显差异,使得开发人员的测试语料在多次训练获得的模型中具有几乎相同的置信度(差异<0.01),进而使准确率波动变小,从而提高开发人员的体验。
其中一种可能的实现方式中,所述根据所述编码值抽取第一类型的负向语料包括:获取第一负向语料集合中所包括的第一类型的负向语料的第一数量;其中,上述第一负向语料集合可以为闲聊负向语料集合,第一数量即为第一负向语料集合中所包括的第一类型的负向语料的总数量;
根据所述每组训练语料的编码值和所述第一数量,获得所述第一类型的负向语料的第一采样值;具体地,根据上述每组训练语料的编码值和上述第一数量,获得上述第一类型的负向语料的第一采样值可以为:利用上述每组训练语料的编码值对上述第一数量取余数,将取余操作作为映射关系,上述余数作为上述第一采样值;
根据所述第一采样值从所述第一负向语料集合中抽取第一类型的第一负向语料。具体地,可以根据第一采样值在第一负向语料集合中进行查找,抽取标识(或索引)与上述第一采样值匹配的第一负向语料。
本实施例中,第一负向语料是根据训练语料的编码值通过映射关系抽取的,当训练语料无添加、删除或修改时,训练语料的编码值不变,并且映射关系也不会改变,因此根据训练语料的编码值通过映射关系抽取的第一负向语料也不会改变,由于训练语料和抽取的负向语料不变,因此利用训练语料和负向语料训练获得的模型的稳定性较高,可以实现在训练语料无添加、删除或修改的情况下,保持两次及多次训练获得的模型无明显差异,使得开发人员的测试语料在多次训练获得的模型中具有几乎相同的置信度(差异 <0.01),进而使准确率波动变小,从而提高开发人员的体验。
在一种可能的实现方式中,所述根据所述第一采样值从所述第一负向语料集合中抽取第一类型的第一负向语料之后,还包括:
计算所述第一负向语料与所述训练语料的第一相似度,这里的训练语料包括所有的正向语料,也即模型训练平台配置的所有正向训练语料;
如果所述第一相似度小于第一相似度阈值,则确定第一负向语料采样成功,将所述第一负向语料加入采样语料集合。
在一种可能的实现方式中,所述计算所述第一负向语料与所述训练语料的第一相似度之后,还包括:
如果所述第一相似度大于或等于第一相似度阈值,则根据所述第一采样值,获得第二采样值;在具体实现时,可以将上述第一采样值加上预先设定的数值,获得第二采样值;
根据所述第二采样值,从所述第一负向语料集合中抽取第一类型的第二负向语料;
计算所述第二负向语料与所述训练语料的第二相似度;
如果所述第二相似度小于第一相似度阈值,则确定所述第二负向语料采样成功,将所述第二负向语料加入所述采样语料集合。
在一种可能的实现方式中,所述计算所述第二负向语料与所述训练语料的第二相似度之后,还包括:
如果所述第二相似度大于或等于第一相似度阈值,则重复执行所述根据所述第一采样值,获得第二采样值的步骤及后续步骤;
当重复执行的次数大于预先设定的重复次数阈值时,如果当前采样获得的负向语料与所述训练语料的相似度小于第二相似度阈值,则确定当前采样获得的负向语料采样成功,将当前采样获得的负向语料加入所述采样语料集合;如果当前采样获得的负向语料与所述训练语料的相似度大于或等于第二相似度阈值,则将上一次采样成功的负向语料再次加入所述采样语料集合。
如果开发人员配置的训练语料与第一负向语料集合中的语料相近,那么将此语料当作负向语料,会影响训练语料的意图的识别,表现为将训练语料识别为负向意图或识别的正向意图的置信度较低,本实施例将与训练语料相似度较高的采样语料剔除,从而避免对正向意图带来的影响。本实施例可以实现将与训练语料相似度较低的负向语料添加到采样语料集合,不将与训练语料相似度高的负向语料添加到上述采样语料集合。
在一种可能的实现方式中,所述根据所述编码值抽取第二类型的负向语料包括:从所述编码值中按顺序获取每M个编码值;
从获取的每M个编码值中选择第二数量的编码值;
根据第二数量的编码值从第二负向语料集合中抽取第二类型的负向语料;
对所述编码值进行排序;
从所述排序后的编码值中按顺序获取每N个编码值;
从获取的每N个编码值中选择第三数量的编码值;
根据第三数量的编码值从第二负向语料集合中抽取第二类型的负向语料;其中,M,N为正整数,M≠N。
本实施例中,第二负向语料是根据训练语料的编码值通过映射关系抽取的,当训练语料无添加、删除或修改时,训练语料的编码值不变,并且映射关系也不会改变,因此根据训练语料的编码值通过映射关系抽取的第二负向语料也不会改变,由于训练语料和抽取的负向语料不变,因此利用训练语料和负向语料训练获得的模型的稳定性较高,可以实现在训练语料无添加、删除或修改的情况下,保持两次及多次训练获得的模型无明显差异,使得开发人员的测试语料在多次训练获得的模型中具有几乎相同的置信度(差异 <0.01),进而使准确率波动变小,从而提高开发人员的体验。
在一种可能的实现方式中,所述根据所述编码值抽取第一类型的负向语料和第二类型的负向语料包括:根据所述每组训练语料的编码值和预先学习的映射关系,获得所述第一类型的负向语料的第三采样值和第二类型的负向语料的第四采样值;
根据所述第三采样值从所述第一负向语料集合中抽取第一类型的负向语料,并根据所述第四采样值从所述第二负向语料集合中抽取第二类型的负向语料。
在一种可能的实现方式中,所述根据所述每组训练语料的编码值和预先学习的映射关系,获得所述第一类型的负向语料的第三采样值和第二类型的负向语料的第四采样值之前,还包括:
获取训练样本对,所述训练样本对包括训练语料的编码值和对应的负向语料的采样值;其中,所述训练语料对应的负向语料的采样值之间的距离满足预先设定的约束距离;
利用所述训练样本对进行映射关系的学习,所述映射关系包括所述训练语料的编码值与对应的负向语料的采样值之间的映射关系。
本实现方式中,负向语料是根据训练语料的编码值通过映射关系抽取的,当训练语料无添加、删除或修改时,训练语料的编码值不变,并且映射关系也不会改变,因此根据训练语料的编码值通过映射关系抽取的负向语料也不会改变,由于训练语料和抽取的负向语料不变,因此利用训练语料和负向语料训练获得的模型的稳定性较高,可以实现在训练语料无添加、删除或修改的情况下,保持两次及多次训练获得的模型无明显差异,使得开发人员的测试语料在多次训练获得的模型中具有几乎相同的置信度(差异<0.01),进而使准确率波动变小,从而提高开发人员的体验。
第二方面,本申请提供一种基于人工智能的语义识别装置,包括:
获取模块,用于获取用户输入的查询语句;
识别模块,用于通过预先训练的语义识别模型对所述查询语句进行识别,获得所述查询语句的意图;其中,所述预先训练的语义识别模型是利用训练语料和负向语料训练的,所述负向语料是根据所述训练语料的编码值映射到负向语料集合中抽取的;
查询模块,用于根据所述获取模块获取的查询语句和所述识别模块识别的所述查询语句的意图,获得所述查询语句对应的响应;
显示模块,用于显示所述查询语句对应的响应。
其中一种可能的实现方式中,所述获取模块,具体用于获取用户通过文本输入的查询语句;或者,获取用户通过语音输入的查询语句;或者,获取用户输入的图片,对所述图片进行识别,获取所述图片中包括的查询语句。
其中一种可能的实现方式中,所述装置还包括:
分组模块,用于根据需要抽取的负向语料的数量,对训练语料进行分组;
编码模块,用于对每组训练语料进行编码,获得每组训练语料的编码值;
抽取模块,用于根据所述编码模块获得的编码值抽取第一类型的负向语料和第二类型的负向语料;
训练模块,用于利用所述训练语料、所述第一类型的负向语料和所述第二类型的负向语料进行训练,获得所述语义识别模型。
其中一种可能的实现方式中,所述抽取模块包括:
数量获取子模块,用于获取第一负向语料集合中所包括的第一类型的负向语料的第一数量;
采样值获得子模块,用于根据所述每组训练语料的编码值和所述第一数量,获得所述第一类型的负向语料的第一采样值;
语料抽取子模块,用于根据所述采样值获得子模块获得的第一采样值从所述第一负向语料集合中抽取第一类型的第一负向语料。
其中一种可能的实现方式中,所述抽取模块还包括:
相似度计算子模块,用于在所述语料抽取子模块抽取第一类型的第一负向语料之后,计算所述第一负向语料与所述训练语料的第一相似度;
所述语料抽取子模块,还用于当所述第一相似度小于第一相似度阈值时,确定第一负向语料采样成功,将所述第一负向语料加入采样语料集合。
其中一种可能的实现方式中,所述采样值获得子模块,还用于在所述相似度计算子模块计算第一相似度之后,如果所述第一相似度大于或等于第一相似度阈值,则根据所述第一采样值,获得第二采样值;
所述语料抽取子模块,还用于根据所述采样值获得子模块获得的第二采样值,从所述第一负向语料集合中抽取第一类型的第二负向语料;
所述相似度计算子模块,还用于计算所述第二负向语料与所述训练语料的第二相似度;
所述语料抽取子模块,还用于当所述第二相似度小于第一相似度阈值时,确定所述第二负向语料采样成功,将所述第二负向语料加入所述采样语料集合。
其中一种可能的实现方式中,所述采样值获得子模块,还用于在所述相似度计算子模块计算第二相似度之后,如果所述第二相似度大于或等于第一相似度阈值,则重复执行所述根据所述第一采样值,获得第二采样值的步骤及后续步骤;
所述语料抽取子模块,还用于当重复执行的次数大于预先设定的重复次数阈值时,如果当前采样获得的负向语料与所述训练语料的相似度小于第二相似度阈值,则确定当前采样获得的负向语料采样成功,将当前采样获得的负向语料加入所述采样语料集合;如果当前采样获得的负向语料与所述训练语料的相似度大于或等于第二相似度阈值,则将上一次采样成功的负向语料再次加入所述采样语料集合。
其中一种可能的实现方式中,所述抽取模块包括:
编码值获取子模块,用于从所述编码值中按顺序获取每M个编码值;以及从获取的每M个编码值中选择第二数量的编码值;
语料抽取子模块,用于根据第二数量的编码值从第二负向语料集合中抽取第二类型的负向语料;
编码值排序子模块,用于对所述编码值进行排序;
所述编码值获取子模块,还用于从所述排序后的编码值中按顺序获取每 N个编码值;以及从获取的每N个编码值中选择第三数量的编码值;
所述语料抽取子模块,还用于根据第三数量的编码值从第二负向语料集合中抽取第二类型的负向语料;其中,M,N为正整数,M≠N。
其中一种可能的实现方式中,所述抽取模块包括:
采样值获得子模块,用于根据所述每组训练语料的编码值和预先学习的映射关系,获得所述第一类型的负向语料的第三采样值和第二类型的负向语料的第四采样值;
语料抽取子模块,用于根据所述采样值获得子模块获得的第三采样值从所述第一负向语料集合中抽取第一类型的负向语料,并根据所述第四采样值从所述第二负向语料集合中抽取第二类型的负向语料。
其中一种可能的实现方式中,所述抽取模块还包括:
样本对获取子模块,用于在采样值获得子模块获得所述第一类型的负向语料的第三采样值和第二类型的负向语料的第四采样值之前,获取训练样本对,所述训练样本对包括训练语料的编码值和对应的负向语料的采样值;其中,所述训练语料对应的负向语料的采样值之间的距离满足预先设定的约束距离;
映射关系学习子模块,用于利用所述训练样本对进行映射关系的学习,所述映射关系包括所述训练语料的编码值与对应的负向语料的采样值之间的映射关系。
第三方面,本申请提供一种基于人工智能的语义识别设备,包括:显示屏;一个或多个处理器;存储器;多个应用程序;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述设备执行时,使得所述设备执行以下步骤:
获取用户输入的查询语句;
通过预先训练的语义识别模型对所述查询语句进行识别,获得所述查询语句的意图;其中,所述预先训练的语义识别模型是利用训练语料和负向语料训练的,所述负向语料是根据所述训练语料的编码值映射到负向语料集合中抽取的;
根据所述查询语句和所述查询语句的意图,获得所述查询语句对应的响应;
显示所述查询语句对应的响应。
其中一种可能的实现方式中,当所述指令被所述设备执行时,使得所述设备具体执行以下步骤:
获取用户通过文本输入的查询语句;或者,
获取用户通过语音输入的查询语句;或者,
获取用户输入的图片,对所述图片进行识别,获取所述图片中包括的查询语句。
其中一种可能的实现方式中,当所述指令被所述设备执行时,使得所述设备具体执行以下步骤:
根据需要抽取的负向语料的数量,对训练语料进行分组;
对每组训练语料进行编码,获得每组训练语料的编码值;
根据所述编码值抽取第一类型的负向语料和第二类型的负向语料;
利用所述训练语料、所述第一类型的负向语料和所述第二类型的负向语料进行训练,获得所述语义识别模型。
应当理解的是,本申请的第二至三方面与本申请的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如第一方面所述的方法。
第五方面,本申请提供一种计算机程序,当所述计算机程序被计算机执行时,用于执行第一方面所述的方法。
在一种可能的设计中,第五方面中的程序可以全部或者部分存储在与处理器封装在一起的存储介质上,也可以部分或者全部存储在不与处理器封装在一起的存储器上。
附图说明
图1为现有相关技术中Bot平台生成的模型存在问题的示意图;
图2为采用本申请提供的方法训练获得的模型的置信度示意图;
图3为本申请基于人工智能的语义识别方法中语义识别模型的训练过程一个实施例的流程图;
图4为本申请基于人工智能的语义识别方法中语义识别模型的训练过程另一个实施例的流程图;
图5为本申请基于人工智能的语义识别方法中语义识别模型的训练过程再一个实施例的流程图;
图6为本申请基于人工智能的语义识别方法中语义识别模型的训练过程再一个实施例的流程图;
图7为本申请基于人工智能的语义识别方法一个实施例的流程图;
图8为本申请基于人工智能的语义识别装置一个实施例的结构示意图;
图9为本申请基于人工智能的语义识别装置另一个实施例的结构示意图;
图10为本申请基于人工智能的语义识别设备一个实施例的结构示意图。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
现有相关技术中,作为一种模型训练平台,Bot平台使用的机器学习意图识别算法在重新训练模型后,导致模型差异化的主要原因是存在两个随机因素。一个随机因素是随机对抗负向语料的生成,该种负向语料的生成方式是随机抽取式,例如:随机抽“你好啊”等闲聊语料;另外一个随机因素是自动对抗负向语料的生成,该种负向语料的生成方式是生成式,例如:根据“卡”生成“银行卡”或“手机好卡”等负向语料。上述两种随机生成负向语料的方式会使得模型不稳定。
为此,本申请提出一种去随机化的稳定性采样方法,即将上文提到的两种生成负向语料的方式变成稳定的,同时具有随机化抽取负向语料的效果,从而使训练模型维持稳定,当开发人员的配置无修改时,利用Bot平台两次训练的模型保持一致,使同一语料在多次训练获得的模型下具有相同的预测效果。
需要说明的是,本申请中,Bot平台仅是模型训练平台的一种示例,上述模型训练平台还可以其他的平台,本申请对此不作限定。
图1为现有相关技术中Bot平台生成的模型存在问题的示意图,如图1 所示,现有相关技术中,负向语料的随机生成方式存在不稳定性,导致Bot 平台重新训练获得的模型与之前训练获得的模型有较大差异,表现为:
(1)准确率波动:重新训练后,分类算法置信度波动,导致预测准确率下降。精心调整的语料,不满足预期,严重影响准确率等指标。
(2)体验不一致:模型重新训练,模型的不稳定性,导致置信度波动,相同的语料在训练获得的不同模型上具有不同的结果,影响体验。
针对上述Bot平台存在的问题,本申请所要解决的技术问题是将负向语料的随机化生成方法变成稳定生成方法,在训练语料无添加、删除或修改的情况下,可以保持两次及多次训练获得的模型无明显差异,使得开发人员的测试语料在多次训练获得的模型中具有几乎相同的置信度(差异<0.01),如图2所示,进而使准确率波动变小,从而提高开发人员的体验。图2为采用本申请提供的方法训练获得的模型的置信度示意图。
从图2中可以看出,现有相关技术中,对于查询语句“沈阳后天的天气怎么样”,采用两次训练获得的模型对上述查询语句进行识别,可以获得上述查询语句的意图为“天气查询”,但从图2中可以看出,现有相关技术中,前次训练获得的模型识别的意图的置信度为0.88,而重新训练获得的模型所识别的意图的置信度为0.78,两次训练获得的模型所识别的意图的置信度差异较大(为0.1),导致两次训练获得的模型针对同一查询语句给出的答案也不相同,从而影响开发人员体验。
而在采用本申请提供的方法生成负向语料之后,可以看出,两次训练获得的模型所识别的意图的置信度差异很小(为0.01),这样,两次训练获得的模型针对同一查询语句给出的答案相同,从而可以提高开发人员体验。
下面对本申请提出的语义识别模型的训练过程进行介绍,本申请中的语义识别模型可以在模型训练平台,例如Bot平台上训练获得,上述模型训练平台可以部署在云服务器上,当然上述语义识别模型也可以在其他设备上训练获得,本实施例对训练上述语义识别模型的执行主体不作限定。
图3为本申请基于人工智能的语义识别方法中语义识别模型的训练过程一个实施例的流程图,如图3所示,可以包括:
步骤301,根据需要抽取的负向语料的数量,对训练语料进行分组。
其中,上述需要抽取的负向语料的数量可以在具体实现时,根据实现需求和/或系统性能等自行设定,本实施例对此不作限定,假设上述需要抽取的负向语料的数量为Num,那么就需要将训练语料划分为Num组,Num为正整数。
进一步地,在根据需要抽取的负向语料的数量,对训练语料进行分组之前,还可以对上述训练语料进行排序。具体地,可以采用以下排序方式对上述训练语料进行排序:按照字符串、训练语料的哈希(Hash)值或者训练语料的simHash值等进行排序,当然还可以采用其他的排序方式对训练语料进行排序,本实施例不作限定。本实施例通过对训练语料进行排序,可以在训练语料完全相同的情况下,使分组后的编码值不因语料顺序的变化而有变化,保证训练语料的分组不发生变化。
步骤302,对每组训练语料进行编码,获得每组训练语料的编码值。
具体地,本实施例中,在对每组训练语料进行分组之后,可以分别对每组训练语料进行编码,从而可以使每组训练语料具有唯一的编码值,编码方式可以包括:hash值或simHash值等,当然还可以采用其他的编码方式,本实施例不作限定。在具体实现时,本实施例可以对每组的训练语料按照N元语法(N-gram),例如:unigram及bigranm方式,将计算的simHash值作为每组训练语料的编码值。
步骤303,根据上述编码值抽取第一类型的负向语料和第二类型的负向语料。
其中,上述第一类型的负向语料可以为闲聊负向语料,第二类型的负向语料可以为高频正向词汇负向语料。
举例来说,闲聊负向语料可以包括“你好啊”等闲聊语料;高频正向词汇负向语料可以包括根据高频正向词汇“卡”生成的“银行卡”或“手机好卡”等负向语料,其中上述高频正向词汇包括在上述训练语料中出现频率较高的词汇。
步骤304,利用上述训练语料、上述第一类型的负向语料和上述第二类型的负向语料进行训练,获得上述语义识别模型。
本实施例中,在对训练语料进行分组之后,对每组训练语料进行编码,根据上述编码值抽取第一类型的负向语料和第二类型的负向语料,然后利用上述训练语料、上述第一类型的负向语料和上述第二类型的负向语料进行训练,获得语义识别模型,从而实现了根据训练语料的编码值唯一地抽取负向语料,将负向语料生成的随机化方法变成稳定的生成方法,在训练语料没有添加、删除或修改的情况下,可以保持两次及多次训练获得的模型无明显差异,使得开发人员的测试语料在多次训练获得的模型中具有几乎相同的置信度(差异<0.01),进而使准确率波动变小,从而提高开发人员的体验。
图4为本申请基于人工智能的语义识别方法中语义识别模型的训练过程另一个实施例的流程图,如图4所示,本申请图3所示实施例中,步骤303 中的根据上述编码值抽取第一类型的负向语料可以包括:
步骤401,获取第一负向语料集合中所包括的第一类型的负向语料的第一数量。
其中,上述第一负向语料集合可以为闲聊负向语料集合,第一数量即为第一负向语料集合中所包括的第一类型的负向语料的总数量。
步骤402,根据上述每组训练语料的编码值和上述第一数量,获得上述第一类型的负向语料的第一采样值。
具体地,根据上述每组训练语料的编码值和上述第一数量,获得上述第一类型的负向语料的第一采样值可以为:利用上述每组训练语料的编码值对上述第一数量取余数,将取余操作作为映射关系,上述余数作为上述第一采样值。以上只是根据上述每组训练语料的编码值和上述第一数量,获得上述第一类型的负向语料的第一采样值的一种实现方式,还可以根据上述每组训练语料的编码值和上述第一数量,采用其他的实现方式获得上述第一类型的负向语料的第一采样值,本实施例对此不作限定。
步骤403,根据上述第一采样值从第一负向语料集合中抽取第一类型的第一负向语料。
具体地,可以根据第一采样值在第一负向语料集合中进行查找,抽取标识(或索引)与上述第一采样值匹配的第一负向语料。
进一步地,步骤403之后,还可以包括:
步骤404,计算第一负向语料与上述训练语料的第一相似度。然后执行步骤405或步骤406。
具体地,在根据第一采样值抽取第一负向语料之后,需要计算第一负向语料与上述训练语料的第一相似度,这里的训练语料包括所有的正向语料,也即模型训练平台配置的所有正向训练语料。
在具体实现时,可以采用lucene算法计算第一负向语料与上述训练语料的第一相似度。
步骤405,如果第一相似度小于第一相似度阈值,则确定第一负向语料采样成功,将第一负向语料加入采样语料集合。本次流程结束。
其中,上述第一相似度阈值可以在具体实现时,根据系统性能和/或实现需求等自行设定,本实施例对上述第一相似度阈值的大小不作限定。
步骤406,如果上述第一相似度大于或等于第一相似度阈值,则根据上述第一采样值,获得第二采样值。
在具体实现时,可以将上述第一采样值加上预先设定的数值,获得第二采样值。
其中,上述预先设定的数值的大小可以在具体实现时,根据系统性能和/ 或实现需求等自行设定,本实施例对上述预先设定的数值的大小不作限定。
步骤407,根据上述第二采样值,从第一负向语料集合中抽取第一类型的第二负向语料。
同样,可以根据第二采样值在第一负向语料集合中进行查找,抽取标识 (或索引)与上述第二采样值匹配的第二负向语料。
步骤408,计算第二负向语料与上述训练语料的第二相似度。然后执行步骤409或步骤410。
具体地,在根据第二采样值抽取第二负向语料之后,需要计算第二负向语料与上述训练语料的第一相似度,这里的训练语料包括所有的正向语料,也即模型训练平台配置的所有正向训练语料。
步骤409,如果上述第二相似度小于第一相似度阈值,则确定第二负向语料采样成功,将上述第二负向语料加入上述采样语料集合。本次流程结束。
步骤410,如果所述第二相似度大于或等于第一相似度阈值,则重复执行步骤406~步骤409;当重复执行的次数大于预先设定的重复次数阈值时,如果当前采样获得的负向语料与所述训练语料的相似度小于第二相似度阈值,则确定当前采样获得的负向语料采样成功,将当前采样获得的负向语料加入所述采样语料集合;如果当前采样获得的负向语料与所述训练语料的相似度大于或等于第二相似度阈值,则将上一次采样成功的负向语料再次加入上述采样语料集合。
其中,上述预先设定的重复次数阈值可以在具体实现时,根据系统性能和/或实现需求等自行设定,本实施例对上述预先设定的重复次数的大小不作限定,举例来说,上述预先设定的重复次数可以为5。
上述第二相似度阈值的大小可以在具体实现时,根据系统性能和/或实现需求等自行设定,本实施例对上述第二相似度阈值的大小不作限定,只要满足第二相似度阈值大于第一相似度阈值即可。
如果开发人员配置的训练语料与第一负向语料集合中的语料相近,那么将此语料当作负向语料,会影响训练语料的意图的识别,表现为将训练语料识别为负向意图或识别的正向意图的置信度较低,本实施例将与训练语料相似度较高的采样语料剔除,从而避免对正向意图带来的影响。本实施例可以实现将与训练语料相似度较低的负向语料添加到采样语料集合,不将与训练语料相似度高的负向语料添加到上述采样语料集合。
图5为本申请基于人工智能的语义识别方法中语义识别模型的训练过程再一个实施例的流程图,如图5所示,本申请图3所示实施例中,步骤303 中的根据上述编码值抽取第二类型的负向语料,可以包括:
步骤501,从所述编码值中按顺序获取每M个编码值。
步骤502,从获取的每M个编码值中选择第二数量的编码值。
其中,第二数量可以在具体实现时自行设定,本实施例对第二数量的大小不作限定。
步骤503,根据上述第二数量的编码值从第二负向语料集合中抽取第二类型的负向语料。
其中,第二负向语料集合可以为高频正向词汇负向语料集合,上述第二负向语料集合中包括的第二类型的负向语料可以为高频词。
步骤504,对上述编码值进行排序。
步骤505,从上述排序后的编码值中按顺序获取每N个编码值。
步骤506,从获取的每N个编码值中选择第三数量的编码值。
其中,第三数量可以在具体实现时自行设定,本实施例对第三数量的大小不作限定。
步骤507,根据第三数量的编码值从第二负向语料集合中抽取第二类型的负向语料。
其中,M,N为正整数,M≠N。具体地,M,N的大小可以在具体实现时,根据系统性能和/或实现需求等自行设定,本实施例对M,N的大小不作限定,举例来说,M可以为2,N可以为3。
假设,将训练语料分为了4组,这4组训练语料的编码值分别为a1、a2、 a3和a4,那么可以先从上述编码值中按顺序获取每2个编码值,即a1a2、a2a3 和a3a4,然后,可以从获取的每2个编码值(a1a2、a2a3和a3a4)中选择第二数量的编码值,这里假设第二数量为2,那么可以选择a1a2和a2a3这两组编码值,当然也可以选择a1a2和a3a4这两组编码值,本实施例对此不作限定,这里以选择a1a2和a2a3这两组编码值为例进行说明。需要说明的是,如果第二数量为2,在第一次选择时,选择了a1a2和a2a3这两组编码值,那么后续每次进行模型训练时,仍需要选择a1a2和a2a3这两组编码值。
接下来,以a1a2这组编码值为例,首先将a1和a2的编码值分别映射到第二负向语料集合中,此处最简单的映射方法为编码值对第二负向语料集合所包括的负向语料的总数取余数,然后将分别根据a1和a2的编码值抽取的第二负向语料进行拼接,生成Bigram负向语料,以生成的Bigram负向语料作为第二类型的负向语料,然后将生成的Bigram负向语料加入到训练语料所需的负向语料集合中,同样可以按照相同的办法,生成a2a3对应的第二类型负向语料。
然后将a1、a2、a3和a4重新进行排序,假设重新排序后的编码值为a2、 a1、a3和a4,从上述排序后的编码值中按顺序获取每3个编码值,即a2a1a3 和a1a3a4,然后,可以从获取的每3个编码值(即a2a1a3和a1a3a4)中获取第三数量的编码值,这里假设第三数量为1,那么可以选择a2a1a3这组编码值,当然也可以选择a1a3a4这组编码值,本实施例对此不作限定,这里以选择a2a1a3这组编码值为例进行说明。需要说明的是,如果第三数量为1,在第一次选择时,选择了a2a1a3这组编码值,那么后续每次进行模型训练时,仍需要选择a2a1a3这组编码值。
接下来,可以将a2、a1和a3的编码值分别映射到第二负向语料集合中,此处最简单的映射方法为编码值对第二负向语料集合所包括的负向语料的总数取余数,然后将分别根据a2、a1和a3的编码值抽取的第二负向语料进行拼接,生成Trigram负向语料,以生成的Trigram负向语料作为第二类型的负向语料,然后将生成的Trigram负向语料加入到训练语料所需的负向语料集合中,这里,将a1、a2、a3和a4重新进行排序的目的是使生成的Trigram负向语料不包括生成的Bigram负向语料。
本实施例中,第二负向语料是根据训练语料的编码值通过映射关系抽取的,当训练语料无添加、删除或修改时,训练语料的编码值不变,并且映射关系也不会改变,因此根据训练语料的编码值通过映射关系抽取的第二负向语料也不会改变,由于训练语料和抽取的负向语料不变,因此利用训练语料和负向语料训练获得的模型的稳定性较高,可以实现在训练语料无添加、删除或修改的情况下,保持两次及多次训练获得的模型无明显差异,使得开发人员的测试语料在多次训练获得的模型中具有几乎相同的置信度(差异 <0.01),进而使准确率波动变小,从而提高开发人员的体验。
本实施例对第一负向语料集合和第二负向语料集合中包括的负向语料的总数不作限定,此处仅提出根据编码值采取映射方法,映射到第一负向语料集合和第二负向语料集合中保证每次采样的一致性方法。
图6为本申请基于人工智能的语义识别方法中语义识别模型的训练过程再一个实施例的流程图,如图6所示,本申请图3所示实施例中,步骤303 中的根据上述编码值抽取第一类型的负向语料和第二类型的负向语料,可以包括:
步骤601,根据每组训练语料的编码值和预先学习的映射关系,获得上述第一类型的负向语料的第三采样值和第二类型的负向语料的第四采样值。
其中,上述预先学习的映射关系可以包括取余,本实施例对此不作限定。
步骤602,根据上述第三采样值从上述第一负向语料集合中抽取第一类型的负向语料,并根据上述第四采样值从上述第二负向语料集合中抽取第二类型的负向语料。
进一步地,步骤601之前,还可以包括:
步骤603,获取训练样本对,上述训练样本对包括训练语料的编码值和对应的负向语料的采样值;其中,上述训练语料对应的负向语料的采样值之间的距离满足预先设定的约束距离。
具体地,可以通过以下方式获取上述训练样本对:
基于等距映射约束,如多维缩放(Multi-dimensional Scaling;以下简称: MDS)等方法,把度量不同空间的概率分布问题,转化为不同空间内训练样本相对位置的等距约束问题,保证两个空间的概率分布在距离意义下一致。具体地,可以基于等距约束建模,求解配对训练样本;具体方法可以采用基于核(kernel)的学习方法,在不要求显式定义的映射下,直接通过对最近邻样本,定义相对映射关系,构造训练样本对。
步骤604,利用上述训练样本对进行映射关系的学习,上述映射关系包括上述训练语料的编码值与对应的负向语料的采样值之间的映射关系。
本实施例中,按照本实施例提供的基于编码值的采样方法,从第一负向语料集合中抽取第一类型的负向语料,可以获得采样语料集合。为使采样语料集合中的k个采样语料{k’
式(1)中,P(i)为{k
假定hash方法已选定,以上问题的一般形式化问题可以归约为:求使{k’
下面是求解分析:
hash方法选定为simhash,嵌入到第一负向语料集合内的最简单的方法为取余数(如本申请图4所示实施例所述)。首先,对训练语料进行分组,然后计算每组训练语料的simhash值作为编码值,最大程度上,可直观使得 hash(x
考虑原始训练语料集合是有标签(label)的,映射后的负向语料集合是无label的,这就可能出现以下两种情况:1)映射后的集合元素属于不同类; 2)映射后的集合元素属于同一类。这里的类是指负向语料内在结构类别,例如负向语料本身的类别标签,或没有类别标签,通过聚类等手段确定内在结构类别。
上述两种情况可以归约为,从更一般的分布保持上,直接取余数不一定是最好的映射关系,因为不能直接逼近原始分布,同时对内容也不敏感。
因此,本实施例提出基于投影到第一负向语料集合中的距离约束:反向求解映射前的训练语料的编码值x,这个x是通过待设计的hash函数映射的“虚拟样本”。Mapping(x)得到最终的负向语料的采样值。最简单的映射关系(Mapping)为取余数,最简单的hash为JDK String的hashcode。结合经典累积分布函数(Cumulative Distribution Function;以下简称:CDF)求逆采样操作:
1)通过距离约束hash:simhash提前控制overlapping,嵌入原始先验信息距离保持映射关系;
2)通过逆问题求解:嵌入目标性质距离约束,学习映射关系。
本实施例中,负向语料是根据训练语料的编码值通过映射关系抽取的,当训练语料无添加、删除或修改时,训练语料的编码值不变,并且映射关系也不会改变,因此根据训练语料的编码值通过映射关系抽取的负向语料也不会改变,由于训练语料和抽取的负向语料不变,因此利用训练语料和负向语料训练获得的模型的稳定性较高,可以实现在训练语料无添加、删除或修改的情况下,保持两次及多次训练获得的模型无明显差异,使得开发人员的测试语料在多次训练获得的模型中具有几乎相同的置信度(差异<0.01),进而使准确率波动变小,从而提高开发人员的体验。
本申请图3~图5所示实施例通过对编码值取余数映射到负向语料集合的方法,以及本申请图6所示实施例通过学习映射关系将抽取负向语料的随机方法等价为稳定方法的抽取方法,不仅适用于本申请中抽取负向语料,同样也适用于其他随机因素存在每次需要保持一致的需求的情况。
通过本申请图3~图6所示实施例提供的方法,可以获得训练好的语义识别模型,然后可以利用上述训练好的语义识别模型对输入的查询语句进行语义识别。本申请中,上述语义识别模型可以搭载在模型训练平台,例如:Bot 平台上进行语义识别,如图2所示,图2的右侧方框中显示的是,按照本申请图3~图6所示实施例提供的方法,获得训练好的语义识别模型之后,在 Bot平台上利用上述训练好的语义识别模型对用户输入的查询语句“沈阳后天的天气怎么样”进行查询,获得上述查询语句的意图为“天气查询”,进而获得上述查询语句的答案“沈阳后天晴,……”,并显示上述答案的一个示例。
也可以将上述语义识别模型搭载在其他电子设备,例如:服务器或终端上进行语义识别。上述电子设备可以包括:云服务器、移动终端(手机)、智慧屏、无人机、智能网联车(Intelligent Connected Vehicle;以下简称:ICV)、智能(汽)车(smart/intelligentcar)或车载设备等设备。
图7为本申请基于人工智能的语义识别方法一个实施例的流程图,如图 7所示,上述基于人工智能的语义识别方法可以包括:
步骤701,获取用户输入的查询语句。
具体地,获取用户输入的查询语句可以包括:
获取用户通过文本输入的查询语句;或者,
获取用户通过语音输入的查询语句;或者,
获取用户输入的图片,对上述图片进行识别,获取上述图片中包括的查询语句。
也就是说,用户可以通过文本、语音或图片的方式输入上述查询语句。
步骤702,通过预先训练的语义识别模型对上述查询语句进行识别,获得上述查询语句的意图;其中,上述预先训练的语义识别模型是利用训练语料和负向语料训练的,上述负向语料是根据上述训练语料的编码值映射到负向语料集合中抽取的。
其中,上述预先训练的语义识别模型是按照本申请图3~图6所示实施例提供的方法训练的,在此不再赘述。
步骤703,根据上述查询语句和上述查询语句的意图,获得上述查询语句对应的响应。
步骤704,显示上述查询语句对应的响应。
上述基于人工智能的语义识别方法中,负向语料是根据训练语料的编码值通过映射关系抽取的,当训练语料无添加、删除或修改时,训练语料的编码值不变,并且映射关系也不会改变,因此根据训练语料的编码值通过映射关系抽取的负向语料也不会改变,由于训练语料和抽取的负向语料不变,因此利用训练语料和负向语料训练获得的模型的稳定性较高,可以实现在训练语料无添加、删除或修改的情况下,保持两次及多次训练获得的模型无明显差异,使得开发人员的测试语料在多次训练获得的模型中具有几乎相同的置信度(差异<0.01),进而使准确率波动变小,从而提高开发人员的体验。
图8为本申请基于人工智能的语义识别装置一个实施例的结构示意图,如图8所示,上述基于人工智能的语义识别装置80可以包括:获取模块81、识别模块82、查询模块83和显示模块84。应当理解的是,基于人工智能的语义识别装置80可以对应于图10的设备900。其中,获取模块81、识别模块82和查询模块83的功能可以通过图10的设备900中的处理器910实现;显示模块84具体可以对应于图10的设备900中的显示单元970。
其中,获取模块81,用于获取用户输入的查询语句;本实施例中,获取模块81,具体用于获取用户通过文本输入的查询语句;或者,获取用户通过语音输入的查询语句;或者,获取用户输入的图片,对上述图片进行识别,获取上述图片中包括的查询语句。
也就是说,用户可以通过文本、语音或图片的方式输入上述查询语句。
识别模块82,用于通过预先训练的语义识别模型对上述查询语句进行识别,获得上述查询语句的意图;其中,上述预先训练的语义识别模型是利用训练语料和负向语料训练的,上述负向语料是根据所述训练语料的编码值映射到负向语料集合中抽取的;
查询模块83,用于根据获取模块81获取的查询语句和识别模块82识别的上述查询语句的意图,获得上述查询语句对应的响应;
显示模块84,用于显示上述查询语句对应的响应。
图8所示实施例提供的基于人工智能的语义识别装置可用于执行本申请图7所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。
图9为本申请基于人工智能的语义识别装置另一个实施例的结构示意图,与图8所示的基于人工智能的语义识别装置相比,不同之处在于,图9 所示的基于人工智能的语义识别装置90还可以包括:分组模块85、编码模块86、抽取模块87和训练模块88;应当理解的是,基于人工智能的语义识别装置90可以对应于图10的设备900。其中,获取模块81、识别模块82和查询模块83的功能可以通过图10的设备900中的处理器910实现;显示模块84具体可以对应于图10的设备900中的显示单元970;分组模块85、编码模块86、抽取模块87和训练模块88的功能可以通过图10的设备900中的处理器910实现。
其中,分组模块85,用于根据需要抽取的负向语料的数量,对训练语料进行分组;其中,上述需要抽取的负向语料的数量可以在具体实现时,根据实现需求和/或系统性能等自行设定,本实施例对此不作限定,假设上述需要抽取的负向语料的数量为Num,那么就需要将训练语料划分为Num组,Num 为正整数。
进一步地,基于人工智能的语义识别装置80还可以包括:排序模块89;
排序模块89,用于在分组模块85根据需要抽取的负向语料的数量,对训练语料进行分组之前,对上述训练语料进行排序。具体地,排序模块89可以采用以下排序方式对上述训练语料进行排序:按照字符串、训练语料的哈希(Hash)值或者训练语料的simHash值等进行排序,当然还可以采用其他的排序方式对训练语料进行排序,本实施例不作限定。本实施例通过排序模块89对训练语料进行排序,可以在训练语料完全相同的情况下,使分组后的编码值不因语料顺序的变化而有变化,保证训练语料的分组不发生变化。
编码模块86,用于对每组训练语料进行编码,获得每组训练语料的编码值;具体地,本实施例中,在分组模块85对每组训练语料进行分组之后,编码模块86可以分别对每组训练语料进行编码,从而可以使每组训练语料具有唯一的编码值,编码方式可以包括:hash值或simHash值等,当然还可以采用其他的编码方式,本实施例不作限定。在具体实现时,编码模块86可以对每组的训练语料按照N元语法(N-gram),例如:unigram及bigranm方式,将计算的simHash值作为每组训练语料的编码值。
抽取模块87,用于根据编码模块86获得的编码值抽取第一类型的负向语料和第二类型的负向语料;其中,上述第一类型的负向语料可以为闲聊负向语料,第二类型的负向语料可以为高频正向词汇负向语料。
训练模块88,用于利用上述训练语料、上述第一类型的负向语料和上述第二类型的负向语料进行训练,获得上述语义识别模型。
本实施例中,在分组模块85对训练语料进行分组之后,编码模块86对每组训练语料进行编码,抽取模块87根据上述编码值抽取第一类型的负向语料和第二类型的负向语料,然后训练模块88利用上述训练语料、上述第一类型的负向语料和上述第二类型的负向语料进行训练,获得语义识别模型,从而实现了根据训练语料的编码值唯一地抽取负向语料,将负向语料生成的随机化方法变成稳定的生成方法,在训练语料没有添加、删除或修改的情况下,可以保持两次及多次训练获得的模型无明显差异,使得开发人员的测试语料在多次训练获得的模型中具有几乎相同的置信度(差异<0.01),进而使准确率波动变小,从而提高开发人员的体验。
本实施例中,抽取模块87可以包括:数量获取子模块871、采样值获得子模块872和语料抽取子模块873;
数量获取子模块871,用于获取第一负向语料集合中所包括的第一类型的负向语料的第一数量;其中,上述第一负向语料集合可以为闲聊负向语料集合,第一数量即为第一负向语料集合中所包括的第一类型的负向语料的总数量。
采样值获得子模块872,用于根据上述每组训练语料的编码值和上述第一数量,获得第一类型的负向语料的第一采样值;具体地,根据上述每组训练语料的编码值和上述第一数量,获得上述第一类型的负向语料的第一采样值可以为:采样值获得子模块872利用上述每组训练语料的编码值对上述第一数量取余数,将取余操作作为映射关系,上述余数作为上述第一采样值。以上只是根据上述每组训练语料的编码值和上述第一数量,获得上述第一类型的负向语料的第一采样值的一种实现方式,采样值获得子模块872还可以根据上述每组训练语料的编码值和上述第一数量,采用其他的实现方式获得上述第一类型的负向语料的第一采样值,本实施例对此不作限定。
语料抽取子模块873,用于根据采样值获得子模块872获得的第一采样值从上述第一负向语料集合中抽取第一类型的第一负向语料。
具体地,语料抽取子模块873可以根据第一采样值在第一负向语料集合中进行查找,抽取标识(或索引)与上述第一采样值匹配的第一负向语料。
进一步地,上述抽取模块87还可以包括:相似度计算子模块874;
相似度计算子模块874,用于在语料抽取子模块873抽取第一类型的第一负向语料之后,计算第一负向语料与上述训练语料的第一相似度;具体地,在语料抽取子模块873根据第一采样值抽取第一负向语料之后,相似度计算子模块874需要计算第一负向语料与上述训练语料的第一相似度,这里的训练语料包括所有的正向语料,也即模型训练平台配置的所有正向训练语料。
语料抽取子模块873,还用于当第一相似度小于第一相似度阈值时,确定第一负向语料采样成功,将上述第一负向语料加入采样语料集合。其中,上述第一相似度阈值可以在具体实现时,根据系统性能和/或实现需求等自行设定,本实施例对上述第一相似度阈值的大小不作限定。
本实施例中,采样值获得子模块872,还用于在相似度计算子模块874 计算第一相似度之后,如果上述第一相似度大于或等于第一相似度阈值,则根据上述第一采样值,获得第二采样值;在具体实现时,采样值获得子模块 872可以将上述第一采样值加上预先设定的数值,获得第二采样值。
其中,上述预先设定的数值的大小可以在具体实现时,根据系统性能和/ 或实现需求等自行设定,本实施例对上述预先设定的数值的大小不作限定。
语料抽取子模块873,还用于根据采样值获得子模块872获得的第二采样值,从第一负向语料集合中抽取第一类型的第二负向语料;同样,语料抽取子模块873可以根据第二采样值在第一负向语料集合中进行查找,抽取标识(或索引)与上述第二采样值匹配的第二负向语料。
相似度计算子模块874,还用于计算上述第二负向语料与上述训练语料的第二相似度;具体地,在语料抽取子模块873根据第二采样值抽取第二负向语料之后,相似度计算子模块874需要计算第二负向语料与上述训练语料的第一相似度,这里的训练语料包括所有的正向语料,也即模型训练平台配置的所有正向训练语料。
语料抽取子模块873,还用于当第二相似度小于第一相似度阈值时,确定第二负向语料采样成功,将第二负向语料加入上述采样语料集合。
采样值获得子模块872,还用于在相似度计算子模块874计算第二相似度之后,如果上述第二相似度大于或等于第一相似度阈值,则重复执行根据第一采样值,获得第二采样值的步骤及后续步骤;
语料抽取子模块873,还用于当重复执行的次数大于预先设定的重复次数阈值时,如果当前采样获得的负向语料与上述训练语料的相似度小于第二相似度阈值,则确定当前采样获得的负向语料采样成功,将当前采样获得的负向语料加入上述采样语料集合;如果当前采样获得的负向语料与上述训练语料的相似度大于或等于第二相似度阈值,则将上一次采样成功的负向语料再次加入上述采样语料集合。
其中,上述预先设定的重复次数阈值可以在具体实现时,根据系统性能和/或实现需求等自行设定,本实施例对上述预先设定的重复次数的大小不作限定,举例来说,上述预先设定的重复次数可以为5。
上述第二相似度阈值的大小可以在具体实现时,根据系统性能和/或实现需求等自行设定,本实施例对上述第二相似度阈值的大小不作限定,只要满足第二相似度阈值大于第一相似度阈值即可。
如果开发人员配置的训练语料与第一负向语料集合中的语料相近,那么将此语料当作负向语料,会影响训练语料的意图的识别,表现为将训练语料识别为负向意图或识别的正向意图的置信度较低,本实施例将与训练语料相似度较高的采样语料剔除,从而避免对正向意图带来的影响。本实施例可以实现将与训练语料相似度较低的负向语料添加到采样语料集合,不将与训练语料相似度高的负向语料添加到上述采样语料集合。
本实施例中,抽取模块87可以包括:编码值获取子模块875、语料抽取子模块873和编码值排序子模块876;
编码值获取子模块875,用于从上述编码值中按顺序获取每M个编码值;以及从获取的每M个编码值中选择第二数量的编码值;
语料抽取子模块873,用于根据第二数量的编码值从第二负向语料集合中抽取第二类型的负向语料;其中,第二负向语料集合可以为高频正向词汇负向语料集合,上述第二负向语料集合中包括的第二类型的负向语料可以为高频词。
编码值排序子模块876,用于对上述编码值进行排序;
编码值获取子模块875,还用于从上述排序后的编码值中按顺序获取每N 个编码值;以及从获取的每N个编码值中选择第三数量的编码值;
语料抽取子模块873,还用于根据第三数量的编码值从第二负向语料集合中抽取第二类型的负向语料;其中,M,N为正整数,M≠N。
具体地,M,N的大小可以在具体实现时,根据系统性能和/或实现需求等自行设定,本实施例对M,N的大小不作限定,举例来说,M可以为2, N可以为3。
假设,将训练语料分为了4组,这4组训练语料的编码值分别为a1、a2、 a3和a4,那么可以先从上述编码值中按顺序获取每2个编码值,即a1a2、a2a3 和a3a4,然后,可以从获取的每2个编码值(a1a2、a2a3和a3a4)中选择第二数量的编码值,这里假设第二数量为2,那么可以选择a1a2和a2a3这两组编码值,当然也可以选择a1a2和a3a4这两组编码值,本实施例对此不作限定,这里以选择a1a2和a2a3这两组编码值为例进行说明。需要说明的是,如果第二数量为2,在第一次选择时,选择了a1a2和a2a3这两组编码值,那么后续每次进行模型训练时,仍需要选择a1a2和a2a3这两组编码值。
接下来,以a1a2这组编码值为例,首先将a1和a2的编码值分别映射到第二负向语料集合中,此处最简单的映射方法为编码值对第二负向语料集合所包括的负向语料的总数取余数,然后将分别根据a1和a2的编码值抽取的第二负向语料进行拼接,生成Bigram负向语料,以生成的Bigram负向语料作为第二类型的负向语料,然后将生成的Bigram负向语料加入到训练语料所需的负向语料集合中,同样可以按照相同的办法,生成a2a3对应的第二类型负向语料。
然后将a1、a2、a3和a4重新进行排序,假设重新排序后的编码值为a2、 a1、a3和a4,从上述排序后的编码值中按顺序获取每3个编码值,即a2a1a3 和a1a3a4,然后,可以从获取的每3个编码值(即a2a1a3和a1a3a4)中获取第三数量的编码值,这里假设第三数量为1,那么可以选择a2a1a3这组编码值,当然也可以选择a1a3a4这组编码值,本实施例对此不作限定,这里以选择a2a1a3这组编码值为例进行说明。需要说明的是,如果第三数量为1,在第一次选择时,选择了a2a1a3这组编码值,那么后续每次进行模型训练时,仍需要选择a2a1a3这组编码值。
接下来,可以将a2、a1和a3的编码值分别映射到第二负向语料集合中,此处最简单的映射方法为编码值对第二负向语料集合所包括的负向语料的总数取余数,然后将分别根据a2、a1和a3的编码值抽取的第二负向语料进行拼接,生成Trigram负向语料,以生成的Trigram负向语料作为第二类型的负向语料,然后将生成的Trigram负向语料加入到训练语料所需的负向语料集合中,这里,将a1、a2、a3和a4重新进行排序的目的是使生成的Trigram负向语料不包括生成的Bigram负向语料。
本实施例中,抽取模块87可以包括:采样值获得子模块872和语料抽取子模块873;
采样值获得子模块872,用于根据每组训练语料的编码值和预先学习的映射关系,获得第一类型的负向语料的第三采样值和第二类型的负向语料的第四采样值;其中,上述预先学习的映射关系可以包括取余,本实施例对此不作限定。
语料抽取子模块873,用于根据采样值获得子模块872获得的第三采样值从上述第一负向语料集合中抽取第一类型的负向语料,并根据上述第四采样值从第二负向语料集合中抽取第二类型的负向语料。
进一步地,抽取模块87还可以包括:样本对获取子模块877和映射关系学习子模块878;
其中,样本对获取子模块877,用于在采样值获得子模块872获得第一类型的负向语料的第三采样值之前,获取训练样本对,上述训练样本对包括训练语料的编码值和对应的负向语料的采样值;其中,上述训练语料对应的负向语料的采样值之间的距离满足预先设定的约束距离;
映射关系学习子模块878,用于利用上述训练样本对进行映射关系的学习,上述映射关系包括所述训练语料的编码值与对应的负向语料的采样值之间的映射关系。
图9所示实施例提供的基于人工智能的语义识别装置可用于执行本申请图3~图6所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。
应理解以上图8~图9所示的基于人工智能的语义识别装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块以软件通过处理元件调用的形式实现,部分模块通过硬件的形式实现。例如,模块可以为单独设立的处理元件,也可以集成在电子设备的某一个芯片中实现。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit;以下简称:ASIC),或,一个或多个微处理器(Digital Singnal Processor;以下简称:DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array;以下简称:FPGA)等。再如,这些模块可以集成在一起,以片上系统(System-On-a-Chip;以下简称:SOC)的形式实现。
图10为本申请基于人工智能的语义识别设备一个实施例的结构示意图,上述基于人工智能的语义识别设备可以包括:显示屏;一个或多个处理器;存储器;多个应用程序;以及一个或多个计算机程序。
其中,上述显示屏可以包括车载计算机(移动数据中心Mobile Data Center)的显示屏;上述基于人工智能的语义识别设备可以为云服务器、移动终端(手机)、智慧屏、无人机、智能网联车(Intelligent Connected Vehicle;以下简称:ICV)、智能(汽)车(smart/intelligent car)或车载设备等设备。
其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述设备执行时,使得所述设备执行以下步骤:获取用户输入的查询语句;
通过预先训练的语义识别模型对所述查询语句进行识别,获得上述查询语句的意图;其中,上述预先训练的语义识别模型是利用训练语料和负向语料训练的,上述负向语料是根据上述训练语料的编码值映射到负向语料集合中抽取的;
根据上述查询语句和上述查询语句的意图,获得上述查询语句对应的响应;
显示上述查询语句对应的响应。
在一种可能的实现方式中,当上述指令被上述设备执行时,使得上述设备具体执行以下步骤:
获取用户通过文本输入的查询语句;或者,
获取用户通过语音输入的查询语句;或者,
获取用户输入的图片,对所述图片进行识别,获取所述图片中包括的查询语句。
在一种可能的实现方式中,当所述指令被所述设备执行时,使得所述设备具体执行以下步骤:
根据需要抽取的负向语料的数量,对训练语料进行分组;
对每组训练语料进行编码,获得每组训练语料的编码值;
根据所述编码值抽取第一类型的负向语料和第二类型的负向语料;
利用所述训练语料、所述第一类型的负向语料和所述第二类型的负向语料进行训练,获得所述语义识别模型。
在一种可能的实现方式中,当所述指令被所述设备执行时,使得所述设备具体执行以下步骤:
获取第一负向语料集合中所包括的第一类型的负向语料的第一数量;
根据所述每组训练语料的编码值和所述第一数量,获得所述第一类型的负向语料的第一采样值;
根据所述第一采样值从所述第一负向语料集合中抽取第一类型的第一负向语料。
在一种可能的实现方式中,当所述指令被所述设备执行时,使得所述设备具体执行以下步骤:在根据所述第一采样值从所述第一负向语料集合中抽取第一类型的第一负向语料之后,计算所述第一负向语料与所述训练语料的第一相似度;
如果所述第一相似度小于第一相似度阈值,则确定第一负向语料采样成功,将所述第一负向语料加入采样语料集合。
在一种可能的实现方式中,当所述指令被所述设备执行时,使得所述设备具体执行以下步骤:在计算所述第一负向语料与所述训练语料的第一相似度之后,如果所述第一相似度大于或等于第一相似度阈值,则根据所述第一采样值,获得第二采样值;
根据所述第二采样值,从所述第一负向语料集合中抽取第一类型的第二负向语料;
计算所述第二负向语料与所述训练语料的第二相似度;
如果所述第二相似度小于第一相似度阈值,则确定所述第二负向语料采样成功,将所述第二负向语料加入所述采样语料集合。
在一种可能的实现方式中,当所述指令被所述设备执行时,使得所述设备具体执行以下步骤:在计算所述第二负向语料与所述训练语料的第二相似度之后,如果所述第二相似度大于或等于第一相似度阈值,则重复执行所述根据所述第一采样值,获得第二采样值的步骤及后续步骤;
当重复执行的次数大于预先设定的重复次数阈值时,如果当前采样获得的负向语料与所述训练语料的相似度小于第二相似度阈值,则确定当前采样获得的负向语料采样成功,将当前采样获得的负向语料加入所述采样语料集合;如果当前采样获得的负向语料与所述训练语料的相似度大于或等于第二相似度阈值,则将上一次采样成功的负向语料再次加入所述采样语料集合。
在一种可能的实现方式中,当所述指令被所述设备执行时,使得所述设备具体执行以下步骤:从所述编码值中按顺序获取每M个编码值;
从获取的每M个编码值中选择第二数量的编码值;
根据所述第二数量的编码值从第二负向语料集合中抽取第二类型的负向语料;
对所述编码值进行排序;
从所述排序后的编码值中按顺序获取每N个编码值;
从获取的每N个编码值中选择第三数量的编码值;
根据所述第三数量的编码值从第二负向语料集合中抽取第二类型的负向语料;其中,M,N为正整数,M≠N。
在一种可能的实现方式中,当所述指令被所述设备执行时,使得所述设备具体执行以下步骤:根据所述每组训练语料的编码值和预先学习的映射关系,获得所述第一类型的负向语料的第三采样值和第二类型的负向语料的第四采样值;
根据所述第三采样值从所述第一负向语料集合中抽取第一类型的负向语料,并根据所述第四采样值从所述第二负向语料集合中抽取第二类型的负向语料。
在一种可能的实现方式中,当所述指令被所述设备执行时,使得所述设备具体执行以下步骤:在根据所述每组训练语料的编码值和预先学习的映射关系,获得所述第一类型的负向语料的第三采样值和第二类型的负向语料的第四采样值之前,获取训练样本对,所述训练样本对包括训练语料的编码值和对应的负向语料的采样值;其中,所述训练语料对应的负向语料的采样值之间的距离满足预先设定的约束距离;
利用所述训练样本对进行映射关系的学习,所述映射关系包括所述训练语料的编码值与对应的负向语料的采样值之间的映射关系。
图10所示的基于人工智能的语义识别设备可以是电子设备也可以是内置于上述电子设备的电路设备。该电子设备可以为云服务器、移动终端(手机)、智慧屏、无人机、ICV、智能(汽)车或车载设备等设备。
上述基于人工智能的语义识别设备可以用于执行本申请图3~图7所示实施例提供的方法中的功能/步骤。
如图10所示,基于人工智能的语义识别设备900包括处理器910和收发器920。可选地,该基于人工智能的语义识别设备900还可以包括存储器930。其中,处理器910、收发器920和存储器930之间可以通过内部连接通路互相通信,传递控制和/或数据信号,该存储器930用于存储计算机程序,该处理器910用于从该存储器930中调用并运行该计算机程序。
可选地,基于人工智能的语义识别设备900还可以包括天线940,用于将收发器920输出的无线信号发送出去。
上述处理器910可以和存储器930可以合成一个处理装置,更常见的是彼此独立的部件,处理器910用于执行存储器930中存储的程序代码来实现上述功能。具体实现时,该存储器930也可以集成在处理器910中,或者,独立于处理器910。
除此之外,为了使得基于人工智能的语义识别设备900的功能更加完善,该基于人工智能的语义识别设备900还可以包括输入单元960、显示单元970、音频电路980、摄像头990和传感器901等中的一个或多个,所述音频电路还可以包括扬声器982、麦克风984等。其中,显示单元970可以包括显示屏。
可选地,上述基于人工智能的语义识别设备900还可以包括电源950,用于给基于人工智能的语义识别设备900中的各种器件或电路提供电源。
应理解,图10所示的基于人工智能的语义识别设备900能够实现图3~图7所示实施例提供的方法的各个过程。基于人工智能的语义识别设备900 中的各个模块的操作和/或功能,分别为了实现上述方法实施例中的相应流程。具体可参见图3~图7所示方法实施例中的描述,为避免重复,此处适当省略详细描述。
应理解,图10所示的基于人工智能的语义识别设备900中的处理器910 可以是片上系统SOC,该处理器910中可以包括中央处理器(Central Processing Unit;以下简称:CPU),还可以进一步包括其他类型的处理器,例如:图像处理器(Graphics ProcessingUnit;以下简称:GPU)等。
总之,处理器910内部的各部分处理器或处理单元可以共同配合实现之前的方法流程,且各部分处理器或处理单元相应的软件程序可存储在存储器 930中。
以上各实施例中,涉及的处理器可以例如包括CPU、DSP、微控制器或数字信号处理器,还可包括GPU、嵌入式神经网络处理器(Neural-network Process Units;以下简称:NPU)和图像信号处理器(Image Signal Processing;以下简称:ISP),该处理器还可包括必要的硬件加速器或逻辑处理硬件电路,如ASIC,或一个或多个用于控制本申请技术方案程序执行的集成电路等。此外,处理器可以具有操作一个或多个软件程序的功能,软件程序可以存储在存储介质中。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行本申请图3、图4、图5、图6或图7所示实施例提供的方法。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,当其在计算机上运行时,使得计算机执行本申请图3、图4、图5、图6或图7所示实施例提供的方法。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示单独存在A、同时存在A和B、单独存在B 的情况。其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a和b,a和c,b和c或a和b和c,其中a,b,c可以是单个,也可以是多个。
本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备 (可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory;以下简称:ROM)、随机存取存储器(Random Access Memory;以下简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。本申请的保护范围应以所述权利要求的保护范围为准。
- 基于人工智能的语义识别方法、装置和语义识别设备
- 基于人工智能的语义提取方法、装置、电子设备及介质