对话词典的更新方法、装置、电子设备及存储介质转让专利

申请号 : CN202110740874.0

文献号 : CN113553836B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王洋李殿亚雍高鹏丁鑫哲孙辉丰孙叔琦李婷婷常月

申请人 : 北京百度网讯科技有限公司

摘要 :

本公开公开了对话词典的更新方法、装置、电子设备及存储介质,涉及数据处理技术领域,尤其涉及自然语言处理、人工智能、智能搜索等领域。具体实现方案为:获取终端设备发送的词典的更新请求,其中,更新请求包括终端设备对应的用户标识和词典更新数据;基于更新请求,对数据库中与用户标识匹配的词典进行更新;基于词典更新数据,生成词典更新消息存入消息队列中;读取消息队列中的词典更新消息;基于词典更新消息更新动态词典服务中用户标识对应的动态词典。本公开可以解决终端用户对话词典更新时,从发布到使用生效整个过程的漫长等待的问题,使得终端用户的更新数据在对话过程中可以即时生效,可以实现各用户灵活地个性化定制自己的对话词典。

权利要求 :

1.一种对话词典的更新方法,包括:获取终端设备发送的词典的更新请求,其中,所述更新请求包括所述终端设备对应的用户标识和词典更新数据;

基于所述更新请求,对数据库中与所述用户标识匹配的词典进行更新;

基于所述词典更新数据,生成词典更新消息存入消息队列中;

读取所述消息队列中的词典更新消息;

基于所述词典更新消息更新动态词典服务中所述用户标识对应的动态词典。

2.根据权利要求1所述的方法,其中,所述基于所述词典更新数据生成词典更新消息存入消息队列中,包括:

在对所述用户标识匹配的词典进行更新的过程中,获取所述数据库生成的词典更新日志;

将所述词典更新日志同步至下游节点,由所述下游节点基于所述词典更新日志生成词典更新消息,并存入所述消息队列中。

3.根据权利要求2所述的方法,其中,所述由所述下游节点基于所述词典更新日志生成词典更新消息,包括:

对所述词典更新日志进行解析,其中,解析结果中包括更新操作的类型和所述更新操作所操作的对象;

对所述解析结果进行格式转换,并基于转换后的解析结果,生成所述词典更新消息。

4.根据权利要求1‑3任一项所述的方法,其中,所述基于所述词典更新消息更新动态词典服务中所述用户标识对应的动态词典之后,还包括:接收所述终端设备发送的对话请求,其中,所述对话请求中包括对话语句和所述用户标识;

从所述动态词典服务中存储的候选动态词典中,获取与所述对话请求匹配的目标动态词典;

将所述目标动态词典传递给对话代理,由所述对话代理基于所述目标动态词典和对话模型,生成所述对话语句匹配的对话结果。

5.根据权利要求4所述的方法,其中,所述从所述动态词典服务中存储的候选动态词典中,获取与所述对话请求匹配的目标动态词典,包括:从所述候选动态词典中,获取与所述用户标识匹配的候选目标动态词典;

从所述候选目标动态词典中,获取与所述对话语句匹配的所述目标动态词典。

6.根据权利要求4所述的方法,其中,所述由所述对话代理基于所述目标动态词典和对话模型,生成所述对话语句匹配的对话结果,包括:由所述对话代理将所述目标动态词典与所述对话模型中的基础词典进行融合,生成融合词典,并由所述对话模型基于所述融合词典,生成所述对话语句匹配的对话结果。

7.根据权利要求1所述的方法,其中,所述方法还包括:定时对所述数据库中的词典数据文件进行备份;

记录所述消息队列的备份时的读取位置。

8.根据权利要求7所述的方法,其中,所述方法还包括:响应于所述动态词典服务重启,对最新备份的所述词典数据文件进行加载;

从所述消息队列的备份时的读取位置开始,从所述消息队列中读取所述词典更新消息。

9.一种对话词典的更新装置,包括:获取模块,用于获取终端设备发送的词典的更新请求,其中,所述更新请求包括所述终端设备对应的用户标识和词典更新数据;

