首页> 中国专利> 一种实现多路对话的人-机汉语口语对话系统的方法

一种实现多路对话的人-机汉语口语对话系统的方法

摘要

本发明属于计算机及信息服务技术领域,涉及一种实现多路对话的人-机汉语口语对话系统的方法。包括设置:一个用于进行句法语义分析的自然语言理解模块、一个在运行时可生成多路对话管理器的对话管理模块、一个进行数据库操作的数据库管理模块,和一个用于生成真实应答语言的自然语言生成模块。各模块预留有领域任务相关的操作接口。本发明可根据不同的领域任务需求进行配置,高速高质量地建立相应的汉语口语对话系统。本发明可为广泛用于建立多种信息服务系统,如火车订票、航班信息查询、电话号码查询、娱乐信息查询等。

著录项

  • 公开/公告号CN1455357A

    专利类型发明专利

  • 公开/公告日2003-11-12

    原文格式PDF

  • 申请/专利权人 郑方;

    申请/专利号CN03136950.2

  • 发明设计人 郑方;邬晓钧;

    申请日2003-05-23

  • 分类号G06F17/27;G06F3/00;

  • 代理机构北京清亦华专利事务所;

  • 代理人廖元秋

  • 地址 100084 北京市海淀区清华园清华大学西14-4-202

  • 入库时间 2023-12-17 15:01:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-07-16

    未缴年费专利权终止 IPC(主分类):G06F17/27 授权公告日:20050914 终止日期:20130523 申请日:20030523

    专利权的终止

  • 2009-05-27

    专利申请权、专利权的转移(专利权的转移) 变更前: 变更后: 登记生效日:20090417 申请日:20030523

    专利申请权、专利权的转移(专利权的转移)

  • 2005-09-14

    授权

    授权

  • 2003-11-12

    公开

    公开

说明书

技术领域  本发明属于计算机及信息服务技术领域,特别涉及可根据不同领域特点和任务需求,快速实现相应的人-机汉语口语对话系统的方法。

背景技术  人-机对话系统(Man-Machine Dialogue System),简称对话系统,是以人类语言为媒介与使用者进行信息交流的计算机程序集合,该使用者称为对话系统的用户(User)。人-机汉语口语对话系统是特指使用汉语口语为交流媒介的对话系统,计算机接收使用者的口语输入,经过理解后给出相应的回答,并可同时执行相应的操作。

语言是人类使用最多最方便的交流方式之一,生活中最直接自然的就是人类口语。当前是信息时代,人们对各类信息服务的需求越来越大,口语对话系统能以较好的交互方式提供这些信息。在某些情况下,例如开车时,人的手眼都没有空闲,只能通过对话(嘴巴和耳朵)来获取信息。对话系统可广泛用于多种信息服务领域,例如火车订票、航班信息查询、影视信息查询、电话号码查询、高考成绩查询、股票买卖等。

典型的对话系统由语音识别、自然语言理解、对话管理、自然语言生成、语音合成等模块组成,如图1所示。对话系统的输入为用户语音,输出为应答语音。语音识别模块可采用多种识别技术加以实现,如关键词识别和连续语音识别,将用户语音识别为文本。识别文本可以是单个的句子,也可以是多个句子候选,或者是词网格,由自然语言理解模块翻译成系统内部的语义信息表示。对话管理模块根据这个回合(Turn)的语义信息,结合对话历史(Dialogue History)和对话上下文(Dialogue Context)决定应该回答的语义,即应答焦点。自然语言生成模块根据应答语义生成真正应答的文本,由语音合成模块将文字转化为语音反馈给用户。某些对话系统的信息用数据库来存储,这时由对话管理模块负责数据库的各种访问操作。

自然语言理解模块的研究由来已久,目前研究主流为用基于规则的语言理解方法来实现,即根据已有的文法进行句法语义分析,其基础是形式语言理论。

形式语言理论将一个文法G定义为四元式:

                           G=(VT,VN,S,P)                     (1)

