一种问答系统的更新处理方法和装置与流程

文档序号:24306850发布日期:2021-03-17 00:59阅读:98来源:国知局
一种问答系统的更新处理方法和装置与流程

本申请涉及计算机应用技术领域,特别涉及人工智能技术领域中的大数据和自然语言处理技术。



背景技术:

为了满足用户快速、准确地获取信息的需求,问答系统(qas,questionansweringsystem)的研究逐渐兴起。qas是信息检索系统的一种高级形式,它能用准确、间接的自然语言回答用户用自然语言提出的问题。其中,常见问题解答(faq,frequentlyaskedquestions)是当前网络上提供在线帮助的主要手段,通过预先组织好的一些常见问答对为用户提供服务。

在faq问答系统中,当用户输入问题后,会通过相似度匹配的方式确定预先配置的问答集中与用户输入的问题匹配的问题所对应的答案。上述相似度匹配的过程中需要获取用户输入问题的特征与问答集中各问题的特征,为了加快上述的响应过程,faq问答系统会预先针对问答集中的各问题进行训练得到各问题的特征,并利用训练得到的各问题的特征以json文件的形式建立索引文件。

然而,在实际应用过程中,faq问答系统的问答集是会根据实际业务需求不断更新的。当问答集规模比较大时,每次更新都需要加载整个索引文件并从上游获取各问题的特征并对整个索引文件进行更新,整个过程耗时长、对资源的占用大。



技术实现要素:

有鉴于此,本申请提供了一种问答系统的更新处理方法和装置,以便于降低更新过程的耗时和资源占用。

第一方面,本申请提供了一种问答系统的更新处理方法,包括:

获取更新后的问答集;

将更新后的问答集与原有问答集的各分块进行问答对的比较,确定未发生变化的分块和发生变化的分块;

获取发生变化的分块所包含各问题的特征数据,建立该分块对应的索引文件并将所述特征数据加入更新后的训练产出集;以及,

保留未发生变化的分块对应的索引文件和特征数据,将所述特征数据加入更新后的训练产出集。

第二方面,本申请提供了一种问答系统的更新处理装置,包括:

更新获取模块,用于获取更新后的问答集;

分块处理模块,将更新后的问答集与原有问答集的各分块进行问答对的比较,确定未发生变化的分块和发生变化的分块;

更新处理模块,用于获取发生变化的分块所包含各问题的特征数据,建立该分块对应的索引文件并将所述特征数据加入更新后的训练产出集;

复用处理模块,用于保留未发生变化的分块对应的索引文件和特征数据,将所述特征数据加入更新后的训练产出集。

第三方面,本申请提供了一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的方法。

第四方面,本申请提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述的方法。

第五方面,本申请提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上所述的方法。

由以上技术方案可以看出,通过分块的方式,每次问答集发生更新仅需要获取发生变化的分块对应的问答对的特征数据并更新该分块对应的索引文件即可,对于未发生变化的分块则直接复用索引文件和特征数据,减少了耗时和对资源的占用。

上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。

附图说明

附图用于更好地理解本方案,不构成对本申请的限定。其中:

图1示出了可以应用本发明实施例的示例性系统架构;

图2为本申请实施例提供的主要方法流程图;

图3为本申请实施例提供的另一方法流程图;

图4为本申请实施例提供的步骤202的一种优选方法流程图;

图5为本申请实施例提供的装置结构图;

图6为可实现本申请实施例所提供方法的电子设备框图。

具体实施方式

以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

图1示出了可以应用本发明实施例的问答系统的更新处理方法或问答系统的更新处理装置的示例性系统架构。

如图1所示,该系统架构可以包括终端设备101和102,网络103和服务器104。网络103用以在终端设备101、102和服务器104之间提供通信链路的介质。网络103可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101和102通过网络103与服务器104交互。终端设备101和102上可以安装有各种应用,例如网页浏览器应用、通信类应用、语音交互应用、多媒体播放类等等。

终端设备101和102可以是各种电子设备,可以是有屏设备,也可以是无屏设备。包括但不限于智能手机、平板电脑、智能音箱、智能电视、pc(personalcomputer,个人计算机)等等。本发明所提供的问答系统的更新处理装置可以设置并运行于上述服务器104中。其可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块,在此不做具体限定。

例如,问答系统的更新处理装置设置并运行于上述服务器104中,那么问答系统的更新处理装置使用本发明实施例所提供的方式对问答系统进行更新处理。当用户通过终端设备101发送问题后,服务器104可以在问答系统中确定该问题对应的答案,并将答案返回给终端设备101。

服务器104可以是单一服务器,也可以是多个服务器构成的服务器群组。上述问答系统可以设置于服务器104中,也可以设置于区别于服务器104的其他服务器端。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

