扩展口语对话系统语料库的方法和系统与流程

文档序号:11155026阅读:846来源:国知局
扩展口语对话系统语料库的方法和系统与制造工艺

本申请涉及口语对话系统中语料库的扩展技术,特别涉及扩展口语对话系统语料库的方法和系统。



背景技术:

口语对话系统是一种可以与人通过声音对话的计算机系统。口语对话系统是对话系统的一种,和一般的文本对话系统相比,主要多出了语音识别和语音合成模块。

对话系统(dialog system)主要由输入识别器/译码器(input recognizer/decoder)、自然语言理解单元(Natural Language Understanding unit)、对话管理器(dialog manager)、任务管理器(task managers)、自然语言生成单元(Natural Language Generator unit)和输出渲染器(output renderer)组成。

口语对话系统的核心是自然语言理解单元,往往包含庞大的文本语料库,并且包含三个主要模块:专有名词识别、词性标注和语义解析器(Semantic Parser)。

语音识别产生的文本进入自然语言理解单元后,经过专有名词识别和词性标注,再由语义解析器进行分析获取语义信息,接着交给对话管理器确定语义,最后由自然语言生成单元做出应答或者由任务管理器做出相应任务安排。对于中文语音识别,语义解析器还需要在分析语义前进行一些处理,包括中文分词等。

因此,口语对话系统需要建立文本语料库,其中语义解析方法分为基于规则方法和基于统计方法,本发明主要关注基于规则方法的语义解析。基于规则的方法的语料库主要包括专有名词词库、普通词库、分词库,以及最重要的规则库。

受目前技术所限,基于规则方法的语义解析器往往是面向一个狭窄领域、词汇量有限的系统,其题材有旅游查询、订票、数据库检索等等。确立题材后,可以有针对性的建立相应的词库和规则库。

著名的口语解析器如卡内基梅隆大学(Carnegie Mellon University,CMU)的Phoenix,可以针对某领域建立单独的规则模型,在规则模型内建立所有语义网络并且建立词库,语义网络的每个节点就是词或其他子网络,然后由解析器对输入句子进行部分解析,匹配出在该领域下的固定语义所对应的网络路径,得出一个或多个解析结果,最后再取最优的解析结果。例如语音订票系统,建立与订票相关的所有单词的词库,建立订票所有可能行为对应的语义网络,只要获取用户语句全部或部分匹配的网络路径,就能知道其大致对应的订票行为,加以提取用户语句中对应部分的关键字,获取订票行为的所需参数,系统就可以做出回应。

当用户的语句无法解析或者解析结果没有达到要求的情况下,现有大部分口语对话系统会返回例如“我无法理解您的意思”或者别的语义相关的回复。同时后台收集用户日志,由维护人员分析和扩展语料库。

在实际应用中,自然语言理解单元最大的问题是,由于语言的复杂性,系统无法涵盖所有语法,识别错误或者语义无法理解的用户语句仍然经常出现。特别是由于方言、各地区语言习惯和用户习惯的不同,给口语对话系统的语料库建立带来很多难点,往往一个很庞大的语料库也无法解析正确所有用户说的话。因此,即使语音识别系统可以识别用户所说的语句,进入自然语言理解单元后,也可能由于语义解析器无法找到相对应的规则以解析该语句,从而导致整体的识别率不高。因此,开发人员需要耗费大量时间去更新维护语料库,才能保证高识别率。



技术实现要素:

本申请提供了一种扩展口语对话系统语料库的方法和系统,以提高口语对话系统的识别率。

所述扩展口语对话系统语料库的方法,包括:

对无法解析的语句进行二次语义解析,得到候选解析结果;

如果用户从候选解析结果中选择了候选,则在所述语句与用户所选择的候选之间生成映射规则,将所生成的规则添加进用户专属的预处理规则库,并将用户所选的候选语句及对应的语义信息存入所述用户对应的专属的副语料库;

在解析用户语句时,结合用户专属的预处理规则库、基于副语料库生成的规则辅助主语料库进行语义解析。

较佳地,所述在解析用户语句时,结合用户专属的预处理规则库、基于副语料库生成的规则辅助主语料库进行语义解析包括:

如果基于主语料库进行语义解析的成功率大于设定的第一阈值,则先基于主语料库进行语义解析,如果成功,则根据解析结果响应用户;如果解析失败,再基于副语料库进行语料库解析;

如果基于主语料库进行语义解析的成功率小于设定的第二阈值,则先基于副语料库进行语义解析;如果基于副语料库解析失败,再基于主语料库进行语义解析。

所述扩展口语对话系统语料库的系统,包括:语义解析模块、前端交互模块和副语料库管理模块,其中:

语义解析模块,用于在解析用户语句时,结合用户专属的预处理规则库、基于副语料库生成的规则辅助主语料库进行语义解析;在语义解析模块解析失败时,进行二次语义解析,生成候选解析结果交给前端交互模块;

前端交互模块,用于将语义解析模块生成的候选解析结果反馈给用户进行交互,包含交互界面和交互处理;

副语料库管理模块,用于在主语料库的基础上创建用户专属的副语料库和预处理规则库,将从前端交互模块接收的候选语句及对应的语义信息写入副语料库,并将用户语句到候选语句的映射规则写入预处理规则库,并负责基于副语料库中的语句生成语义解析规则。

较佳地,所述语义解析模块按照以下方式进行语义解析:

如果基于主语料库进行语义解析的成功率大于设定的第一阈值,则先基于主语料库进行语义解析,如果成功,则根据解析结果响应用户;如果解析失败,再基于副语料库进行语料库解析;

如果基于主语料库进行语义解析的成功率小于设定的第二阈值,则先基于副语料库进行语义解析;如果基于副语料库解析失败,再基于主语料库进行语义解析。

由上述技术方案可见,本申请通过由用户添加副语料库实现了语料库扩展。具体来说,本发明能够产生如下有益效果:

1、有针对性的解决语料库扩展问题,提高了语料库的健壮性。

一般语料库中的规则可以解析大部分句子。但由于新句子和新名词的产生,语音识别错误而产生的不知所谓的词语或句子、方言、个性化语言习惯等原因,需要对语料库进行扩展。而此方法借助用户选择来扩展语料库,针对新词新句、方言、识别错误、单个用户的习惯等,实现了动态扩展,提高了语料库的健壮性。

2、减少了维护语料库的成本。

加入副语料库,而且一个用户只对应一个副语料库,不用改变主语料库,使用副语料库辅助主语料库完成解析,并且通过二次语义解析和与用户交互来扩展语料库,而不是依赖于传统的由维护人员扩展语料库,减少了维护成本。

3、提供口语对话系统的纠错功能,增强口语对话系统的可用性。

本发明将无法解析的语句呈现给用户,用户就可以知道自己所说的句子为何无法解析,一方面可以将用户所说的句子或在其基础上修改的句子添加进语料库,另一方面也可以放弃本次结果重新输入增强口语对话系统的可用性。

附图说明

图1为本发明扩展口语对话系统语料库的系统模块图;

图2为本发明扩展口语对话系统语料库的方法流程图;

图3为本发明副语料库和主语料库结合进行语义解析的流程图;

图4为本发明带语料库扩展功能的口语对话系统的工作流程图。

具体实施方式

为使本申请的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本申请作进一步详细说明。

针对现有技术所存在的问题,本发明公开了一种在口语解析器的原语料库之外扩展语料库的方法,该方法通过收集无法解析的用户语句,再次解析得出可能正确的候选结果,由用户选择符合其话语意图的候选语句,存入为用户创建的专属的副语料库(即本发明在原语料库之外扩展的语料库),扩展系统的主语料库(即:原语料库),增强语义解析的健壮性,并且提高语料库的正确性和覆盖率。当语义解析模块解析失败的时候,本发明系统收集用户语句,对该语句进行二次语义解析,在现有系统的基础上采用降低标准和收敛阀值的方法筛选出一定量的可能正确的候选结果,并且反馈给用户,例如:显示在前端页面上。同时前端页面增加一个反馈页面,呈现出候选结果列表,由用户选择一个满足自己意图的候选;如果未找到符合用户意图的候选,可以放弃本次输入,或者修改其中最优的候选语句或语义,以使其满足用户意图。如果选择了其中某个候选,就在该语句和用户所选择的候选之间生成映射规则,将所生成的规则添加进用户专属的预处理规则库;同时将用户所选的候选语句及对应的语义信息插入副语料库。用户专属的预处理规则库和副语料库不会影响其他用户的语义解析。

