发明内容
本发明所要解决的技术问题是提供一种更加智能化的理解用户输入的检索语句,检索结果具有更高准确率的智能语义检索系统和方法。
本发明解决上述技术问题的技术方案如下:一种智能语义检索系统,包括知识库、知识管理模块、规则生成模块、信息抽取模块、验证模块、意图生成模块和对话模块;
所述知识库,用于存储知识图谱,所述知识图谱包括商品的属性及其属性值以及商品属性值之间的映射关系;
所述知识管理模块,用于加载知识图谱,并通过增、改、删、查的方式对所述知识图谱进行管理;
所述规则生成模块,用于根据知识图谱中商品属性值或商品属性值和商品属性值之间的映射关系生成抽取规则;
所述信息抽取模块,用于获取用户输入的自然语言,将抽取规则与用户输入的自然语言进行匹配,生成结构化知识;
所述验证模块,用于调取知识图谱,将知识图谱与结构化知识进行比对,根据比对结果生成验证结果;
所述意图生成模块,用于检测验证结果中的商品属性的取值是否有歧义,如果是,则将验证结果发送至对话模块,如果否,则根据验证结果生成商品列表,作为最终检索结果并输出;
所述对话模块,用于根据有歧义的验证结果生成提示语句,并输出提示语句,提示语句用于提示用户重新输入自然语言。
本发明的有益效果是:一方面,本发明的语义检索系统能够更加智能化的理解用户输入的检索语句,检索结果具有更高准确率。另一方面,当系统对用于输入的检索词理解有歧义时,系统根据用户个人历史数据矫正检索结果,对于自我矫正后仍有歧义的检索结果,系统根据有歧义的检索结果生成提示语句,提示用户重新输入检索词,这样避免了用户在不知自己检索词哪里出问题的情况下一次次输入不合适的检索词,提高了检索效率。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,一种智能语义检索系统,还包括个性化历史记录库,所述个性化历史记录库,用于存储个性化历史记录,所述个性化历史记录为个体用户进行智能语义检索时,输入的自然语言与生成的最终检索结果的映射关系的记录;
所述验证模块,还调取个性化历史记录,将个性化历史记录与结构化知识进行比对,根据比对结果生成验证结果。
进一步,一种智能语义检索系统,所述知识图谱以OWL配置文件的形式存储,包括基础配置表和规则配置表,所述基础配置表存储根据电子商务网站的约束规则生成的商品的属性及其对应的属性值,所述规则配置表存储商品属性值之间的映射关系。
进一步,一种智能语义检索系统,所述验证模块包括第一消歧单元和第二消歧单元;
所述第一消歧单元,用于调取知识图谱,将知识图谱与结构化知识进行第一次比对,如果比对结果为一致,则将第一次比对后的结构化知识发送给第二消歧单元;如果比对结果为不一致,则将所述结构化知识进行第一次消歧处理,并将第一次消歧处理后的结果作为验证结果并输出;
所述第二消歧单元,用于调取个性化历史记录,将所述个性化历史记录与第一次比对的结构化知识进行第二次比对;如果第二次比对结果为一致,则将第二次比对后的结构化知识作为验证结果并输出;如果第二次比对结果不一致,则将其进行第二次消歧处理后作为验证结果并输出。
进一步,一种智能语义检索系统,所述意图生成模块包括交叉检测单元和映射检测单元;
所述交叉检测处理单元,用于根据用户输入的自然语言中文字的字符定位判断验证结果是否有交叉,如果判定验证结果有交叉,根据用户输入的自然语言对有交叉的验证结果进行修正,将修正后的结果生成商品列表,作为最终检索结果并输出,如果判定验证结果无交叉,则将所述验证结果发送至映射检测单元;
所述映射检测单元,用于检测验证结果中的商品属性的取值是否映射正确,如果是,则根据验证结果生成商品列表,作为最终检索结果并输出;如果否,则将验证结果发送至对话模块。
一种智能语义检索方法,包括以下步骤:
步骤1:从知识库中加载知识图谱,所述知识图谱包括商品的属性及其属性值以及商品属性值之间的映射关系;
步骤2:从加载完成的知识图谱中提取商品属性值,根据商品属性值或商品属性值和商品属性值之间的映射关系生成抽取规则;
步骤3:获取用户输入的自然语言,将抽取规则与用户输入的自然语言进行匹配,生成结构化知识;
步骤4:调取知识图谱,将知识图谱与结构化知识进行比对,根据比对结果生成验证结果;
步骤5:检测验证结果中的商品属性的取值是否有歧义,如果是,则执行步骤6;如果否,则根据验证结果生成商品列表,作为最终检索结果并输出,结束检索流程;
步骤6:根据有歧义的验证结果生成提示语句,并输出提示语句;
步骤7:再次获取用户重新输入的自然语言,并执行步骤3。
进一步,一种智能语义检索方法,步骤3还包括调取个性化历史记录,将个性化历史记录与结构化知识进行比对,根据比对结果生成验证结果;所述个性化历史记录为个体用户进行智能语义检索时,输入的自然语言与生成的最终检索结果的映射关系的记录。
进一步,一种智能语义检索方法,所述步骤1还包括:在知识库中预先存储知识图谱;所述知识图谱以OWL配置文件的形式存储,包括基础配置表和规则配置表,所述基础配置表存储根据电子商务网站的约束规则生成的商品的属性及其对应的属性值,所述规则配置表存储商品属性值之间的映射关系。
进一步,一种智能语义检索方法,所述步骤4具体为:
步骤41:调取知识图谱,将知识图谱与结构化知识进行第一次比对,如果比对结果为一致,则执行步骤42;如果比对结果为不一致,则将所述结构化知识进行第一次消歧处理,并将第一次消歧处理后的结果作为验证结果并输出,执行步骤5;
步骤42:调取个性化历史记录,将所述个性化历史记录与第一次比对后的结构化知识进行第二次比对,如果第二次比对结果为一致,则将第二次比对后的结构化知识作为验证结果并输出,执行步骤5;如果第二次比对结果不一致,则将其进行第二次消歧处理后作为验证结果并输出,执行步骤5。
进一步,一种智能语义检索方法,所述步骤5具体为:
步骤51:根据用户输入的自然语言中文字的字符定位判断验证结果是否有交叉,如果判定验证结果有交叉,根据用户输入的自然语言对有交叉的验证结果进行修正,将修正后的结果生成商品列表,作为最终检索结果并输出,如果判定验证结果无交叉,则将所述验证结果发送至映射检测单元;
步骤52:检测验证结果中的商品属性的取值是否映射正确,如果是,则根据验证结果生成商品列表,作为最终检索结果并输出;如果否,则执行步骤6。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
本发明针对用户输入的自然语言,首先会结合用户的检索习惯,以及商品概念本身的约束性,筛选出商品和符合商品最合理的筛选条件。
如图1所示,基于电子商务的智能语义检索系统,包括知识库、知识管理模块、规则生成模块、信息抽取模块、验证模块、意图生成模块和对话模块;
知识库存储知识图谱,知识图谱包括商品的属性及其属性值以及商品属性值之间的映射关系;知识图谱以OWL配置文件的形式存储,包括基础配置表和规则配置表,所述基础配置表存储根据电子商务网站的约束规则生成的商品的属性及其对应的属性值,所述规则配置表存储商品属性值之间的映射关系。
基础配置表存储根据电子商务网站的约束规则生成的商品属性及其属性值列表,不同的电子商务网站的约束规则不同,其生成的商品属性及其属性值列表也不同。
例如:京东商城中,类目属性为平板电脑的商品中,具有品牌、屏幕尺寸、价格、颜色、网络制式、操作系统等商品属性及其属性值列表。
规则配置表用于存储不同商品属性的属性值之间的映射关系,当用户输入的自然语言中出现的商品属性匹配词不能和基础配置表内存储的商品属性直接映射时,根据规则配置表中不同商品属性的属性值之间的映射关系,对用户输入的自然语言中的商品属性匹配词进行更换。
例如:品牌属性值——苹果,其对应的型号属性值{iPad,iPad2,The new iPad,iPad 4,iPad Mini,iPad Mini 2,iPad Air,iPad mini 3,iPad Air2};当用户输入的自然语言中的商品属性不能和基础配置表内存储的商品属性直接映射时,例如用户在京东商城网站上输入自然语言为:iPad Mini 2黑色的手机,由于iPad Mini 2是商品的型号属性,该商品属性并未出现在京东商城的基础配置表中的商品属性列表中,这时,将型号属性—iPad Mini2在规则配置表中进行查询,得到商品型号属性与商品品牌属性的映射关系:型号属性—iPad Mini 2属于品牌属性—苹果,根据这一映射关系将用户输入的自然语言中的匹配词“iPad Mini 2”更换为“苹果”。
知识管理模块加载知识图谱,并通过增、改、删、查的方式对知识图谱进行管理。
规则生成模块从知识管理模块中完成加载的知识图谱中提取商品属性值,根据商品属性值或商品属性值和商品属性值之间的映射关系生成抽取规则。
情况一:仅仅根据商品属性值生成生成抽取规则;
例如:根据京东商城的基础配置表中的商品属性值,生成抽取规则:从基础配置表中的商品的属性列表中读取%内的取值。
品牌抽取规则:%品牌属性值列表%
屏幕尺寸抽取规则:%数字%尺寸%
价格抽取规则:%价格属性值列表%
颜色抽取规则:%颜色属性值列表%
网络制式抽取规则:%网络制式属性值列表%
操作系统抽取规则:%操作系统属性值列表%。
根据抽取规则生成的商品属性值列表:
品牌属性值列表:{三星,华为,小米,苹果,魅族,中兴,联想}
屏幕尺寸属性值列表:{大小=[7,8,9,11],Unit=尺寸”}
价格属性值列表:{[0-199],[200-399],[400-799]}
颜色属性值列表:{红色,黄色,白色,黑色,金色,银色}
网络制式属性值列表:{电信3G,移动3G,联通4G,电信4G}
操作系统属性值列表:{IOS,Andorid,WindowsPhone}
情况二:根据商品属性值和商品属性值之间的映射关系生成抽取规则;
例如:当用户输入的自然语言为:“iPad Mini 2黑色的手机”,由于iPad Mini 2是商品的型号属性,该商品属性并未出现在京东商城的基础配置表中的商品属性列表中,这时,将型号属性—iPad Mini 2在规则配置表中进行查询,得到商品型号属性与商品品牌属性的映射关系:型号属性—iPad Mini 2属于品牌属性—苹果,从而得生成抽取规则为从品牌属性值列表中读取商品属性值—苹果。
信息抽取模块获取用户输入的自然语言,将根据抽取规则生成的商品属性值列表与用户输入的自然语言进行匹配,生成结构化知识;
例如:用户输入的自然语言为“我要买一台魅族三G手机”,将规则生成模块中根据抽取规则生成的商品属性值列表与自然语言“我要买一台魅族三G手机”进行一一匹配,得到结构化知识—{品牌:魅族,硬盘大小:3G,网络制式:3G,类目:手机,数量:1台}。
验证模块调取知识管理模块加载完成的知识图谱,将知识图谱与结构化知识进行比对,根据比对结果判断信息抽取模块抽取的结构化知识是否存在歧义;如果存在歧义,则进行消除歧义处理,并将消除歧义处理结果作为验证结果,发送给意图生成模块;如果不存在,则将比对后的结构化知识作为验证结果,发送给意图生成模块。
例如:当信息抽取模块抽取得到结构化知识为{品牌:魅族,硬盘大小:3G,网络制式:3G,类目:手机,数量:1台}时,验证模块调取知识管理模块加载完成的知识图谱中的基础配置表,将基础配置表中的商品属性及其属性值与结构化知识进行比对,发现,京东商城的基础配置表中不存在商品属性—硬盘大小和数量,同时,在规则配置表中没有硬盘大小这一商品属性与其他商品属性的映射关系,也没有数量这一商品属性与其他商品属性的映射关系,则进行消除歧义处理:删除结构化知识中的商品属性及其属性值{硬盘大小:3G,数量:1台},得到验证结果{品牌:魅族,网络制式:3G,类目:手机}。
意图生成模块对所述验证结果中的商品属性的取值进行检测,根据检测结果判断验证结果是否有歧义,如果是,则将验证结果发送至对话模块,如果否,则根据验证结果生成商品列表,作为最终检索结果并输出。
对话模块接收意图生成模块所发送的有歧义的验证结果,根据有歧义的验证结果生成提示语句,并输出提示语句,提示语句用于提示用户重新输入自然语言。信息抽取模块获取用户重新输入自然语言后进行第二轮交互。直到最终没有歧义后输出最终产品列表。
例如:当用户输入的自然语言“我要买一台魅族3G手机”时,验证结果为:{品牌:魅族3,储存卡大小:3G,类目:手机},将该验证结果与用户输入的自然语言“我要买一台魅族3G手机”进行比对,发现仍然有歧义,并得出歧义类型为交叉歧义,即“魅族3”与“3G”有交叉,将其发送至对话模块,对话模块接收有歧义的验证结果,并根据歧义类型,生成相应的提示语句,例如:请确认您是否想要一个品牌为魅族3,存储卡大小为3G的手机?
如图2所示,基于电子商务的智能语义检索系统还包括个性化历史记录库,个性化历史记录库,用于存储个性化历史记录,个性化历史记录为个体用户进行智能语义检索时,输入的自然语言与生成的最终检索结果的映射关系的记录;验证模块包括第一消歧单元和第二消歧单元;
第一消歧单元调取知识图谱,将知识图谱与结构化知识进行第一次比对,如果比对结果为一致(比对一致可能为两个原因:一是结构化知识没有歧义,二是结构化知识有歧义却没有比对出来),则将第一次比对后的结构化知识发送给第二消歧单元;如果比对结果为不一致(说明存在歧义),则将所述结构化知识进行第一次消歧处理,并将第一次消歧处理后的结果作为验证结果并输出给意图生成模块;
第一次消歧处理为:删除掉在结构化知识中出现并且在知识图谱的基础配置表中没有出现的商品属性及其属性值。
第二消歧单元调取个性化历史记录,将个性化历史记录与第一次比对的结构化知识进行第二次比对;如果第二次比对结果为一致(说明不存在歧义),则将第二次比对后的结构化知识作为验证结果并输出给意图生成模块;如果第二次比对结果不一致(说明存在歧义),则对第二次比对后的结构化知识进行第二次消歧,并将第二次消歧处理后的结果作为验证结果并输出给意图生成模块。
第二次消歧处理为:删除掉在结构化知识中出现并且在个性化历史记录中概率较低的商品属性及其属性值。
在验证模块中,当将知识图谱与结构化知识进行比对,比对结果为一致时,由于造成比对一致可能为两个原因:一是结构化知识没有歧义,二是结构化知识有歧义却没有比对出来,因此仅仅通过知识图谱还很难判断结构化知识是否有歧义,这时则需要调取个性化历史记录,将个性化历史记录与结构化知识进行比对,从而判定结构化知识有无歧义。
例如用户输入的自然语言为“4G的华为手机”,得到的结构化知识为{品牌:华为,网络制式:3G,硬盘大小=4G,类目:手机},由于知识图谱中基础配置表中的商品属性及其属性值同时包括以下两个合法的商品属性——网络制式属性和硬盘大小属性。所以借助知识图谱无法判断哪个商品属性值信息合法。
此时,第二消歧单元调取个性化历史记录,根据个性化历史记录统计比较“4G”作为“网络制式”与“手机”共现的概率和作为“硬盘大小”与“手机”的共现概率,将概率低的商品属性值从结构化知识中删除。
个性化历史记录库可以存储在远程服务器中,当将知识图谱与结构化知识进行比对,比对结果为一致时,验证模块获取用户I D,通过用户ID向远程服务器发送请求,远程服务器接收到请求后,根据用户ID将该用户的个性化历史记录返回至验证模块。
如图3所示,意图生成模块包括交叉检测单元和映射检测单元。
交叉检测处理单元,用于根据用户输入的自然语言中文字的字符定位检测验证结果是否有交叉,如果验证结果有交叉,并根据用户输入的自然语言对有交叉的验证结果进行修正,将修正后的结果生成商品列表,作为最终检索结果并输出,如果验证结果无交叉,则将所述验证结果发送至映射检测单元;
例如,用户输入的自然语言为“我要买一台魅族3G手机”时,通过验证模块后,得到验证结果为:{品牌:魅族3,网络制式:3G,类目:手机},通过检测发现“魅族3”和“3G”有交叉。检测过程为:对用户输入的自然语言“我要买一台魅族3G手机”中的每个文字进行字符定位,魅族3的字符定位结果为自然语言的:6-8,3G的字符定位结果为自然语言的:8-9。6-8与8-9中,第6个文字“3”为重复占位,由此可知验证结果有交叉,判断有交叉后,交叉检测处理单元根据用户输入的自然语言对有交叉的验证结果进行修正,修正过程为:如上述例子所述,通过检测发现“魅族3”和“3G”有交叉后,通过与用户输入的自然语言“我要买一台魅族3G手机”进行比对,检测到交叉部分“3”划归到品牌属性值“魅族3”后,交叉部分“3”网络制式属性值中没有意义,因此,判定交叉部分“3”为网络制式属性值。将有交叉的验证结果{品牌:魅族3,网络制式:3G,类目:手机}修正为:{品牌:魅族,网络制式:3G,类目:手机}。
映射检测单元,用于检测验证结果中的商品属性的取值是否映射正确,如果是,则根据验证结果生成商品列表,作为最终检索结果并输出,如果否,则将验证结果发送至对话模块。
例如,用户输入的自然语言为“我要买一台魅族3G手机”时,通过验证模块后,得到验证结果为:{品牌:魅族,网络制式:3G,类目:手机},通过检测发现网络制式3G不明确是电信3G还是联通3G。由此可知验证结果中的商品属性的取值映射不正确,将验证结果发送给对话模块。
对话模块接收映射检测单元所发送的商品属性的取值映射不正确的验证结果,根据映射不正确的商品属性值生成提示语句,并输出提示语句,提示语句用于提示用户重新输入自然语言。
信息抽取模块获取用户重新输入自然语言后进行第二轮交互。直到最终没有歧义后输出最终产品列表。
本发明还提供一种智能语义检索方法,包括以下步骤:
步骤1:从知识库中加载知识图谱,所述知识图谱包括商品的属性及其属性值以及商品属性值之间的映射关系;
步骤2:从加载完成的知识图谱中提取商品属性值,根据商品属性值或商品属性值和商品属性值之间的映射关系生成抽取规则;
步骤3:获取用户输入的自然语言,将抽取规则与用户输入的自然语言进行匹配,生成结构化知识;
步骤4:调取知识图谱,将知识图谱与结构化知识进行比对,根据比对结果生成验证结果;
步骤5:对所述验证结果中的商品属性的取值进行检测,根据检测结果判断验证结果是否有歧义,如果是,则执行步骤6;如果否,则根据验证结果生成商品列表,作为最终检索结果并输出,结束检索流程;
步骤6:根据有歧义的验证结果生成提示语句,并输出提示语句;
步骤7:再次获取用户重新输入的自然语言,并执行步骤3。
其中,步骤3还包括调取个性化历史记录,将个性化历史记录与结构化知识进行比对,根据比对结果生成验证结果;所述个性化历史记录为个体用户进行智能语义检索时,输入的自然语言与生成的最终检索结果的映射关系的记录。
其中,步骤1还包括:在知识库中预先存储知识图谱;所述知识图谱以OWL配置文件的形式存储,包括基础配置表和规则配置表,所述基础配置表存储根据电子商务网站的约束规则生成的商品的属性及其对应的属性值,所述规则配置表存储商品属性值之间的映射关系。
步骤4具体为:
步骤41:调取知识图谱,将知识图谱与结构化知识进行第一次比对,如果比对结果为一致,则执行步骤42;如果比对结果为不一致,则将所述结构化知识进行第一次消歧处理,并将第一次消歧处理后的结果作为验证结果并输出,执行步骤5;
步骤42:调取个性化历史记录,将所述个性化历史记录与第一次比对后的结构化知识进行第二次比对,如果第二次比对结果为一致,则将第二次比对后的结构化知识作为验证结果并输出,执行步骤5;如果第二次比对结果不一致,则将其进行第二次消歧处理后作为验证结果并输出,执行步骤5。
步骤5具体为:
步骤51:根据用户输入的自然语言中文字的字符定位判断验证结果是否有交叉,如果判定验证结果有交叉,根据用户输入的自然语言对有交叉的验证结果进行修正,将修正后的结果生成商品列表,作为最终检索结果并输出,如果判定验证结果无交叉,则将所述验证结果发送至映射检测单元;
步骤52:检测验证结果中的商品属性的取值是否映射正确,如果是,则根据验证结果生成商品列表,作为最终检索结果并输出;如果否,则执行步骤6。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。