图2为本申请实施例提供的主要方法流程图,如图2中所示,该方法可以包括以下步骤:

在201中,获取更新后的问答集。

由于问答集会根据实际业务需求而进行更新,因此,本步骤是获取更新后的问答集。获取更新后的问答集可以是周期性的获取,也可以是基于特定事件触发的获取,例如基于管理人员的请求事件而触发。

在202中,将更新后的问答集与原有问答集的各分块进行问答对的比较,确定未发生变化的分块和发生变化的分块。

在本申请实施例中,整个问答集会被分块,即拆分成多个包含问答对的数据块。在获取到更新后的问答集后,将更新后的问答集与原有问答集的各分块进行问答对的比较,从而确定出未发生变化的分块和发生变化的分块。其中,未发生变化的分块指的是分块中所有的问答对均未发生更新。发生变化的分块指的是分块中存在问答对发生更新,或者新建分块。关于各种类型分块的确定方式将在后续实施例中详述。

在203中,获取发生变化的分块所包含各问题的特征数据,建立该分块对应的索引文件并将该特征数据加入更新后的训练产出集。

在204中,保留未发生变化的分块对应的索引文件和特征数据,将所述特征数据加入更新后的训练产出集。

由于问答系统在进行问题匹配的过程中需要基于各问题的特征数据计算问题之间的相似度,从而进行问题的初筛和确定。为了加快问题匹配的过程,上游功能模块通常预先训练得到各问题的特征数据,问答系统将各问题的特征数据放入训练产出集,以供后续问题匹配过程直接使用。

其中各问题的特征数据通常由对各问题进行分词处理后得到的分词以及各分词的权重等信息得到。具体训练方式可以采用目前已有比较成熟的技术,在此不做赘述。

对于未发生变化的分块,保留对应的索引文件和特征数据,无需从上游再次获取各问答对对应的特征数据,直接复用即可,即直接加入更新后的训练产出集。而对于发生变化的分块则需要从上游获取发生变化的分块所包含问答对的特征数据,重新建立该分块对应的索引文件并将该特征数据加入更新后的训练产出集。

可见,上述实施方式中通过分块的方式,每次问答集发生更新仅需要获取发生变化的分块对应的问答对的特征数据并更新该分块对应的索引文件即可,对于未发生变化的分块则直接复用索引文件和特征数据,减少了耗时和对资源的占用。

更进一步地,在经过上述步骤202的比较时,还可能确定出需要删除的分块,即如果某个分块中所有的问答对在更新后的问答集中均不存在,则该分块为需要删除的分块。此时如图3中所示,需要进一步执行105,将该分块、该分块对应的绑定关系和索引文件删除。

下面结合实施例对上述202中“将更新后的问答集与原有问答集的各分块进行问答对的比较,确定未发生变化的分块和发生变化的分块”的实现方式进行详述。

对于首次确定出的问答集,对该部分问答集进行分块,将预设数量的问答对分配至一个分块中。分块的依据可以是随机分块、按照一定顺序分块或者按照共同的属性分块等等,本申请对此不加以限制。

每个分块对应有一个分块id。在从上游获取到分块中各问题对应的特征数据后,针对分块建立索引文件。该索引文件中包含各问答对的标识,该标识能够唯一标识一个问答对,通常基于问答对的内容生成。例如可以采用信息摘要算法进行处理后得到的信息摘要值,例如md5值。采用诸如md5值可以基于内容唯一标识一个问答对,只要问答对的内容不发生变更,md5值就不发生变更,如果问答对的内容发生了变更,则md5值也发生变更。这样就能够快速确定出发生变化的问答对和未发生变化的问答对。

更进一步地,建立各分块id与分块所包含问答对的md5值之间的绑定关系。通过该绑定关系,由问答对的md5值就能够快速确定出该问答对所在的分块。该绑定关系可以存储为一个文件。

作为一种优选的实施方式,获取到更新后的问答集之后,上述步骤202的实现过程可以如图4中所示,包括以下步骤:

在401中,从更新后的问答集中读取问答对。

本步骤中是从更新后的问答集中,对未读问答对进行逐一读取并执行后续步骤,以实现更新后的问答集与原有问答集中各分块的比较。

在402中,依据读取的问答对的md5值,在原有问答集中查询是否存在与读取的问答对的md5值一致的问答对,如果是,执行403;否则,执行405。

由于原有问答集对于所有问答对都会生成md5值以及md5值与分块的绑定关系,因此,通过md5值的比对就能够快速确定从更新后的问答集中读取的问答对是否已经存在于原有问答集中以及具体存在于哪个分块。

在403中,确定与该md5值绑定的分块id,将该问答对在所绑定的分块中标记为未变化。

