首页> 中国专利> 自动问答方法、自动问答系统及构建问答实例库的方法

自动问答方法、自动问答系统及构建问答实例库的方法

摘要

本申请公开了一种自动问答方法、自动问答系统及构建问答实例库的方法。具体地,利用以向量方式存储问答实例的问答实例库,将用户提交的问题向量化生成问题向量,利用问题向量及包含实例向量的问答实例库,查找相似度符合要求的回答知识点ID,再利用回答知识点ID从知识点文案库中获取输出给用户的答案内容。采用本发明的系统及方法,能够降低成本,提高工作效率。

著录项

  • 公开/公告号CN103049433A

    专利类型发明专利

  • 公开/公告日2013-04-17

    原文格式PDF

  • 申请/专利权人 微梦创科网络科技(中国)有限公司;

    申请/专利号CN201210533328.0

  • 发明设计人 陈开江;

    申请日2012-12-11

  • 分类号G06F17/27(20060101);G06F17/30(20060101);

  • 代理机构11321 北京市京大律师事务所;

  • 代理人黄启行;方晓明

  • 地址 100080 北京市海淀区海淀北二街10号701室

  • 入库时间 2024-02-19 18:28:18

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-10-28

    授权

    授权

  • 2013-05-15

    实质审查的生效 IPC(主分类):G06F17/27 申请日:20121211

    实质审查的生效

  • 2013-04-17

    公开

    公开

说明书

技术领域

本发明涉及计算机自然语言处理领域,特别涉及一种自动问答方法、一 种自动问答系统及一种构建问答实例库的方法。

背景技术

目前,很多行业需要承担越来越多的用户咨询和反馈的解答工作,比如 互联网行业的售后服务或者客户服务。由于用户数量的指数增长,已经无法 采用人工的方式对所有用户的咨询进行反馈或及时回答,并且用户的问题大 多集中在某些特定的知识点上,人工回复往往是进行重复性地劳动,因此, 急需一种简单、高效、易维护的系统来辅助人工进行问题回复。

自动问答(Question Answering,QA)是指根据用户的自然语言提出的问 题找到一个明确的答案。图1为现有的自动问答系统的结构示意图,现结合 图1,对现有的自动问答系统的结构进行说明,具体如下:

现有的自动问答系统包括:接口单元101、推理单元102和知识库103。 接口单元101将用户采用自然语言进行提问的问题发送给推理单元102,推理 单元102对问题进行解析得到问题的结构化表达及关键词,根据问题的结构 化表达式及关键词从知识库103中匹配获得相关的应答内容,利用问题的结 构化表达式、本体知识技术及语言知识技术从知识库103中匹配获得问题模 板,利用自然语言处理技术、获得的应答内容及获得的问题模板,完成知识 推理并最终生成答案,通过接口单元101输出生成的答案。

现有的自动问答系统的知识库103的构建阶段,需要从输入的新问答对 中挖掘问题模板,构建出模板库,以供推理单元102查询获得问题模板,模 板库中的问题模板可为句型模板、语义模板等;可采用语言知识技术对输入 的新知识进行处理以获得与关键词对应的应答,还可对输入的新问答对进行 知识解析以获得与关键词对应的应答。知识库103中保存的知识即为与关键 词对应的应答,并且知识库103采用人工智能领域常用的本体知识表示知识, 而上述知识库103的构建都需要人工完成。

现有的自动问答系统的知识库构建和维护成本较大,且需要靠业务人员 总结某个知识点的常见问题模板,且运维需要持续加入新模板;由于模板库 会越来越大,推理单元进行推理计算的过程会越来越耗时,造成计算复杂, 响应时间不可控,工作效率低下,现有的自动问答系统还有待进一步改进。

发明内容

本发明提供了一种自动问答方法及系统,用以使得的项目或应用得以实 现。

根据本发明的一个方面,提供了一种自动问答方法,该方法能够降低成 本,提高工作效率。

根据本发明的一个方面,提供了一种自动问答系统,该系统能够降低成 本,提高工作效率。

根据本发明的一个方面,提供了一种构建问答实例库的方法。

本发明的目的是通过下述技术方案实现的:

本发明提供了一种自动问答方法,该方法包括:

A、将接收到的问题向量化获得问题向量;所述问题向量包含多个向量元 素;

B、根据所述向量元素检索问答实例库,获得多个实例向量;任一所述实 例向量至少包含一个向量元素;

C、利用相似度计算公式,计算问题向量与多个实例向量的相似度;

D、利用所述相似度确定答复知识点,输出与答复知识点对应的数据。

较佳地,所述步骤A之前进一步包括:

A’、采样人工回答记录并向量化,生成问答实例库。

