发明内容
有鉴于此,本发明实施例提供一种语义识别的方法,能够根据预设的语句模板,基于最长公共子序列的带权值的匹配方法,对获取到的待识别的语句进行较为精确的语义识别,充分利用了语句模板信息,灵活性强且效率高。此外,本发明实施例提供的方法还能够在短时间内实时更新语句模板,用以后续的测试反馈。
为实现上述目的,根据本发明实施例的一个方面,提供了一种语义识别的方法,包括:
获取待识别的语句信息;
根据所述待识别的语句信息和预设的语句模板基于最长公共子序列进行匹配,确定带权值的匹配结果;
根据所述匹配结果进行语义识别。
可选地,在根据所述待识别的语句信息和预设的语句模板基于最长公共子序列进行带权值的匹配之前,还包括:
将待识别的语句信息转化为字符串格式的语句字符串;
将预设的语句模板转化为字符串格式的模板字符串;
所述预设的语句模板为已知槽位类型的文本格式。
可选地,将待识别的语句信息转化为字符串格式的语句字符串,包括:
判断所述待识别的语句信息是否为文本格式;若不是,将所述语句信息转化为文本格式;
对文本格式的待识别的语句信息进行分词处理,获得词集合;
遍历词集合中的词,判断词集合中的词是否存在于预设的词典信息中的槽值信息中;若存在,则确定该词为槽值,根据所述词典信息和预设的槽位符号表获取与该槽值对应的标识字符;
将所述待识别的语句信息中确认为槽值的词替换为与之对应的标识字符,生成所述语句字符串;
所述词典信息包括槽位类型信息、槽值信息;所述槽值为带有槽位类型信息的值。
所述槽位符号表包括槽位类型、标识字符,以及所述槽位类型和标识字符的映射关系。
可选地,将预设的语句模板转化为字符串格式的模板字符串,包括:
根据所述槽位符号表获取与所述语句模板中的槽位类型对应的标识字符;
将所述语句模板中的槽位替换为与之对应的标识字符,生成所述模板字符串。
可选地,所述根据所述待识别的语句信息和预设的语句模板基于最长公共子序列进行匹配,确定带权值的匹配结果,包括:
遍历每一个模板字符串,采用最长公共子序列算法确定所述语句字符串与每一个模板字符串的最长公共子序列;根据所述最长公共子序列确定与模板字符串对应的匹配字符串;
根据预设的第一权值和第二权值,采用加法确定所述语句字符串的数值W、模板字符串的数值Ti、与模板字符串对应的匹配字符串的数值Mi;
以所述语句字符串与每一个模板字符串的相似度作为所述匹配结果;
其中Ti表示第i个模板字符串的数值;Mi表示与第i个模板字符串对应的匹配字符串的数值;所述第一权值表示所述标识字符的数值;所述第二权值表示非标识字符的数值;所述第一权值大于所述第二权值。
可选地,要识别的语义信息包括所述待识别的语句的意图和所述待识别的语句中的槽值信息;根据所述匹配结果进行语义识别,包括:
将相似度最高的模板字符串对应的语句模板确定为目标模板;
获取所述目标模板的意图信息,以所述意图作为待识别的语句的意图;
以所述语句字符串中的标识字符对应到的待识别的语句信息中的词,以及该词的槽位类型作为待识别的语句中的槽值信息。
可选地,在根据所述匹配结果进行语义识别之前,还包括:确认所述最高的相似度数值大于预设的阈值。
可选地,在根据所述匹配结果进行语义识别之后,还包括,按如下方式更新语句模板:
将文本格式的待识别的语句信息中的槽值替换为与之对应的槽位类型,以替换后的语句信息作为预设的语句模板。
根据本发明实施例的再一个方面,提供了一种语义识别的装置,包括:
获取模块,用于获取待识别的语句信息;
匹配模块,根据所述待识别的语句信息和预设的语句模板基于最长公共子序列进行匹配,确定带权值的匹配结果;
识别模块,根据所述匹配结果进行语义识别。
可选地,在所述匹配模块根据所述待识别的语句信息和预设的语句模板基于最长公共子序列进行带权值的匹配之前,还包括:
将待识别的语句信息转化为字符串格式的语句字符串;
将预设的语句模板转化为字符串格式的模板字符串;
所述预设的语句模板为已知槽位类型的文本格式。
可选地,所述匹配模块将待识别的语句信息转化为字符串格式的语句字符串,包括:
判断所述待识别的语句信息是否为文本格式;若不是,将所述待识别的语句信息转化为文本格式;
对文本格式的待识别的语句信息进行分词处理,获得词集合;
遍历词集合中的词,判断词集合中的词是否存在于预设的词典信息中的槽值信息中;若存在,则确定该词为槽值,根据所述词典信息和预设的槽位符号表获取与该槽值对应的标识字符;
将所述待识别的语句信息中确认为槽值的词替换为与之对应的标识字符,生成所述语句字符串;
所述词典信息包括槽位类型信息、槽值信息;所述槽值为带有槽位类型信息的值。
所述槽位符号表包括槽位类型、标识字符,以及所述槽位类型和标识字符的映射关系。
可选地,所述匹配模块将预设的语句模板转化为字符串格式的模板字符串,包括:
根据所述槽位符号表获取与所述语句模板中的槽位类型对应的标识字符;
将所述语句模板中的槽位替换为与之对应的标识字符,生成所述模板字符串。
可选地,所述根据所述待识别的语句信息和预设的语句模板基于最长公共子序列进行匹配,所述匹配模块确定带权值的匹配结果,包括:
遍历每一个模板字符串,采用最长公共子序列算法确定所述语句字符串与每一个模板字符串的最长公共子序列;根据所述最长公共子序列确定与模板字符串对应的匹配字符串;
根据预设的第一权值和第二权值,采用加法确定所述语句字符串的数值W、模板字符串的数值Ti、与模板字符串对应的匹配字符串的数值Mi;
以所述语句字符串与每一个模板字符串的相似度作为所述匹配结果;
其中Ti表示第i个模板字符串的数值;Mi表示与第i个模板字符串对应的匹配字符串的数值;所述第一权值表示所述标识字符的数值;所述第二权值表示非标识字符的数值;所述第一权值大于所述第二权值。
可选地,要识别的语义信息包括所述待识别的语句的意图和所述待识别的语句中的槽值信息;所述识别模块根据所述匹配结果进行语义识别,包括:
将相似度最高的模板字符串对应的语句模板确定为目标模板;
获取所述目标模板的意图信息,以所述意图作为待识别的语句的意图;
以所述语句字符串中的标识字符对应到的待识别的语句信息中的词,以及该词的槽位类型作为待识别的语句中的槽值信息。
可选地,在所述识别模块根据所述匹配结果进行语义识别之前,还包括:确认所述最高的相似度数值大于预设的阈值。
可选地,在所述识别模块根据所述匹配结果进行语义识别之后,还包括,按如下方式更新语句模板:
将文本格式的待识别的语句信息中的槽值替换为与之对应的槽位类型,以替换后的语句信息作为预设的语句模板。
根据本发明实施例的另一个方面,提供了一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明提供的语义识别的方法。
根据本发明实施例的还一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明提供的语义识别的方法
上述发明中的一个实施例具有如下优点或有益效果:因为采用根据获取到的待识别的语句信息和预设的语句模板基于最长公共子序列进行带权值的匹配、再根据所述匹配的结果进行语义识别的技术手段,所以克服了以往语义识别方式中难以灵活匹配、精确度低、不能充分利用预设的语句模板、或无法实时更新语句模板的技术问题,进而达到了充分利用语句模板快速、灵活、精确地识别语义,并且能够快速实时更新语句模板的技术效果。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的一种语义识别的方法的主要流程的示意图,如图1所示,包括:
步骤S101、获取待识别的语句信息;
步骤S102、根据所述待识别的语句信息和预设的语句模板基于最长公共子序列进行匹配,确定带权值的匹配结果;
步骤S103、根据所述匹配结果进行语义识别。
所述待识别的语句信息可以是用户输入的文本信息,也可以是用户输入的声音信息;比如用户可以输入文本信息“我想要品牌a1的牛奶”,也可以输入声音信息“我想要品牌a1的牛奶”。
所述语句模板可以是用户提前录入好的已知意图信息和槽位类型的模板。
所述要识别的语义信息可以包括所述待识别的语句的意图和所述待识别的语句中的槽值信息;所述槽值可以是带有槽位类型信息的值。
所述槽位可以是使语句携带有明确含义所需补全的信息;所述槽位类型可以是该信息在自然语言中所属的某一具体类型;所述槽值可以是自然语言中带有具体类型信息的某一具体的词。
例如,用户可以录入语句模板“我要买{品牌}的{商品}”,则可以获取该模板的意图:“购物”,以及该模板的槽位信息:“品牌”类型、“商品”类型、这些槽位类型在模板中的位置;
当待识别的语句为“我想要品牌a1的牛奶”,则可以根据语句模板“我要买{品牌}的{商品}”从待识别的“我想要品牌a1的牛奶”中识别到语义信息:“购物”意图,以及槽值信息:“品牌->品牌a1”、“商品->牛奶”。
本发明根据获取到的待识别的语句信息和预设的语句模板基于最长公共子序列进行带权值的匹配、再根据所述匹配的结果进行语义识别的技术手段,所以克服了以往语义识别方式中难以灵活匹配、精确度低、不能充分利用预设的语句模板、或无法实时更新语句模板的技术问题,进而达到了充分利用语句模板快速、灵活、精确地识别语义,并且能够快速实时更新语句模板的技术效果。
在一些实施例中,在根据所述待识别的语句信息和预设的语句模板基于最长公共子序列进行带权值的匹配之前,还包括:
将待识别的语句信息转化为字符串格式的语句字符串;
将预设的语句模板转化为字符串格式的模板字符串;
所述预设的语句模板为已知槽位类型的文本格式。
文本格式的语句模板便于管理和更新;
将待识别的语句信息和预设的语句模板都转化为适用性强的字符串格式,使转化后的语句和模板能够直接应用于后续的匹配步骤,易于匹配,灵活性较强。
在一些实施例中,将待识别的语句信息转化为字符串格式的语句字符串,包括:
判断所述待识别的语句信息是否为文本格式;若不是,将所述待识别的语句信息转化为文本格式;
对文本格式的待识别的语句信息进行分词处理,获得词集合;
遍历词集合中的词,判断词集合中的词是否存在于预设的词典信息中的槽值信息中;若存在,则确定该词为槽值,根据所述词典信息和预设的槽位符号表获取与该槽值对应的标识字符;
将所述待识别的语句信息中确认为槽值的词替换为与之对应的标识字符,生成所述语句字符串;
所述词典信息包括槽位类型信息、槽值信息;所述槽值为带有槽位类型信息的值。
所述槽位符号表包括槽位类型、标识字符,以及所述槽位类型和标识字符的映射关系。
所述词典和所述槽位符号表可以是用户提前录入好并能够实时更新的;其能够实时更新的特点使得信息能够随时得到补充,以应对变化的市场。
所述文本格式的待识别的语句信息便于转化为文本格式的语句模板,在需要的情况下使语句模板得以实时快速地被更新;
该方法可以对文本信息和声音信息进行转化,适用性强;且该方法计算开销小,能够在很短时间内完成待识别的语句信息到语句字符串的转化。
例如,用户可以录入词典信息:“品牌:品牌a1,品牌a2,品牌a3……;商品:牛奶,奶粉……;……”;其中“品牌”、“商品”等即为所述词典信息中的槽位类型信息,“品牌->品牌a1”、“品牌->品牌a2”、“商品->奶粉”等即为所述词典信息中的槽值信息;
用户还可以录入槽位符号表:“品牌->A,商品->B,……”;其中“A”、“B”等即为所述槽位符号表中的标识字符;
当待识别的语句为“我想要品牌a1的牛奶”,按上述方法,可以将“我想要品牌a1的牛奶”转化为所述语句字符串“我想要A的B”。
在一些实施例中,将预设的语句模板转化为字符串格式的模板字符串,包括:
根据所述槽位符号表获取与所述语句模板中的槽位类型对应的标识字符;
将所述语句模板中的槽位替换为与之对应的标识字符,生成所述模板字符串。
该方法计算开销小,能够在很短时间内完成语句模板到模板字符串的转化。
例如,根据录入好的槽位符号表“品牌->A,商品->B,……”,对于语句模板“我要买{品牌}的{商品}”,按上述方法可以将“我要买{品牌}的{商品}”转化为所述模板字符串“我要买A的B”;
经过格式转化得到的语句字符串“我想要A的B”和模板字符串“我要买A的B”均为字符串格式,可以直接进行匹配,以得到它们的最长公共子序列。
在一些实施例中,所述根据所述待识别的语句信息和预设的语句模板基于最长公共子序列进行匹配,确定带权值的匹配结果,包括:
遍历每一个模板字符串,采用最长公共子序列算法确定所述语句字符串与每一个模板字符串的最长公共子序列;根据所述最长公共子序列确定与模板字符串对应的匹配字符串;
根据预设的第一权值和第二权值,采用加法确定所述语句字符串的数值W、模板字符串的数值Ti、与模板字符串对应的匹配字符串的数值Mi;
以所述语句字符串与每一个模板字符串的相似度作为所述匹配结果;
其中Ti表示第i个模板字符串的数值;Mi表示与第i个模板字符串对应的匹配字符串的数值;所述第一权值表示所述标识字符的数值;所述第二权值表示非标识字符的数值;所述第一权值大于所述第二权值。
所述第一权值和所述第二权值为可调整的,例如可以将第一权值设为10,将第二权值设为1。
该方法可以在短时间内得到直观的数值形式的匹配结果,用于后续的语义识别。
例如,对于待识别语句“我想要品牌a1的牛奶”和语句模板“我要买{品牌}的{商品}”,根据录入好的词典信息和槽位符号表,得到语句字符串“我想要A的B”和模板字符串“我要买A的B”,采用最长公共子序列算法得到该语句字符串和该模板字符串的最长公共子序列“我要A的B”,即得到所述匹配字符串为“我要A的B”;
再根据表示标识字符的第一权值10、表示非标识字符的第二权值1,采用加法确定出所述语句字符串的数值为24,所述模板字符串的数值为24,所述匹配字符串的数值为23;
则可以得到待识别语句“我想要品牌a1的牛奶”和语句模板“我要买{品牌}的{商品}”的相似度为
在一些实施例中,要识别的语义信息包括所述待识别的语句的意图和所述待识别的语句中的槽值信息;根据所述匹配结果进行语义识别,包括:
将相似度最高的模板字符串对应的语句模板确定为目标模板;
获取所述目标模板的意图信息,以所述意图作为待识别的语句的意图;
以所述语句字符串中的标识字符对应到的待识别的语句信息中的词,以及该词的槽位类型作为待识别的语句中的槽值信息。
得到语句字符串与每一个模板字符串的相似度之后,挑选相似度最高的模板字符串对应的语句模板作为目标模板;
例如,对于待识别的语句信息“我想要品牌a1的牛奶”,当根据匹配结果确定语句模板“我要买{品牌}的{商品}”为目标模板时,获取到语句模板“我要买{品牌}的{商品}”的意图为“购物”,那么,对“我想要品牌a1的牛奶”识别到的语义信息为:
意图为“购物”,槽值信息为:“品牌->品牌a1”、“商品->牛奶”。
本方法能够充分利用语句模板快速、灵活、精确地识别其语义,对其进行意图的识别和槽值的提取;本方法尤其适用于与语句模板偏差不太大的待识别的语句。
在一些实施例中,在根据所述匹配结果进行语义识别之前,还包括:确认所述最高的相似度数值大于预设的阈值。
所述预设的阈值为可调整的,例如可以将预设的阈值设为0.9;
所述预设的阈值的设置使语义的识别结果更加准确。
在一些实施例中,在根据所述匹配结果进行语义识别之后,还包括,按如下方式更新语句模板:
将文本格式的待识别的语句信息中的槽值替换为与之对应的槽位类型,以替换后的语句信息作为预设的语句模板。
当获得语义识别的结果后,还需要实时更新语句模板用以后续的测试反馈,使后续的识别更加精确;
本发明提供的方法能够快速实时更新语句模板并进行测试反馈,使用户有良好的使用体验。
为了方便理解本发明所述语义识别的方法的具体实现,如图2是根据本发明可选的实施例的一种语义识别的方法中构建的二维表格示意图。其中,图2(a)为构建出的二维表格示意图;图2(b)为根据该二维表格回溯过程的示意图;以下结合图2,详细说明本发明可选的实施例的一种语义识别的方法:
获取待识别的语句“我要买品牌a2奶粉”,根据录入好的词典信息:“品牌:品牌a1,品牌a2,品牌a3……;商品:牛奶,奶粉……;……”和槽位符号表:“品牌->A,商品->B,……”,可以将“我要买品牌a2奶粉”转化为语句字符串“我要买AB”;
根据录入好的槽位符号表:“品牌->A,商品->B,……”,将语句模板转化为模板字符串,例如:可以将语句模板“我要买{品牌}的{商品}”转化为模板字符串“我要买A的B”;
根据语句字符串“我要买AB”和每一个模板字符串基于最长公共子序列进行带权值的匹配,将表示标识字符的第一权值10、表示非标识字符的第二权值1应用于计算,得到语句字符串“我要买AB”与每一个模板字符串的相似度;挑选相似度最高的模板字符串对应的语句模板,作为目标模板;
其中,以语句字符串“我要买AB”与模板字符串“我要买A的B”的匹配过程为例,具体说明基于最长公共子序列的带权值的匹配方法:
将语句字符串“我要买AB”命名为字符串X,将模板字符串“我要买A的B”命名为字符串Y,得到:
X:我要买AB;
Y:我要买A的B;
按加法确定X字符串的数值weightX=23、Y字符串的数值weightY=24;伪代码如下:
遍历序列
如果字符出现在槽位符号表中(说明是槽值)
权值加10
否则
权值加1;
构建一个二维表格,如图2(a)所示,动态规划得到语句字符串“我要买AB”与模板字符串“我要买A的B”的各种公共子序列的长度;
其中,按如下方法构建出该二维表格:
如图2(a)所示,该二维表格中纵向从上至下标识为0到i,横向从左至右标识为0到j;f[i,j]表示字符串X中的前i个字符构成的字符串与字符串Y中的前j个字符构成的字符串的最长公共子序列的长度;X[i]表示字符串X中的第i个字符;Y[j]表示字符串Y中的第j个字符;
即初始化的时候,二维表格内的值都是0;
若当前两个字符一样,则最短路径是前面最短路径的长度加一;
若当前两个字符不一样,最短路径则是前面两种最短路径中较长的一个的长度;
回溯该二维表格,如图2(b)所示;以语句字符串“我要买AB”与模板字符串“我要买A的B”的最长公共子序列,作为与模板字符串“我要买A的B”对应的匹配字符串,并累加权值,确定出该匹配字符串的数值weight;
具体实现方法如下:
从二维表格的最右下方格子开始回溯;如图2(b)所示,从被圈住的[5,6]格子开始回溯;
如果当前两个字符一样,说明匹配上了,可以取出公共字符;如如图2(b)所示,i=5,j=6时,X[i]=Y[j]=B,说明匹配上了,可以取出公共字符B;
判断该公共字符是否出现在槽位符号表中;若出现,说明该公共字符是一个槽值,则匹配字符串的权值累加10;若不出现,则匹配字符串的权值累加1;如图2(b)所示,字符B出现在槽位符号表中,说明字符B是一个槽值,此时匹配字符串的权值累加10;
当前两个字符一样的情况下,权值累加完之后往左上回溯;如图2(b)所示,累加完之后令i=4,j=5,当前位置为被圈住的[4,5]格子;
判断当前格子左边的值f[i,j-1]是否大于上方的值f[i-1,j];若大于,说明应取左边的值,即往左回溯;若不大于,则往上回溯;如图2(b)所示,i=4,j=5时,f[4,4]=4,f[3,5]=3,有f[4,4]>f[3,5],那么应往左回溯,即往被圈住的[4,4]格子回溯;
按如上方法回溯,当回溯到二维表格的最左上方格子时,回溯完毕;如图2(b)所示,当回溯到[0,0]格子时,回溯完毕;
其中[i,j]格子表示字符串X中的第i个字符和字符串Y中的第j个字符所定位到的格子;
以回溯完毕时的匹配字符串的权值结果作为该匹配字符串的数值weight;
伪代码如下:
按上述方法回溯完毕时,确定出该匹配字符串的数值weight=23;
根据权值weightX=23、weightY=24、weight=23确定语句字符串“我要买AB”与模板字符串“我要买A的B”的相似度S:
按上述方法确定语句字符串和每一个模板字符串的相似度,找出相似度最高的模板字符串,如果该最高相似度的数值大于预设阈值0.9,则将该相似度最高的模板字符串所对应的语句模板确定为目标模板;
获取所述目标模板的意图信息,以所述意图作为待识别的语句的意图;以所述语句字符串中的标识字符对应到的待识别的语句信息中的词,以及该词的槽位类型作为待识别的语句中的槽值信息;
例如,若对于语句字符串“我要买AB”,确定了模板字符串“我要买A的B”所对应的语句模板“我要买{品牌}的{商品}”为目标模板;
那么,获取到语句模板“我要买{品牌}的{商品}”的意图为“购物”,则对“我要买品牌a2奶粉”识别到的语义信息为:
意图为“购物”,槽值信息为:“品牌->品牌a2”、“商品->奶粉”;
在语义识别完成后,将与待识别语句“我要买品牌a2奶粉”对应的文本格式的“我要买{品牌}{商品}”作为预设的语句模板,以供后续测试反馈及使用。
图3是根据本发明实施例的一种语义识别的装置的主要模块的示意图,如图3所示,语义识别的装置300包括:
获取模块301,用于获取待识别的语句信息;
匹配模块302,根据所述待识别的语句信息和预设的语句模板基于最长公共子序列进行匹配,确定带权值的匹配结果;
识别模块303,根据所述匹配结果进行语义识别。
所述待识别的语句信息可以是用户输入的文本信息,也可以是用户输入的声音信息;比如用户可以输入文本信息“我想要品牌a1的牛奶”,也可以输入声音信息“我想要品牌a1的牛奶”。
所述语句模板可以是用户提前录入好的已知意图信息和槽位类型的模板。
所述要识别的语义信息可以包括所述待识别的语句的意图和所述待识别的语句中的槽值信息;所述槽值可以是带有槽位类型信息的值。
所述槽位可以是使语句携带有明确含义所需补全的信息;所述槽位类型可以是该信息在自然语言中所属的某一具体类型;所述槽值可以是自然语言中带有具体类型信息的某一具体的词。
例如,用户可以录入语句模板“我要买{品牌}的{商品}”,则可以获取该模板的意图:“购物”,以及该模板的槽位信息:“品牌”类型、“商品”类型、这些槽位类型在模板中的位置;
当待识别的语句为“我想要品牌a1的牛奶”,则可以根据语句模板“我要买{品牌}的{商品}”从待识别的“我想要品牌a1的牛奶”中识别到语义信息:“购物”意图,以及槽值信息:“品牌->品牌a1”、“商品->牛奶”。
本发明根据获取到的待识别的语句信息和预设的语句模板基于最长公共子序列进行带权值的匹配、再根据所述匹配的结果进行语义识别的技术手段,所以克服了以往语义识别方式中难以灵活匹配、精确度低、不能充分利用预设的语句模板、或无法实时更新语句模板的技术问题,进而达到了充分利用语句模板快速、灵活、精确地识别语义,并且能够快速实时更新语句模板的技术效果。
在一些实施例中,在所述匹配模块302根据所述待识别的语句信息和预设的语句模板基于最长公共子序列进行带权值的匹配之前,还包括:
将待识别的语句信息转化为字符串格式的语句字符串;
将预设的语句模板转化为字符串格式的模板字符串;
所述预设的语句模板为已知槽位类型的文本格式。
文本格式的语句模板便于管理和更新;
将待识别的语句信息和预设的语句模板都转化为适用性强的字符串格式,使转化后的语句和模板能够直接应用于后续的匹配步骤,易于匹配,灵活性较强。
在一些实施例中,所述匹配模块302将待识别的语句信息转化为字符串格式的语句字符串,包括:
判断所述待识别的语句信息是否为文本格式;若不是,将所述待识别的语句信息转化为文本格式;
对文本格式的待识别的语句信息进行分词处理,获得词集合;
遍历词集合中的词,判断词集合中的词是否存在于预设的词典信息中的槽值信息中;若存在,则确定该词为槽值,根据所述词典信息和预设的槽位符号表获取与该槽值对应的标识字符;
将所述待识别的语句信息中确认为槽值的词替换为与之对应的标识字符,生成所述语句字符串;
所述词典信息包括槽位类型信息、槽值信息;所述槽值为带有槽位类型信息的值。
所述槽位符号表包括槽位类型、标识字符,以及所述槽位类型和标识字符的映射关系。
所述词典和所述槽位符号表可以是用户提前录入好并能够实时更新的;其能够实时更新的特点使得信息能够随时得到补充,以应对变化的市场。
所述文本格式的待识别的语句信息便于转化为文本格式的语句模板,在需要的情况下使语句模板得以实时快速地被更新;
该方法可以对文本信息和声音信息进行转化,适用性强;且该方法计算开销小,能够在很短时间内完成待识别的语句信息到语句字符串的转化。
例如,用户可以录入词典信息:“品牌:品牌a1,品牌a2,品牌a3……;商品:牛奶,奶粉……;……”;其中“品牌”、“商品”等即为所述词典信息中的槽位类型信息,“品牌->品牌a1”、“品牌->品牌a2”、“商品->奶粉”等即为所述词典信息中的槽值信息;
用户还可以录入槽位符号表:“品牌->A,商品->B,……”;其中“A”、“B”等即为所述槽位符号表中的标识字符;
当待识别的语句为“我想要品牌a1的牛奶”,按上述方法,可以将“我想要品牌a1的牛奶”转化为所述语句字符串“我想要A的B”。
在一些实施例中,所述匹配模块302将预设的语句模板转化为字符串格式的模板字符串,包括:
根据所述槽位符号表获取与所述语句模板中的槽位类型对应的标识字符;
将所述语句模板中的槽位替换为与之对应的标识字符,生成所述模板字符串。
该方法计算开销小,能够在很短时间内完成语句模板到模板字符串的转化。
例如,根据录入好的槽位符号表“品牌->A,商品->B,……”,对于语句模板“我要买{品牌}的{商品}”,按上述方法可以将“我要买{品牌}的{商品}”转化为所述模板字符串“我要买A的B”;
经过格式转化得到的语句字符串“我想要A的B”和模板字符串“我要买A的B”均为字符串格式,可以直接进行匹配,以得到它们的最长公共子序列。
在一些实施例中,所述根据所述待识别的语句信息和预设的语句模板基于最长公共子序列进行匹配,所述匹配模块302确定带权值的匹配结果,包括:
遍历每一个模板字符串,采用最长公共子序列算法确定所述语句字符串与每一个模板字符串的最长公共子序列;根据所述最长公共子序列确定与模板字符串对应的匹配字符串;
根据预设的第一权值和第二权值,采用加法确定所述语句字符串的数值W、模板字符串的数值Ti、与模板字符串对应的匹配字符串的数值Mi;
以所述语句字符串与每一个模板字符串的相似度作为所述匹配结果;
其中Ti表示第i个模板字符串的数值;Mi表示与第i个模板字符串对应的匹配字符串的数值;所述第一权值表示所述标识字符的数值;所述第二权值表示非标识字符的数值;所述第一权值大于所述第二权值。
所述第一权值和所述第二权值为可调整的,例如可以将第一权值设为10,将第二权值设为1。
该方法可以在短时间内得到直观的数值形式的匹配结果,用于后续的语义识别。
例如,对于待识别语句“我想要品牌a1的牛奶”和语句模板“我要买{品牌}的{商品}”,根据录入好的词典信息和槽位符号表,得到语句字符串“我想要A的B”和模板字符串“我要买A的B”,采用最长公共子序列算法得到该语句字符串和该模板字符串的最长公共子序列“我要A的B”,即得到所述匹配字符串为“我要A的B”;
再根据表示标识字符的第一权值10、表示非标识字符的第二权值1,采用加法确定出所述语句字符串的数值为24,所述模板字符串的数值为24,所述匹配字符串的数值为23;
则可以得到待识别语句“我想要品牌a1的牛奶”和语句模板“我要买{品牌}的{商品}”的相似度为
在一些实施例中,要识别的语义信息包括所述待识别的语句的意图和所述待识别的语句中的槽值信息;所述识别模块303根据所述匹配结果进行语义识别,包括:
将相似度最高的模板字符串对应的语句模板确定为目标模板;
获取所述目标模板的意图信息,以所述意图作为待识别的语句的意图;
以所述语句字符串中的标识字符对应到的待识别的语句信息中的词,以及该词的槽位类型作为待识别的语句中的槽值信息。
得到语句字符串与每一个模板字符串的相似度之后,挑选相似度最高的模板字符串对应的语句模板作为目标模板;
例如,对于待识别的语句信息“我想要品牌a1的牛奶”,当根据匹配结果确定语句模板“我要买{品牌}的{商品}”为目标模板时,获取到语句模板“我要买{品牌}的{商品}”的意图为“购物”,那么,对“我想要品牌a1的牛奶”识别到的语义信息为:
意图为“购物”,槽值信息为:“品牌->品牌a1”、“商品->牛奶”。
本方法能够充分利用语句模板快速、灵活、精确地识别其语义,对其进行意图的识别和槽值的提取;本方法尤其适用于与语句模板偏差不太大的待识别的语句。
在一些实施例中,在所述识别模块303根据所述匹配结果进行语义识别之前,还包括:确认所述最高的相似度数值大于预设的阈值。
所述预设的阈值为可调整的,例如可以将预设的阈值设为90%;
所述预设的阈值的设置使语义的识别结果更加准确。
在一些实施例中,在所述识别模块303根据所述匹配结果进行语义识别之后,还包括,按如下方式更新语句模板:
将文本格式的待识别的语句信息中的槽值替换为与之对应的槽位类型,以替换后的语句信息作为预设的语句模板。
当获得语义识别的结果后,还需要实时更新语句模板用以后续的测试反馈,使后续的识别更加精确;
本发明提供的方法能够快速实时更新语句模板并进行测试反馈,使用户有良好的使用体验。
图4示出了可以应用本发明实施例的语义识别的方法或语义识别的装置的示例性系统架构400。
如图3所示,系统架构400可以包括终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的语义识别的方法一般由服务器405执行,相应地,语义识别的装置一般设置于服务器405中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本发明实施例的终端设备的计算机系统500的结构示意图。图5示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括发送模块、获取模块、确定模块和第一处理模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,发送模块还可以被描述为“向所连接的服务端发送图片获取请求的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:步骤S101、获取待识别的语句信息;步骤S102、根据所述待识别的语句信息和预设的语句模板基于最长公共子序列进行匹配,确定带权值的匹配结果;步骤S103、根据所述匹配结果进行语义识别。
根据本发明实施例的技术方案,因为采用根据获取到的待识别的语句信息和预设的语句模板基于最长公共子序列进行带权值的匹配、再根据所述匹配的结果进行语义识别的技术手段,所以克服了以往语义识别方式中难以灵活匹配、精确度低、不能充分利用预设的语句模板、或无法实时更新语句模板的技术问题,进而达到了充分利用语句模板快速、灵活、精确地识别语义,并且能够快速实时更新语句模板的技术效果。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。