在用户首次登录时,创建用户专属的副语料库和预处理规则库。副语料库管理模块基于副语料库中用户添加的语句和语义信息生成语义规则。副语料库是一个动态的语料库,其随着用户添加语句的进行而扩展,其作用是辅助主语料库参与语义解析。在基于副语料库对语句进行语义解析前,先以待解析语句匹配预处理规则库中的规则前件,如果匹配成功,则将待解析语句替换成规则后件,然后进行语义解析。

下文结合附图具体介绍本发明方法和系统的具体实施方式。

图1为本发明扩展口语对话系统语料库的系统模块图。该系统包括以下模块:

语义解析模块:用于在解析用户语句时,结合用户专属的预处理规则库、基于副语料库生成的规则辅助主语料库进行语义解析;在语义解析模块解析失败时,进行二次语义解析,生成候选解析结果交给前端交互模块;

前端交互模块:用于将语义解析模块生成的候选解析结果反馈给用户进行交互,包含交互界面和交互处理;

副语料库管理模块:用于在主语料库的基础上创建用户专属的副语料库和预处理规则库,将从前端交互模块接收的候选语句及对应的语义信息写入副语料库,并将用户语句到候选语句的映射规则写入预处理规则库。除此之外,还负责基于副语料库中的语句生成语义解析规则。

下面对上述三个模块分别进行详细说明。

1、语义解析模块

用户首先需要登录口语对话系统。通过客户端向语音接收设备说话,客户端将用户语音数据传到服务器端,服务器端的语音识别模块识别出用户语句后,进入语义解析模块。

对用户语句进行专有名词识别、标准化、中文分词等处理后,语义解析模块对用户语句进行解析。

当用户已登录且存在副语料库的情况下,语义解析模块调用副语料库及预处理规则库辅助主语料库进行语义解析。

使用副语料库辅助主语料库进行语义解析的方法如下:

如果基于主语料库进行语义解析的成功率比较高,比如大于等于60%,则先基于主语料库进行语义解析,如果成功,则根据解析结果响应用户;如果解析失败,再基于副语料库进行语料库解析;

在基于副语料库进行语句解析前,先以待解析语句依次匹配预处理规则库中的规则前件,如果匹配,则以规则后件替换待解析的语句,然后基于副语料库进行语义解析;如果全部规则前件都匹配失败,则直接基于副语料库进行语义解析;

如果基于副语料库解析语句成功,则根据解析结果响应用户;如果解析失败,则对待解析的语句进行二次解析,即基于更宽松的约束条件进行解析。

如果基于主语料库进行语义解析的成功率不高,比如低于50%,则先基于副语料库进行语义解析;如果基于副语料库解析失败,然后再基于主语料库进行语义解析;如果基于副语料库直接解析成功,则根据解析结果响应用户,而不需要再基于主语料库进行语义解析;如果基于副语料库和主语料库都解析失败,则对用户语句进行二次解析,即基于更宽松的约束条件进行解析。如果解析成功完成,则进入其他系统进行后续处理;如果解析失败,不释放内存中的用户语句,进行二次语义解析。

二次语义解析采用现有解析方法,只是放宽解析成功的条件,降低阀值,得出一个或多个可能的候选结果。例如“到俺们那的火车票”,假设系统可以识别语音但是不能解析方言“俺们”,那么该句在一般情况下第一次解析结果为语义不明。二次语义解析采用较为宽松的约束条件,比如允许部分匹配,找到该句的相对最优解:“到那的火车票”,这个时候会匹配上“查找火车票”的语义,该语义将会作为候选结果。但是由于查找目标不明确,该语义的处理将会同时列出所有火车站的火车票作为应答结果。最后将候选解析结果由服务器端的语义解析模块传递给前端交互模块。如果用户是“南京”人,那么用户选择“到南京的火车票”。副语料库管理模块会将候选语句“到南京的火车票”及其语义信息,比如“查找火车票”,插入到副语料库;并把映射规则“到俺们那的火车票->到南京的火车票”插入到预处理规则库。

2、前端交互模块