数据库更新模块,用于基于所述更新请求,对数据库中与所述用户标识匹配的词典进行更新;

处理模块,用于基于所述词典更新数据,生成词典更新消息存入消息队列中;

读取模块,用于读取所述消息队列中的词典更新消息;

词典更新模块,用于基于所述词典更新消息更新动态词典服务中所述用户标识对应的动态词典。

10.根据权利要求9所述的装置,其中,所述处理模块,还用于:在对所述用户标识匹配的词典进行更新的过程中,获取所述数据库生成的词典更新日志;

将所述词典更新日志同步至下游节点,由所述下游节点基于所述词典更新日志生成词典更新消息,并存入所述消息队列中。

11.根据权利要求10所述的装置,其中,所述处理模块,还用于:对所述词典更新日志进行解析,其中,解析结果中包括更新操作的类型和所述更新操作所操作的对象;

对所述解析结果进行格式转换,并基于转换后的解析结果,生成所述词典更新消息。

12.根据权利要求9‑11任一项所述的装置,其中,所述装置还包括对话模块,用于:接收所述终端设备发送的对话请求,其中,所述对话请求中包括对话语句和所述用户标识;

从所述动态词典服务中存储的候选动态词典中,获取与所述对话请求匹配的目标动态词典;

将所述目标动态词典传递给对话代理,由所述对话代理基于所述目标动态词典和对话模型,生成所述对话语句匹配的对话结果。

13.根据权利要求12所述的装置,其中,所述对话模块,还用于:从所述候选动态词典中,获取与所述用户标识匹配的候选目标动态词典;

从所述候选目标动态词典中,获取与所述对话语句匹配的所述目标动态词典。

14.根据权利要求12所述的装置,其中,所述对话模块,还用于:由所述对话代理将所述目标动态词典与所述对话模型中的基础词典进行融合,生成融合词典,并由所述对话模型基于所述融合词典,生成所述对话语句匹配的对话结果。

15.根据权利要求9所述的装置,其中,所述装置还包括数据备份模块,用于:定时对所述数据库中的词典数据文件进行备份;

记录所述消息队列的备份时的读取位置。

16.根据权利要求15所述的装置,其中,所述数据备份模块,还用于:响应于所述动态词典服务重启,对最新备份的所述词典数据文件进行加载;

从所述消息队列的备份时的读取位置开始,从所述消息队列中读取所述词典更新消息。

17.一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1‑8中任一项所述的方法。

18.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1‑8中任一项所述的方法。

说明书 :

对话词典的更新方法、装置、电子设备及存储介质

技术领域

[0001] 本公开涉及数据处理技术领域,尤其涉及自然语言处理、人工智能、智能搜索等领域。

背景技术

[0002] 在智能对话中,终端设备可以为用户提供情感聊天、知识问答等服务。为了给用户更好的体验,支撑智能对话的词典需要不断地更新。相关技术中,服务器需要为每一个终端
用户分配代理(agent)资源,用户更新的数据需要经过数据发布之后才能生效,在终端用户
总量庞大的场景中,这种方案进行数据更新增加系统运维成本的同时降低了数据生效速
度。

发明内容

[0003] 本公开提供了一种对话词典的更新方法、装置、电子设备及存储介质,使得终端用户的更新数据在对话过程中可以即时生效,可以实现各用户灵活地个性化定制自己的对话
词典。
[0004] 根据本公开的一方面,提供了一种对话词典的更新方法,包括:
[0005] 获取终端设备发送的词典的更新请求,其中,更新请求包括终端设备对应的用户标识和词典更新数据;
[0006] 基于更新请求,对数据库中与用户标识匹配的词典进行更新;
[0007] 基于词典更新数据,生成词典更新消息存入消息队列中;
[0008] 读取消息队列中的词典更新消息;
[0009] 基于词典更新消息更新动态词典服务中用户标识对应的动态词典。
[0010] 根据本公开的另一方面,提供了一种对话词典的更新装置,包括:
[0011] 获取模块,用于获取终端设备发送的词典的更新请求,其中,更新请求包括终端设备对应的用户标识和词典更新数据;
[0012] 数据库更新模块,用于基于更新请求,对数据库中与用户标识匹配的词典进行更新;
[0013] 处理模块,用于基于词典更新数据,生成词典更新消息存入消息队列中;
[0014] 读取模块,用于读取消息队列中的词典更新消息;
[0015] 词典更新模块,用于基于词典更新消息更新动态词典服务中用户标识对应的动态词典。
[0016] 根据本公开的另一方面,提供了一种电子设备,包括至少一个处理器,以及
[0017] 与至少一个处理器通信连接的存储器;其中,
[0018] 存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开第一个方面实施例的对话词典的更新方法。
[0019] 根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开第一个方面实施例的对话词典的更新方
法。
[0020] 根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现根据本公开第一个方面实施例的对话词典的更新方法的步骤。
[0021] 应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