其中VT是一个非空有限集,它的每个元素都是终结符。所谓终结符是组成语言的基本符号,从语法分析的角度来说,可以说终结符是一个语言不可再分的原子符号。在实际应用中VT被称为词表或词典(Lexicon或Vocabulary)。VN是一个非空有限集,它的每个元素都是非终结符。非终结符是语法范畴,它代表一定的语法概念,每个非终结符也表示一些符号串(由终结符和非终结符组成)的集合。S是一个特殊的非终结符,S∈VN,也称为起始符号。它代表所定义语言中的“句子”。P是一个有限产生式集合,每个产生式的形式是α→β,其中α∈(VT∪VN)*且至少含有一个非终结符;β∈(VT∪VN)*;S必须至少在某个产生式的左部出现一次。其中(a)*表示长度可为零的字符串,串中每个字符都属于集合a。产生式也可称为语法规则。

有了文法的定义之后,可定义由文法如何生成语言。如果A→γ是一个产生式,且α,β∈(VT∪VN)*,称αAβ直接推出αγβ,记作αAβαγβ。如果有α1α2,α2α3,…,αn-1αn,则称α1可推导出αn。用表示从α1出发经过一步或若干步,可推导出αn;用表示从α1出发经过零步或若干步,可推导出αn

假定G是一个文法,S是它的起始符号,如果则称α是一个句型,如果α只含终结符,则称α是一个句子。文法G所产生的句子的全体是一个语言,记为L(G), >>>L>>(>G>)>>=>{>α>|>Sver>>⇒>+>>α>,>α>∈>>V>T>*>>}>->->->>>(>2>)>>>s>

对于文法G,如果它的任意一个产生式都满足A→γ的形式,其中A∈VN,β∈(VN∪VT)*,那么称G是一个2型文法,由一个2型文法生成的语言称为一个2型语言。直观地说,2型文法要求每一个产生式的左部是一个单独的非终结符。2型文法的推导不要求依赖于特定的上下文,因此这种文法也称为上下文无关文法。

文法是描述语言结构的手段,使用文法来判定句子的合法性并给出句法结构,则需要用到文法分析器。分析算法可以这样描述:给定输入句子,在文法规则的各种各样的组合方式之中,找出一种可能是该句子文法树结构的组合方式的搜索过程。这意味着两个目标,一是判断句子是否被文法所接受,二是如果被接受,则同时给出句法结构。在分析句子之前,一般先要根据VT对句子进行分词(Partition),即确定句子是由哪些终结符顺序组成的,然后再根据文法进行分析。

图表分析(Chart Parsing)是一种典型的高效的分析方法。该方法涉及到三个主要的数据结构:

a.图表(Chart),它是存放当前所有已经分析得到的部分结果的数据结构,通过这个机制,可以避免已有的成分被多次地归结,实现共享。这里归结指的是根据给定的规则集,将当前句子中匹配某规则右边符号串的部分替换为该规则左边的非终结符。

b.活动弧(Active Arc),指当前已经扩展了一部分但仍没有得到最后归结的规则实例。它的表示方法与规则类似,但需在右部符号间插入一个圆点,指示下一步的匹配位置。比如NP→ART o ADJ N这条活动弧,它指示下一个待扩展的符号是ADJ这个终结符,其中代表名词短语的NP、代表冠词的ART、代表形容词的ADJ以及代表名词的N均是非终结符。

c.议程表(Agenda),新归结得到的成分存放在议程表中,直到它们均已被处理(被扩展)为止。

自底向上的图表分析方法,如图2所示,其步骤为:

1)如果议程表非空,则转步骤3);

2)如果还有输入,则将下一输入词的所有解释加入议程表,否则算法结束;

3)从议程表中取出一个成分,称为当前成分;

4)在文法中查找以当前成分为第1个右部符号的规则,生成相应的匹配位置为1的一个活动弧;

5)应用弧扩展算法将当前成分加入图表。具体为:

a.将当前成分加入图表;

b.枚举所有以当前成分为下一个匹配符号的活动弧,生成新的活动弧,并递进匹配位置;

c.对于以当前成分为最后一个匹配符号的活动弧,归结生成以该活动弧左项符号为符号的新成分,放入议程表中;

6)转步骤1)。

文法分析器给出了句子的句法结构后,自然语言理解模块可进一步对该句的语义进行分析,给出以对话系统内部形式表示的句子语义。

常见的自然语言理解模块主要用2型文法描述和分析处理书面语。口语与书面语相比有其特点:句式较简单,句法结构较随意,常伴有多种口语语言现象(重复、修正、省略、指代等)。而汉语口语与英语口语相比,句式更灵活,语序更随意。传统的上下文无关文法很难有效地表示汉语口语的诸多现象,因此难以满足汉语口语对话系统的自然语言理解要求。

