发明内容
本发明的目的在于提供一种智能聊天系统及其实现方法,应用于家庭服务机器人、娱乐机器人以及语音对话领域。
本发明的技术方案如下:
一种智能聊天系统,其中,包括用于将输入语音转化为输入文本的语音识别模块,用于根据输入文本得到输出文本的文本理解回答模块和用于将输出文本转换成输出语音的语音合成模块;所述文本理解回答模块包括分词单元、基于XML的映射语料库、映射单元、基于XML的对话语料库和搜索单元;所述分词单元用于对所述输入文本进行词性标注,得到具有词性标注的词语集合;所述映射语料库用于建立和存储关键词到概念语句的映射关系;所述映射单元用于根据所述词语集合,搜索所述映射语料库,映射得到概念语句;所述对话语料库用于建立和存储概念语句到输出文本的映射关系;所述搜索单元用于根据所述概念语句,搜索所述对话语料库,映射得到输出文本;所述文本理解回答模块还用于对所述映射语料库的词性设置权重值,并根据用户对输出语音的评价调整权重值,所述的文本理解回答模块还包括判别模块和权重调整模块;所述映射单元还用于将映射结果以语音的形式给用户和判别模块;权重调整模块用于调整所述权重值;判别模块用于通过用户的评价在权重调整模块中按算法调整权重值,将调整后的权重值送入映射单元。
所述的智能聊天系统,其中,所述映射语料库和所述对话语料库采用XML语言描述和存储。
所述的智能聊天系统,其中,还包括预处理单元,用于将来自所述分词单元的所述词语集合,进行替换词语集合信息、增加对话标志或者设置对话标志位,得到供所述映射单元使用的所述词语集合。
所述的智能聊天系统,其中,还包括后处理单元,用于将来自所述搜索单元的所述输出文本,进行以下处理:加入或存储历史信息、设置谈话主题、加入搜索得到的相关信息,得到输出到语音合成模块的所述输出文本。
一种智能聊天系统的实现方法,用于包括根据输入文本得到输出文本的文本理解回答模块的智能聊天系统,其包括步骤:A1、建立基于XML的映射语料库和对话语料库,所述映射语料库建立和存储关键词到概念语句的映射关系,所述对话语料库建立和存储概念语句到输出文本的映射关系;所述的步骤A1还包括:对所述映射语料库的词性设置权重值,其中,所述权重值采用正交优化或两次正交优化方法获得;A01、将输入语音转化为输入文本;A2、对所述输入文本进行词性标注,得到具有词性标注的词语集合;A3、对所述词语集合和所述映射语料库的关键词的词语集合进行匹配计算,得到概念语句;A4、根据所述概念语句,搜索所述对话语料库,生成输出文本;A5:将输出文本转换成输出语音;A6、用户对所述输出语音进行评价,所述文本理解回答模块根据所述评价调整所述权重值。
所述的实现方法,其中,在步骤A4之后,还包括用于增加回答准确度的后处理步骤:加入或存储历史信息、设置谈话主题、加入搜索得到的相关信息。
所述的实现方法,其中,在步骤A3之前,还包括步骤:B1、判断输入文本存在下述情况:出现指示代词、主题没有变化、或者需要加入常识,则分别对应执行预处理步骤:替换词语集合信息、增加对话标志或者设置对话标志位,否则执行步骤A3;B2、判断预处理是否完成,是则返回成功标志,直接进入后处理步骤给出最后的输出文本,否则返回失败标志,再执行步骤A3。
所述的实现方法,其中,所述映射语料库和所述对话语料库采用XML语言描述和存储。
所述的实现方法,其中,在步骤A6之后,还包括为用户存储个人信息步骤,并将调整后的所述权重值存储到用户的个人信息中;在用户登录时,读取所存储的所述权重值并对应调整所述映射语料库。
采用上述方案,本发明建立了具有词性权重优化和学习功能的语料库,对语义进行了映射和归类,同时建立了映射语义之间的回答;从而能够运用自然语言来与人进行交流,准确性较高,还提供了语言交流和语音提醒功能;并且实现了人与机器之间的真实语言对话,使用户得到真实语言对话的体验和乐趣。
具体实施方式
本发明的目的是构建一个在文字交互的基础上,还能够用语音交互,具有智能的聊天系统,或者是机器人,以满足人们的需求。以下对本发明的较佳实施例加以详细说明。
本发明提供了一种语音聊天系统,具体地说,为了实现自然语言交互,本发明可以采用三大基本模块的基本框架:自动语音识别模块(声音到文本、Automatic Speech Recognition、ASR、Speech to Text、STT),用户的自然语音通过自动语音识别得到相应的文本,即语音识别模块用于将输入语音转化为输入文本;口语文本理解回答模块(文本到文本、Text to Text、TTT),即用于根据输入文本得到输出文本的文本理解回答模块,据此智能聊天系统对文本进行口语理解,产生回答文本,这个过程中会使用各种需要的语料库和系统的聊天纪录历史信息;用于将输出文本转换成输出语音的语音合成模块(文本到声音、Speech Synthesis、Text to Speech、TTS),由语音合成模块将回答文本通过语音和用户进行交互。如果不考虑自然语言交互,仅考虑文本交互的角度,可以仅包括文本理解回答模块。
自动语音识别模块和语音合成模块可以使用现有市场上提供的模块,包括在嵌入式平台上的相应的模块软件,对其要求主要是要识别准确率高,合成效果最佳。
对于文本理解回答模块,本专利使用的理解方法是将语义进行映射和归类,同时建立映射语义之间的回答,较传统方法而言,实现简单,但会面临巨大的语义空间和类别。人发出的口语声音信号经由自动语音识别模块变成相应的文本文字,口语理解回答模块将输入的文本文字进行处理并且根据对话语料库和对话上下文给出文本回答,最后语音合成模块会将得到的文本回答转换成声音信号,和使用者交互。当然也可以是简单的过程:口语理解回答模块将输入的文本文字进行处理并且根据对话语料库和对话上下文给出文本回答,不包括声音的输入或输出。
如图1所示,语音聊天系统能以用户的语音输出作为系统的输入,例如通过话筒,将语音信号传至语音识别模块1,将语音转化为文本,进入口语文本理解回答模块2,在这个模块中将会执行图2的整个过程和使用相应的数据库,并返回相应的回答语句文本,回答语句文本将会进入语音合成模块3,将文本转换成语音,通过喇叭让用户能听到反馈。本发明不仅能用于语音聊天,还可以应用于各种信息查询系统、自动导游系统、自动介绍系统以及语言学习系统等等,可以在各种需要信息输出的场合使用,不仅能减少人力成本,同时能提高信息的准确度以及对信息的管理。
本发明所述智能聊天系统的文本口语理解和回答,可以通过汉语词性标注,得到关键词集合,然后由这个集合和口语文本理解语料库映射到一个概念语句上;根据概念语句、对话语料库、历史纪录信息和信息数据库或网络给出对概念语句的回答。如图3所示,在口语文本理解回答模块2,其主要过程是将输入文本通过分词单元的词性标注4,对所述输入文本进行词性标注,得到具有词性标注的词语集合;然后映射单元,即映射模块5,根据所述词语集合,搜索映射语料库7,映射得到概念语句;然后搜索单元,即搜索模块6,根据所述概念语句,搜索对话语料库8,映射得到输出文本。其中会涉及到两种数据库,其中映射语料库7,即数据库7是描述的从关键词集合到概念语句的映射,具体的描述格式可以如图4所示,其中定义了14种汉语词性,以及给出了每一组关键字集合应该对应的一个概念语句;对话语料库8,即数据库8主要是记录对概念语句回答,图5是直接对概念语句的回答的具体格式描述,不涉及到环境和历史信息;图6是同时根据历史信息、环境信息以及当前的概念语句给出的回答语句的描述和记录;图7是默认回答库,程序会在需要的时候从默认回答库中按指定方式给出输出文本。例如,当用户说“你的名字是什么”,通过语音识别模块在较好条件下能得到“你的名字是什么”,通过词性标注会得到一个分词及词性结果,“你(代词)的(助词)名字(名词)是(动词)什么(代词)”,进入映射过程,通过词性标注结果集合与概念语料库中进行比较评分,会得到三个最高分的概念语句,例如分数从高到低排列“你的名字是什么”,“叫什么名字”,“你知道名字吗”,显然表达的就是最高分的意义,其也就是映射得到的概念语句,根据概念语句,搜索对话语料库,就能得到回答。对于某些语句,例如“喜欢”,此时系统需要知道上下文的环境,通过前项信息匹配,就能知道如何回答,比如“你喜欢什么电影?”等等。
所述智能聊天系统,或者所述文本理解回答模块,还可以包括预处理单元,用于将来自所述分词单元的所述词语集合,进行替换词语集合信息、增加对话标志或者设置对话标志位,得到供所述映射单元使用的所述词语集合。
所述智能聊天系统,或者所述文本理解回答模块,还可以包括后处理单元,用于将来自所述搜索单元的所述输出文本,进行以下处理:加入或存储历史信息、设置谈话主题、加入搜索得到的相关信息,得到输出到语音合成模块的所述输出文本。
利用上述预处理单元和后处理单元,可以增加信息的准确度,便于理解用户的信息,以及发出让用户易于理解和准确度更高的信息。
在此基础上,本发明还提供了一种智能聊天系统的实现方法,如图8所示,用于包括根据输入文本得到输出文本的文本理解回答模块的智能聊天系统,其包括步骤:
A1、建立基于XML的映射语料库和对话语料库,所述映射语料库建立和存储关键字到概念语句的映射关系,所述对话语料库建立和存储概念语句到输出文本的映射关系。步骤A1还可以包括:对所述映射语料库的词性设置权重值,其中,所述权重值可以采用正交优化或两次正交优化方法获得。具体的正交优化或两次正交优化方法在后面进行详细说明。
A2、对所述输入文本进行词性标注,得到具有词性标注的词语集合。词性标注用于后续的匹配计算步骤。在步骤A2之前,还可以包括步骤:将输入语音转化为输入文本,即收集外部的语音信息,转化为文字信息。如果不考虑自然语言交互,仅考虑文本交互的角度,可以省略输入语音转化为输入文本的步骤。
A3、对所述词语集合和所述映射语料库的关键词的词语集合进行匹配计算,得到概念语句。在步骤A3之前,还可以包括步骤:B1、判断输入文本存在下述情况:出现指示代词、主题没有变化、或者需要加入常识,则分别对应执行预处理步骤:替换词语集合信息、增加对话标志或者设置对话标志位,否则执行步骤A3;B2、判断预处理是否完成,是则返回成功标志,直接进入后处理步骤给出最后的输出文本,否则返回失败标志,执行步骤A3。其中,替换词语集合信息,是在当前用户的输入文本含有指示代词时,需要进行替换,比如用户输入:“那个城市漂亮吗?”此时可以查询聊天的历史记录或存储在数据库的信息,例如,历史信息存储的城市是深圳,则需要进行替换成,深圳漂亮吗?并作后续处理。对话标志主要是指明谈话主题是否发生了转换,当有新的主题出现时,就要修改谈话主题。比如,开始时用户在谈论天气,但突然变成汽车,此时就要修改谈话主题,增加或设置对话标志位,使得历史信息失效或者改变。设置对话标志是与增加对话标志相似的概念,当第一次出现主题时需要增加对话标志,当主题变化时需要设置对话标志。
A4、根据所述概念语句,搜索所述对话语料库,生成输出文本。在步骤A4之后,还可以包括后处理步骤:加入或存储历史信息、设置谈话主题、加入搜索的相关信息。其中,历史信息包含了与用户曾经交谈的句子、以及一些其它的重要信息,如说话者的名字、年纪、爱好等等;谈话主题是指当前谈论的话题,比如天气、股票、新闻、文化、体育等等,这是为机器人对信息的搜索和回答的有效提示;搜索的相关信息是指,根据谈话主题,可以通过搜索数据库或网络来满足用户的需求,比如,谈到天气时,根据用户给出的时间和地点,给出相应城市或者地区的天气,或者给出天气的变化等,通过查询这些搜索得到的相关信息,可以给出用户需要的回答。并且,通过上述后处理步骤,可以用于增加回答准确度,使得输出文本准确性更高。
在步骤A4之后,还可以包括步骤A5:将输出文本转换成输出语音。如果不考虑自然语言交互,仅考虑文本交互的角度,可以省略输出文本转化为输出语音的步骤。
在步骤A4之后,还可以包括步骤A6,用户对所述输出语音进行评价,所述文本理解回答模块根据所述评价调整所述权重值。此时,还可以为每一个用户建立个人信息档案,即还包括为用户存储个人信息步骤,并将所述权重值存储到用户的个人信息中;在用户登录时,读取所述权重值并对应调整所述映射语料库。其中,评价是人为主观的,对于系统的回答,用户可以给出三个等级的评价,比如,很好、还行、不好,或者其它等级的其它评价,本发明对此不加以额外限定。系统获得评价之后,还可以通过语音给出确认信息;同时系统根据结果,对所述映射语料库的词性的权重值进行调整。
本发明还提供了一种口语理解的方法。由于用户使用环境的安静程度的不同和所使用的语音识别软件自身的特点、以及口语本身具有的一些重复、省略、停顿、病句以及对同一个语义具有多种丰富的表达方法的特点,使得自动语音识别的输出结果具有不确定性和多样性,因此,按照常用的自然语言理解的规则方法很难进行语义的解析和表达。其实人类在嘈杂环境下进行聊天交流的时候,有时候也不能听到对方说的每一个词语,但是如果能听懂其中关键的几个词语,并且根据部分的上下文环境,就能恢复出对方所要表达的意思。所以在此,使用关键词(keywords)到概念语句(concept sentence)的映射来获得说话者的语义,并且概念语句直接由相应的自然语句来表示。
图2是口语文本理解回答的流程图。
首先通过分词模块9,得到具有词性标注的词语集合,汉语分词已经有较多的研究,并且有较高的正确率,在此不再赘述;同时根据聊天的历史信息,当输入语句出现一些指示代词,或者主题不变的谈话,或是常识性知识需要加入时,就需要进行预处理;根据需要进行预处理10,即前处理10,把一些必要的信息替换、增加或者是进行对话标志位的设置,系统可以通过直接返回一个标志位,来表示预处理的结果。如果预处理返回标志成功,处理会直接进入后处理模块14而给出最后的输出文本;如果预处理之后还要进行处理,将会进入匹配排序模块11,根据图4所示的语料库,将输入的词性标注集合和语料库中keys属性描述的备选的词性集合进行匹配计算,不同的词性拥有不同的权重,对语料库中的每一个备选的概念语句都会给出一个分数,例如“你叫什么名字”,本句中最能表达语义的就是名词“名字”,其他的相对来说重要性弱些,所以在进行匹配时,应该匹配重要程度最高的词性;这种词性的匹配程度直接影响概念语句的准确度。
该匹配排序模块最后会用得分最高的3个pattern构成一个集合。因为语音识别固有的不足以及使用环境的影响,可能会出现识别出来的文字根本不是一个完整的语句,甚至是混乱的文字,这种情况下得到的分词结果会很差,通过映射,得到的映射语句的分数都为零,在这种情况下,认为聊天系统根本没有听清楚说话者,叫概念语句集合设置为空。
如果该集合是空,直接就入如图7所示的默认语料库;如果集合非空,选择其中最高得分语句与第一门限值作比较12,当得分小于门限时也直接进入如图7所示的默认语料库,当得分不小于门限时将会成功的得到映射的概念语句,其对应的pattern就作为概念语句。其中,在确定所述第一门限值时,可以通过选取一个100句比较典型的测试集,通过匹配,给测试结果打分,得分最高的门限就被选作了此处的第一门限值。
得到概念语句后,通过搜索模块13,依据一些历史信息和如图6所示的语料库,试图给出应答文本,这是一个搜索过程,用当前的概念语句和上一个系统回答语句作为输入来搜索,因为不一定同时满足两个输入,所以有可能搜索的结果是空。如果搜索出了回答文本,则视为成功,将会直接将回答输出送入后处理模块14来进行处理;如果搜索的结果为空,则视为失败,会进入如图5所示的语料库来进行回答,最后的输出结果同样要进入后处理模块14。输出语句在后处理模块14进行相应的处理,其中会加入一些历史信息,或者存储历史信息,进行谈话主题的状态设置,已经相关信息的查询搜索,最终会形成回答文本,返回给语音合成模块。最终回答文本的生成,可以根据对概念语句的回答、信息的搜索和历史信息来共同生成。
本发明还提供了一种对话语料库的结构与描述存储方法。为了完成描述关键字到概念语句的映射关系、根据概念语句和上下文环境下给出对应输出语句的描述和存储,设计了一种基于XML(extendable markup language)的存储结构描述语言来描述这些非结构化的数据结构,并用XML文档来描述语料库,用关系数据库来存储数据。映射语料库和对话语料库及历史信息都使用XML来描述和存储。并且定义了描述语料所需要的属性节点。数据库中存储了词性集合,概念语句,回答语句以及历史信息等等。其特点是容易组织和管理,可以动态的修改语料库的内容。各种语料库能够通过人工的方法手动修改和添加数据,同时能够直接通过语音交互来完成语料库的添加和修改,并且能自动存储特定的数据。
本发明还提供了一种通过语音来学习知识的过程和方法。聊天系统的知识积累可以通过对话者用自然交互的方式来告知,并且通过相互的询问来确定是否让聊天系统获得了用户给予的知识,同时聊天系统会给出相应的自然语言反馈。
本发明还提供了一种聊天上下文信息的纪录和使用方法。该系统在和人交互的过程中会自动地将一些信息存储到上下文的纪录当中,对一些重要的信息和对话内容进行存储,并且在对话过程中会添加相应的信息,根据信息动态地组织回答语句。
本发明还提供了词性权重的优化和在线学习方法。在将关键词映射到概念语句的时候,每个不同词性的关键词会拥有不同的权重。使用优化的方法来得到各个词性最优的权重值,并且能够通过在线学习来动态修改权重值。在将关键词映射到对应的概念语句时,需要对各个关键词的词性进行加权,不同词性的关键词在表示句子语义的过程中具有不同的权重,通常一个句子的名词和动词具有较高的权重,对句子语义的理解有重要的意义。然而,自然语言的词性种类很多,各个词性的权重并没有一个确定的数值。因此,提出了词性权重的优化方法和在线的学习方法,来达到关键词到概念语句映射正确率的最大化。
如图9所示,是一种用正交优化来确定词性权重的方法。由于汉语词性众多,并且在语义表达上不同词性的重要程度并不确切知道,需要通过优化方法来得到各个词性的权重。按一般语言学的观点以及常识,选择了动词、名词、代词、数词、形容词,地名词、副词、习语、时间词、助词、语气词、人名、区别词、方位词,这14类相对重要的词。首先根据需要和经验获得14个需要的词性,并且依据语言学的知识将14个词性分成两组,例如将名词、动词、代词、地名词、形容词、时间词、人名,这7个词性为第一组;将语气词、方位词、区别词、助词、习语、副词、数词,这7个词性为第二组,将通过两组正交优化试验来获得一个可用的权重集合。第一组试验时,用相对更重要的7个属性作为因素,三个水平,例如3、2、1,选择L18-3-7标准的正交试验表。另外的7个词性会被置为0。在测试集合的建立时,每一句话都是口语类型的,并且在测试集合中尽量让每一个词性都按自然的概率出现。在每一次试验中,测试集合中的每一句话,人工地按照匹配出来的概念语句的合理性给与打分,并将得分当作本次试验的结果。这样会进行18个回合的试验。通过第一组试验,会得到一组当前最优的权重值。在第二组试验时,相对重要的7个词性赋予第一组试验得到权重值。对剩下的7个词性的权重用正交优化,例如使用2、1、0的水平,同样选择L18-3-7标准的正交试验表。用与第一次相同的测试集合和评分标准,优化出余下的7个词性。最后,将两次得到的词性结合起来,获得系统可用的14个词性的权重值。
如图10所示,是各种词性权重的在线学习过程。用户进入词性训练模式时,将通过语音来训练数据库,首先用户给定一个测试的输入语音进入映射模块15,映射模块15就是图2所示的映射模块5并且将映射结果以语音的形式给用户和判别模块16,用户会根据反馈给出评价,判别模块16会通过评价来在权重调整模块17中按算法调整权重,将调整后的权重送入映射模块15,进行下一轮的权重调整,直到最后达到用户满意的匹配度。例如,当用户说“你的特长是什么”,然后系统经过处理后会问“你说的是‘你的特长是什么吗’”或者会问“你说的是‘你是什么吗’”,显然用户会回答“是”,或者“不是”,系统根据回答,就会调整词性权重,使得尽可能地回答正确。
本发明还提供了一种自然语言行为驱动方法。用自然口语的方式来发出命令驱动,在词性集合到概念语句,以及从概念语句到最终的回答和反馈,有特定的格式和动作驱动脚本,能够用口语方式自然地驱动系统或发出命令。对于行为驱动,不再是使用系统提前规定的短语或简单的祈使句来驱动系统的行为,而是对于一些自然的命令表达方式能够给出正确的反应,同时通过语音来进行确认和响应来达到提醒用户的功能。这种行为驱动方式更加符合人们的日常习惯,对于新的使用者不需要太多的学习就可以用自然语言驱动系统。
本发明还提供了一种语音聊天的嵌入式实现系统。对于这种语音聊天的设计框架,有多种实现方式,比如使用语音识别芯片完成识别的功能和映射存储语料库、使用嵌入式系统实现与普通处理器相类似的语音识别和语音合成,及语言理解。嵌入式的实现方式是其中一种,需要在特定的嵌入式操作系统下完成自动语音识别、语义理解和语音合成,同时要进行集成,不同平台下的各种实现软件会有差别。这种方案完全具备语音聊天系统固有的特性,同时具备了便于携带,耗电少以及精致小巧,价格低廉的特点。
本发明还提供了一种用声音自然地进行信息的查询和回答方法。信息的查询和反馈都是使用自然语音,并且能够给出符合人类语言的回答方式。可以满足人们用一种自然语言交流的方式来获得自己需要的信息,采用互动的方式进行信息的询问、回答和确认。并且数据可来自于已有的数据库和来自于互联网。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。