一种智能问答系统及其主题判别方法和装置与流程

文档序号:12363759阅读:229来源:国知局
一种智能问答系统及其主题判别方法和装置与流程

本申请涉及网络技术,特别涉及一种智能问答系统及其主题判别方法和装置。



背景技术:

智能问答系统是为了解决用户的问答需求,设计的一种快速且自动回答用户提问的系统。当用户提出一个问题时,智能问答系统将识别该问题对应的主题(即,何种类型的问题),并据此由系统自身的知识库中检索出与该主题对应的答案,返回至用户。相关技术中,可以通过模型识别用户提问的主题,该模型通常是根据知识库中的样本训练得到,实践发现,由该模型识别的提问主题的准确度不高,有时出现返回的答案与用户提问不是一个主题。



技术实现要素:

有鉴于此,本申请提供一种智能问答系统及其主题判别方法和装置,以提升主题判别的准确度。

具体地,本申请是通过如下技术方案实现的:

第一方面,提供一种智能问答系统的主题判别方法,包括:

获取用户的提问信息;

根据主题判别模型对所述提问信息进行判别,得到所述提问信息对应的提问主题,所述主题判别模型由动态样本训练得到,所述动态样本包括:点击样本数据以及知识库样本数据。

第二方面,提供一种智能问答系统的主题判别方法,包括:

获取点击样本数据以及知识库样本数据;

根据所述点击样本数据以及知识库样本数据,训练得到主题判别模型,所述主题判别模型用于对用户的提问信息进行主题判别。

第三方面,提供一种智能问答系统的主题判别装置,包括:

信息获取模块,用于获取用户的提问信息;

主题识别模块,用于根据主题判别模型对所述提问信息进行判别,得到所述提问信息对应的提问主题,所述主题判别模型由动态样本训练得到,所述动态样本包括:点击样本数据以及知识库样本数据。

第四方面,提供一种智能问答系统的主题判别装置,包括:

样本获取模块,用于获取点击样本数据以及知识库样本数据;

模型训练模块,用于根据所述点击样本数据以及知识库样本数据,训练得到主题判别模型,所述主题判别模型用于对用户的提问信息进行主题判别。

第五方面,提供一种智能问答系统,包括:前端接收模块、主题判别模块和搜索引擎模块;

所述前端接收模块,用于接收用户的提问信息,并传输至主题判别装置;

所述主题判别模块,用于根据主题判别模型对所述提问信息进行判别,得到所述提问信息对应的提问主题;

所述搜索引擎模块,用于根据所述提问信息对应的提问主题,选取与所述提问信息对应的答案信息,返回至所述前端接收模块。

本申请提供的智能问答系统及其主题判别方法和装置,通过使用主题判别模型来识别提问信息对应的主题,而该主题判别模型是由包括知识库和点击样本的动态样本训练得到,动态样本的使用能够及时获取符合用户期望的样本数据,使得训练得到的模型也更加符合用户的实际提问期望,从而根据该模型识别的主题的准确度更高。

附图说明

图1是本申请一示例性实施例示出的一种智能客服的问答界面一;

图2是本申请一示例性实施例示出的一种智能问答系统的系统架构;

图3是本申请一示例性实施例示出的智能客服的问答界面二;

图4是本申请一示例性实施例示出的智能客服的问答界面三;

图5是本申请一示例性实施例示出的搜索引擎分类示意图;

图6是本申请一示例性实施例示出的主题判别方法的流程图;

图7是本申请一示例性实施例示出的一种主题判别装置的结构图;

图8是本申请一示例性实施例示出的另一种主题判别装置的结构图;

图9是本申请一示例性实施例示出的模型训练流程图;

图10是本申请一示例性实施例示出的又一种主题判别装置的结构图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

本申请实施例的主题判别方法和装置,应用于智能问答系统,智能问答系统是为了解决用户的问答需求,设计的一种快速且自动回答用户提问的系统。例如,有些企业会收到客户各种各样的咨询问题,如果采用人工客服的方式为用户解答问题,不仅大大耗费人力成本,而且答复效率也比较低,而智能问答系统将可以基于该企业的一些业务知识,自动回答用户的提问。比如,支付宝的智能小宝就是其中一种智能问答系统,只要用户输入自己的问题(例如,支付宝支付密码忘记怎么办?),智能小宝将自动为用户解答。参见图1的示例,示出了一种智能客服的问答界面。

图1所示的这种自动问答的智能问答系统,可以明显加快企业服务用户的效率,智能问答系统的系统架构可以参见图2的示例。本申请实施例中,智能问答系统可以包括前端接收模块21、主题判别模块22和搜索引擎模块 23,还可以包括知识库24和日志模块25。