对话管理(Dialogue Management)模块是对话系统的核心模块,其作用是在人机对话系统中指导产生计算机这一方的所有话语。目前常见实现对话管理模块的方法包括有限状态方法和基于规划的方法。

有限状态的对话管理方法将对话分为多个状态,每个状态与某个问题相联系,用户的应答是触发状态转移的条件。对话状态和状态转移构成一个对话状态的网络,决定了系统在对话任一状态下的应答,也就决定了整个对话过程。

这一对话管理方法有很大的局限性。首先,由于对话过程已由对话系统事先确定,用户只能配合由计算机主导的对话而不能主导对话的进行。如果用户在对话的某回合中提供的信息多于系统事先定义的内容,系统根据既定的功能处理时会忽略多余信息,但在后面的对话过程中却会向用户询问那些被忽略信息;在对话过程中,用户有时会改变原来的意图,更改某些信息,或有时没有听清系统的应答而会要求计算机重复原先的问话,而这时系统已无法回退到之前的状态,也就无法正确回应用户。其次,有些对话任务是需要系统和用户进行协商的,对话相关的各项信息彼此约束相互影响,用户不可能在对话一开始就确定所有信息,只能通过和系统的交流讨论才能完成。这时对话管理的有限状态方法也无法适用。最后,对话系统在应用时可能会涉及领域任务内多个相关主题,在对话过程中可以在多处自然地出现主题转移。有限状态方法难以将这些情况都事先定义到对话状态网络中。

基于规划的对话管理方法并不事先确定对话过程,而是将特定的对话任务划分为多个小目标,依据当前对话状态动态地决定对话的进展方向,控制对话过程逐步实现这些小目标,最终完成整个对话任务。这一方法避免了有限状态方法中事先定义状态和转移的工作,表达对话状态的能力强,便于处理复杂的任务,且对话控制较为灵活,易于实现对话过程的人机混合主导。

基于规划的对话管理方法有多种表现形式,往往要根据领域任务来设计相应的控制策略。表格是常见的控制形式,存储了各种领域信息条件下该如何应答的信息。这样的结构不是人们认识事物的自然形式,需要进行总结归纳,当任务复杂或涉及多个主题时,难以完全列举各种信息状态,也就难以用这一形式的对话管理。

目前,对话系统的实现是一个很困难的过程。由于当前技术水平的限制,语音识别、自然语言理解、自然语言生成模块都要根据具体任务来设计,特别是对话管理模块。在对话系统中,人-机双方所交流的多项信息是和领域任务有关的。这些信息之间有相互关系,它们的整体构成了领域概念。为了达到信息服务的目的,对话系统应合理安排各项信息的交流次序,就是领域任务本身的结构。领域概念和领域任务的结构,是对话管理模块控制对话过程的根据。因此对于不同的领域任务,往往要重新设计对话控制流程,协调各模块的运行。

目前已有的实现对话系统的方法,大都应用了有限状态的对话管理方法。这一方法的对话控制较简单,对话过程可以用有限状态网络来表示,因此易于实现一定的可移植性。但如前所述该对话管理方法有较大的局限性,使得相应的实现对话系统的方法只能用于名址录、调查问卷、简单的列车时刻查询等领域任务的对话系统。基于规划的对话管理方法适用范围广,但由于对话控制极大依赖于具体领域任务,所以该方法不易于实现多路对话的汉语口语对话系统。

发明内容    本发明的目的是为克服现有技术的不足之处,提出一种实现多路对话的人-机对话系统的方法,可广泛用于快速构建信息服务的汉语口语对话系统。本发明将自然语言理解、对话管理、数据库访问、自然语言生成有机结合在一起,协调各模块的工作;针对汉语口语特点的自然语言理解模块,以及基于主题森林的对话管理模块,可根据领域任务进行配置。

本发明提出一种实现多路对话的对话系统方法,包括以下步骤:

1)设置一个自然语言理解模块,用于对每一用户语句进行句法语义分析,其结果用语义框架形式来表示;

2)设置一个对话管理模块,在系统运行时生成多个对话管理器(对话管理模块的应用实例),每个对话管理器用于管理一路对话,接收语义框架,推理得到应答焦点,调用自然语言生成模块得到应答文本;

3)设置一个数据库管理模块,用于实现对话管理模块给出的数据库操作要求,包括数据查询和数据更新;

