一种解析语音内容的方法及装置的制造方法

文档序号:10552881阅读:501来源:国知局
一种解析语音内容的方法及装置的制造方法
【专利摘要】本发明提供一种解析语音内容的方法及装置。该方法包括:将特定领域中的词组和非特定领域中的词组组合生成第一切词词典,根据第一切词词典对机器中存储的语料进行切词,获得语料中的词组;统计语料中每个的词组在语料中的词组中出现的概率或频数,并按照预定规则调整概率或频数,使得特定领域中的词组在语料中的词组中出现的概率或频数增加;将语料中的词组和调整后的概率或频数组合生成第二切词词典,并根据第二切词词典对用户发送的语音内容进行切词,获得语音内容中的词组;根据语法文件对语音内容中的词组进行解析,获得相应的语义。应用本发明使得特定领域中的词组在机器所有词组中出现的概率增大,从而提高机器解析语音内容语义的准确率。
【专利说明】
一种解析语音内容的方法及装置
技术领域
[0001]本申请涉及信息处理领域,尤其涉及一种解析语音内容的方法及装置。
【背景技术】
[0002]自然语言处理技术可以帮助人与机器之间更好的交流,例如,计算机中的语音识别模块在识别用户发出的语音内容后,并对该语音内容进行解析,获得该语音内容对应的语义,最后计算机根据解析出的语义执行相关操作。
[0003]目前,机器解析用户发送的语音内容的一般方法是:第一步:建立语言模型,通常在建立语言模型前,需要人为地对常用的一些语料进行标记,例如,用户针对“我想看刘德华的演唱会”这句语料进行标记,其中,“我”可以标记成人称代词,“刘德华”标记成明星名字等,然后根据标记的内容对语料中的词组进行分类,例如人称代词为一类,明星名字为一类等,完成词组的分类,即完成语言模型的建立;第二步:根据建立的语言模型中的词组对用户输入的语音内容进行切词,通常采用CRF(Condit1nal Random Field)切词方法,例如,用户向计算机输入的语音内容为“什么时候有刘德华的演唱会”,这时计算机根据语音模型中的词组对这句语料进行切词,例如,假如在语言模型中明星名字类别里有“刘德华”一词,在动词类别里有“演唱” 一词,在名词类别里有“时候”和“演唱会”对应的词组等,根据这些词组可以将该语料切成“什么/时候/有/刘德华/的/演唱会”,也可以切成“什么/时候/有/刘德华/的/演唱/会”,因为语言模型中有“演唱”和“演唱会”这两个词组,在这种情况下,就要比较这两词在语料中出现的概率,例如,“演唱”比“演唱会”在语料中出现的概率大,那么就优先的将上述语料切成“什么/时候/有/刘德华/的/演唱/会”;第三步:将切好的词组与机器中的语法文件进行匹配,从而解析出用户发送语音内容的语义,其中BNF(Backus-Naur Form)是用户经常使用的语法。
[0004]随着信息的不断发展和更新,某些特定领域中的词组的数量也逐渐增大,但是机器包含这些特定领域词组的语料却有限,因此在建立的语言模型时,可能会导致某些特定领域的词组在语言模型所有词组中出现的概率相对较小。当机器根据语言模型对用户发送的语音内容进行切词时,可能会由于某些特定领域的词组出现的概率小的问题,将用户发送的语音内容进行错误的切词,从而造成机器错误的解析用户输入的语音内容,例如,在上述例子中,如果“演唱”比“演唱会”在语料中出现的概率大,那么就优先的将上述语料切成“什么/时候/有/刘德华/的/演唱/会”,显然,这不符合用户发送的语音内容的语义。

【发明内容】