上述方法中,所述步骤A’包括:

A’1、确定需自动问答的知识点,为所述需自动问答的知识点分配问题ID;

A’2、根据所述需自动问答的知识点,对人工回答记录进行采样,获得与 所述需自动问答的知识点对应的问答实例,为所述问答实例包含的知识点分 配回答知识点ID;

A’3、向量化所述问答实例包含的问题,获得问题向量;

A’4、将所述问答实例以三元组的形式进行存储;任一所述问答实例的三 元组包含问题ID、问题向量及回答知识点ID。

上述方法中,步骤A’2所述对人工回答记录进行采样,获得与所述需自动 问答的知识点对应的问答实例包括:

A’21、确定进行采样的知识点的样本数量n;所述进行采样的知识点为需 自动回答的知识点;所述n为自然数;

A’22、从人工回答记录中选择包含所述知识点的n个问题实例;

A’23、计算所述n个问题实例的问题的整体长度方差;

A’24、判断所述问题的整体长度方差是否低于第一阈值,如果是,则执行 步骤A’25,否则,去除所述n个问题实例中问题长度与所述n个问题实例的长 度平均值的差值最大的一个问题实例,从人工回答记录中再选择一个包含所 述知识点的问题实例,执行步骤A’23

A’25、将所述n个问题实例作为选择的n个包含所述需自动回答的知识点 的问答实例。

上述方法中,所述步骤A’23为:

利用1nΣqiKj(len(qi)-EKj(len))2计算所述n个问题实例的问题的整体长度方 差;

所述qi为知识点Kj的问题样本,所述len(qi)为qi包含的词数量,所述为知识点Kj中所有问题长度的平均值。

上述方法中,所述步骤A’3包括:

提取所述问答实例中问题的关键词、二元字符串及特殊词性;

将所述关键词作为向量元素,计算每一向量元素的权重;

利用每个向量元素的权重计算问答实例的向量的长度;

将向量元素、向量元素的权重及向量的长度作为问题向量。

上述方法中,所述计算每一向量元素的权重包括:

利用ch(i)=N*[A*N-CF*TF]2CF*TF*(N-CF)*(N-TF)计算获得向量元素与知识点之间的卡 方值ch(i);

利用weight(c,a)=ln(chi+b)计算获得预设的知识点范围内的每一个向量元 素的权重;

所述N为样本总数量,所述CF为每个知识点的样本数量,所述TF为每 个向量元素出现的样本数量,所述A为向量元素和知识点共同出现的样本数 量,所述ch(i)为向量元素c与知识点a的卡方值;

所述weight(c,a)表示向量元素c在知识点a中的权重,b是平滑值,所述b 为小数。

上述方法中,所述利用每个向量元素的权重计算问答实例的向量的长度 包括:

利用计算问答实例的向量长度;

所述|v|为向量长度,所述wi为向量问答实例中每个向量元素的权重。

上述方法中,所述步骤A包括:

将接收到的问题规整、分词和归一化处理,提取关键词、二元字符串和 词性;

将关键词作为向量元素;

将向量元素、向量元素的权重及向量的长度作为问题向量;所述向量元 素的权重和所述向量长度为空。

上述方法中,所述步骤C包括:

C1、将所述多个实例向量按照其包含的回答知识点ID进行归类;

C2、对于同一回答知识点ID,动态调整问题向量包含的向量元素在相同 的回答知识点ID对应的实例向量中的权重,获得调整后的向量元素;

C3、利用所述调整后的向量元素在所述相同回答知识点ID对应的实例向 量中的权重,计算所述调整后的向量元素与所述实例向量的余弦相似度。

上述方法中,所述步骤C3包括:

利用sim(vq,vc)=Σiwi(q)*wi(c)|vq|*|vc|计算所述调整后的向量元素所在的问题向量与 所述实例向量的余弦相似度;

所述vq为问题向量;所述vc为实例向量;所述|vq|*|vc|表示问题向量的长 度与实例向量的长度的乘积;所述和表示两个向量中相同向量元素对 应的权重。

上述方法中,所述步骤D包括:

D1、将所述相似度转换为实例向量与问题向量之间的距离;

D2、将所述距离小于第二阈值的实例向量作为候选实例向量;

D3、利用候选实例向量计算获得其对应的回答知识点ID的加权票数;

D4、在回答知识点ID的平均票数大于第三阈值时或在为回答知识点ID 投票的实例向量的数量大于第四阈值时,将回答知识点ID确定为候选知识点 ID;

D5、选择加权票数排列在前L位的候选知识点ID对应的知识点为答复知 识点;所述L为自然数;