4)设置一个自然语言生成模块,根据对话管理模块给出的对话知识、本回合用户语义、上下文信息和应答焦点,生成真正的应答文本,同时修改相应的上下文信息。

5)上述1)-4)中各模块预留有领域任务相关的操作接口。

所说的自然语言理解模块是一个强大的汉语口语分析器,它使用基于语义类的上下文无关增强文法来描述汉语口语语言,实现方法包括以下步骤:

从配置文件中读入基于语义类的上下文无关增强文法;

对输入的汉语口语句子进行分词,如果输入为语音识别结果的关键词网格,则直接进行步

骤1-3)中的处理;

对分词结果进行句法分析;

取最优的句法分析结果进行语义分析。

所说的基于语义类的上下文无关增强文法,具有如下特征:

a)根据领域任务定义文法中所有的终结符、非终结符和规则;

b)终结符为按语义分类的关键词,关键词可包含阿拉伯数字和英文字母,每个关键词都有相应的拼音;

c)每一条规则都被赋以一个优先级级别;

d)一个优先级的规则集合可以是词法分析的或非词法分析的;

e)所说的规则与语义直接关联,每一条规则都对应一个语义分析函数。

所说的语义分析的方法是根据句法分析结果的归结情况,依次递归调用规则对应的语义分析函数。语义分析的结果采用语义框架的形式来表示,所说的语义包括以下几类:用户语句包含的领域信息(各信息项的条件,对已交流信息项的操作),用户要问的领域信息,用户的寒暄语义,用户对对话过程的控制语义(取消前一回合、重复上回合应答、对话重置、要求系统帮助等),用户对系统应答的确认语义,用户要求系统列举信息的语义,用户语句类别(陈述句、各类别的疑问句),以及句法分析错误的信息。

所说的对话管理模块的实现方法为:

2-1)从主题森林文件中读入领域概念的结构和领域任务的结构;

2-2)进行对话知识管理(对话过程中已交流的信息称为对话知识,相应的维护操作称为对话知识管理)和对话上下文信息的管理。将语义框架放到对话上下文中进行理解,从而决定是否需要对数据库进行操作,并进行应答推理,决定当前应答焦点(应答的语义),调用自然语言生成模块生成具体的应答文本。

主题森林由许多棵主题树组成,每棵主题树用树状的结构表示领域任务中单个主题的所有信息。每棵主题树有一个主题结点作为根结点;根结点连有三个固定的分枝——主属性、次属性和附加属性,分别表示主题中不同重要程度的信息;每个分枝有多个叶子结点存储该主题的信息项;有中间结点表示叶子结点间的关系,即主题的各项信息间的关系。所说的主题森林文件,是离线生成的一个文件,按前序遍历方式(为已有技术),将主题森林各结点内容写在文件中。

步骤2-2)有以下特征:

a.对话知识管理是基于在步骤2-1)中读入的主题森林结构;

b.上下文信息包括各回合的主题和语义、各种对话状态(提问、回答、列举、确认、错误、求助等)、下回合期待的主题和语义等;

c.预留根据领域任务设置相应操作的接口;

d.预留根据领域任务定义b所列内容以外的其它上下文信息的接口;

e.数据库操作和应答推理是根据读入的主题森林结构进行的。

本发明的实现多路对话的对话系统方法,还可设置语音识别模块用于将用户输入语音变成识别出的关键词网格。

可设置语音合成模块将系统的应答文本变成应答语音。

还可设置领域任务需要但与1)-4)中所说的各模块无关的其他模块。

本发明具有以下特征:

1)可用来快速有效地建立用于信息服务的汉语口语对话系统,且系统支持多路并发的对话;

2)用主题森林来表示领域概念的结构和领域任务的结构,在此基础上实现复杂的涉及多主题的对话管理;

3)自然语言理解模块和对话管理模块可根据领域任务配置;数据库管理模块与对话管理模块间有抽象接口,根据领域任务实现;自然语言生成模块由对话管理模块调用,根据领域任务来实现。

4)可设置领域任务相关的操作、定义领域任务相关的上下文信息,用于对话管理和自然语言生成。

本发明可用于建立多种信息服务系统,如火车订票、航班信息查询、电话号码查询、电影信息查询、电视节目查询、音乐资料查询等。

附图说明

图1为已有的典型对话系统的模块组成。

图2为已有的自底向上的图表分析算法流程图。

图3为本发明实现多路对话的对话系统方法总体框架示意图。

图4为本发明的句法分析方法实施例流程图。