二次语义解析得出的一个或多个候选解析结果被传送到前端交互模块,前端交互模块以某种形式,比如:列表,将其反馈给用户选择,同时用户可以看到自己所说话语的文字结果,即候选语句及对应的语义信息。如果用户选择放弃,则不保存此次的解析结果。如果没有符合用户意图的候选,用户可以修改用户语句和/或语义信息以符合其意图;如果用户选择其中一种语义,如在上例中用户选择“查找火车票”,那么“到俺们那的火车票”将会与语义“查找火车票”建立联系。上传候选语句“到南京的火车票”及语义信息到服务器端的副语料库管理模块进行后续处理。

3、副语料库管理模块

用户第一次登录口语对话系统后,服务器提供空间创建用户专属的副语料库和预处理规则库。副语料库用于保存用户在交互页面添加的句子及语义信息,而预处理规则库用于存储用户语句到用户选择的候选语句的映射规则。除此之外,还负责基于副语料库中的语句生成语义解析规则;具体生成语义规则的方法和语义规则的表现形式与采用的语义解析方法有关。

图4为本发明带语料库扩展功能的口语对话系统的工作流程图,其具体步骤如下:

步骤401,为用户交互模块,其接收用户语音,将用户语音传给语音识别模块;将二次解析模块输出的候选呈现给用户检查和选择;如果没有符合用户意图的候选,允许用户修改任意候选以使其符合用户意图。

步骤402,语音接收模块,接收用户的话语,并将语音数据传送给语音识别模块。

步骤403,语音识别模块,将用户话语的语音识别成文字,然后将其传递给自然语言理解单元处理,即此处的步骤404。

步骤404,语义解析模块,使用副语料库辅助主语料库进行语义解析,获取用户意图。具体方法为:如果基于主语料库进行语义解析的成功率比较高,比如大于等于60%,则先基于主语料库进行语义解析,如果成功,则根据解析结果响应用户;如果解析失败,再基于副语料库进行语料库解析;在基于副语料库进行语句解析前,先以待解析语句依次匹配预处理规则库中的规则前件,如果匹配,则以规则后件替换待解析的语句,然后基于副语料库进行语义解析;如果全部规则前件都匹配失败,则直接基于副语料库进行语义解析;如果基于副语料库解析语句成功,则根据解析结果响应用户;如果解析失败,则对待解析的语句进行二次解析,即基于更宽松的约束条件进行解析。如果基于主语料库进行语义解析的成功率不高,比如低于50%,则先基于副语料库进行语义解析;如果基于副语料库解析失败,然后再基于主语料库进行语义解析;如果基于副语料库直接解析成功,则根据解析结果响应用户,而不需要再基于主语料库进行语义解析;如果基于副语料库和主语料库都解析失败,则对用户语句进行二次解析,即基于更宽松的约束条件进行解析。

步骤405,语义解析间接依赖的主语料库、副语料库和预处理规则库;在基于副语料库解析用户语句语义前,先以待解析语句依次匹配预处理规则库中的规则前件,如果匹配,则以规则后件代替待解析语句,然后进行语义解析;如果未发现匹配,则直接对待解析语句进行语义解析。

步骤406,二次解析模块,采用更为宽松的约束条件对步骤404中语义解析模块解析失败的语句进行二次解析,其输出一定数量的候选供用户选择确认是否符合其意图;它不一定是单独的一个模块,可以和步骤404中的语义解析模块合二为一,因为它们可以采用同样的解析方法,只是二次解析模块采用更宽松的约束条件;当然,如果二次解析模块和步骤404中的语义解析模块采用的方法不一致,则需将它单独作为一个模块。

步骤407,判断步骤404中语义解析是否成功,如果步骤404的语义解析成功,流程则转到步骤408的响应模块;否则,转到步骤406进行二次语义解析。

步骤408,响应模块,根据获得的语义信息给用户适当的响应,比如操作设备,返回查询信息等;如果未能获得有效语义信息,则以类似“未能理解用户”的信息响应用户。

步骤409,判断展示给用户的候选及其语义是否正确,如果正确,则选择其更新副语料库;否则,询问用户是否需要修改候选,以使其符合用户意图。

步骤410,询问用户是否修改候选。也可放弃修改,直接以“未能理解用户”的信息响应用户。