其中,知识库24中存储有作为智能问答系统底层支撑的知识点,如下示例一个知识点,一个知识点可以包括“问题+答案”:

问题title:支付宝支付密码忘记怎么办?

答案answer:若您的支付密码忘记被锁定,请打开支付宝网站,点击页面右上角【服务大厅】—【自助服务】—【重置支付密码】。

如上是一个知识点,知识库中不仅存储该知识点,还存储知识点对应的类目,类目即知识点主题,例如,密码类,转账类等,类目用于表示该知识点是什么类型的问答信息;“知识点+知识点类目”可以作为数据库中的一个存储单位。在知识库中,存储有很多这样的存储单元,具体实施中,企业可以专门安排管理人员负责知识库的日常维护,包括在知识库中新增、修改或者删除知识点及其类目,例如,管理人员可以将企业的业务相关知识以上述存储单元的形式输入知识库中存储。

搜索引擎模块23,是智能问答系统的又一个底层支撑,其可以从知识库中存储的众多知识点中,检索到一个最为匹配用户提问信息的知识点来回答用户。例如,对于用户的提问信息“支付宝支付密码忘记怎么办”,搜索引擎模块23可以检索到对应的答案“若您的支付密码忘记被锁定,请打开支付宝网站……”返回给用户。

具体实现中,搜索引擎模块23可以对众多知识点进行排序,将排序分值最高或较高的知识点答案返给用户,排序方法可以如下:各个知识点,按照两个方面的分值进行加权,例如,s=x+y,其中,s是某个知识点的总分值,x是提问信息与知识点的title的匹配分值,y是提问信息的主题与知识点的类目的匹配分值。可见,“提问信息的主题”识别的准确与否,将直接影响到知识点的评分分值,也影响搜索引擎模块23对知识点的排序准确性,只有正确判断出用户提问信息对应的提问主题,才能反馈更加匹配的答案给用户。

基于此,本申请实施例的智能问答系统的主题判别方法,将用于描述如何识别用户提问信息对应的提问主题。如图2所示,识别主题是由智能问答 系统中的主题判别模块22执行,依据该智能问答系统执行的自动问答流程,如图2中的虚线箭头所示:前端接收模块21是类似于展示图1所示界面的模块,可以接收到用户输入的提问信息,并将该问题传输至主题判别模块22。主题判别模块22将识别该提问信息的提问主题(例如,密码类,转账类、期限类等),并将识别到的主题通知搜索引擎模块23。搜索引擎模块23可以根据主题对知识库中的知识点进行排序,得到与提问信息对应的答案信息,返回至前端接收模块。

继续结合参见图2,主题判别模块22是依据“主题判别模型”对用户的提问信息进行主题识别,而该“主题判别模型”是由模型训练器26来得到,模型训练器26可以根据知识点样本进行样本训练得到模型,例如,由模型训练器26中的主题判别装置执行模型训练,应用于智能问答系统。示例性的,模型训练器26可以是与智能问答系统相互独立的两个系统,由模型训练器26负责线下的离线模型训练,由智能问答系统负责根据模型训练器26得到的模型,进行线上的实时自动问答,例如,由主题判别模块22中的主题判别装置根据模型执行主题判别。本实施例并不严格限制这两个系统的设置位置。

如下,将首先说明模型训练器26训练样本得到模型的过程,然后再描述智能问答系统的主题判别模块22根据模型进行主题识别的处理。

主题判别模型的训练包括几部分:样本获取、模型训练。下面分别说明:

样本选取:

参见图2,模型训练器的主题判别装置,获取的样本包括两部分:点击样本数据和知识库样本数据。知识库样本数据包括title和类目,例如:

Title:支付宝安全性如何?

类目:咨询类。

由于是训练用于判断提问主题的模型,因此选用的样本只包括title即可,不用包括answer。知识库样本数据可以直接从智能问答系统的知识库24中获取,例如,可以通过网络传输方式获取,或者离线方式导入等。

点击样本数据的形式与上述的知识库样本数据相同,也包括问题和对应 的类目,只是该样本数据的获取方式有所不同,是由智能问答系统的前端接收模块获取到,并传输至日志模块存储的,模型训练器的主题判别装置从日志模块获取该点击样本数据。如下列举几种点击样本数据的获取方式:

在一个例子中,参见图3的示例,用户提问了“支付宝怎么办理?”,这是用户的实际提问信息。也许智能问答系统经过搜索发现,知识库中并没有与该问题特别匹配的答案,于是反馈给用户一些“知识点链接”,包括一些可能的用户想问的问题猜测,以期尽可能准确的回答用户,这些猜测的问题对应的知识点存储在知识库中。假设用户点击了“注册失败”,智能客服会反馈知识库中存储的“注册失败”知识点对应的答案作为对用户提问的回答。在该过程中得到的点击样本数据,包括如下信息:

Title:用户的实际提问信息“支付宝怎么办理?”

Answer:“注册失败”对应的答案。该答案是根据用户点击得到的,经过图2的虚线箭头流程以后,反馈给用户的是搜索引擎模块得到的一些知识点链接,当用户点击其中一个知识点时,由于该知识点存储在知识库,前端接收模块可以直接去知识库中获取该知识点的答案。

类目:将知识库中存储的“注册失败”的答案对应的类目,作为实际提问信息“支付宝怎么办理?”的类目。

在另一个例子中,参见图4的示例,智能问答系统在对用户的实际提问信息给出答案后,还会让用户选择“以上内容对您有帮助吗?”,用户可以选择是或者否。假设用户点击“是”,那么表明答案很符合用户想要的内容。基于此,将得到类似上述的点击样本数据,同样包括:用户的实际提问信息作为title,以及答案对应的类目作为该title的主题。

还有其他的点击获取样本数据的例子,不再详举,由上述例子可以看到,“点击样本数据”是通过前端接收模块获取到的用户实际点击选择的样本,符合用户的意愿,而且这种方式可以使得模型训练的样本更加丰富。例如,知识库中的样本是管理人员维护的静态样本数据,比如存储的知识点中描述可以为“中国工商银行”这种较为标准的用语,而用户在实际提问时有可能 用语不太规范,比如采用“工行”,那么基于“中国工商银行”这种用语的样本训练的模型,将可能不能识别到“工行”类型的用语或者识别不准确。

而本实施例中,点击样本数据将用户的实际提问信息作为样本数据,使得样本更加符合用户的实际提问习惯,样本也更加丰富和完善,并且,通过用户的点击选择保证了答案与实际提问信息的对应,也更加符合用户的期望,使得知识点样本更加准确。此外,点击样本数据是在用户的使用过程中获得的,随着用户对智能问答系统的使用,该问答系统能够不断获取最新的点击样本数据,因此,使得点击样本数据和知识库样本数据组成的样本集不动更新,可以称为一种动态样本。

智能问答系统的前端接收模块,在获取到用户的点击样本数据,可以将该点击样本数据发送至日志模块存储,模型训练器由日志模块获取该存储的点击样本数据,获取方式不限(例如,网络传输或离线导入)。此外,由上述可知,日志模块获取点击样本数据的过程是不断更新的,例如,每天都可以获取到很多的点击样本数据。模型训练器可以定期获取点击样本数据,例如,可以每隔一星期获取一次样本数据,或者每隔半个月获取一次等,定期的方式可以自由设定,对于样本数量也可以自己设定,不做限制。

对应的,模型训练器也每隔一段时间就重新训练一次主题判别模型,使得随着点击样本数据和知识库数据的不断更新,模型训练器也随之使用新的样本数据训练出更新的模型。并且,智能问答系统的主题判别模块,在模型训练器得到最新的主题判别模型后,也将会加载该新的模型对用户提问信息进行主题识别,使得主题识别更加准确。例如,模型训练器可以将每次更新后的模型放在一个与智能问答系统的主题判别模块共享的文件夹中,问答系统可以设置为自动从该共享文件夹中获取加载最新的模型文件。

在模型训练器得到样本后,将进行如下的模型训练得到主题判别模型。

模型训练:

点击样本数据和知识库样本数据,只是样本的来源不同,样本的形式是相同的,都是包括title和类目,因此,可以将样本数据统一归纳为(text,target), 其中,text代表知识点中的问题或者用户的提问信息,target代表知识点类目或者点击样本中的用户提问对应类目。假设从知识库中和点击样本中获取到如下几个样本(仅以三个举例):

(“余额宝收益比较稳定”,资产收益类目)

(“今天晚上吃饭吗?”,闲聊类目)

(“支付宝安全性如何?有收益吗?”,咨询类目)

获取到这三个样本后,先对样本进行如下处理:

首先,通过分词工具对每个样本的text内容进行分词,每个样本将得到一个(term1,term2……..termN)的Term序列,分词后的样本集合如下:

(“余额宝#收益#比较#稳定”,资产收益类目)

(“今天#晚上#吃饭#吗?”,闲聊类目)

(“支付宝#安全性#如何?有#收益#吗?”,咨询类目)

再根据以上分词后的样本,提取Term词库,词库为([余额宝,f1][收益,f2][比较,f3][稳定,f4][今天,f5][晚上,f6][吃饭,f7][吗,f8][支付宝,f9][安全性,f10][如何,f11][有,f12])。其中,样本中的“?”被作为停顿词剔除掉了。基于该Term词库,对上述样本集合中的三个样本分别进行表征,表征的方式是,如果词库中的Term X出现在样本Text中,取特征值为1,否则特征值为0。其中,在如下表征时,取值为0的特征不标明。

(“[f1,1][f2,1][f3,1][f4,1]”,资产收益类目)

(“[f5,1][f6,1][f7,1][f8,1]”,闲聊类目)

(“[f9,1][f10,1][f11,1][f12,1][f2,1][f8,1]”,咨询类目)

此外,类目也需要用特征值表征,该表征要基于所训练的模型要将样本分成几个主题。本实施例中,对于训练的样本,采取细化主题的方式,以使得主题识别时更加准确。例如,可以先得到几个主题大类,再在某个主题大类下划分几个不同主题的小类。基于此,本实施例的用于对提问信息进行主题判别的主题判别模型,可以包括:分类模型和多意图识别模型。其中,分类模型用于识别提问主题对应的上述主题大类,比如某个提问属于“工作主 题”类的问题,然后再利用多意图识别模型识别该提问属于“工作主题”这个主题大类下的“密码类”问题(工作主题大类还可以包括咨询、安全等其他主题)。这种分层识别的方式,有助于使得识别的主题更加准确。

例如,本实施例中,将样本分成“闲聊”主题样本、以及“非闲聊”主题样本,即可以将主题大类设计为两个大类“闲聊”和“非闲聊”;再分别针对各个主题大类识别出不同的主题。基于此,例如,本实施例可以采用二分类意图识别模型(该二分类意图识别模型是分类模型中的其中一种)用于区分“闲聊”主题和“非闲聊”这两个主题大类,再根据多意图识别模型识别“非闲聊”主题下的不同主题。

对于二分类意图识别模型,将闲聊类目的样本的Target标记为1,将非闲聊类目的样本Target标记为0,得到二分类意图识别模型使用的样本集合如下:

(“[f1,1][f2,1][f3,1][f4,1]”,0)

(“[f5,1][f6,1][f7,1][f8,1]”,1)

(“[f9,1][f10,1][f11,1][f12,1][f2,1][f8,1]”,0)

对于多意图识别模型,将闲聊类目的样本数据剔除,对于非闲聊类目的不同主题Target可以分别标记为:1,2,3。得到多意图识别模型的样本集合:

(“[f1,1][f2,1][f3,1][f4,1]”,1)

(“[f9,1][f10,1][f11,1][f12,1][f2,1][f8,1]”,2)

使用上述二分类意图识别模型使用的样本集合,进行二分类意图识别模型的训练:本实施例中,可以使用libSVM作为二分类基础模型,因为SVM作为二分类意图识别模型的分类效果比较好,同时训练效率较高。

训练流程:

首先将二分类意图识别模型使用的样本(例如,(“[f1,1][f2,1][f3,1][f4,1]”,0))进行格式转换,转换成libSVM所需要的特定样本格式。接着,通过libSVM对样本进行建模,并将建成的模型测试样本,检验模型的准确率,不断迭代直至准确率达到最优。

模型训练结束时的输出是一组权重列表,表征每个特征在分类时的有效性。例如,以上述的样本为例,样本中包括[余额宝]、[收益]、[安全性]等词,在二分类意图识别模型中包括“闲聊”和“非闲聊”两个主题大类,经过模型训练得到的是每个词分别属于各个主题的权重。比如,[余额宝]这个词,属于“闲聊”主题的权重是0.1,属于“非闲聊”这个主题的权重是0.9;[安全性]这个词,属于“闲聊”主题的权重是0.3,属于“非闲聊”这个主题的权重是0.7;其他词不再列举。

这样后续再判断每个提问的主题时,可以根据提问中包括的各个词对应的权重判断整体提问对应的主题。比如,某个提问“余额宝安全性?”。对于该提问信息预测提问主题时,将其分词,得到[余额宝]+[安全性];根据每个词的主题权重之和得到提问对应的主题权重,比如,提问属于“闲聊”主题的权重是0.1+0.3=0.4,提问属于“非闲聊”主题的权重是0.9+0.7=1.6,因此得到该提问属于“非闲聊主题”。上述只是示例性的说明模型输出的权重的应用含义,具体实施中也可以采用其他的表征方式和主题权重评价方式。

同样的原理,使用多意图识别模型的样本集合,进行多意图识别模型的训练。本实施例中,可以采用最大熵作为多意图识别基础模型,因为最大熵作为多意图识别模型,模型简单,分类效果较好。同样的,也需要将样本数据转换成最大熵所需的特定样本格式,并且建模得到的模型的输出也是一组权重列表,用于表征每个词在分类时分别属于每个主题的权重。

经过上述的描述可以看到,根据知识库样本数据和点击样本数据,可以进行样本数据的训练,得到二分类意图识别模型和多意图识别模型,该模型中包括训练得到的模型文件,模型文件中可以是一组权重列表,用于表征每个词在分类时分别属于每个主题的权重。在下面的描述中,主题判别模块将使用上述模型来进行主题判别,具体是根据模型文件中的权重来计算和判别提问信息对应的主题。

智能问答系统的主题判别模块22,将根据模型训练器得到的主题判别模型对用户的提问信息进行主题识别。其中,在主题判别时,可以使用二分类 意图识别模型和多意图识别模型这两种模型,结合进行主题识别。

结合图2所示,主题判别模块22可以是QP服务器(Query Process Server),通过加载主题判别模型文件对用户的提问信息进行识别,得到提问对应的主题。主题识别的过程上面已经描述到,QP服务器对提问进行分词,得到提问信息对应的Term列表,然后看该Term列表中的每个Term,是否在Term词表中(Term词表是主题判别模型训练时使用的词表),从而获得特征向量。对该特征向量使用二分类意图识别模型进行预测。

如图5所示,本实施例中,搜索引擎模块,包括分别对应不同主题大类的多个搜索引擎模块,例如包括闲聊引擎51和非闲聊引擎52。如果提问的主题是闲聊,则QP服务器调用闲聊引擎51。如果提问的主题是非闲聊,则QP服务器继续使用多意图识别模型预测,得到提问真正对应的主题,并调用非闲聊引擎52。不论是闲聊引擎51或者非闲聊引擎52,都将根据已经识别到的提问主题,计算该主题与知识点的匹配分值,用于知识点的排序评分,对知识库中的各个知识点进行排序,根据排序结果返回提问对应的答案。

由上述可以看到,QP服务器中的主题判别装置,执行图6的流程:

601、获取用户的提问信息;

602、根据主题判别模型对所述提问信息进行判别,得到所述提问信息对应的提问主题,所述主题判别模型由动态样本训练得到,所述动态样本包括:点击样本数据以及知识库样本数据。

此外,主题判别装置在进行主题判别时,先通过分类模型识别提问主题对应的主题大类,再在所述主题大类下,通过多意图识别模型确定所述提问主题是多个主题中的其中一个。

主题判别装置可以在逻辑上分成图7所示的模块,包括:信息获取模块71和主题识别模块72;其中,信息获取模块71用于执行步骤601的处理,主题识别模块72用于执行步骤602的处理。

参见图8,主题识别模块72,还可以包括第一识别模块721和第二识别模块722,其中,主题判别模型可以包括分类模型和多意图模型;第一识别 模块721,用于通过分类模型识别提问主题对应的主题大类;第二识别模块722,用于通过多意图识别模型确定所述提问主题是所述主题大类下的多个主题中的其中一个。

通过在智能问答系统的QP服务器上设置如上的主题判别装置,进行线上的提问主题判别,由于判别所使用的模型是由动态样本训练得到,将使得主题判别更加准确;而且在主题判别时使用了多个模型,将主题划分较细,也能够进一步提高主题识别的准确率。

由上述可以看到,模型训练器中的主题判别装置,执行图9的流程:

901、获取点击样本数据以及知识库样本数据;

例如,可以定期获取点击样本数据。

902、根据所述点击样本数据以及知识库样本数据,训练得到主题判别模型,所述主题判别模型用于对用户的提问信息进行主题判别。

主题判别装置可以在逻辑上分成图10所示的模块,包括:样本获取模块1001和模型训练模块1002;其中,样本获取模块1001用于执行步骤901的处理,模型训练模块1002用于执行步骤902的处理。

模型训练器通过获取包括点击样本数据的动态样本,可以使得样本更加丰富和全面,更能真实反映用户的提问习惯,训练的模型在识别主题时也更加准确。并且还训练了二分类和多意图等多种细化主题识别的模型,有助于进一步提升主题识别的准确率。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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