图5为本发明的每次循环中的句法分析方法实施例流程图。

图6为本发明的添加新活动弧的方法实施例流程图。

图7为本发明的递进活动弧的方法实施例流程图。

图8为本发明的归结新成分的方法实施例流程图。

图9为本发明的每次循环中的结果优化方法实施例流程图。

图10为本发明的最后的结果优化方法实施例流程图。

图11为本发明的对话管理运行时的方法实施例流程图。

图12为利用本发明方法的航班信息主题树实施例结构示意图。

图13为利用本发明方法的航班信息查询系统主题共享信息索引实施例示意图。

图14利用本发明方法具体构建航班信息查询系统的方法流程框图。

图15利用本发明方法具体构建电话号码查询系统的方法流程框图。

具体实施方式  本发明提出的一种实现多路对话的对话系统的方法,结合附图详细说明如下。

本发明实现多路对话的对话系统方法总体框架如图3所示,包括以下步骤:

1)  设置一个自然语言理解模块,用于对每一用户语句进行句法语义分析,其结果用语义框架形式来表示;

2)  设置一个对话管理模块,在系统运行时生成多个对话管理器(对话管理模块的应用实例),每个对话管理器用于管理一路对话,接收语义框架,推理得到应答焦点,调用自然语言生成模块得到应答文本;

3)  设置一个数据库管理模块,用于实现对话管理模块给出的数据库操作要求,包括数据查询和数据更新;

4)  设置一个自然语言生成模块,根据对话管理模块给出的对话知识、本回合用户语义、上下文信息和应答焦点,生成真正的应答文本,同时修改相应的上下文信息。

上述1)-4)中各模块预留有领域任务相关的操作接口。

上述的自然语言理解模块具体实现方法如下:

1-1)从配置文件中读入基于语义类的上下文无关增强文法;

1-2)对输入的汉语口语句子进行分词,如果输入为语音识别结果的关键词网格,则直接进行步骤1-3)中的处理;

1-3)对分词结果进行句法分析;

1-4)取最优的句法分析结果进行语义分析。

本发明的自然语言理解模块使用基于语义类的上下文无关增强文法,根据领域任务定义文法中所有的终结符、非终结符和规则,具体包含以下五类规则:

A.苛刻型规则,表示为A*→α1α2…αn,(n≥1),意义为右边相邻项之间没有任何别的终结符;

B.跳跃型规则,表示为A→α1α2…αn,(n≥1),意义为右边相邻项之间可以有较少数量的其它终结符;

C.长程型规则,表示为A~→α1α2…αn,(n≥1),意义为右边相邻项之间可以有任意数量的其它终结符;

D.无序型规则,表示为A@→α1α2…αn,(n≥1,1≤i<j≤n,αi≠αj),意义为右边各项的先后顺序任意;

E.无序型规则,表示为A#→α1α2…αn,(n≥1,1≤i<j≤n,αi≠αj),意义为右边各项先后顺序任意且可以在句型中相互交叉,但句型中的任一终结符都不会同时属于右边两项。

上述增强的文法规则带有优先级,用0-9表示十个优先级,其中0优先级最高,9优先级最低,且有词法分析或非词法分析的属性。对于每一优先级的规则集合,如果某非终结符出现在某规则左边,但没有出现在其它规则右边,则称这一非终结符为该优先级的顶级符号。这种增强的文法较好地解决了口语中重复、修正、停顿、语气词等多种现象下的自然语言理解问题,较好地处理了汉语语序随意的问题。

所说的基于语义类的上下文无关增强文法用两个配置文件进行定义,一个文件给出所有的基于语义类的关键词,一个文本给出所有的规则。

步骤1-2)所说的分词,是指根据读入的关键词将输入的汉语口语句子划分为关键词串,句子中出现的非关键词被视为垃圾词,垃圾词算作一个特殊的关键词。分词采用关键词的最长匹配原则,即对于不同的分词结果,取包含最多汉字的结果;包含汉字同样多时,取关键词数目最少,即相对匹配最长的结果;以上都一样时任取一个结果。

步骤1-3)的句法分析方法是一个多次循环的过程。根据优先级先后,每一次循环使用某一优先级的规则集合,然后对本次循环的分析结果进行取舍。具体实现方法实施例如图4所示,其步骤如下:

01)初始化,将每个关键词所属的语义类都加入议程表;

02)从最高优先级到最低优先级:

03)选择规则集为当前优先级的所有规则;

04)进行句法分析;

05)删除所有活动弧;

06)对本优先级的分析结果进行优化;

07)将图表中所有结果放入议程表并清空图表;

08)最后的结果优化。

其中04)所说的句法分析方法实施例如图5所示,其步骤为:

(1)如果议程表为空,则结束;

(2)从议程表中取出一个成分,称为当前成分,加入词图;

(3)添加新的活动弧,即在当前规则集中查找可以当前成分为第1个右部符的规则,生成相应的匹配位置为1的一个活动弧,见图6;

(4)递进活动弧,即枚举所有当前成分可为下一个匹配符号的活动弧,生成新的活动弧,并递进匹配位置,见图7;

(5)归结新成分,即对于可以当前成分为最后一个匹配符号的活动弧,归结生成以该活动弧左项符号为符号的新成分,放入议程表中,见图8(算法中的th1和th2是预设的阈值,表示语句中各语义成分间可能的垃圾词长度);

(6)转步骤(1)。

每次循环都对分析结果进行优化可减少分析的中间结果,使得算法整体计算量大大减少,还可及早消除分析过程中的歧义,这些都有利于对话系统即时生成应答。06)所说的优化具体方法实施例如图9所示,包括以下步骤:

(1)计算分析结果各成分的位置;

(2)如果当前优先级是词法分析:

(3)删除本次分析未归结为顶级符号的成分;

(4)比较本次分析得到的顶级符号成分;

(5)如果占位不冲突,则都保留;

(6)否则,判断是否是同一非终结符成分且占位真包含;

(7)是,则根据消歧标准只保留某个顶级符号成分;

(8)否,都保留;

(9)如果当前优先级不是词法分析:

(10)比较本次分析得到的顶级符号成分;

(11)如果占位不冲突,则都保留;

(12)否则,根据消歧标准删除某个冲突的顶级成分,转步骤(10);

(13)实现顶级成分的保留,即将其所有非终结符子成分保留,使得它们不参与以后的分析。

其中(7)所说的消歧标准为:

a.后出现的成分保留(针对重复和修正现象);

b.结构简单的保留;

c.如果输入网格为语音识别结果,则语音识别得分高的保留。

由于歧义可能产生于不同优先级的分析,所以还需进行最后的结果优化,消歧标准同上。

上述08)中所说的最后的结果优化具体方法实施例如图10所示,包括以下步骤:

(1)把每次循环保留的子成分恢复;

(2)比较所有的顶级符号成分;

(3)如果不冲突,则都保留;

(4)否则,根据消歧标准只保留较优的;

(5)实现顶级成分的保留,即保留该成分及其所有子成分作为最终分析结果。

由于采用了句法语义合一的规则,所以句法分析的结果可直接进行语义分析。1_4)所说的语义分析具体方法为:根据分析结果的归结情况,依次递归调用所用规则相应的语义分析函数。语义分析结果用语义框架的形式来表示。

本发明的对话管理模块的具体实现方法如下:

2-1)从主题森林文件中读入领域概念的结构和领域任务的结构;

2-2)在对话过程的每一回合,进行对话知识管理和对话上下文信息的管理。将语义框架放到对话上下文中进行理解,从而决定是否需要对数据库进行操作,并进行应答推理,决定当前应答焦点,调用自然语言生成模块生成具体的应答文本。

步骤2-1)的具体实现方法为:

01)读入主题森林的各结点内容。

主题森林中每个结点都含有结点名称和一个编号,该编号唯一标识了结点相应的应答焦点。此外,主题结点内容还包括主题名称、主题类型、相应的数据库表名称、查询失败时应答焦点的编号;主属性、次属性、附加属性分枝都是以中间结点开始的一棵子树,所有的中间结点内容还包括子结点的数目和子结点间的关系,关系可以为“与”或“或”;叶子结点的内容还包括表示该结点对应的语义(与语义框架中该语义的表示一致),即存储哪一项领域信息、该信息相应的数据库表中字段名称、该信息数据的类型、该项信息的默认值。

02)建立各主题共享信息索引。

不同主题会有类似语义的信息项,使得对话过程中主题转换时出现省略现象。完成01)后,要建立一个从语义到叶子结点的索引,表示各类语义有哪些类似的信息项,以及这些信息项在各主题树中的位置。