D6、利用候选知识点ID从知识点文案库中读取排列在前L位的回答内容, 并按照加权票数的排列顺序输出L个回答内容。

上述方法中,所述步骤D1包括:

利用及sim(vc,vq)>λ>0计算实例向量与问题向量之 间的距离;

所述sim(vc,vq)为所述实例向量与所述问题向量的余弦相似度;

所述λ为相似度阈值。

上述方法中,所述步骤D3包括:

利用计算候选实例向量对应的回答知识点ID的 加权票数;

所述IDj为实例向量包含的回答知识点ID;所述vi为属于回答知识点IDj的 实例向量;所述vq是问题向量;所述dis<vi,vq>为实例向量与问题向量之间的 距离;所述m为属于回答知识点IDj的实例向量的数量。

上述方法中,步骤D4所述回答知识点ID的平均票数为回答知识点ID所 述加权票数除以属于回答知识点ID的实例向量的数量获得的商。

本发明提供了一种自动问答系统,该系统包含:

问答实例库,以三元组的形式存储问答实例;任一所述问答实例的三元 组包含问题ID、问题向量及回答知识点ID;

问题解析模块,将接收到的问题向量化获得问题向量;所述问题向量包 含多个向量元素;

所述问题解析单元根据所述向量元素检索所述问答实例库,获得多个实 例向量,并输出至答案生成模块;任一所述实例向量至少包含一个向量元素;

答案生成模块,利用相似度计算公式,计算问题向量与多个实例向量的 相似度,利用所述相似度确定答复知识点,输出与答复知识点对应的数据。

较佳地,该系统还包含:

构建模块,采样人工回答记录并向量化,生成问答实例库。

上述系统中,所述问题解析模块包含:

第一向量化单元,将接收到的问题规整、分词和归一化处理,提取关键 词、二元字符串和词性,将关键词作为向量元素,将向量元素、向量元素的 权重及向量的长度作为问题向量;所述向量元素的权重和所述向量长度为空;

检索单元,根据所述向量元素检索所述问答实例库,获得多个实例向量, 并输出至所述答案生成模块。

上述系统中,所述答案生成模块包括:

实例挑选单元,将所述多个实例向量按照其包含的回答知识点ID进行归 类,对于同一回答知识点ID,动态调整问题向量包含的向量元素在相同的回 答知识点ID对应的实例向量中的权重,获得调整后的向量元素;

所述实例挑选单元利用所述调整后的向量元素在所述相同回答知识点ID 对应的实例向量中的权重,计算所述调整后的向量元素与所述实例向量的距 离,将所述距离小于第二阈值的实例向量作为候选实例向量并输出至知识点 挑选单元;

知识点挑选单元,利用候选实例向量计算获得其对应的回答知识点ID的 加权票数,在回答知识点ID的平均票数大于第三阈值时或在为回答知识点ID 投票的实例向量的数量大于第四阈值时,将回答知识点ID确定为候选知识点 ID并输出至答案筛选单元;

答案筛选单元,选择加权票数排列在前L位的候选知识点ID对应的知识 点为答复知识点,利用候选知识点ID从知识点文案库中读取排列在前L位的 回答内容,并按照加权票数的排列顺序输出L个回答内容;所述L为自然数。

上述系统中,所述构建模块包含:

知识点确定单元,确定需自动问答的知识点,为所述需自动问答的知识 点分配问题ID,输出所述需自动问答的知识点及其对应的所述问题ID至采样 单元;

采样单元,根据所述需自动问答的知识点,对人工回答记录进行采样, 获得与所述需自动问答的知识点对应的问答实例,为所述问答实例包含的回 答数据分配回答知识点ID,输出问题ID、回答知识点ID及问答实例至第二 向量化单元;

第二向量化单元,向量化所述问答实例包含的问题,获得问题向量,将 所述问答实例以三元组的形式存储于问答实例库中;任一所述问答实例的三 元组包含问题ID、问题向量及回答知识点ID。

较佳地,该系统还包含:

知识点文案库,以三元组形式保存知识点向量;任一所述知识点向量的 三元组包含回答知识点ID、知识点描述及知识点回答文案。

本发明提供了一种构建问答实例库的方法,该方法包括:

A、确定需自动问答的知识点,为所述需自动问答的知识点分配问题ID;

B、根据所述需自动问答的知识点,对人工回答记录进行采样,获得与所 述需自动问答的知识点对应的问答实例,为所述问答实例包含的知识点分配 回答知识点ID;

C、向量化所述问答实例包含的问题,获得问题向量;

D、将所述问答实例以三元组的形式进行存储;任一所述问答实例的三元 组包含问题ID、问题向量及回答知识点ID。