步骤411,副语料库管理模块,创建用户专属的副语料库和预处理规则库。其中,副语料库用于保存用户在交互页面添加的句子及语义信息,预处理规则库用于存储用户语句到用户选择的候选语句的映射规则。除此之外,还负责基于副语料库中的语句生成语义解析规则;具体生成语义规则的方法与采用的语义解析方法有关。

图2为本发明扩展口语对话系统语料库的方法流程图,其具体步骤如下:

步骤201:收集当前经过语义解析而解析失败的语句。

步骤202:对该语句进行二次解析,放宽解析条件,降低输出阀值,得出一个或多个候选解析结果。

步骤203:二次解析过后,将一定量的候选解析结果及对应的语义提供给用户选择。

步骤204:判断是否有候选符合用户意图的候选,若有符合用户意图的候选,则选择其更新副语料库和预处理语料库,执行步骤205,否则,执行步骤207。

步骤205:根据用户选择,生成用户语句到用户选择的候选语句的映射规则,将其追加到预处理规则库;并将用户选择的候选语句及对应的语义信息添加到当前用户的副语料库。

步骤206:根据得到的语义生成用户响应或系统操作或响应用户类似“无法理解用户”之类的信息。

步骤207:结束本次口语对话。

图3为本发明副语料库和主语料库结合进行语义解析的流程图,其具体步骤如下:

步骤301:语义解析模块得到经过中文分词和命名实体识别的用户语句的文本。

步骤302:语义解析模块基于当前用户的副语料库、预处理规则库和主语料库对用户语句进行解析。

使用副语料库辅助主语料库进行语义解析的方法如下:

如果基于主语料库进行语义解析的成功率比较高,比如大于等于60%,则先基于主语料库进行语义解析,如果成功,则根据解析结果响应用户;如果解析失败,再基于副语料库进行语料库解析;

在基于副语料库进行语句解析前,先以待解析语句依次匹配预处理规则库中的规则前件,如果匹配,则以规则后件替换待解析的语句,然后基于副语料库进行语义解析;如果全部规则前件都匹配失败,则直接基于副语料库进行语义解析;如果基于副语料库解析语句成功,则根据解析结果响应用户;如果解析失败,则对待解析的语句进行二次解析,即基于更宽松的约束条件进行解析。

如果基于主语料库进行语义解析的成功率不高,比如低于50%,则先基于副语料库进行语义解析;如果基于副语料库解析失败,然后再基于主语料库进行语义解析;如果基于副语料库直接解析成功,则根据解析结果响应用户,而不需要再基于主语料库进行语义解析;如果基于副语料库和主语料库都解析失败,则对用户语句进行二次解析,即基于更宽松的约束条件进行解析。

步骤303:判断解析是否成功,若解析成功,执行步骤304,否则执行步骤305。

步骤304:根据得到的语义生成用户响应或系统操作或响应用户类似“无法理解用户”之类的信息。

步骤305:进入图2中扩展口语对话系统语料库的流程。

本发明通过由用户添加副语料库实现了语料库扩展。具体来说,本发明能够产生如下有益效果:

1、有针对性的解决语料库扩展问题,提高了语料库的健壮性。

一般语料库中的规则可以解析大部分句子。但由于新句子和新名词的产生,语音识别错误而产生的不知所谓的词语或句子、方言、个性化语言习惯等原因,需要对语料库进行扩展。而此方法借助用户选择来扩展语料库,针对新词新句、方言、识别错误、单个用户的习惯等,实现了动态扩展,提高了语料库的健壮性。

2、减少了维护语料库的成本。

加入副语料库,而且一个用户只对应一个副语料库,不用改变主语料库,使用副语料库辅助主语料库完成解析,并且通过二次语义解析和与用户交互来扩展语料库,而不是依赖于传统的由维护人员扩展语料库,减少了维护成本。

3、提供口语对话系统的纠错功能,增强口语对话系统的可用性。

本发明将无法解析的语句呈现给用户,用户就可以知道自己所说的句子为何无法解析,一方面可以将用户所说的句子或在其基础上修改的句子添加进语料库,另一方面也可以放弃本次结果重新输入增强口语对话系统的可用性。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1