[0005]鉴于上述问题,本发明实施例提供了一种解析语音内容的方法及装置,用来解决在建立语言模型时由于特定领域的语料少而导致机器错误解析用户输入的语音内容的问题。
[0006]本发明实施例提供了一种解析语音内容的方法,该方法包括:将特定领域中的词组和非特定领域中的词组组合生成第一切词词典,根据所述第一切词词典对机器中存储的语料进行切词,获得所述语料中的词组;统计所述语料中每个的词组在所述语料中的词组中出现的概率或频数,并按照预定规则调整所述概率或频数,使得特定领域中的词组在所述语料中的词组中出现的概率或频数增加;将所述语料中的词组和所述调整后的概率或频数组合生成第二切词词典,并根据所述第二切词词典对用户发送的语音内容进行切词,获得所述语音内容中的词组;根据语法文件对所述语音内容中的词组进行解析,获得相应的语义。
[0007]优选地,所述将特定领域中的词组和非特定领域中的词组组合生成第一切词词典具体包括:
[0008]根据特定领域的词组对所述机器存储的语料进行切词,获得所述语料中特定领域的词组;
[0009]统计所述语料中的每个特定领域的词组在所述语料中特定领域的词组中出现的概率或频数;
[0010]根据所述概率或频数的排名,从所述语料中特定领域的词组中选出预设数量的词组,并将选出的词组与非特定领域中的词组组合生成第一切词词典。
[0011]优选地,所述根据所述第二切词词典对用户发送的语音内容进行切词具体包括:
[0012]根据所述第二切词词典,使用后向最大切词和前向最小切词的方式分别对用户发送的语音内容进行切词,如果所述两种切词方式得到的词组不同,则在所述第二切词词典中查找所述不同词组对应的的概率或频数,选取概率或频数较大的词组作为最终切词词组。
[0013]优选地,所述第二切词词典包括:
[0014]地址区域和词组区域;其中,
[0015]所述地址区域,引导机器查找所述用户发送的切词后的语音内容中的词组在所述第二切词词典中的位置;
[0016]所述词组区域,存储所述地址区域中对应的词组。
[0017]优选地,所述根据语法文件对所述语音内容中的词组进行解析具体包括:
[0018]将所述语音内容中的词组与所述语法文件中的词组进行匹配,如果所述语音内容中的词组与语法文件中的词组完全匹配,则解析成功;如果全匹配失败,则进行关键词匹配。
[0019]优选地,所述关键词匹配具体包括:
[0020]将所述语音内容中的词组与所述语法文件中的关键词进行匹配,如果匹配成功,则解析成功;如果匹配不成功,则解析失败。
[0021]优选地,所述特定领域的词组包括以下至少一种:
[0022]汉字;英文字母;数字。
[0023]—种解析语音内容的装置,该装置包括:组合单元、统计单元、切词单元和解析单元;其中,
[0024]所述组合单元,用于将特定领域中的词组和非特定领域中的词组组合生成第一切词词典,根据所述第一切词词典对机器中存储的语料进行切词,获得所述语料中的词组;
[0025]所述统计单元,用于统计所述语料中每个的词组在所述语料中的词组中出现的概率或频数,并按照预定规则调整所述概率或频数,使得特定领域中的词组在所述语料中的词组中出现的概率或频数增加;
[0026]所述切词单元,用于将所述语料中的词组和所述调整后的概率或频数组合生成第二切词词典,并根据所述第二切词词典对用户发送的语音内容进行切词,获得所述语音内容中的词组;
[0027]所述解析单元,用于根据语法文件对所述语音内容中的词组进行解析,获得相应的语义。
[0028]优选地,所述组合单元包括:切词子单元、统计子单元和组合子单元;其中,
[0029]所述切词子单元,用于根据特定领域的词组对所述机器存储的语料进行切词,获得所述语料中特定领域的词组;
[0030]所述统计子单元,用于统计所述语料中的每个特定领域的词组在所述语料中特定领域的词组中出现的概率或频数;
[0031]所述组合子单元,用于根据所述概率或频数的排名,从所述语料中特定领域的词组中选出预设数量的词组,并将选出的词组与非特定领域中的词组组合生成第一切词词典。
[0032]优选地,所述切词单元包括:
[0033]组合子单元、切词子单元和查找子单元;其中,
[0034]组合子单元,用于将所述语料中的词组和所述调整后的概率或频数组合生成第二切词词典;
[0035]所述切词子单元,用于根据所述第二切词词典,使用后向最大切词和前向最小切词的方式分别对用户发送的语音内容进行切词;
[0036]所述查找子单元,用于当所述两种切词方式得到的词组不同时,在所述第二切词词典中查找所述不同词组对应的的概率或频数,选取概率或频数较大的词组作为最终切词词组。
[0037]应用本发明实施例在训练语言模型时,通过调整机器中存储语料中每个的词组在所有词组中出现的概率或频数,使得特定领域中的词组在所有词组中出现的概率或频数增大,从而提高机器解析用户语音内容的语义的准确率。
【附图说明】
[0038]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0039]图1为本发明实施例1提供的一种解析语音内容的方法的具体流程示意图;
[0040]图2为本发明实施例1提供的语言模型自适应的具体流程示意图;
[0041]图3为本发明实施例1提供的第二切词词典中地址区域部分的示意图;
[0042]图4为本发明实施例1提供的第二切词词典中词组区域部分的示意图;
[0043]图5为本发明实施例1提供的米用后向最大切词和前向最小切词的联合方式对用户语音内容进行切词的具体流程示意图;
[0044]图6为本发明实施例1提供的采用语法树编写的语法的示意图;
[0045]图7为本发明实施例1提供的根据语法文件对用户发送的语音内容进行匹配的具体流程示意图;
[0046]图8为本发明实施例1提供的完整的解析语音内容的方法的具体流程示意图;
[0047]图9为本发明实施例2提供的一种解析语音内容的装置的具体结构示意图。
【具体实施方式】
[0048]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0049]鉴于【背景技术】中提到的目前机器在解析用户发送的语音内容时存在的问题,本发明实施例提供了一种解析语音内容的方法及装置,用来解决在建立语言模型时由于特定领域的语料少而导致机器错误解析用户输入的语音内容的问题。
[0050]实施例1
[0051]本发明实施例提供了一种解析语音内容的方法,用来提高机器解析用户语音内容中语义的准确率。图1为本发明实施例提供的一种解析语音内容的方法的具体流程示意图。该方法如下所述:
[0052]步骤11:将特定领域中的词组和非特定领域中的词组组合生成第一切词词典,根据所述第一切词词典对机器中存储的语料进行切词,获得所述语料中的词组。
[0053]在本步骤中,首先筛选特定领域的词典,并将这些特定领域的词典组合生成全词典,例如,将计算机、机械、娱乐等领域中的词组,组合成的特定领域词典,并将特定领域词典作为全词典;然后根据全词典中的词组对机器中的存储的语料进行CRF切词(如图2的步骤21),获得该语料中特定领域中的词组;再统计该特定领域中的每个词组在获得的该语料中所有特定领域词组中出现的概率或频数,并根据概率或频数的排名,按照预设的数量选取词组作为动态词典(如图2的步骤22),例如,在切词后的语料中选取概率排名前五万的特定领域词组,组合成为动态词典,其中,这五万词组中可以包含很多特定领域中用户经常用的词组;最后将生成的动态词典与非特定领域中的词组中的词组进行组合(如图2的步骤23),生成离线切词词典,即第一切词词典,这里的非特定领域中的词组是指用户经常用到的词组,且不包括特定领域中的词组,例如,非特定领域中的词组可以包括人称代词,比如你、我、他等;非特定领域中的词组也可以包括常用的动词,比如打、想、要、拿等。
[0054]在生成第一切词词典后,根据所述第一切词词典对机器中存储的语料进行切词(如图2的步骤24),获得所述语料中的所有词组,并作为语言模型中的训练语料,这里的词组中既包含特定领域中的词组,又包含非特定领域中的词组,其中,对语料进行切词的方式有很多种,这里示例性的对其中一种方式进行说明,例如,机器中存储的一句语料是:我想看刘德华的演唱会,然后根据第一切词词典对这一句语料进行CRF切词,例如,第一切词词典中的词组有:我、想、看、想看、刘德华、的、演唱会,这时根据第一切词词典中的词组可以将该语料切成:我/想/看/刘德华/的/演唱会,或者切成:我/想看/刘德华/的/演唱会,这时需要通过比较“想”和“想看”两词组在语料中出现的概率或频数,如果后者的概率或频数更大,则就将“我、想看、刘德华、的、演唱会”这些词组作为语言模型的训练语料。
[0055]步骤12:统计所述语料中每个的词组在所述语料中的词组中出现的概率或频数,并按照预定规则调整所述概率或频数,使得特定领域中的词组在所述语料中的词组中出现的概率或频数增加。
[0056]在步骤11中获得了语言模型中的训练语料,即获得了机器中所有语料中的词组,在本步骤中,需要对语言模型进行训练(如图2的步骤25),这里可以使用SRILM工具进行语言模型的训练,具体可以包括但不限于:统计机器所有语料中每个词组在所有词组中出现的概率或频数,这里SRILM语言模型训练工具只是示例性的说明,还可以是其他训练方式,不作具体限定。
[0057]在对语言模型训练后,用户需要检验训练结果,例如,检验每个词组出现的概率,在检查词组对应的概率时,可能发现有些特定语料中的词组虽然在语料中经常出现,但是相对非特定领域中的某些相近词组出现的概率较小,这样在对相关语料进行切词时,这些特定语料中的词组可能被其他某些相近词组煙没,造成切词错误,使得机器无法正确解析用户的语音内容。例如,针对用户在计算机输入“打狗棒”这句语音内容,假如“打”为非特定领域中的词组,“打狗棒”是特定领域中的词组,且“打”在所有语料中词组出现的概率大于“打狗棒”的概率,这样计算机就会把“打狗棒”切成“打/狗棒”,导致计算机没有正确解析用户的语义。
[0058]解决上述问题的方法有很多种,例如,可以采取重新分配每个特定领域的词组在语料中出现的概率或频数,使机器更加准确的对用户发送的语音内容进行切词。这里具体针对一种重新分配概率的方式进行说明:首先,分别统计非特定领域词组和特定领域词组在所有语料中词组出现的概率和,分别表示为Psunil和P _2;然后将每个非特定领域词组出现的概率除以Psunil获得P i,同理,将每个特定领域词组出现的概率除以Psuni2获得P 2;最后将?:乘以权重系数k i,匕乘以权重系数k2,从而分别获得非特定领域词组和特定领域词组中的每个词组在所有语料中词组出现的最终概率,其中,用户可以根据个人需要自行设定kl和k2的值,但是kjP k2的和为1,且要使动态词典中每个词组出现的最终概率大于非特定领域中每个词组出现的最终概率,权重系数Ic1要小于P sunlo通过对非特定领域词组和特定领域词组出现的概率重新分配,使得特定领域词组出现的概率增大,从而使得机器更加准确的对用户发送的语音内容进行切词,提高解析用户语音内容的语义的准确性。
[0059]步骤13:将所述语料中的词组和所述调整后的概率或频数组合生成第二切词词典,并根据所述第二切词词典对用户发送的语音内容进行切词,获得所述语音内容中的词组。
[0060]在重新分配每个词组出现的概率或频数后,也就完成了语言模型的自适应过程(如图2的步骤26),这时机器可输出自适应后的语言模型(如图2的步骤27)。该自适应后的语言模型中既有训练后获得的词组,还有每个词组对应的重新分配后的概率和频数。然后需要将自适应后的语言模型转换成第二切词词典,第二切词词典的结构有很多种,这里第二切词词典的主要目的是帮助机器更快、更准确对用户发送的语音内容进行切词。
[0061 ] 这里示例性的对其中一种第二切词词典的结构进行说明,该第二切词词典的结构包括两部分,即地址区域和词组区域。地址区域中地址信息帮助机器根据用户切词后的词组找到该词组在第二切词词典中对应的位置;词组区域中存储的词组是地址区域对应的词组。
[0062]具体地,在地址区域中可以包含10个阿拉伯数字(即O?9)、26个大写字母或小写字母(即A?Z或a?z)和常用汉字组成词组对应的地址信息。这里数字和字母都是全角格式,且每个数字或字母本身占用两个字节,每个数字、字母或者汉字对应的地址信息均占用四个字节,假设在第二切词词典中的常用汉字有6768个,则数字、字母和汉字对应的地址信息共占(10+26+6768)*4 = 27216,假如首地址为uniDict,那么词组区域的首地址为uniDict+27216,如图3所示为地址区域中地址信息的示意图:词组区域的首地址为uniDict+27216,该地址保存以数字“O”为首的词组;字母区域“A”对应的地址为uniDict+40,该地址保存以字母“A”为首的词组的地址;常用汉字“啊”对应的地址为uniDict+144,该地址保存以汉字“啊”为首的词组的地址。
[0063]具体地,在词组区域中,以全角数字“O”为例,如图4所示为词组区域中词组的示意图:“0”对应的首地址为uniDict+27216,可以看到,以“O”为首字的词组可以是“05毫米”,如果用户想查找以“O”为首字的词组时,从首地址uniDict+27216向下查找即可,直到遇到guard标记为止,这里的guard标记是指第二切词词典中以“O”为首字的词组已经到达最后一个。通过利用词组的首字将切词词典中的词组区域进行划分,提高了机器在切词词典中查找词组的效率。为了节约切词词典的空间,可以在词组部分中不存储首字,例如,图4所示的“05毫米”在字典存储的形式为“5毫米”。
[0064]在词组区域除了存储词组以外,还可以有其他参数,这里示例性的列举几个:
[0065]wordlen:表示的是词组的长度;
[0066]buf:表示去掉首字的词组内容,贝Ij sizeof (buf) = wordlen-2,表示去掉首字后词组的长度;
[0067]frequency:表示在语言模型中重新分配后的词组对应的频数,则sizeof (frequency) = 2字节,表示频数所占的长度;
[0068]reclen:表示存储一个词组所占用的空间,sizeof (reclen) = I字节,这里reclen=sizeof(reclen)+sizeof(frequency)+sizeof (buf)+sizeof (wordlen);
[0069]guard:表示每个分区的结束,sizeof (guard) = I字节。
[0070]上述第二切词词典中可以包含数字、字母和汉字,这样可以提高机器解析用户语音内容的语义的准确率,例如,用户输入的语音内容为“什么时候演西游记2啊”,如果切词词典中只有“西游记”,没有数字“2”,可能将上述语音内容切成“什么/时候/演/西游记/2/啊”,这样可能导致机器解析错误。
[0071]在本步骤中,根据第二切词词典对用户发送的语音内容进行切词的方式有很种,例如,可以采用后向最大切词的方式进行切词,也可以采用前向最小切词的方式进行切词。这里列举一种后向最大切词和前向最小切词联合的切词方式:例如,针对用户发送的“少年包青天在卫视播出的时间”这句语音内容进行切词,如图5所示,假如规定搜索的最大长度maxLen = 5,最小长度minLen = 2,在后向最大切词中,先搜索“播出的时间”,在切词词典中没有找到对应的词组,则减去一个字变为“出的时间”进行重新搜索,搜索后在切词词典还是没有找到对应的词组,再对“的时间”进行搜索,这样通过减字的方式依次进行搜索,最后到达最小长度时,即“时间”,在切词词典中找到对应的词组;然后再用上述的方法对“时间”以前的词组进行搜索,最终完成对语音内容的切词。在前向最小切词中,首先对语音内容前面的词组进行搜索,例如,先对“少年” 一词在切词词典中进行搜索,发现有对应的词组,则再对“少年”后面的词组进行搜索,即对“包青”进行搜索,发现在切词词典中没有对应的词组,则多一字进行重新搜索,即对“包青天”进行搜索,采用同样的方法最终完成语音内容的切词。
[0072]采用上述后向最大切词和前向最小切词联合的切词方式对用户的语音内容切词后,如果获得的切词结果不同,即获得的词组不相同时,通过比较不同词组在切词字典中的概率或频数,决定最终的切词结果。如图5所示,假如针对“少年包青天在卫视播出的时间”这句语音内容分别进行后向最大切词和前向最小切词,后向最大切词后的结果为“少年/包青/天在/卫视/播出/的/时间”,而在采用前向最小切词后的结果为“少年/包青天/在/卫视/播出/的/时间”,这时候可以通过比较“天在”和“包青天”在切词词典中出现的概率或频数,发现“包青天”的概率或频数较大,则最终的切词结果为“少年/包青天/在/卫视/播出/的/时间”。这里采用向最大切词和前向最小切词联合的切词方式使得切词的结果更加准确。
[0073]步骤14:根据语法文件对所述语音内容中的词组进行解析,获得相应的语义。
[0074]语法文件中采用的语法有很多种,这里以BNF语法为例,BNF语法的基本规则包含但不限于以下几个方面:
[0075]〈>:内包含的内容为必选项,是语法必须进一步解释的非终结节点;
[0076][]:内包含的内容为可选项,表示其内容可以跳过;
[0077]1:表示在其左右两边任选一项,相当于〃或〃的意思;
[0078]():表示组合;
[0079]但是在实际应用中,有时这些语法规则满足不了用户的需求,本发明实施例在BNF语法规则的基础上进行了扩展,增加了以下规则:
[0080]#:表示注释;
[0081]::非终结节点与其解释的分隔符;
[0082];:表示语法中语句的结束;
[0083]“”:表示引用外部词典文件;
[0084]&root ?name?:写在语法的开始部分,表示该语法名字为name ;
[0085]&keyword (textFrag, key, defaultValue, showValue):该函数是用来提取输入文本的关键词。该函数具体表示:假设输入为inputTextFrag,如果inputTextFrag与textFrag成功匹配,那么key = showValue,否则key = defaultValue ;且该函数可以不对 showValue 进行定义,即该函数可以定义为:&keyword(textFrag, key, defaultValue),这时如果输入的inputTextFrag与textFrag成功匹配,贝丨』直接赋值为textFrag,即key =textFrag。
[0086]具体对上述函数的作用进行举例说明,例如,机器中定义函数为:&keyword(北京I天津I上海,place,本地);&keyword(下雨|下雪,weather,未定义,天气);&keyword(明天|今天|后天,date,今天)。假如用户输入的文本内容为“明天下雨吗”,此时机器在定义的函数中查找是否存在该关键词,首先用户输入的内容中没有具体地址,因此与函数“&keyWOrd (北京I天津I上海,place,本地)”中的关键词匹配失败,这时将自动给用户输入的内容赋值,具体赋值为该函数的defaultValue,这里的defaultValue为“本地”;然后再将用户输入的“明天”与函数“&keyw0rd(明天I今天I后天,date,今天)”中的关键词进行匹配,则与该函数中的“明天”成功匹配,因为该函数中没有定义showValue,所以将用户输入的时间直接赋值为“明天”;最后再将用户输入的“下雨”与“&keyWOrd(下雨I下雪,weather,未定义,天气)”中的关键词进行匹配,则与该函数中的“下雨”成功匹配,因为该函数定义了 showValue,且该函数的showValue为“天气”,所以将用户输入的“下雨”用“天气”替换。则机器根据该函数将用户输入的“明天下雨吗”匹配成“本地明天天气”,并进行相关操作。且上述例子中对用户输入的内容进行匹配的顺序只是示例性的说明,这里并没有对匹配顺序作具体限定,例如,上述例子中对用户输入的“明天”和“下雨”两词匹配的顺序,可以先对“明天”进行匹配,或者先对“下雨”进行匹配,再或者可以对这两词同时进行匹配。
[0087]&duplicate (TextFrag, least, most):这个函数表不把 TextFrag 重复 m 遍,m 的取值范围是:least ^ n ^ most,例如,定义函数:&duplicate (TextFrag, I, 3),此时输出的内容为:TextFrag[TextFrag] [TextFrag];
[0088]&comb (textFragl, textFrag2,…,textFragN):该函数表不把语法片段TextFragl, TextFrag2,…,textFragN做排列组合,例如,定义函数:&comb (TextFragl, TextFrag2);此时输出的内容为:(TextFraglTextFrag2) | (TextFrag2TextFragl)。
[0089]对于对BNF语法规则的扩展方式有多种,以上只是示例性的说明,例如,上述对于符号的定义,可以换成其他符号;或者同一符号,可能表示其他含义,这里不做具体限定。另夕卜,为了更清楚的说明上述语法,下面针对基于上述语法规则编写的语法文件进行举例,文件内容具体如下:
[0090]&root ? 影视点播 >);
[0091]#key words:
[0092]#type:影视类别
[0093]SmoviNamee:影视名
[0094]Uyear:年份
[0095]根据上述定义的语法规则,对上述语法文件进行解析:该语法的文件的名字为“影视点播”,且该语法文件中有三个关键词:type、movie和year。具体地,假如针对文本内容“播放2002年的电影无间道”,定义的语法文件可以是:
[0096]#例:播放2002年的电影无间道
[0097]<影视点播 >:[播放][〈年份 >][的]&comb ([<类别列表 >],< 影视列表>)
[0098]〈类别列表>:&keyword (电影 | 电视剧,type, unspecified);
[0099]< 影视列表 >:&keyword("movieList.die", movieName, unspecified);
[0100]〈年份>:&keyword ((〈时间 > 年),year, unspecified);
[0101]〈时间>:&(1即1化&七6(〈数字>,2,4);
[0102]〈数字>:0|1|2|3|4|5|6|7|8|9;
[0103]另外,为了方便机器根据定义的语法规则解析用户输入的文本内容,可以将每个语法编写成语法树的形式,最终将一个语法文件写成一个“语法森林”的形式。以上述“播放2002年的电影无间道”编写的语法文件为例,编写的语法树如图6所示:在语法树的第一级中,显示的是文件名影视点播”;第二级中,包含四部分:第一部分为“播放”,第二部分为“年份”,第三部分为“的”,第四部分为“影视列表”和“类别列表”,其中,“影视列表”可以是电影或电视剧。这样通过语法树的形式将语法文件中内容层次化,便于机器解析用户输入的语音内容。
[0104]上述在完成相关语法定义后,机器就可以根据语法文件对用户发送的语音内容进行匹配,匹配的方式包含两种:全匹配和关键词匹配。具体匹配的流程示意图如图7所示:先根据语法文件对用户输入的语音内容进行全匹配(如图7中的步骤71),这里的语音内容是经过切词后的语音内容;判断匹配结果(如图7中的步骤72),如果全匹配成功,则打印匹配结果(如图7中的步骤73);如果全匹配失败,则进行关键词匹配(如图7中的步骤74),具体是指:从语法文件中的关键词列表中搜索相应的关键词,如果匹配成功,则打印匹配结果。
[0105]针对上述匹配过程中,通过举例详细说明:例如,用户输入的语音内容为“我想播放2002年的电影无间道”,机器将该语音内容转换为相应的文本内容,并将该文本内容进行切词,切词后的结果为“我想/播放/2002年/的/电影/无间道”。然后根据语法文件对该文本内容进行匹配:首先,“我想”在语法文件中没有相应的词进行覆盖,即全匹配失败;然后再进行关键词匹配,具体如下:type =电影;movieName =无间道;year = 2002年;在关键词匹配过程中,只要输入文本中的关键词能够与语法文件中关键词列表中的关键词匹配成功即可,因此相对于全匹配的方式,采用关键词匹配的方式会更加的灵活,且对输入的文本内容的约束更小,提高匹配成功的几率。
[0106]通过上述根据语法文件对用户输入的语音内容进行解析过程中,可以发现:要使得机器快速、准确地解析出用户语音内容的语义,那么用户在编写机器中的语法文件时要尽可能的规范,这里针对语法文件的编写规范和编写技巧进行举例说明:
[0107]1、语法尽可能的覆盖全面,这里可以在编写的语法规则中编写例子,具体流程为:首先设计用户场景;然后书写例句;最后根据编写的语法对例句进行覆盖。
[0108]2、根据语法场景,关键词要清晰,便于机器在进行关键词匹配时的准确率。
[0109]3、编写语法文件时,要尽量避免过产生,例如,语法文件中的语法片段为“[今天][的][广州][的][天气]”,根据该文法片段可以覆盖“的/的/天气”的文本内容,显然,该文本内容不符合人类的语言习惯,且这种严重的过产生会降低语法文件结构的优势。为减少这种过产生的情况,可以将语法文件拆成若干子条目,例如,针对上述语法语法片段,可以编写成:一级子条目为:“[今天][的]〈广州 > [的][天气]”;二级子条目为[今天][的广州][的][天气]”,三级子条目为:“[今天][的][广州的][天气]”,这样就可以减少语法文件中的过产生的情况。
[0110]4、在编写语法文件时,尽量采用分级的编写的方法,使得语法文件具有好的可读性。例如,上述提到的语法树规则。
[0111]5、语法文件中的词组尽量与切词词典中的词组一致,这样使得机器更加准确的解析用户的语音内容。例如,“我想知道”可以根据切词词典切成“我想/知道”,这时的语法文件中的词组也应保持一致,可以是“[我想] < 知道 >”而不是“[我][想]〈知道〉”等。
[0112]这里在解析语音内容时,需要考虑切词的影响,例如,用户发送的语音内容为“我想打电话”,机器将该语音内容可能切成“我想/打/电话”,这时虽然机器切词出现错误,但语法文件中应按照“打电话”这种方式对用户发送的语音内容进行解析,这样可以减少机器由于切词错误,而造成解析错误。
[0113]6、在采用语法树编写语法文件时,根节点中中至少包括一个必选项,否则输入的文本都被该语法覆盖,造成机器的错误解析。例如,语法文件中的语法片段为“[今天][的][广州][的][天气]”,因为语法片段中的词组都为可选项,假如用户输入的语音内容为“今天的上海的天气”,这时候也能够与语法文件中的词组进行匹配,显然,这样会导致机器解析错误。
[0114]7、在采用语法树编写语法文件时,如果根节点中的必选项词组同时也是关键词,这时可以设置:defaultValue = error。当用户发送的语音内容与根节点中的必选项不能匹配时,直接输出error,避免机器再进行关键词匹配操作,浪费机器的资源。
[0115]为了更清楚的理解本发明实施例,对上述提供的解析语音内容的方法进行系统的说明,如图8所示:第一步:语言模型的自适应过程(如图8中的步骤81),具体是指:调整所述语料中每个的词组在所述语料中的词组中出现的概率或频数,使得特定领域中的词组在机器中语料中词组中出现的概率和频数增大;第二步:根据切词词典对用户发送的语音内容进行切词(如图8中的步骤82);第三步:根据语法文件对切词后的语音内容进行全匹配(如图8中的步骤83),这时机器判断全匹配是否成功(如图8中的步骤84),如果匹配成功,则打印匹配结果(如图8中的步骤85),这里的语法文件可以采用语法树的形式;第四步:如果全匹配失败,则进行关键词匹配(如图8中的步骤86),关键词匹配成功后打印匹配结果。完成匹配的过程,就是机器对用户语音内容进行解析的过程。
[0116]应用本发明实施例提供的解析语音内容的方法,获得的有益效果如下:
[0117]1、在对语言模型进行训练时,调整机器中存储语料中每个的词组在所有词组中出现的概率或频数,使得特定领域中的词组在所有词组中出现的概率或频数增大,从而提高机器解析用户语音内容的语义的准确率。
[0118]2、本发明实施例中的切词词典包含地址区域和词组区域,且在词组区域中采用首字分区,便于机器在切词词典中快速的找到对应词组的位置。另外,词组区域中的词组包含数字、字母和汉字,提高机器解析用户语音内容的语义的准确率。
[0119]3、本发明实施例在现有BNF语法规则的基础上进行了扩展,并提供了语法规则的编写技巧,提高了语法文件的可读性,并且提高了机器解析用户语音内容的语义的准确率。
[0120]4、在根据语法文件对用户发送的语音内容进行匹配时,采用全匹配和关键词匹配,使得匹配更加全面,进而提高机器解析用户语音内容的语义的准确率。
[0121]实施例2
[0122]实施例1中提供了一种解析语音内容的方法,相应的,本发明实施例提供了一种解析语音内容的装置,用来提高机器解析用户语音内容中语义的准确率。
[0123]一种解析语音内容的装置,该装置包括:组合单元91、统计单元92、切词单元93和解析单元94 ;其中,
[0124]组合单元91,可以用于将特定领域中的词组和非特定领域中的词组组合生成第一切词词典,并根据所述第一切词词典对机器中存储的语料进行切词,获得所述语料中的词组;
[0125]统计单元92,可以用于统计所述语料中每个的词组在所述语料中的词组中出现的概率或频数,并按照预定规则调整所述概率或频数,使得特定领域中的词组在所述语料中的词组中出现的概率或频数增加;
[0126]切词单元93,可以用于将所述语料中的词组和所述调整后的概率或频数组合生成第二切词词典,并根据所述第二切词词典对用户发送的语音内容进行切词,获得所述语音内容中的词组;
[0127]解析单元94,可以用于根据语法文件对所述语音内容中的词组进行解析,获得相应的语义。
[0128]上述装置实施例的工作过程是:第一步:组合单元91将特定领域中的词组和非特定领域中的词组组合生成第一切词词典,并根据该第一切词词典对机器中存储的语料进行切词,获得该语料中的词组;第二步:统计单元92统计该语料中每个的词组在该语料中的词组中出现的概率或频数,并按照预定规则调整概率或频数,使得特定领域中的词组在该语料中的词组中出现的概率或频数增加;第三步:切词单元93将该语料中的词组和调整后的概率或频数组合生成第二切词词典,并根据该第二切词词典对用户发送的语音内容进行切词,获得该语音内容中的词组;第四步:解析单元94根据语法文件对该语音内容中的词组进行解析,获得相应的语义。
[0129]上述装置实施例提高机器解析用户语音内容中语义的准确率的实施方式有很多种,例如,在一种实施方式中,所述组合单元91包括:切词子单元、统计子单元和组合子单元;其中,
[0130]切词子单元,可以用于根据特定领域的词组对所述机器存储的语料进行切词,获得所述语料中特定领域的词组;相比于现有技术采用人为标记的方式获得特定领域的词组的方式,这里采用机器切词的方式获得特定领域词组更加便捷。
[0131]统计子单元,可以用于统计所述语料中的每个特定领域的词组在所述语料中特定领域的词组中出现的概率或频数;
[0132]组合子单元,可以用于根据所述概率或频数的排名,从所述语料中特定领域的词组中选出预设数量的词组,并将选出的词组与非特定领域中的词组组合生成第一切词词典。选取特定领域中的词组的概率或频数排名靠前的词组,即将语料中经常出现的词组生成第一切词词典,可以提高机器切词效率。
[0133]在另一种实施方式中,所述切词单元93包括:
[0134]组合子单元、切词子单元和查找子单元;其中,
[0135]组合子单元,可以用于将所述语料中的词组和所述调整后的概率或频数组合生成第二切词词典;这里调整所述语料中每个的词组在所述语料中的词组中出现的概率或频数,使得特定领域中的词组在机器中语料中词组中出现的概率和频数增大,从而提高机器解析用户语音内容的语义的准确率。
[0136]切词子单元,可以用于根据所述第二切词词典,使用后向最大切词和前向最小切词的方式分别对用户发送的语音内容进行切词;
[0137]查找子单元,可以用于当所述两种切词方式得到的词组不同时,在所述第二切词词典中查找所述不同词组对应的的概率或频数,选取概率或频数较大的词组作为最终切词词组。
[0138]上述采用切词子单元和查找子单元,通过采用后向最大切词和前向最小切词联合的切词方式将用户的语音内容进行切词,使得切词的结果更加准确。
[0139]上述装置实施例获得的有益效果与前述的方法实施例获得的有益效果相同或者类似,为避免重复,这里不做赘述。
[0140]以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0141]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0142]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1.一种解析语音内容的方法,其特征在于,该方法包括: 将特定领域中的词组和非特定领域中的词组组合生成第一切词词典,根据所述第一切词词典对机器中存储的语料进行切词,获得所述语料中的词组; 统计所述语料中每个的词组在所述语料中的词组中出现的概率或频数,并按照预定规则调整所述概率或频数,使得特定领域中的词组在所述语料中的词组中出现的概率或频数增加; 将所述语料中的词组和所述调整后的概率或频数组合生成第二切词词典,并根据所述第二切词词典对用户发送的语音内容进行切词,获得所述语音内容中的词组; 根据语法文件对所述语音内容中的词组进行解析,获得相应的语义。2.根据权利要求1所述的方法,其特征在于,所述将特定领域中的词组和非特定领域中的词组组合生成第一切词词典具体包括: 根据特定领域的词组对所述机器存储的语料进行切词,获得所述语料中特定领域的词组; 统计所述语料中的每个特定领域的词组在所述语料中特定领域的词组中出现的概率或频数; 根据所述概率或频数的排名,从所述语料中特定领域的词组中选出预设数量的词组,并将选出的词组与非特定领域中的词组组合生成第一切词词典。3.根据权利要求1所述的方法,其特征在于,所述根据所述第二切词词典对用户发送的语音内容进行切词具体包括: 根据所述第二切词词典,使用后向最大切词和前向最小切词的方式分别对用户发送的语音内容进行切词,如果所述两种切词方式得到的词组不同,则在所述第二切词词典中查找所述不同词组对应的的概率或频数,选取概率或频数较大的词组作为最终切词词组。4.根据权利要求1所述的方法,其特征在于,所述第二切词词典包括: 地址区域和词组区域;其中, 所述地址区域,引导机器查找所述用户发送的切词后的语音内容中的词组在所述第二切词词典中的位置; 所述词组区域,存储所述地址区域中对应的词组。5.根据权利要求1所述的方法,其特征在于,所述根据语法文件对所述语音内容中的词组进行解析具体包括: 将所述语音内容中的词组与所述语法文件中的词组进行匹配,如果所述语音内容中的词组与语法文件中的词组完全匹配,则解析成功;如果全匹配失败,则进行关键词匹配。6.根据权利要求5所述的方法,其特征在于,所述关键词匹配具体包括: 将所述语音内容中的词组与所述语法文件中的关键词进行匹配,如果匹配成功,则解析成功;如果匹配不成功,则解析失败。7.根据权利要求1所述的方法,其特征在于,所述特定领域的词组包括以下至少一种: 汉字;英文字母;数字。8.一种解析语音内容的装置,其特征在于,该装置包括:组合单元、统计单元、切词单元和解析单元;其中, 所述组合单元,用于将特定领域中的词组和非特定领域中的词组组合生成第一切词词典,根据所述第一切词词典对机器中存储的语料进行切词,获得所述语料中的词组; 所述统计单元,用于统计所述语料中每个的词组在所述语料中的词组中出现的概率或频数,并按照预定规则调整所述概率或频数,使得特定领域中的词组在所述语料中的词组中出现的概率或频数增加; 所述切词单元,用于将所述语料中的词组和所述调整后的概率或频数组合生成第二切词词典,并根据所述第二切词词典对用户发送的语音内容进行切词,获得所述语音内容中的词组; 所述解析单元,用于根据语法文件对所述语音内容中的词组进行解析,获得相应的语义。9.根据权利要求8所述的装置,其特征在于,所述组合单元包括:切词子单元、统计子单元和组合子单元;其中, 所述切词子单元,用于根据特定领域的词组对所述机器存储的语料进行切词,获得所述语料中特定领域的词组; 所述统计子单元,用于统计所述语料中的每个特定领域的词组在所述语料中特定领域的词组中出现的概率或频数; 所述组合子单元,用于根据所述概率或频数的排名,从所述语料中特定领域的词组中选出预设数量的词组,并将选出的词组与非特定领域中的词组组合生成第一切词词典。10.根据权利要求8所述的装置,其特征在于,所述切词单元包括: 组合子单元、切词子单元和查找子单元;其中, 组合子单元,用于将所述语料中的词组和所述调整后的概率或频数组合生成第二切词词典; 所述切词子单元,用于根据所述第二切词词典,使用后向最大切词和前向最小切词的方式分别对用户发送的语音内容进行切词; 所述查找子单元,用于当所述两种切词方式得到的词组不同时,在所述第二切词词典中查找所述不同词组对应的的概率或频数,选取概率或频数较大的词组作为最终切词词组。
【文档编号】G06F17/27GK105912521SQ201510995231
【公开日】2016年8月31日
【申请日】2015年12月25日
【发明人】周蕾蕾
【申请人】乐视致新电子科技(天津)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1