上述方法中,步骤B所述对人工回答记录进行采样,获得与所述需自动 问答的知识点对应的问答实例包括:

B1、确定进行采样的知识点的样本数量n;所述进行采样的知识点为需 自动回答的知识点;所述n为自然数;

B2、从人工回答记录中选择包含所述知识点的n个问题实例;

B3、计算所述n个问题实例的问题的整体长度方差;

B4、判断所述问题的整体长度方差是否低于第一阈值,如果是,则执行 步骤B5,否则,去除所述n个问题实例中问题长度与所述n个问题实例的长 度平均值的差值最大的一个问题实例,从人工回答记录中再选择一个包含所 述知识点的问题实例,执行步骤B3;

B5、将所述n个问题实例作为选择的n个包含所述需自动回答的知识点 的问答实例。

上述方法中,所述步骤B3为:

利用1nΣqiKj(len(qi)-EKj(len))2计算所述n个问题实例的问题的整体长度方 差;

所述qi为知识点Kj的问题样本,所述len(qi)为qi包含的词数量,所述为知识点Kj中所有问题长度的平均值。

上述方法中,所述步骤C包括:

C1、提取所述问答实例中问题的关键词、二元字符串及特殊词性;

C2、将所述关键词作为向量元素,计算每一向量元素的权重;

C3、利用每个向量元素的权重计算问答实例的向量的长度;

C4、将向量元素、向量元素的权重及向量的长度作为问题向量。

上述方法中,所述步骤C2包括:

利用ch(i)=N*[A*N-CF*TF]2CF*TF*(N-CF)*(N-TF)计算获得向量元素与知识点之间的卡 方值ch(i);

利用weight(c,a)=ln(chi+b)计算获得每一个向量元素的权重;

所述N为样本总数量,所述CF为每个知识点的样本数量,所述TF为每 个向量元素出现的样本数量,所述A为向量元素和知识点共同出现的样本数 量,所述ch(i)为向量元素c与知识点a的卡方值;

所述weight(c,a)表示向量元素c在知识点a中的权重,b是平滑值,所述b 为小数。

上述方法中,所述步骤C3包括:

利用计算问答实例的向量长度;

所述|v|为向量长度,所述wi为向量问答实例中每个向量元素的权重。

由上述的技术方案可见,本发明提供了一种自动问答方法及系统,利用 以向量方式存储问答实例的问答实例库,将用户提交的问题向量化生成问题 向量,利用问题向量及包含实例向量的问答实例库,查找相似度符合要求的 回答知识点ID,再利用回答知识点ID从知识点文案库中获取输出给用户的答 案内容。本发明还提供了一种构建问答实例库的方法。采用本发明的系统及 方法,能够降低成本,提高工作效率。

附图说明

图1为现有的自动问答系统的结构示意图;

图2为本发明构建问答实例库的方法流程图;

图3为本发明自动问答方法的流程图;

图4为本发明实例向量的分类示意图;

图5为本发明自动问答系统的结构示意图。

具体实施方式

由于现有技术中采用模板匹配的方法实现自动问答,知识库构建和维护 成本较大,随着模板数量的持续性增长,匹配模板以获得答案的工作效率逐 步降低,而本发明的自动问答方法中,对人工问答记录进行处理生成以向量 方式存储问答实例的问答实例库,将用户提交的问题向量化生成问题向量, 利用问题向量及包含实例向量的问答实例库,查找符合要求的回答知识点ID, 再利用回答知识点ID从知识点文案库中获取输出给用户的答案内容,不仅系 统的运维成本较低,而且整个自动问答过程的工作效率得到了显著地提升。

为了表述清楚,先对本发明涉及的专业词汇进行说明,具体如下:

知识点就是用户诉求(包括咨询、反馈等)的话题,比如围绕“如何修 改登录密码”这个话题,用户会以各种不同的表述方式表达其诉求即用户实 际的问题,那么这个话题就是一个知识点。

向量(又称矢量)是一个既有长度又有方向的量,在一个空间坐标系中, 可以用坐标系的各个维度上的分量去描述,比如在二维直角坐标系中,从原 点到(3,4)这一点的向量就是一个长度为5、方向为原点到(3,4)这一点的向量, 这个向量就可以表示为(3,4),即该向量在x这个维度上的分量为3,在y这个 维度上的分量为4;由于计算机无法直接对自然语言的文本做出任何理解或处 理工作,因此,本发明对问题和问答实例进行向量化,即仅保留问题和问答 实例中的若干关键词,这些关键词以高维向量的形式存在,以便于进行计算; 一个关键词就是问题向量或实例向量的一个维度,相当于直角坐标系的x维 度或y维度,由于问题或问答实例中包含很多不同的关键词,所以问题向量 和实例向量均是一个高维向量。