在404中,判断更新后的问答集中是否还存在未读问答对,如果是,则转至401,继续从更新后的问答集中读取问答对。否则,执行步骤406。

在405中,将该问答对分配至新建的分块中,执行步骤404。

新建分块时,仍然保证一个分块中存储预设数量的问答对。当一个分块中包含预设数量的问答对后,再新建一个分块继续存储问答对。

在406中,确定发生变化的分块、未发生变化的分块和需要删除的分块。

若一个分块中存在未标记的问答对,说明这些问答对在更新后的问答集中是不存在的,则将分块中这些问答对删除。

若一个分块中所有问答对均未发生变化,则将该分块确定为未发生变化的分块。

若一个分块中部分问答对被删除,则将该分块确定为发生变化的分块。另外,对于新建的分块也被确定为发生变化的分块。

若一个分块中所有的问答对都被删除,则将该分块确定为需要删除的分块。

经过图4所示流程之后,就能够确定出三种类型的分块:发生变化的分块、未发生变化的分块和需要删除的分块。

对于未发生变化的分块,对于该分块的索引文件和绑定关系等可以直接保留,并复用该分块中各问题的特征数据,直接将这些特征数据加入更新后的训练产出集。

对于发生变化的分块,重新针对该分块生成问答对的md5值与分块id之间的绑定关系,从上游获取该分块所包含各问答对的特征数据,将获取的特征数据加入更新后的训练产出集,并针对该分块重新建立索引文件。

对于需要删除的分块,删除该分块、分块id、该分块id的绑定关系以及该分块的索引文件。

经过上述处理后得到的训练产出集就是更新后的问答集对应的训练产出集,其中重要包含更新后的问答集中各问题对应的特征数据。在后续实际应用中即问答系统的问题匹配过程中基于训练产出集中问题的特征数据实现。

以上是对本申请所提供的方法进行的详细描述,下面结合实施例对本申请提供的装置进行详细描述。

图5为本申请实施例提供的装置结构图,该装置可以位于服务器端的应用,或者还可以为位于服务器端的应用中的插件或软件开发工具包(softwaredevelopmentkit,sdk)等功能单元,或者,还可以位于具有较强计算能力的计算机终端,本发明实施例对此不进行特别限定。如图5中所示,该装置包括:更新获取模块00、分块处理模块10、更新处理模块20和复用处理模块30,还可以进一步包括删除处理模块40。其中各组成单元的主要功能如下:

更新获取模块00,用于获取更新后的问答集。

获取更新后的问答集可以是周期性的获取,也可以是基于特定事件触发的获取,例如基于管理人员的请求事件而触发。

分块处理模块10,用于将更新后的问答集与原有问答集的各分块进行问答对的比较,确定未发生变化的分块和发生变化的分块。

更新处理模块20,用于获取发生变化的分块所包含各问题的特征数据,建立该分块对应的索引文件并将特征数据加入更新后的训练产出集;

复用处理模块30,用于保留未发生变化的分块对应的索引文件和特征数据,将特征数据加入更新后的训练产出集。

其中,各分块的标识与分块所包含问答对的标识存在绑定关系。作为一种优选的实施方式,问答对的标识可以包括:对问答对进行信息摘要算法处理得到的信息摘要值,例如md5值。

作为一种优选的实施方式,分块处理模块10可以具体包括:比较子模块11、标记子模块12、分块子模块13和确定子模块14。

其中,比较子模块11,用于依据更新后的问答集所包含的各问答对的标识,在原有问答集中查询是否存在与该标识一致的问答对,并确定与该标识一致的问答对绑定的分块的标识。

标记子模块12,用于若比较子模块11在原有问答集中查询到标识一致的问答对,则将该问答对在所绑定分块中标记为未发生变化。

分块子模块13,用于若比较子模块11在原有问答集中未找到标识一致的问答对,则将该问答对分配至新建的分块中。

确定子模块14,用于在比较子模块11针对更新后的问答集所包含的各问答对都查询结束后,若分块中所有问答对均未发生变化,则将该分块确定为未发生变化的分块;将分块中未标记的问答对删除,并将存在部分问答对删除的分块与新建的分块确定为发生变化的分块。

删除处理模块40,用于若分块中所有问答对均被删除,则将该分块、该分块对应的绑定关系和索引文件删除。

根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

如图6所示,是根据本申请实施例的问答系统的更新处理方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。

存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的问答系统的更新处理方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的问答系统的更新处理方法。

存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的问答系统的更新处理方法对应的程序指令/模块。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的问答系统的更新处理方法。

存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据该电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至该电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

该电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。

输入装置603可接收输入的数字或字符信息,以及产生与该电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。

此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

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