对话处理方法和对话管理系统的制作方法
【专利摘要】本发明提供一种对话处理方法和对话管理系统。所述方法包括:获取与任务相关的用户需求数据;根据所述用户需求数据和预先配置的与所述任务相关的任务参数更新用户的对话状态;根据所述对话状态生成至少一个候选动作数据;根据所述至少一个候选动作数据生成回应文本数据。
【专利说明】对话处理方法和对话管理系统
【技术领域】
[0001]本发明涉及计算机的人机交互,尤其涉及一种对话处理方法和对话管理系统。
【背景技术】
[0002]传统的任务型对话系统包括语音识别模块、自然语言理解模块、对话管理模块、后端数据处理模块、自然语言生成模块以及语音合成模块。在构建一个面向具体任务的对话系统时,除了语音识别模块和语音合成模块之外,其他四个模块都需要根据具体应用任务定制化开发。
[0003]关于任务的定制化开发,目前主要有两种方式:
[0004]1、根据具体任务的业务逻辑重新开发各个模块。以这种方式定制的系统一般都能很好满足具体任务需求,但是开发量大。
[0005]2、将对话系统状态表示和系统动作抽象化,使用增强学习的方法,通过与环境交互学习来构建对话系统。以这种方式定制的系统需要大量的对话语料来完善对话策略,实现难度也比较大,并且学习到的策略可理解性差,系统可控度低。
【发明内容】
[0006]本发明的目的在于提供一种对话处理技术,通过在对话系统中对涉及任务的对话服务进行定制,提高对话管理系统的可扩展性。
[0007]根据本发明的一方面,提供一种对话处理方法,所述方法包括:获取与任务相关的用户需求数据;根据所述用户需求数据和预先配置的与所述任务相关的任务参数更新用户的对话状态;根据所述对话状态生成至少一个候选动作数据;根据所述至少一个候选动作数据生成回应文本数据。
[0008]根据本发明的另一方面,提供一种对话管理系统,所述系统包括:需求获取装置,用于获取与任务相关的用户需求数据;对话状态更新装置,用于根据所述需求获取装置获取的用户需求数据和预先配置的与所述任务相关的任务参数更新用户的对话状态;动作生成装置,用于根据所述对话状态更新装置更新的对话状态生成至少一个候选动作数据;文本生成装置,用于根据所述动作生成装置生成的至少一个候选动作数据生成回应文本数据。
[0009]本发明的对话处理方法和对话管理系统可在对话系统中对涉及具体任务的对话服务进行定制,并且基于对话管理系统通过定制的对话服务进行对话交互处理,从而在引入新任务的对话服务时,仅需要配置对话状态参数和处理规则,不需要重新开发对话服务,大大地提高了所述对话管理系统的可扩展性,并且节省研发、部署的成本。
【专利附图】
【附图说明】
[0010]图1示出应用了根据本发明的示例性实施例的对话管理系统的对话服务定制的总体框架;
[0011]图2是示出根据本发明的示例性实施例的对话处理方法的流程图;
[0012]图3示出根据本发明的示例性实施例的对话参数的示例;
[0013]图4示出根据本发明的示例性实施例的HTTP数据访问的访问配置的示例;
[0014]图5示出根据本发明的示例性实施例的数据库访问的访问配置的示例;
[0015]图6示出根据本发明的示例性实施例的对话参数的属性配置的示例;
[0016]图7是示出根据本发明的示例性实施例的对话管理系统的逻辑框图。
【具体实施方式】
[0017]本发明的总体构思是,提供一种涉及任务的对话管理系统,通过对涉及具体任务的业务逻辑功能模块进行任务配置来实现涉及具体任务对话管理,从而可利用所述对话管理系统来实现新任务的对话定制,而不需要重新开发涉及所述新任务的对话服务,允许用户快速地应用定制的对话管理系统。另一方面,在对话交互的处理中,可通过所述对话管理系统来管理用户的对话状态,并且根据已有的任务配置来生成回应文本。
[0018]这里所说的任务配置包括涉及任务的对话状态的参数配置和涉及任务的业务规则配置。
[0019]下面结合附图详细地描述根据本发明的示例性实施例的对话处理方法以及对话管理系统。
[0020]为了直观地阐述本发明涉及的数据、规则以及本发明的思想,在本说明书中,仅以机票预订的任务为示例来具体描述服务定制、对话交互的处理以及对话管理。本领域的普通技术人员可以理解,本发明的应用不限于机票预订,而是适用于诸如就餐预订、酒店预订、电影票预订等各种涉及多轮交互的对话任务。
[0021]图1示出应用了根据本发明的示例性实施例的对话管理系统的对话服务定制的总体框架。本发明涉及的对话服务定制主要涉及块130?160。
[0022]参照图1,块110用于接收用户输入的自然语言表达的用户需求文本。块120用于通过自然语言解析获得所述用户需求文本的解析结果。
[0023]此后,块130用于将所述解析结果与环境特征参数结合进行用户的对话状态更新。该模块主要用于记录和维护对话管理系统的状态。
[0024]例如,用户说“我想定去上海的机票”,在对所述文本进行自然语言解析后可以得到用户意图(即任务)为“订机票”。其次,抽取对话时的环境信息,包括当前时间、用户所在地、历史动作等信息。
[0025]在进行对话定制时,可预先配置用于表示该任务涉及的任务参数的状态的槽位列表。例如,在定制“订机票”服务时,涉及到的槽位包括出发地、目的地、出发日期、出发时间、座位类型、飞机类型、机票价格、航空公司、出发机场、到达机场等。此外,还可配置与所述任务相关的情景先验信息,如时间先验信息(包括哪个月、星期几、几点钟等)、地域先验信息(包括是否工业城市、是否旅游区、城市规模类型等)以及历史动作信息(如上次询问到现在的交互轮数、上次确认到现在的交互轮数等)。
[0026]可选地,通过多个槽位表示所述与所述任务相关的任务参数的状态,将根据情景先验信息生成的对话参数分别表示为特征向量。
[0027]图3示出根据本发明的示例性实施例的对话参数的示例。其中,通过多个属性槽位来表示任务参数的状态,所述槽位的状态可以是空、默认值、多值、错误值和正常值之一;通过特征向量来表示时间先验信息、地狱先验信息以及历史动作信息。
[0028]此后,块140用于对更新的对话状态进行检查,并生成至少一个候选动作数据
(140)。该模块的主要目的是基于当前的对话状态,从所有系统动作中仅过滤出当前有效的系统动作,减少系统动作决策阶段错误率,输出候选动作列表。
[0029]该模块进行的检查可包括,但不限于,槽位默认值检查、需求细化检查(包括参数间的属性依赖检查和参数间的属性触发检查)、参数值确认检查以及参数澄清。以下将具体描述所述几种检查以及在对话定制中对所述检查的规则设置。
[0030]槽位默认倌.检杳
[0031]针对特定的任务,在一定的对话状态下,一些特征/属性可以取默认值,值的来源可以是任务定制,也可以来自于用户模型(如用户档案和交互历史等)。
[0032]通过检查任务定制的条件或者用户模型信息,如果有满足条件的默认值,则生成候选槽值默认动作。例如,如果一个用户经常预定经济舱机票,则新开启一次订票对话时,可以生成一个机票座位类型为“经济舱”的槽值默认动作。
[0033]在进行服务定制时,对于需要该动作的应用任务,开发者可以进行默认值的配置和用户模型服务的配置,配置缺省表示不使用这类动作。默认值配置包含目标槽位、默认值、和默认条件。如订机票任务中,可以配置:
[0034]flight fIight_leave_date [today]TARGET = flight_status
[0035](查询航班状态时,将出发日期默认为今天)
[0036]可配置用户模型服务的接口(包含服务的IP地址和端口),以通过所述用户模型来进行槽位默认值的检查。例如:
[0037]user—model—ip: 10.81.14.98
[0038]user—model—port:6101
[0039]需求细化检杳
[0040]为了完成目标任务,有时需要主动向用户询问必要的特征信息。
[0041]例如,为了完成机票预订,用户提供了目的地,就需要想用户询问出发地和出发日期。在当前状态下,可通过属性依赖检查和属性触发检查来对用户的需求进行细化处理。
[0042]属性依赖是指目标任务的完成依赖的参数(槽位),如机票的查询可以依赖于出发地、目的地、出发日期,机票价格可以依赖于航班号和座位类型等,应用开发者可方便地预先配置好这些依赖信息。属性触发指的是对于有连续性需求的用户,满足一个需求后,为完成下一个需求,需要主动去询问下个需求依赖的参数(槽位)。例如,在机票和酒店的混合任务中,用户完成机票预订后,对话服务可尝试主动询问用户希望预定目的地哪里的酒店。
[0043]在进行服务定制时,应用开发者可根据需求来配置属性依赖和属性触发,配置缺省表示不使用这类动作。例如,航班价格查询的属性依赖关系可包括:
[0044]flight flight_price flight_num|flight_seat_grade
[0045](航班价格依赖于航班号和座位类型)
[0046]flight flight_price flight_origin|flight_destinat1n|flight_leave_date Iflight_seat_grade
[0047](航班价格依赖于出发地、目的地、出发日期、座位类型)
[0048]属性触发关系:
[0049]flight END hotel = hotel_place
[0050](机票查询结束,触发酒店地点询问)
[0051]参数倌.确认检杳
[0052]在接收到的某个槽位值的置信度不是很高时,需要向用户确认是否是该值。需要进行确认的参数包括自然语言处理输出的低置信度槽位值、用户模型推荐的槽位值等。
[0053]因此,可查看当前的对话状态是否包括低置信度的槽位或用户模型推荐的槽位;如果包括低置信度的槽位或用户模型推荐的槽位,则生成参数值确认的候选动作数据。
[0054]参数澄清检杳
[0055]所述参数澄清是指在当前的对话状态中包含歧义的时候,对话服务主动询问用户涉及参数的具体意义。这类问题主要涉及一个值可能具有多种含义的情况或某个槽位可能去多个值的情况。例如,对话服务询问“您想订从哪到哪的机票? ”,用户回答“北京”,此时北京可能是出发地也可能是目的地,需要向用户澄清;再例如,用户说“我想定去广东的机票”,由于在广东多个城市有飞机场,所以需要询问用户具体想到哪个城市。
[0056]因此,在参数澄清检查处理中,检查当前用户的对话状态是否包含歧义槽或者歧义值。如果包含歧义槽或者歧义值,则生成澄清候选动作。
[0057]此后,优选地,还配置块150,用于根据所述用户的对话状态和决策规则,从所述至少一个候选动作数据选择优选动作数据。
[0058]在块140生成多个候选动作数据的情况下,可通过预先设置的决策规则从所述多个候选动作数据中选取一个作为确定的优选动作数据。
[0059]所述决策规则可以是预定的动作优先级或预设的动作决策模型。
[0060]例如,可预先设置按照以下(优先级高到低的)顺序选择优选动作:澄清动作、确认动作、槽位值默认动作、需求细化动作(属性依赖或属性触发)。
[0061]另一方面,可通过使用训练样本训练出的动作决策模型为所述多个候选动作计算特征函数的值,选择计算的特征函数的值最高的候选动作数据作为所述优选动作数据。
[0062]块160用于根据所述优选动作数据生成回应文本数据,并且将所述回应文本数据返回给用户。其中,可对确定为默认动作的优选动作赋予默认值,根据所述优选动作数据访问数据源调取所需的数据,以生成所述回应文本数据。
[0063]这里,所述数据源可以是本地数据源、HTTP网络数据源和/或数据库数据源。
[0064]在服务定制中,开发者可根据任务的需要以及资源状态选择适合的数据访问方式或多种访问方式的组合。
[0065]例如,可通过本地文件注册的方式将资源文件加入对话管理系统,注册文件每行注册一个本地资源文件,格式示例如下:
[0066]flight:flight, data flight_num|flight_origin|fIight_destinat1n|…
[0067](领域名:数据文件名\t数据文件每行格式)
[0068]HTTP网络数据源的访问一般仅支持JSON格式数据返回,在配置时需注明HTTP服务的域名和参数列表格式以及结果JSON数据格式。例如,图4示出根据本发明的示例性实施例的HTTP数据访问的访问配置的示例。其中,任务类型为机票预订,网址前缀为url_domain:rec.baidu.com/travel/ctrip/domestic_f light ?,参数格式为 deity =[fIight_origin] &acity = [fIight_destinat1n] &date = [flight_leave_date],并且制定数据格式为JSON。图5示出根据本发明的示例性实施例的数据库访问的访问配置的示例,在此不再详细描述其中的数据字段。
[0069]此外,生成的回应文本数据可以是结果摘要、目标结果和/或交互问题文本。结果摘要是对多条DATA返回数据的摘要展示,如订机票任务中某天从北京到上海的机票有20班,结果摘要就会对这些结果做重要信息汇总展示。目标结果是有确定槽位需求时,精准信息结果表示的生成,如用户问从北京到上海便宜的飞机多少钱,此时给出具体的数据。交互问题指的是需求细化、值确认、澄清时,系统对用户的主动问题生成,如询问用户“您想什么时候触发? ”,“您是想定经济舱机票吗? ”,“您的目的地具体是哪个?如广州、深圳、东莞
A-A- ”
寺〇 O
[0070]在所述总体框架中,也可不配置块150,而是由块160根据生成的任一候选动作数据生成所述回应文本数据。
[0071]此外,优选地,在所述总体框架中,还可配置冲突检查和/或数值推算(块170)。所述块170可用于对块2中要更新的对话状态数据进行冲突检查和/或数值推算,并且/或者由于对块160中通过数据源访问调取的数据进行冲突检查和/或数值推算。
[0072]下面将参照图6具体说明冲突检查和/或数值推算的规则设置和定制。图6示出根据本发明的示例性实施例的对话参数的属性配置的示例。
[0073]在块170,可配置以下数据冲突中的至少一个:对话参数超出值域、对话参数间发生隶属关系冲突以及对话参数间发生参数值比较关系冲突。
[0074]轺出倌域
[0075]超出值域是指槽位值(特征值)超出了预定义的取值范围。例如,在订机票任务中,用户说“预定去濮阳的飞机票”;但由于河南濮阳没有飞机场,目的地城市超出了取值范围。
[0076]在服务定制过程中,可定义各槽位的值域。例如,如图6所示,将flight_origin(航班出发地)的取值范围配置在文件flight_origin_range中。使用[]表示整数、浮点数(Int,float)类型等数据。
[0077]隶属关系冲突
[0078]如果两个相互间有隶属关系的槽位,其分别对应的值之间没有满足这种隶属关系,就会发生冲突。例如,用户两次分别说“预定去北京的飞机票”、“到虹桥机场”,由于机场和城市之间有隶属关系,需要检查槽位值之间的这种关系发生冲突。
[0079]在服务定制中,可定义槽位之间的隶属关系数据。例如,如图6所示,“flight_origin>flight_ori_airport”表示出发机场隶属于出发城市,而且具体的隶属关系数据可在文件origin_airport中查找到。
_0] 参数值比较冲突
[0081]有些槽位(特征)之间有固定的比较关系,如大于关系、小于关系、不等关系等。如果特定槽位对应的值之间不满足这种关系就会冲突。例如用户两次分别说了 “我想定去上海的飞机票”、“从上海出发”,出发地和目的地不能相同,此时都为上海,则发生冲突。
[0082]在服务定制中,可定义槽位之间比较关系定制,包括大于关系槽、小于关系槽、不等关系槽等。例如,如图6所示,“uneq: flight_destinat1n”表示“flight_origin (航班出发地)”不能等于“flight_destinat1n(航班目的地)”。
[0083]在块170,还可配置以下至少一种数据推算规则:
[0084]算术运算
[0085]如果属性之间有算术运算关系,则可以根据已有的值通过运算得到新的槽位值,有加减乘除等。例如,机票价格折扣等于机票当如价格除以机票原价。因此,当获知机票原价1000元和机票现价300元时,就可以通过除法运算得到机票折扣为3.0折。
[0086]在服务定制中,可定义槽位之间的算术运算关系(arithmetic_operat1ns)。例如,如图6所示,可以将票价的折扣槽位配置为:
[0087]arithmetic_operat1ns:fIight_ticket_price/flight_ticket_ori_price。
[0088]新值引入
[0089]如果在任务中,一个槽位的值可以由另一个槽位的值完全确定,则在被依赖的槽位值被确定后,可以相应地更新其依赖槽位的值。例如,在订机票的任务中,用户说了要乘坐航班3u8994,对话服务可以直接从后台获取出发地是南京,目的地是成都。
[0090]在服务定制中,可定义槽位之间的触发关系(trigger)。例如,如图6所示,可将航班号槽位表示为:
[0091]trigger:f light_origin | f light_destinat1n {air_line}
[0092]旧倌清宇
[0093]如果两个槽位值之间存在互斥关系,其中一个槽位更新后出现了与领域槽位值的互斥,则需清空其中一个槽位的值。例如,在预定火车票的任务中,用户说要乘坐硬卧车票,如果历史属性中有高铁列车类型,则列车类型与座位类型冲突,需要清空其中一个属性值。
[0094]在服务定制中,可定义槽位之间的互斥关系(exclus1n)。例如,可将座位类型槽位(train_seat_grade)表不为:
[0095]exclus1n:train_seat_grade {ticket_seat_map}
[0096]以上参照图1详细描述了在对话管理系统中对涉及具体任务的对话服务定制。通过该对话管理系统,在设计新的任务的对话服务时,无需重新开发所述任务的对话服务,而仅需对涉及新任务的对话状态参数和规则进行配置/定制,大大地提高了所述对话管理系统的可扩展性,并且节省研发、部署的成本。
[0097]以下将参照图2详细地说明根据本发明的示例性实施例的对话处理方法。
[0098]图2是示出根据本发明的示例性实施例的对话处理方法的流程图。通过定制的图1示出的块130?块160执行所述对话处理方法。
[0099]参照图2,在步骤S210,获取与任务相关的用户需求数据。
[0100]根据本发明的示例性实施例,所述用户需求数据包括对用户需求的文本数据进行自然语言解析获得的解析结果,例如通过图1中的块120的自然语言解析处理获得的解析结果。
[0101]在步骤S220,根据所述用户需求数据和预先配置的与所述任务相关的任务参数更新用户的对话状态。
[0102]由于前述已对块130进行了定制,因此,可根据所述解析结果对块130定制的对话参数进行更新。
[0103]具体地,根据本发明的示例性实施例,如果所述解析结果指示对话的初次交互,则根据所述解析结果获取预先配置的与所述任务相关的任务参数,并且根据所述预先配置的与所述任务相关的任务参数和情景先验信息生成对话参数。
[0104]根据本发明的可选实施例,通过多个槽位表示所述与所述任务相关的任务参数的状态,将根据情景先验信息生成的对话参数分别表示为特征向量。
[0105]例如,在初次交互中,获知用户意图/任务为预订机票,则根据块130的定制生成包括出发地、目的地、出发日期、出发时间、机票舱位、当前时间、当前地点、哪个月、星期几、几点钟、是否为工业城市、是否为旅游区、城市规模类型、上次询问到现在的交互轮次上次澄清到现在的轮次等等的对话参数,并且根据解析结果中包含的数据以及环境信息进行所述对话参数的更新。
[0106]此后,在步骤S230,根据所述对话状态生成至少一个候选动作数据。
[0107]具体地,步骤S230可包括:根据预设的检查条件对所述对话参数进行状态检查,并且根据所述状态检查的结果生成所述至少一个候选动作数据。
[0108]如前所述,在块140中已定制了多个检查条件。所述预设的检查条件可包括以下检查条件中的至少一个:槽位默认值检查条件、参数间的属性依赖检查条件、参数间的属性触发检查条件、参数值确认检查条件以及参数澄清条件。
[0109]例如,在预订机票的任务对话的首次交互中,可默认地将机票舱位设置为“经济舱”;再例如,在预订机票的任务对话的首次交互中,由于机票的查询依赖于出发地、目的地、出发日期,机票的价格依赖于航班号和机票舱位,因此,需要生成询问这些信息的候选动作;再例如,在前次交互中询问“您想订从哪到哪的机票? ”后,用户回答“北京”,此时北京可能是出发地也可能是目的地,因此需要生成向用户澄清目的地还是出发地的候选动作。
[0110]在步骤S240,根据所述至少一个候选动作数据生成回应文本数据。这里,可根据所述至少一个候选动作数据当中的任一候选动作数据生成所述回应文本数据。根据动作的类型,生成的回应文本数据可以是结果摘要、目标结果和/或交互问题文本。
[0111]在生成回应文本数据的过程中,可涉及本地或外部数据源的访问,以调取生成所述回应文本数据所需的参数数据(如根据出发地、目的地、出发日期来查询航班信息)。根据本发明的示例性实施例,步骤S240可还包括:根据更新的对话参数和所述优选动作数据从数据源获取回应所需的参数数据,并且根据获取的参数数据和所述优选动作数据生成所述回应文本数据。
[0112]在生成回应文本数据的过程中,还可涉及采用默认值的对话参数,则还需填充所述对话参数的默认值。
[0113]根据本发明的优选实施例,所述方法可还包括:根据所述用户的对话状态和决策规则,从所述至少一个候选动作数据选择优选动作数据。所述决策规则可以是预定的动作优先级和预设的动作决策模型之一。
[0114]在所述决策规则是预设的动作决策模型的情况下,所述从所述至少一个候选动作数据选择优选动作数据的处理包括:基于所述动作决策模型分别获取每个所述候选动作数据对应的特征函数值,选取与所述特征函数值中的最大值对应的候选动作数据作为所述优选动作数据。通过预先训练的动作策略模型来进行候选动作的选择,可更准确地确定适于所述任务并且适合当前对话状态的动作数据。
[0115]根据本发明的前述优选实施例,在步骤S240中,根据所述优选动作数据生成回应文本数据。步骤S240可包括:根据更新的对话参数和所述优选动作数据从数据源获取回应所需的参数数据,并且根据获取的参数数据和所述优选动作数据生成所述回应文本数据。步骤S240可还包括:如果所述优选动作数据所需的参数数据采用默认值,则使用相应的默认值填充所述参数数据。
[0116]由于在图1所示的对话定制处理中,还可定制块170,因此,根据本发明的优选实施例,步骤S220还包括:对要更新的对话参数的值分别进行数据冲突检测,并且如果检测到数据冲突,则清空已更新的对话参数的值或者发送用于确认要更新的对话参数的值是否正确的消息。
[0117]其中,所述数据冲突可包括以下冲突中的至少一个:对话参数超出值域、对话参数间发生隶属关系冲突以及对话参数间发生参数值比较关系冲突。
[0118]根据本发明的另一优选实施例,步骤S220还包括:对要更新的对话参数的值分别进行参数值推算,并且使用推算得到的值更新所述对话参数。
[0119]所述参数值推算可包括:参数值的算术运算、新参数值引入以及参数值的旧值清空等。参照图1中块170的配置和定制已具体说明了所述参数值推算的处理。
[0120]根据本发明的另一优选实施例,步骤S240可还包括:对获取的参数数据分别进行数据冲突检测,并且如果检测到数据冲突,则丢弃被检测到数据冲突的参数数据。同理,步骤S240可还包括:对获取的对话参数的值分别进行参数值推算,并且使用推算得到的值和所述优选动作数据生成所述回应文本数据。
[0121]如上参照图1?图6对本发明实施例的对话管理系统多个模块的配置和定制以及本发明实施例的对话处理方法的详细描述可以看出,本发明的对话处理方法可在对话系统中对涉及具体任务的对话服务进行定制,并且基于对话管理系统通过定制的对话服务进行对话交互处理,从而在引入新任务的对话服务时,仅需要配置对话状态参数和处理规则,不需要重新开发对话服务,大大地提高了所述对话管理系统的可扩展性,并且节省研发、部署的成本。
[0122]图7是示出根据本发明的示例性实施例的对话管理系统的逻辑框图。
[0123]参照图7,根据本发明的示例性实施例的对话管理系统包括需求获取装置710、对话状态更新装置720、动作生成装置730和文本生成装置740。
[0124]需求获取装置710用于获取与任务相关的用户需求数据。根据本发明的示例性实施例,所述用户需求数据包括对用户需求的文本数据进行自然语言解析获得的解析结果。
[0125]对话状态更新装置720用于根据需求获取装置710获取的用户需求数据和预先配置的与所述任务相关的任务参数更新用户的对话状态。
[0126]根据本发明的示例性实施例,如果所述解析结果指示对话的初次交互,则对话状态更新装置720用于从所述解析结果获取预先配置的与所述任务相关的任务参数,根据预先配置的与所述任务相关的任务参数和情景先验信息生成对话参数,并且用于根据所述解析结果更新所述对话参数。
[0127]根据本发明的示例性实施例,对话状态更新装置720还用于通过多个槽位表示所述预先配置的与所述任务相关的任务参数的状态,并且用于将根据情景先验信息生成的对话参数分别表示为特征向量。
[0128]动作生成装置730用于根据对话状态更新装置720更新的对话状态生成至少一个候选动作数据。
[0129]具体地,动作生成装置730用于根据预设的检查条件对所述对话参数进行状态检查,并且根据所述状态检查的结果生成所述至少一个候选动作数据。
[0130]所述预设的检查条件包括以下至少一个检查条件:槽位默认值检查条件、参数间的属性依赖检查条件、参数间的属性触发检查条件、参数值确认检查条件以及参数澄清条件。
[0131]文本生成装置740用于根据动作生成装置730生成的至少一个候选动作数据生成回应文本数据。
[0132]根据本发明的优选实施例,所述系统还包括动作决策装置(未示出),用于根据所述用户的对话状态和决策规则,从所述至少一个候选动作数据选择优选动作数据;并且,文本生成装置740用于根据所述优选动作数据生成回应文本数据。
[0133]所述决策规则可以是预定的动作优先级和预设的动作决策模型之一。
[0134]其中,所述动作决策装置用于基于所述动作决策模型分别获取每个所述候选动作数据对应的特征函数值,选取与所述特征函数值中的最大值对应的候选动作数据作为所述优选动作数据。
[0135]根据本发明的优选实施例,文本生成装置740用于根据更新的对话参数和所述优选动作数据从数据源获取回应所需的参数数据,并且根据获取的参数数据和所述优选动作数据生成所述回应文本数据。
[0136]根据本发明的可选实施例,如果所述优选动作数据所需的参数数据采用默认值,则文本生成装置740使用相应的默认值填充所述参数数据。
[0137]根据本发明的优选实施例,所述系统还包括数据冲突检测装置(未示出)。对话状态更新装置720和/或文本生成装置740可通过所述数据冲突检测装置进行数据冲突的检测。
[0138]所述数据冲突检测装置对以下数据冲突中的至少一个进行检测:对话参数超出值域、对话参数间发生隶属关系冲突以及对话参数间发生参数值比较关系冲突。
[0139]所述数据冲突检测装置对对话状态更新装置720要更新的对话参数检测数据冲突。如果检测到数据冲突,则对话状态更新装置720清空已更新的对话参数的值或者发送用于确认要更新的对话参数的值是否正确的消息。
[0140]所述数据冲突检测装置对对文本生成装置740获取的参数数据分别进行数据冲突检测。如果所述数据冲突检测装置检测到数据冲突,则文本生成装置740丢弃被检测到数据冲突的参数数据。
[0141]根据本发明的另一优选实施例,所述系统还包括数据推算装置(未示出)。对话状态更新装置720和/或文本生成装置740可通过所述数据推算装置进行数据值的推算。
[0142]所述数据推算装置对对话状态更新装置720要更新的对话参数的值分别进行参数值推算,对话状态更新装置720使用推算得到的值更新所述对话参数。
[0143]所述数据推算装置对文本生成装置740获取的对话参数的值分别进行参数值推算,文本生成装置740使用推算得到的值和所述优选动作数据生成所述回应文本数据。
[0144]如上参照附图对本发明实施例的对话管理系统多个模块的配置和定制、本发明实施例的对话处理方法以及对话管理系统的详细描述可以看出,本发明的对话处理方法以及对话管理系统可在对话系统中对涉及具体任务的对话服务进行定制,并且基于对话管理系统通过定制的对话服务进行对话交互处理,从而在引入新任务的对话服务时,仅需要配置对话状态参数和处理规则,不需要重新开发对话服务,大大地提高了所述对话管理系统的可扩展性,并且节省研发、部署的成本。
[0145]需要指出,根据实施的需要,可将本申请中描述的各个步骤拆分为更多步骤,也可将两个或多个步骤或者步骤的部分操作组合成新的步骤,以实现本发明的目的。
[0146]上述根据本发明的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、R0M、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的处理方法。此外,当通用计算机访问用于实现在此示出的处理的代码时,代码的执行将通用计算机转换为用于执行在此示出的处理的专用计算机。
[0147]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【权利要求】
1.一种对话处理方法,其特征在于,所述方法包括: 获取与任务相关的用户需求数据; 根据所述用户需求数据和预先配置的与所述任务相关的任务参数更新用户的对话状态; 根据所述对话状态生成至少一个候选动作数据; 根据所述至少一个候选动作数据生成回应文本数据。
2.根据权利要求1所述的方法,其特征在于,所述用户需求数据包括对用户需求的文本数据进行自然语言解析获得的解析结果。
3.根据权利要求2所述的方法,其特征在于,所述根据所述用户需求数据和预先配置的与所述任务相关的任务参数更新用户的对话状态的步骤包括: 如果所述解析结果指示对话的初次交互,则根据所述解析结果获取预先配置的与所述任务相关的任务参数,根据所述预先配置的与所述任务相关的任务参数和情景先验信息生成对话参数, 根据所述解析结果更新所述对话参数。
4.根据权利要求3所述的方法,其特征在于,通过多个槽位表示所述与所述任务相关的任务参数的状态,将根据情景先验信息生成的对话参数分别表示为特征向量。
5.根据权利要求4所述的方法,其特征在于,所述根据所述对话状态生成至少一个候选动作数据的步骤包括: 根据预设的检查条件对所述对话参数进行状态检查, 根据所述状态检查的结果生成所述至少一个候选动作数据。
6.根据权利要求5所述的方法,其特征在于,所述预设的检查条件包括槽位默认值检查条件、参数间的属性依赖检查条件、参数间的属性触发检查条件、参数值确认检查条件以及参数澄清条件。
7.根据权利要求3?6中任一项所述的方法,其特征在于,所述方法还包括: 根据所述用户的对话状态和决策规则,从所述至少一个候选动作数据选择优选动作数据,并且 所述根据所述至少一个候选动作数据生成回应文本数据的步骤包括:根据所述优选动作数据生成回应文本数据。
8.根据权利要求7所述的方法,其特征在于,所述决策规则是预定的动作优先级和预设的动作决策模型之一, 其中,所述从所述至少一个候选动作数据选择优选动作数据的处理包括:基于所述动作决策模型分别获取每个所述候选动作数据对应的特征函数值,选取与所述特征函数值中的最大值对应的候选动作数据作为所述优选动作数据。
9.根据权利要求8所述的方法,其特征在于,所述根据所述优选动作数据生成回应文本数据的处理包括: 根据更新的对话参数和所述优选动作数据从数据源获取回应所需的参数数据,并且 根据获取的参数数据和所述优选动作数据生成所述回应文本数据。
10.根据权利要求9所述的方法,其特征在于,所述根据所述优选动作数据生成回应文本数据的处理还包括: 如果所述优选动作数据所需的参数数据采用默认值,则使用相应的默认值填充所述参数数据。
11.根据权利要求10所述的方法,其特征在于,所述根据所述解析结果更新所述对话参数的处理还包括: 对要更新的对话参数的值分别进行数据冲突检测, 如果检测到数据冲突,则清空已更新的对话参数的值或者发送用于确认要更新的对话参数的值是否正确的消息。
12.根据权利要求11所述的方法,其特征在于,所述数据冲突包括以下冲突中的至少一个:对话参数超出值域、对话参数间发生隶属关系冲突以及对话参数间发生参数值比较关系冲突。
13.根据权利要求12所述的方法,其特征在于,所述根据所述解析结果更新所述对话参数的处理还包括: 对要更新的对话参数的值分别进行参数值推算,并且使用推算得到的值更新所述对话参数。
14.根据权利要求11所述的方法,其特征在于,所述根据获取的参数数据和所述优选动作数据生成所述回应文本数据的处理还包括: 对获取的参数数据分别进行数据冲突检测, 如果检测到数据冲突,则丢弃被检测到数据冲突的参数数据。
15.根据权利要求14所述的方法,其特征在于,所述根据获取的参数数据和所述优选动作数据生成所述回应文本数据的处理还包括: 对获取的对话参数的值分别进行参数值推算,并且 使用推算得到的值和所述优选动作数据生成所述回应文本数据。
16.一种对话管理系统,其特征在于,所述系统包括: 需求获取装置,用于获取与任务相关的用户需求数据; 对话状态更新装置,用于根据所述需求获取装置获取的用户需求数据和预先配置的与所述任务相关的任务参数更新用户的对话状态; 动作生成装置,用于根据所述对话状态更新装置更新的对话状态生成至少一个候选动作数据; 文本生成装置,用于根据所述动作生成装置生成的至少一个候选动作数据生成回应文本数据。
17.根据权利要求16所述的系统,其特征在于,所述用户需求数据包括对用户需求的文本数据进行自然语言解析获得的解析结果。
18.根据权利要求17所述的系统,其特征在于, 如果所述解析结果指示对话的初次交互,则所述对话状态更新装置用于根据所述解析结果获取预先配置的与所述任务相关的任务参数,根据预先配置的与所述任务相关的任务参数和情景先验信息生成对话参数,并且 所述对话状态更新装置用于根据所述解析结果更新所述对话参数。
19.根据权利要求18所述的系统,其特征在于,所述对话状态更新装置还用于通过多个槽位表示所述预先配置的与所述任务相关的任务参数的状态,并且用于将根据情景先验信息生成的对话参数分别表示为特征向量。
20.根据权利要求19所述的系统,其特征在于,所述动作生成装置用于根据预设的检查条件对所述对话参数进行状态检查,并且根据所述状态检查的结果生成所述至少一个候选动作数据。
21.根据权利要求20所述的系统,其特征在于,所述预设的检查条件包括槽位默认值检查条件、参数间的属性依赖检查条件、参数间的属性触发检查条件、参数值确认检查条件以及参数澄清条件。
22.根据权利要求18?21中任一项所述的系统,其特征在于,所述系统还包括动作决策装置,用于 根据所述用户的对话状态和决策规则,从所述至少一个候选动作数据选择优选动作数据,并且 所述文本生成装置用于根据所述优选动作数据生成回应文本数据。
23.根据权利要求22所述的系统,其特征在于,所述决策规则是预定的动作优先级和预设的动作决策模型之一, 其中,所述动作决策装置用于基于所述动作决策模型分别获取每个所述候选动作数据对应的特征函数值,选取与所述特征函数值中的最大值对应的候选动作数据作为所述优选动作数据。
24.根据权利要求23所述的系统,其特征在于,所述文本生成装置用于根据更新的对话参数和所述优选动作数据从数据源获取回应所需的参数数据,并且根据获取的参数数据和所述优选动作数据生成所述回应文本数据。
【文档编号】G06F17/28GK104360897SQ201410593684
【公开日】2015年2月18日 申请日期:2014年10月29日 优先权日:2014年10月29日
【发明者】焦增涛, 汪冠春 申请人:百度在线网络技术(北京)有限公司