二元字符串指相邻两个单字组合而成的字符串,比如“问答实例”包含 的二元字符串为:问答、答实和实例。

相似度计算是指计算两个向量的相似程度,即将该两个向量看作是高维 空间的两个点的相近程度;余弦相似度就是计算两个向量之间的夹角大小, 以此来衡量两个向量的相近程度。

加权投票的每一票计数不是简单的1票,而是与投票方的权重有关,权 重越大的,其投一次票得到的计数就越大。

图2为本发明构建问答实例库的方法流程图。现结合图2,对本发明构建 问答实例库的方法进行说明,具体如下:

步骤20:确定需自动问答的知识点,为需自动问答的知识点分配问题ID;

该步骤提及的需自动问答的知识点为需要采用非人工服务的方式进行回 复的知识点范围,该知识点范围可根据该问答实例库所属的领域进行设定; 或者从知识点文案库中选定需自动问答的知识点的范围。

其中,知识点文案库可为人工答复时提供知识点回答文案的数据库,该 数据库中的每个知识点有唯一的ID、知识点描述及知识点回答文案。

该步骤中提及为需自动问答的知识点分配的问题ID也是唯一的。

步骤21:获得与需自动问答的知识点对应的问答实例并分配回答知识点 ID;

该步骤包括:根据需自动问答的知识点,对人工回答记录进行采样,获 得与需自动问答的知识点对应的问答实例,为问答实例包含的知识点分配回 答知识点ID。

其中,为问答实例包含的知识点分配的回答知识点ID可以参考知识点文 案库中的知识点ID,比如,将相同知识点对应的回答知识点ID及知识点文案 库中的知识点ID建立对应关系,或者将相同知识点对应的回答知识点ID及 知识点文案库中的知识点ID设为相同的内容。

其中,对人工回答记录进行采样,获得与需自动问答的知识点对应的问 答实例包括:确定进行采样的知识点的样本数量n;进行采样的知识点为需自 动回答的知识点;n为自然数;从人工回答记录中选择包含知识点的n个问题 实例;计算n个问题实例的问题的整体长度方差;判断问题的整体长度方差 是否低于第一阈值,如果是,则将n个问题实例作为选择的n个包含需自动 回答的知识点的问答实例,否则,去除n个问题实例中问题长度与n个问题 实例的长度平均值的差值最大的一个问题实例,从人工回答记录中再选择一 个包含知识点的问题实例,执行计算n个问题实例的问题的整体长度方差的 步骤。

步骤计算n个问题实例的问题的整体长度方差,可利用 1nΣqiKj(len(qi)-EKj(len))2计算选为采样样本的n个问题实例的问题的整体长度方 差;上述公式中,qi为知识点Kj的问题样本,len(qi)为qi包含的词数量,为知识点Kj中所有问题长度的平均值;为问题长度与n个问题 实例的长度平均值的差值。

上述步骤中,若计算获得的问题的整体长度方差大于预设的第一阈值, 则去掉绝对值较大的qi,即长度与平均值相差较大的问题实例, 然后采样新的问题实例进行补充,再进行上述问题的整体长度方差的计算过 程,直至满足第一阈值的要求。

步骤22:向量化问答实例包含的问题,获得问题向量;

该步骤包括:步骤a,提取问答实例中问题的关键词、二元字符串及特殊 词性;步骤b,将关键词作为向量元素,计算每一向量元素的权重;步骤c, 利用每个向量元素的权重计算问答实例的向量的长度;步骤d,将向量元素、 向量元素的权重及向量的长度作为问题向量。

其中,步骤b可利用ch(i)=N*[A*N-CF*TF]2CF*TF*(N-CF)*(N-TF)计算获得向量元素与 知识点之间的卡方值ch(i),或者利用现有的卡方值计算公式计算向量元素与 知识点之间的卡方值ch(i);再利用卡方值ch(i)及weight(c,a)=ln(chi+b)计算获得 预设的知识点范围内的每一个向量元素的权重。上述公式中,N为样本总数 量,CF为每个知识点的样本数量,TF为每个向量元素出现的样本数量,A为 向量元素和知识点共同出现的样本数量,ch(i)为向量元素c与知识点a的卡方 值,weight(c,a)表示向量元素c在知识点a中的权重,b是平滑值,b可取小数, 比如可取0.5。

步骤c中可利用计算问答实例的向量长度;上述公式中,|v| 为向量长度,wi为向量问答实例中每个向量元素的权重;n为选择的问答实例 的数量。

步骤23:将问答实例以三元组的形式进行存储;