在对话过程的每一回合,对话管理模块的输入是自然理解模块输出的语义框架,输出是应答焦点。步骤2-2)的具体实现方法实施例如图11所示,包括以下步骤:

(1)判断是否为错误框架、寒暄语义或系统命令,若是转(18)进行应答;

(2)若否,则根据上下文和系统缺省信息确定当前主题

(3)根据上下文恢复省略的语义;

(4)领域任务相关的系统默认语义的处理;

(5)进行领域任务需要而语义框架不能表示的语义操作;

(6)判断是否有用户确认信息,若是转(18)进行应答;

(7)若否,则判断是否有用户的列举要求,若是,转(18)进行应答;

(8)若否,则更新对话知识;

(9)判断是否缺少关键信息,若是转(18)进行应答;

(10)若否,则数据库查询;

(11)判断是否数据库查询失败,若是转(18)进行应答;

(12)若否,则更新对话知识;

(13)如果有用户提问,转(18)进行应答;

(14)若无,则判断某信息项条件是否唯一,否则转(18)提问该信息项;

(15)若是,则判断数据库查询结果是否唯一,是则转(18)回应主题信息;

(16)若否,但如果某信息项条件唯一且查询结果不唯一,则转(18)提问该信息项;

(17)如果某信息项条件唯一且查询结果唯一,转18)提问其它某个查询结果不唯一的信息

项;

(18)调用自然语言生成模块,得到真正的应答文本;

(19)更新上下文信息。

在上述过程中,(4)(5)(19)都留有设置领域相关操作的程序接口。

本发明中对话管理模块和数据库管理模块之间采用抽象的接口。对话管理模块给出数据库操作类型和数据条件,取得数据库操作结果。具体的数据条件和数据操作结果格式,可采取领域任务最方便的形式。

上述的数据库管理模块,具体实现方法为:

1)根据实际的数据库内容,先定义数据条件和数据操作结果格式;

2)实现具体的数据库操作,将操作的输入输出转化为接口要求的格式。

本发明中,对话管理模块决定应答焦点之后,调用自然语言生成模块来得到具体的应答文本。各主题相关的应答焦点和各信息项相关的应答焦点,由主题森林中各结点内容给出的唯一编号来表示;其它与对话相关的应答焦点,由对话管理模块另外编号来表示。

本发明的自然语言生成模块的方法如下:

1)根据对话管理模块给出的应答焦点和对话状态信息,生成具体的应答文本;

a.如果应答焦点为主题信息,则给出主题信息及主题信息的确认;

b.如果应答焦点为信息项,则给出关于本信息项的提问、确认、列举条件、列举数据库查询结果等,根据对话状态信息来确定具体给出哪一种;

c.如果应答焦点是其它,则给出相应的错误语义、寒暄语义、系统命令和数据库查询

  失败的信息。

2)设置相应的对话状态信息。

本发明可用于建立多种信息服务系统,如火车订票、航班信息查询、电话号码查询、电影信息查询、电视节目查询、音乐资料查询等。

应用例一:用本发明的方法建立一个文本输入文本输出的提供航班信息查询服务的对话系统。

该系统的建立步骤如下:

1)配置适用该领域任务的自然语言理解模块;

2)配置适用该领域任务的对话管理模块;

3)实现该领域任务的数据库管理模块;

4)实现该领域任务的自然语言生成模块;

5)构建该领域任务的对话系统。

配置自然语言理解模块分三个步骤:

1-1)定义关键词语义类。

分析确定航班信息查询领域任务涉及的语义和每类语义的关键词。例如地点是一类语义,涉及的关键词包括各城市名称。有些关键词可属于不同的语义类,如数字1至7,既可用作星期几,也可以用来表示数量。飞机型号语义类包含“747”、“74F”这样含有阿拉伯数字和英文字母的关键词。给每一关键词注拼音,阿拉伯数字可按发音注音,英文字母“A”可注为“e_a”,“B”可注为“e_b”,以此类推。给每一关键词的语义类定义一个符号,作为文法中的终结符。

1-2)定义基于语义类的上下文无关增强文法。

1-3)与文法中每一规则相对应,实现对该规则进行语义分析的函数。这些函数将语句包含的语义信息,填入到语义框架中。这些语义既包括航班信息查询领域内的信息项,也包括对话过程中寒暄、求助等一般性语义,以及语句的句式信息。

配置对话管理模块分如下步骤:

2-1)设置主题森林文件的内容。