[0022] 附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0023] 图1是根据本公开一个实施例的对话词典的更新方法的流程图;
[0024] 图2是根据本公开另一个实施例的对话词典的更新方法的流程图;
[0025] 图3是根据本公开另一个实施例的对话词典的更新方法的流程图;
[0026] 图4是根据本公开另一个实施例的对话词典的更新方法的流程图;
[0027] 图5是根据本公开另一个实施例的对话系统的示意图;
[0028] 图6是根据本公开一个实施例的对话词典的更新装置的结构图;
[0029] 图7是用来实现本公开实施例的对话词典的更新方法的电子设备的框图。

具体实施方式

[0030] 以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识
到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同
样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0031] 以下对本公开的方案涉及的技术领域进行简要说明:
[0032] 数据处理(data processing),数据(Data)是对事实、概念或指令的一种表达形式,可由人工或自动化装置进行处理。数据经过解释并赋予一定的意义之后,便成为信息。
数据处理是对数据的采集、存储、检索、加工、变换和传输。
[0033] 数据处理的基本目的是从大量的、可能是杂乱无章的、难以理解的数据中抽取并推导出对于某些特定的人们来说是有价值、有意义的数据。
[0034] 数据处理是系统工程和自动控制的基本环节。数据处理贯穿于社会生产和社会生活的各个领域。数据处理技术的发展及其应用的广度和深度,极大地影响了人类社会发展
的进程。
[0035] 自然语言处理(Natural Language Processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种
理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领
域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联
系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实
现自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分。
[0036] 自然语言处理主要应用于机器翻译、舆情监测、自动摘要、观点提取、文本分类、问题回答、文本语义对比、语音识别、中文OCR等方面。
[0037] 在互联网技术日益发展的今天,人们对人机对话的要求也越来越高,在智能对话中,用户很可能会根据当前对话对词典进行更新。目前,服务器对词典进行更新时,需要为
每一个终端用户分配agent资源,用户更新的数据需要经过数据发布之后才能生效,在终端
用户总量庞大的场景中,这种方案增加了系统运维成本,降低了数据生效速度。因此如何节
省系统运维成本并提高更新数据的生效速度,已成为了重要研究方向之一。
[0038] 为此,本公开实施例提出了一种对话词典的更新方法。图1是本公开一个实施例的对话词典的更新方法的流程图,如图1所示,该方法包括以下步骤:
[0039] S101,获取终端设备发送的词典的更新请求,其中,更新请求包括终端设备对应的用户标识和词典更新数据。
[0040] 在智能对话的场景中,用户输入对话的方式包括但不限于触摸输入(如滑动、点击等)、键盘输入、语音输入等。为了给用户更好的体验,用户可以个性化定制自己的词典,还
可以对支撑智能对话的词典进行更新,以减小用户提问与智能应答之间的延迟。
[0041] 词典数据需要进行修改、增加、删除等更新操作时,用户可以通过终端设备向服务器发送更新请求,服务器可以为终端设备配置专有接口,通过该接口向服务器发送该更新
请求。可选地,终端设备可以为手机、平板电脑、个人数字助理、穿戴式设备、车载设备等具
有各种操作系统、触摸屏和/或显示屏的硬件设备。
[0042] 本公开实施例中,更新请求包括终端设备对应的用户标识和词典更新数据。用户标识用于识别登录终端设备的用户身份,便于针对不同用户定制个性化词典。可选地,本公
开中,用户标识可以是注册的账号、昵称、手机号,也可以是服务器为登录用户分配的唯一
标识。
[0043] 根据用户的更新需求,更新操作可以分为不同的类型。在一些实现中,更新操作的类型为增加,则更新数据为需要添加的词典数据;在一些实现中,更新操作的类型为删除,
则更新数据为需要删除的词典数据;在一些实现中,更新操作的类型为修改,则更新数据为
原词典数据及需要更改为的词典数据。
[0044] S102,基于更新请求,对数据库中与用户标识匹配的词典进行更新。
[0045] 用户标识与词典之间具有映射关系,根据映射关系可以确定数据库中与用户标识匹配的词典。例如,词典标识与用户标识之间建立关联关系,或者,词典标识中携带用户标
识,或者词典标识即为用户标识。
[0046] 本公开实施例中,数据库中存储有所有用户的词典。进行数据更新时,从更新请求中获取用户标识,进而以用户标识为查询条件或者键值,对映射关系进行查询,从该映射关
系中确定与更新请求中的用户标识匹配的词典,并从更新请求中提取词典更新数据,基于
该词典更新数据对该用户标识匹配的词典进行更新操作,从而实现对用户的词典个性化定
制。
[0047] S103,基于词典更新数据,生成词典更新消息存入消息队列中。
[0048] 在更新数据库中与用户标识匹配的词典时,会形成包含词典更新数据的更新记录,进一步地,基于这些更新记录,生成词典更新消息,并将词典更新消息存入消息队列中
被读取或消费。可选地,词典更新消息包含更新操作及更新数据,消息队列用于存放词典更
新消息,提供给下游的动态词典服务进行消费。
[0049] 数据库中用户标识匹配的词典进行更新后,需要等待发布后才能为词典动态服务提供数据支持。为了实现词典更新数据在智能对话等词典动态服务中实时生效,本公开实
施例增加了消息队列,通过消息队列暂存词典更新数据生成的词典更新消息,从而快速地
将词典更新消息同步到词典动态服务。
[0050] S104,读取消息队列中的词典更新消息。
[0051] 在消息队列中存在词典更新消息后,就可以实时读取消息队列中的词典更新消息,将词典更新消息从消息队列中取出来,以对后续动态词典服务进行更新。
[0052] S105,基于词典更新消息更新动态词典服务中用户标识对应的动态词典。
[0053] 动态词典服务中包括多个用户的动态词典,每个词典更新消息中会携带所属用户或者所属词典的标识信息,进而确定与标识信息对应的动态词典,也就是与用户标识对应
的词典,并根据词典更新消息更新用户标识对应的动态词典。
[0054] 本公开实施例中,从消息队列至动态词典服务,相当于为数据库到动态词典服务之间构建了一个词典数据更新的旁路,通过该旁路可以解决智能对话中,用户更新数据时
需要集中处理,发布生效时间长等问题,实现更新数据在对话过程中的实时生效。
[0055] 本公开提出的对话词典的更新方法,获取终端设备发送的词典的更新请求,其中,更新请求包括终端设备对应的用户标识和词典更新数据,基于更新请求,对数据库中与用
户标识匹配的词典进行更新,基于词典更新数据,生成词典更新消息存入消息队列中,读取
消息队列中的词典更新消息,基于词典更新消息更新动态词典服务中用户标识对应的动态
词典。本公开实施例中,通过增加消息队列为数据库到动态词典服务之间构建了一个词典
数据更新的旁路,可以解决终端用户对话词典更新时,从发布到使用生效整个过程的漫长
等待的问题,使得终端用户的更新数据在对话过程中可以即时生效,可以实现各用户灵活
地个性化定制自己的对话词典。
[0056] 此外,在对话系统长期运行过程中,由于某些异常数据的存在,可能造成显著的累积误差,本公开利用消息队列中的词典更新消息,能够实时更新动态词典,使得动态词典可
以避免中出现因异常数据的累积而导致的词典数据误差较大的问题。
[0057] 在一些场景中,用户总量较大,智能对话的系统运维成本也会随之提高。为了进一步的降低成本,缓解数据库端的压力,下面结合该场景进一步对本公开实施例提供的对话
词典的更新方法进行解释。图2是本公开另一个实施例的对话词典的更新方法的流程图,如
图2所示,在上述实施例的基础上,该方法还包括以下步骤:
[0058] S201,在对用户标识匹配的词典进行更新的过程中,获取数据库生成的词典更新日志。
[0059] 在对用户标识匹配的词典进行更新的过程中,实时生成更新记录,也就是词典更新日志,词典更新日志记录了对词典的更新操作及其对应的更新数据。
[0060] S202,将词典更新日志同步至下游节点,由下游节点基于词典更新日志生成词典更新消息,并存入消息队列中。
[0061] 服务器实时对数据库生成的词典更新日志进行监听,读取词典更新日志,并同步至下游节点。下游节点实时对词典更新日志进行解析,获取解析结果,也就是说,获取更新
操作的类型和更新操作的操作对象。
[0062] 可选地,在一些实现中,消息队列支持词典更新数据的格式,则生成词典更新消息的过程中不需要进行格式转换;在一些实现中,消息队列不支持词典更新数据的格式,则生
成词典更新消息的过程中需要进行格式转换。
[0063] 进一步的,若消息队列不支持词典更新数据的格式,下游节点对解析结果进行格式转换,生成消息队列对应格式的词典更新消息,并将词典更新消息存入消息队列中,从而
实现数据库的更新操作的主从同步,使得数据库与下游节点可以保持词典更新数据的一
致。可选地,消息队列里的词典更新消息为二进制格式或者其他格式,包括更新操作及词典
更新数据。
[0064] 本公开实施例利用数据库主从同步方案将词典更新日志同步给下游节点,基于词典更新日志生成词典更新消息,并存入消息队列中,该方法降低了系统运维成本,缓解了数
据库端的压力,避免了数据操作接口需要同时更新数据库和写入消息队列造成的逻辑复杂
和稳定性下降。
[0065] 在上述实施例的基础之上,可以将数据库的词典更新同步到动态词典服务中,从而保证智能对话中,词典更新数据可以及时生效,接下来在实现了词典更新数据同步到动
态词典服务中之后,结合对话实现过程,对本公开实施例提供的对话词典的更新方法进行
解释说明。图3是本公开另一个实施例的对话词典的更新方法的流程图,如图3所示,该方法
还包括以下步骤:
[0066] S301,接收终端设备发送的对话请求,其中,对话请求中包括对话语句和用户标识。
[0067] 用户根据特殊指令唤醒终端设备,进行智能通话,并按照自身需求发出对话语句,终端设备可以为服务器配置专有接口,通过该接口将对话语句(query)及用户标识发送给
服务器。可选地,该接口可以是企业服务总线(Enterprise Service Bus,ESB)接口,也就是
说,终端设备调用企业服务总线接口将对话请求发送给服务器。
[0068] S302,从动态词典服务中存储的候选动态词典中,获取与对话请求匹配的目标动态词典。
[0069] 将对话请求中的用户标识与动态词典服务中存储的候选动态词典进行匹配,获取匹配成功的候选目标动态词典,并进一步将候选目标动态词典与对话请求中的对话语句进
行匹配,将匹配成功的候选目标动态词典作为目标动态词典。
[0070] 可选地,在候选目标动态词典与对话语句进行匹配的过程中,可以将匹配度最高的候选目标动态词典作为与对话语句匹配成功的目标动态词典。
[0071] S303,将目标动态词典传递给对话代理,由对话代理基于目标动态词典和对话模型,生成对话语句匹配的对话结果。
[0072] 服务器将目标动态词典传递给对话代理,对话代理将目标动态词典与对话模型中的基础词典进行融合,生成融合词典,并由对话模型基于融合词典,生成对话语句匹配的对
话结果,回传给终端设备,完成智能应答。
[0073] 本公开实施例中,可以对更新后的动态词典进行消费,解决了终端用户数据发布生效过程漫长的问题,提高了数据更新的灵活性,使得终端用户的更新数据在对话过程中
可以即时生效。
[0074] 在一些应用场景下,突发断电等异常情况可能造成服务器出现故障,从而导致动态词典服务中的词典数据丢失,也可能需要对动态词典服务集群进行快速扩容。为避免意
外损失,避免每次启动需要从头读取消息队列中的所有历史消息,提升动态词典服务启动
速度,下面针对该场景进一步对本公开实施例提供的对话词典的更新方法进行解释。图4是
本公开另一个实施例的对话词典的更新方法的流程图,如图4所示,在上述实施例的基础
上,该方法还包括以下步骤:
[0075] S401,定时对数据库中的词典数据文件进行备份。
[0076] 对数据库中的词典数据文件进行备份,也就是说,将数据库中的词典数据文件存储到其他存储设备。
[0077] 可选地,可以手动选择对数据库中的词典数据文件进行备份,也可以预先设置定时对数据库中的词典数据文件进行备份。
[0078] 可选地,备份存储媒体既可以是逻辑驱动器,如硬盘,也可以是独立的存储设备,如可移动磁盘。
[0079] S402,记录消息队列的备份时的读取位置。
[0080] 为加快数据恢复速度,进行备份后,还可以记录消息队列的备份时的读取位置,用于排除故障后的后备支援。
[0081] 在一些实现中,服务器的故障排除后,响应于动态词典服务重启,对最新备份的词典数据文件进行加载,完成加载后,从消息队列的备份时的读取位置开始,从消息队列中读
取词典更新消息。
[0082] 本公开实施例中,通过对数据库中的词典数据进行备份,避免了动态词典服务中的词典数据的丢失,还可以实现对动态词典服务集群进行快速扩容。记录消息队列的备份
时的读取位置,用于排除故障后的后备支援,加快了数据恢复速度,从而避免每次启动需要
从头读取消息队列中的所有历史消息,提升了动态词典服务启动速度。
[0083] 图5是本公开另一个实施例的对话系统的示意图,下面结合图对本公开的对话词典的更新方法进行解释说明。在智能对话中,对词典数据进行更新时,终端设备发送词典的
更新数据及用户标识,从而对数据库中与用户标识匹配的词典进行更新,并持久化存储。下
游节点基于数据库的词典更新日志生成词典更新消息,并存入消息队列中。通过读取消息
队列中的词典更新消息,后续对动态词典服务进行更新。
[0084] 词典更新数据同步到动态词典服务中之后,对话前端接收终端设备发送的对话请求,并从动态词典服务中获取与对话请求匹配的目标动态词典,将目标动态词典传递给对
话代理,由对话代理生成对话语句匹配的对话结果。
[0085] 本公开实施例中,通过增加消息队列为数据库到动态词典服务之间构建了一个词典数据更新的旁路,可以解决终端用户对话词典更新时,需要从发布到使用生效整个过程
的漫长等待的问题,使得终端用户的更新数据在对话过程中可以即时生效,可以实现了各
用户灵活地个性化定制自己的对话词典;利用数据库主从同步方案将词典更新日志同步给
下游节点,基于词典更新日志生成词典更新消息,并存入消息队列中,降低了系统运维成
本,缓解了数据库端的压力,避免了数据操作接口需要同时更新数据库和写入消息队列造
成的逻辑复杂和稳定性下降。
[0086] 图6是根据本公开一个实施例的对话词典的更新装置的结构图,如图6所示,对话词典的更新装置600包括:
[0087] 获取模块610,用于获取终端设备发送的词典的更新请求,其中,更新请求包括终端设备对应的用户标识和词典更新数据;
[0088] 数据库更新模块620,用于基于更新请求,对数据库中与用户标识匹配的词典进行更新;
[0089] 处理模块630,用于基于词典更新数据,生成词典更新消息存入消息队列中;
[0090] 读取模块640,用于读取消息队列中的词典更新消息;
[0091] 词典更新模块650,用于基于词典更新消息更新动态词典服务中用户标识对应的动态词典。
[0092] 本公开实施例中,通过增加消息队列为数据库到动态词典服务之间构建了一个词典数据更新的旁路,可以解决终端用户对话词典更新时,从发布到使用生效整个过程的漫
长等待的问题,使得终端用户的更新数据在对话过程中可以即时生效,可以实现各用户灵
活地个性化定制自己的对话词典。
[0093] 此外,在对话系统长期运行过程中,由于某些异常数据的存在,可能造成显著的累积误差,本公开利用消息队列中的词典更新消息,能够实时更新动态词典,使得动态词典可
以避免中出现因异常数据的累积而导致的词典数据误差较大的问题。
[0094] 需要说明的是,前述对对话词典的更新方法实施例的解释说明也适用于该实施例的对话词典的更新装置,此处不再赘述。
[0095] 进一步的,在本公开实施例一种可能的实现方式中,处理模块630,还用于:在对用户标识匹配的词典进行更新的过程中,获取数据库生成的词典更新日志;将词典更新日志
同步至下游节点,由下游节点基于词典更新日志生成词典更新消息,并存入消息队列中。
[0096] 进一步的,在本公开实施例一种可能的实现方式中,处理模块630,还用于:对词典更新日志进行解析,其中,解析结果中包括更新操作的类型和更新操作所操作的对象;对解
析结果进行格式转换,并基于转换后的解析结果,生成词典更新消息。
[0097] 进一步的,在本公开实施例一种可能的实现方式中,对话词典的更新装置还包括对话模块660,用于:接收终端设备发送的对话请求,其中,对话请求中包括对话语句和用户
标识;从动态词典服务中存储的候选动态词典中,获取与对话请求匹配的目标动态词典;将
目标动态词典传递给对话代理,由对话代理基于目标动态词典和对话模型,生成对话语句
匹配的对话结果。
[0098] 进一步的,在本公开实施例一种可能的实现方式中,对话模块660,还用于:从候选动态词典中,获取与用户标识匹配的候选目标动态词典从候选目标动态词典中,获取与对
话语句匹配的目标动态词典。
[0099] 进一步的,在本公开实施例一种可能的实现方式中,对话模块660,还用于:由对话代理将目标动态词典与对话模型中的基础词典进行融合,生成融合词典,并由对话模型基
于融合词典,生成对话语句匹配的对话结果。
[0100] 进一步的,在本公开实施例一种可能的实现方式中,对话词典的更新装置还包括数据备份模块670,用于:定时对数据库中的词典数据文件进行备份;记录消息队列的备份
时的读取位置。
[0101] 进一步的,在本公开实施例一种可能的实现方式中,数据备份模块670,还用于:响应于动态词典服务重启,对最新备份的词典数据文件进行加载;从消息队列的备份时的读
取位置开始,从消息队列中读取词典更新消息。
[0102] 根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0103] 图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字
助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种
形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算
装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限
制本文中描述的和/或者要求的本公开的实现。
[0104] 如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执
行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计
算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至
总线704。
[0105] 设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通
信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如
因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0106] 计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工
智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及
任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,
例如对话词典的更新方法。例如,在一些实施例中,对话词典的更新方法可被实现为计算机
软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程
序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。
当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的对话词典的更
新方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当
的方式(例如,借助于固件)而被配置为执行对话词典的更新方法。
[0107] 本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统
的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实
现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算
机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器
可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出
装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至
少一个输出装置。
[0108] 用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处
理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的
功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件
包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0109] 在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可
读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电
子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合
适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计
算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM
或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD‑ROM)、光学储存设备、磁储存设备、或
上述内容的任何合适组合。
[0110] 为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视
器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来
将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的
反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用
任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0111] 可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算
系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界
面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部
件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数
字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网
(LAN)、广域网(WAN)和互联网。
[0112] 计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端‑服务器关系的计
算机程序来产生客户端和服务器的关系。服务端可以是云服务器,又称为云计算服务器或
云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务
(“Virtual Private Server”,或简称“VPS”)中,存在的管理难度大,业务扩展性弱的缺陷。
服务器也可以为分布式系统的服务器,或者是结合区块链的服务器。
[0113] 根据本公开的实施例,本公开还提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据本公开实施例所述的对话词典的更新方法的步
骤。
[0114] 应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,
只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0115] 上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开
的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。