本发明所构建的问答实例库中任一问答实例是以三元组的形式进行存储 的,该三元组包含问题ID、问题向量及回答知识点ID,具体形式可为:

<问题ID,问题向量(元素、权重、长度),回答知识点ID>。

比如:采样后编号为1500456的问题为“我想关注别人!”,在人工客服 回答历史记录中是采用知识点文案库中ID为15的知识点文案进行回答的, 那么这个问答实例经过本发明的上述处理后在问答实例库中存储形式如下表 所示:

问题ID 问题向量 回答知识点 1500456 [我想:2.1关注:4.6]/5.05 15

表一

表一中的问题向量中有两个元素:我想和关注,如果实例问题文本中还 有数词词性和时间词词性,那么这两者也是向量元素,每个向量元素后面用 “:”分隔的数值(2.1、4.6)就是这个元素在ID为15的知识点中的权重,5.05 就是这个向量的长度;在构建问答实例库时计算出向量长度,能够提高问答 系统在回复时的响应效率。

图3为本发明自动问答方法的流程图。现结合图3,对本发明自动问答方 法进行说明,具体如下:

步骤30:将接收到的问题向量化获得问题向量;

该步骤中的问题向量包含多个向量元素。

该步骤包括:将接收到的问题规整、分词和归一化处理,提取关键词、 二元字符串和词性;将关键词作为向量元素;将向量元素、向量元素的权重 及向量的长度作为问题向量。

步骤将接收到的问题规整、分词和归一化处理,提取关键词、二元字符 串和词性中,可采用现有的方法对问题进行规整、分词和归一化处理,在此 不再对所采用的详细的处理方法进行赘述。

本发明的向量元素以关键词为主,二元字符串作为对关键词不足时的补 充,词性是某些特定的词性,不需要具体的词,只需要保存其词性即可。

该步骤中向量元素包含的向量元素的权重及向量的长度被设置为空。

步骤31:根据向量元素检索问答实例库,获得多个实例向量;

该步骤中的多个实例向量的任一实例向量至少包含一个向量元素。

该步骤中,将向量元素中包含的关键词作为进行检索的知识点,从问答 实例库中检索获得包含相同知识点的实例向量。

步骤32:利用相似度计算公式,计算问题向量与多个实例向量的相似度;

该步骤包括:步骤e,将多个实例向量按照其包含的回答知识点ID进行 归类;步骤f,对于同一回答知识点ID,动态调整问题向量包含的向量元素在 相同的回答知识点ID对应的实例向量中的权重,获得调整后的向量元素;步 骤g,利用调整后的向量元素在相同回答知识点ID对应的实例向量中的权重, 计算调整后的向量元素与实例向量的余弦相似度。

步骤将多个实例向量按照其包含的回答知识点ID进行归类中,检索得到 的所有实例向量可按照其所属“回答知识点ID”进行归类,即“回答知识点 ID”相同的实例向量放在一起,具体可参见图4所示,这样做是能够使得问题 向量vq与同一个回答知识点ID下的所有实例向量可以在同一批完成计算,提 高工作效率。

步骤f中,动态调整的方法可以为:问题向量vq在与回答知识点ID1下所 有实例进行相似度计算时,如果vq中的元素在问答实例库中“回答知识点ID 为ID1”的实例中出现过,则其权重就取值为它在ID1中的权重,否则,其权 重取默认值,该默认值可根据需要进行设置,比如设置为问答实例库中回答 知识点ID为ID1的实例向量中向量元素的权重的最大值的80%。

其中,每次动态调整权重之后,就计算vq与当前ID下每一个问答实例向 量vc的余弦相似度。

步骤利用调整后的向量元素在相同回答知识点ID对应的实例向量中的权 重,计算调整后的向量元素与实例向量的余弦相似度中,可利用 sim(vq,vc)=Σiwi(q)*wi(c)|vq|*|vc|计算调整后的向量元素所在的问题向量与实例向量的余 弦相似度。

其中,vq为问题向量;vc为实例向量;|vq|*|vc|表示问题向量的长度与实 例向量的长度的乘积;和表示两个向量中相同向量元素对应的权重。

步骤33:利用相似度确定答复知识点,输出与答复知识点对应的数据。

该步骤包括:步骤h,将相似度转换为实例向量与问题向量之间的距离; 步骤i,将距离小于第二阈值的实例向量作为候选实例向量;步骤j,利用候 选实例向量计算获得其对应的回答知识点ID的加权票数;步骤k,在回答知 识点ID的平均票数大于第三阈值时或在为回答知识点ID投票的实例向量的 数量大于第四阈值时,将回答知识点ID确定为候选知识点ID;步骤l,选择 加权票数排列在前L位的候选知识点ID对应的知识点为答复知识点;步骤m, 利用候选知识点ID从知识点文案库中读取排列在前L位的回答内容,并按照 加权票数的排列顺序输出L个回答内容。