航班信息主题树可以构造如图12所示,建立过程是:先建立航班信息主题结点,在主题结点下建立三个分枝(并标明与该主题相关的数据库)各分枝的叶子结点与中间结点的关系为:起点城市、终点城市、航班的日期、航班号是航班信息查询的关键信息,属于主属性分枝,且“起点城市”结点和“终点城市”之间是“与”的关系,它们与“航班号”结点是“或”的关系,这三个结点与“日期”结点是“与”的关系。起飞时间和到达时间是“或”的关系,属于次属性分枝。其它航班信息相关的机型和航空公司,属于附加属性分枝,用“或”关系连接。接着填写每个叶子结点的内容,标明它们所对应的语义,相应的数据库表中字段名称,数据类型等。“起点城市”结点有一个默认值,存放系统所在的城市。

航班信息查询对话系统可能涉及多个主题,除了以上的主题外,还有票价信息查询、航线信息查询、航空公司信息查询等多个主题,都建立相应的主题树。

按前序遍历方式,将主题森林各结点内容写在文件中。

当对话管理模块读入该主题森林时,会自动建立各主题共享信息索引,如图13所示。

2-2)实现领域任务相关的系统默认语义的处理;

2-3)实现领域任务需要而语义框架不能表示的语义操作;

2-4)定义领域相关的上下文信息,实现更新操作。

实现数据库管理模块,方法如下:

3-1)定义数据条件和数据操作结果格式。

对于航班信息来说,起点城市、终点城市、航班号等数据的条件是等于,日期的条件可以是等于、小于、大于或在…之间,机型的条件是等于或不等于,……;每个条件可以是用逻辑关系“与”和“或”联结的条件组合;采用字符串的格式来表示所有的数据条件和操作结果。

3-2)实现具体的数据库操作,将操作的输入输出转化为接口要求的格式。

用Microsoft SQL Server对航班数据库进行管理时,实际操作是通过SQL语句实现的。数据库管理模块要根据抽象接口中的内容,生成相应的SQL语句;要将SQL语句执行的结果再转换成接口要求的格式。

实现自然语言生成模块的方法如上所述。

运行该领域任务的对话系统的方法如图14所示,其具体方法为:根据步骤1)中的配置内容,初始化自然语言理解模块;

5-1)根据步骤3)中的配置内容,初始化数据库管理模块;

5-2)在系统运行时,

5-3)如果有新的对话,则初始化一个新的对话管理器;

5-4)如果对话结束,则释放相应的对话管理器资源;

5-5)如果某路对话有用户输入,

5-6)将用户输入送入自然语言理解模块;

5-7)将语义框架送入相应的对话管理器;

5-8)将应答文本送回相应的用户。

在上述过程中,初始化一个对话管理器的实质是:

a.对话管理模块根据步骤2)中的配置内容生成一个新的实例,包含一套新的内部数据来记录对话过程,进行应答推理;

b.设置该实例与自然语言理解模块、数据库管理模块和自然语言生成模块的调用接口。

而释放对话管理器资源就是删除该路对话相关的对话管理模块实例。

由于本应用例的对话系统是文本输入文本输出的,所以现有模块已能实现所求功能。

应用例二:用本发明的方法建立一个语音输入语音输出的提供电话查号服务的对话系统。

该系统的建立步骤如下:

1)配置适用该领域任务的自然语言理解模块;

2)配置适用该领域任务的对话管理模块;

3)实现该领域任务的数据库管理模块;

4)实现该领域任务的自然语言生成模块;

5)加入语音识别和语音合成模块,构建该领域任务的对话系统。

1)-4)各步骤的具体方法与前一应用例相同,但内容根据领域任务有所不同。

由于该应用例要求电话语音输入和电话语音输出,所以构建该领域任务的对话系统时还要加入语音识别和语音合成模块,具体方法如图15所示:

5-1)初始化自然语言理解模块;

5-2)初始化数据库管理模块;

5-3)初始化语音识别和语音合成模块;

5-4)在系统运行时,

5-5)如果有新的对话,则初始化一个新的对话管理器;

5-6)如果对话结束,则释放相应的对话管理器资源;

5-7)如果某路对话有用户语音,

5-8)将用户语音送入语音识别模块;

5-9)将关键词网格送入自然语言理解模块;

5-10)将语义框架送入相应的对话管理器;

5-11)将应答文本送入语音合成模块;

5-12)将应答语音送回相应的用户。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号