其中,L为自然数。

步骤h中,可利用及sim(vc,vq)>λ>0计算实例向量 与问题向量之间的距离;具体地,忽略sim(vc,vq)低于λ的实例向量,将保留的 实例向量按照距离计算公式进行计算。上述公式中, sim(vc,vq)为实例向量与问题向量的余弦相似度;λ为相似度阈值。

步骤j中,可利用计算候选实例向量对应的回答 知识点ID的加权票数;上述公式中,IDj为实例向量包含的回答知识点ID;vi 为属于回答知识点IDj的实例向量;vq是问题向量;dis<vi,vq>为实例向量与问 题向量之间的距离;m为属于回答知识点IDj的实例向量的数量。

步骤j中,每一个回答知识点ID所得总票数由候选实例中属于该知识点 的实例向量加权求和而来,比如图4中回答知识点ID1所得票数就是由实例 id11、id12等为其投票。

步骤k中回答知识点ID的平均票数为回答知识点ID加权票数除以属于 回答知识点ID的实例向量的数量获得的商。

步骤l及步骤m中,在L取1时,按照票数降序排列之后,挑选排名第 一的回答知识点ID,从知识点文案库中读取相同ID的知识点对应的知识点回 答文案,作为对用户提交的问题的回答内容,可进一步讲排名第二的回答知 识点ID对应的知识点文案库中的回答文案作为候选回答反馈给提交问题的用 户。

优选地,步骤30之前还包括如图2所示构建问答实例库的方法,在此不 再赘述具体的内容,可参见步骤20至步骤23的内容。

优选地,步骤33之后还包括:如果不存在符合的答复知识点,则将问题 转发至人工进行答复。

现举一具体实例,对本发明的方法进行说明:以微博客服为例,用户向 自助客服提交的问题为:“我想关注别人,没问题吧?谢谢。”下面详细描述 利用本发明的方法输出回答内容的过程。

问题规整,去掉无关字符串,如“谢谢”,自动标注出所属领域的关键词 或与产品有关的词,如“关注”;对问题进行分词得到:我\想\关注\别人\没\ 问题;提取关键词“关注”,并提取由相邻单字词(单字词就是分词后只含 一个汉字的词)组成的二元字符串作为关键词补充,比如将“我”和“想” 组成“我想”作为补充,二元字符串作为向量元素需要满足一定条件,比如 关键词数量较少(低于设定阈值)时补充为向量元素;如果实例问题文本中 还有数词词性和时间词词性,那么也可将其作为向量元素;生成问题向量, 即[我想:?关注:?问题:?],其中,?表示权重待定,需要在计算过程中动态调 整;检索问答实例库,即利用“我想”和“关注”去检索问答实例库,得到 包含问题向量中至少一个向量元素的所有实例向量列表,“问题”一词没有检 索到任何实例,按照回答知识点ID分类,如表二所示:

问题ID 问题向量 回答知识点

1500456 [我想:2.1关注:4.6]/5.05 15 1500457 [无法:2.1关注:4.6]/5.05 15 1500458 [怎么:2.1关注:4.6]/5.05 15 1500459 [我想:2.0认证:4.7]/5.10 16 1500459 [我想:2.0认证:4.7]/5.10 16

表二

按照回答知识点的ID分批计算问题向量与检索到的实例向量之间的相似 性,即将问题向量分别与回答知识点ID=15对应的实例向量和回答知识点 ID=16对应的实例向量计算相似性;

具体地,计算问题向量[我想:?关注:?问题:?]与回答知识点ID为15下的 实例向量1500456、1500457、1500458之间的相似性,先将问题向量[我想:?关 注:?问题:?]中向量元素权重根据回答知识点ID=15中的相应向量元素的权重 进行调整,得到调整后的问题向量[我想:2.1关注:4.6问题:3.68]/6.24,然后分 别与1500456、1500457、1500458实例向量计算余弦相似度,分别为0.80、 0.67、0.67。

将这三个相似度分别转换为距离值0.22、0.40、0.40,若第二阈值取值为 0.91,则三个实例向量均可以参与投票;这三个实例向量均为其所属回答知识 点ID=15投票,所投票数分别为20.66、6.25、6.25,回答知识点ID=15最终 得票为33.16,其平均票数为(33.16)/3=11.05,且为其投票的实例向量为3;问 题向量再与回答知识点ID=16下的实例向量进行前述处理后,回答知识点 ID=16也得到了相应的相似度,两个实例均为0.12,转换为距离值就是2.12, 大于第二阈值,不能参与投票;取排名第一的回答知识点ID=15的知识点回 答文案,输出作为对用户的回答。

图5为发明自动问答系统的结构示意图。现结合图5,对本发明自动问答 系统的结构进行说明,具体如下:

本发明的自动问答系统包含:问答实例库50、问题解析模块51及答案生 成模块52。

问答实例库50以三元组的形式存储问答实例。其中,任一问答实例的三 元组包含问题ID、问题向量及回答知识点ID,将以三元组形式存储的问答实 例称为实例向量。

问题解析模块51将接收到的问题向量化获得问题向量,根据向量元素检 索问答实例库50,获得多个实例向量,并输出多个实例向量至答案生成模块 52。其中,任一实例向量至少包含一个向量元素,问题向量包含多个向量元 素。

答案生成模块52利用相似度计算公式,计算问题向量与多个实例向量的 相似度,利用相似度确定答复知识点,输出与答复知识点对应的数据。

其中,问题解析模块51包含:第一向量化单元511和检索单元512。

第一向量化单元511将接收到的问题规整、分词和归一化处理,提取关 键词、二元字符串和词性,将关键词作为向量元素,将向量元素、向量元素 的权重及向量的长度作为问题向量。其中,向量元素的权重和向量长度被设 置为空。

检索单元512根据向量元素检索问答实例库50,获得多个实例向量,并 输出多个实例向量至答案生成模块52。

其中,答案生成模块52包括:实例挑选单元521、知识点挑选单元522 和答案筛选单元523。

实例挑选单元521将多个实例向量按照其包含的回答知识点ID进行归 类,对于同一回答知识点ID,动态调整问题向量包含的向量元素在相同的回 答知识点ID对应的实例向量中的权重,获得调整后的向量元素。

实例挑选单元521利用调整后的向量元素在相同回答知识点ID对应的实 例向量中的权重,计算调整后的向量元素与实例向量的距离,将距离小于第 二阈值的实例向量作为候选实例向量并输出至知识点挑选单元522。

知识点挑选单元522利用候选实例向量计算获得其对应的回答知识点ID 的加权票数,在回答知识点ID的平均票数大于第三阈值时或在为回答知识点 ID投票的实例向量的数量大于第四阈值时,将回答知识点ID确定为候选知识 点ID并输出至答案筛选单元523。

答案筛选单元523选择加权票数排列在前L位的候选知识点ID对应的知 识点为答复知识点,利用候选知识点ID从知识点文案库中读取排列在前L位 的回答内容,并按照加权票数的排列顺序输出L个回答内容。其中,L为自 然数。

优选地,本发明的自动问答系统还可与保存了人工回复的回答记录的数 据库建立连接,以利用人工回复的回答记录构建问答实例库。本发明的自动 问答系统还包含:构建模块53。构建模块53采样人工回答记录并向量化,生 成问答实例库。

其中,构建模块53包含:知识点确定单元531、采样单元532和第二向 量化单元533。

知识点确定单元531确定需自动问答的知识点,为需自动问答的知识点 分配问题ID,输出需自动问答的知识点及其对应的问题ID至采样单元532。

采样单元532根据需自动问答的知识点,对人工回答记录进行采样,获 得与需自动问答的知识点对应的问答实例,为问答实例包含的回答数据分配 回答知识点ID,输出问题ID、回答知识点ID及问答实例至第二向量化单元 533。

第二向量化单元533向量化问答实例包含的问题,获得问题向量,将问 答实例以三元组的形式存储于问答实例库50中。

优选地,该系统还可包含:知识点文案库54。知识点文案库54以三元组 形式保存知识点向量;任一知识点向量的三元组包含回答知识点ID、知识点 描述及知识点回答文案。

本发明的上述较佳实施例中,由于问答实例库构建是自动从记录有回答 记录的数据库中采样,所以不需要客服人员持续进行问答实例库的维护,仅 仅需要不太经常的领域知识和行业知识的更新;由于回答知识点ID和知识点 回答文案分离,且知识点回答文案不参与计算过程,所以知识点回答文案可 修改,且修改知识点回答文案完全不影响自动问答系统的工作;由于处理问 题均采样自人工客服的问答记录,所以自助客服的问答和人工客服无异,且 替代人工客服的工作量大大增加,提高了工作效率;由于答案产生过程采用 了实例加权投票方式,所以给出答案可信度高;由于计算步骤简单,无需模 板匹配,提高了响应时间,降低了成本,提高了工作效率。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤 是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读 取存储介质中,如:ROM/RAM、磁碟、光盘等。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普 通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润 饰,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号