首页 / 专利库 / 人工智能 / 人工智能 / 机器人技术 / 机器人 / 社交机器人 / 一种自动问答方法、装置及存储介质

一种自动问答方法、装置及存储介质

阅读:144发布:2020-05-12

专利汇可以提供一种自动问答方法、装置及存储介质专利检索,专利查询,专利分析的服务。并且本 发明 实施例 公开了一种自动问答方法、装置及存储介质;本发明实施例采用基于社交平台上的社交数据形成的多个问答对,该问答对包括问题及其对应的答案,然后,建立该问题与其词组的倒排索引,获取检索问题,并根据该检索问题的问题词组以及该倒排索引确定与该检索问题相近的相近问题,根据该相近问题以及该问答对获取检索问题的候选答案,得到检索问题的候选答案集合,从该候选答案集合中选取该检索问题的目标答案。该方案可以输出与检索问题相匹配的答案,提高了 聊天 机器人 系统输出答案的准确性和 质量 。,下面是一种自动问答方法、装置及存储介质专利的具体信息内容。

1.一种自动问答方法,其特征在于,包括:
基于社交平台上的社交数据形成的多个问答对,所述问答对包括问题及其对应的答案;
建立所述问题与其词组的倒排索引;
获取检索问题,并根据所述检索问题的问题词组以及所述倒排索引确定与所述检索问题相近的相近问题;
根据所述相近问题以及所述问答对获取检索问题的候选答案,得到检索问题的候选答案集合;
获取检索问题中问题词组的问题出现次数,以及候选答案中答案词的问题答案共现次数;所述问题出现次数为问题词组在问答对中出现的次数,所述问题答案共现次数为候选答案中的答案词组和检索问题中的问题词组在问题对中两两共现的次数;
根据检索问题中问题词组的问题出现次数、以及答案中候选答案词的问题答案共现次数,从所述候选答案集合中选取所述检索问题的目标答案。
2.如权利要求1所述的自动问答方法,其特征在于,从所述候选答案集合中选取所述检索问题的目标答案,包括:
获取候选答案集合中候选答案与检索问题之间的句子相似度信息;
根据候选答案集合中候选答案与检索问题之间的句子相似度信息,从所述候选答案集合中选取所述检索问题的目标答案。
3.如权利要求2所述的自动问答方法,其特征在于,获取候选答案集合中答案与检索问题之间的句子相似度信息,包括:
获取候选答案集合中候选答案对应的答案句子向量、以及检索问题对应的问题句子向量;
获取所述答案句子向量与所述问题句子向量之间的向量相似度;
所述根据候选答案集合中候选答案与检索问题之间的句子相似度信息,从所述候选答案集合中选取所述检索问题的目标答案,包括:根据所述答案句子向量与所述问题句子向量之间的向量相似度,从所述候选答案集合中选取所述检索问题的目标答案。
4.如权利要求3所述的自动问答方法,其特征在于,获取候选答案集合中候选答案对应的答案句子向量、以及检索问题对应的问题句子向量,包括:
获取候选答案集合内候选答案的答案词组对应的词向量,并根据所述答案词组对应的词向量获取所述候选答案对应的答案句子向量;
获取检索问题的问题词组对应的词向量,并根据问题词组对应的词向量获取检索问题对应的问题句子向量。
5.如权利要求3所述的自动问答方法,其特征在于,获取候选答案集合中候选答案对应的答案句子向量、以及检索问题对应的问题句子向量,包括:
将检索问题表示成相应的问题矩阵,并基于卷积神经网络模型对问题矩阵进行卷积处理,得到检索问题对应的问题句子向量;
将候选答案集合内候选答案表示成相应的答案矩阵,并基于所述卷积神经网络模型对答案矩阵进行卷积处理,得到候选答案对应的答案句子向量。
6.如权利要求5所述的自动问答方法,其特征在于,基于卷积神经网络模型对问题矩阵进行卷积处理,得到检索问题对应的问题句子向量,包括:
分别采用多个不同的卷积核对问题矩阵进行卷积运算,得到不同卷积核对应的卷积结果;
根据不同卷积核对应的卷积结果构建检索问题对应的问题句子向量;
基于所述卷积神经网络模型对答案矩阵进行卷积处理,得到候选答案对应的答案句子向量,包括:
分别采用多个不同的卷积核对答案矩阵进行卷积运算,得到不同卷积核对应的卷积结果;
根据不同卷积核对应的卷积结果构建候选答案对应的答案句子向量。
7.如权利要求1所述的自动问答方法,其特征在于,根据检索问题中问题词组的问题出现次数、以及候选答案中答案词的问题答案共现次数,从所述候选答案集合中选取所述检索问题的目标答案,包括:
获取候选答案中答案词的问题答案共现次数、与检索问题中问题词的问题出现次数的次数比例;
根据次数比例获取候选答案对应的目标答案概率,所述目标答案概率为所述答案作为检索问题的目标答案的概率;
根据答案对应的目标答案概率从所述候选答案集合中选取所述检索问题的目标答案。
8.如权利要求1-7任一项所述的自动问答方法,其特征在于,获取检索问题,包括:
获取用户当前输入的句子、以及用户之前输入的历史句子;
当所述句子不含主谓语和动宾语,且所述历史句子含有主谓语或者动宾语时,将历史句子中的主语或者宾语作为所述句子的主语,以合成新句子;
将所述新句子作为检索问题。
9.如权利要求8所述的自动问答方法,其特征在于,所述获取检索问题,还包括:
当合成新句子失败时,根据所述句子内词组的词类型从所述句子提取相应的关键词;
将所述历史句子中词类型与所述关键词相同的目标词组,替换为所述关键词,以得到替换后的句子;
将替换后的句子作为检索问题。
10.一种自动问答装置,其特征在于,包括:
问答对形成单元,用于基于社交平台上的社交数据形成的多个问答对,所述问答对包括问题及其对应的答案;
索引建立单元,用于建立所述问题与其词组的倒排索引;
问题获取单元,用于获取检索问题,并根据所述检索问题的问题词组以及所述倒排索引确定与所述检索问题相近的相近问题;
候选答案获取单元,用于根据所述相近问题以及所述问答对获取检索问题的候选答案,得到检索问题的候选答案集合;
答案选取单元,包括:
次数获取子单元,用于获取检索问题中问题词组的问题出现次数,以及候选答案中答案词的问题答案共现次数;所述问题出现次数为问题词组在问答对中出现的次数,所述问题答案共现次数为候选答案中的答案词组和检索问题中的问题词组在问题对中两两共现的次数;
答案选取子单元,用于根据检索问题中问题词组的问题出现次数、以及答案中候选答案词的问题答案共现次数,从所述候选答案集合中选取所述检索问题的目标答案。
11.如权利要求10所述的自动问答装置,其特征在于,所述答案选取单元,包括:
相似度获取子单元,用于获取候选答案集合中候选答案与检索问题之间的句子相似度信息;
答案选取子单元,用于根据候选答案集合中候选答案与检索问题之间的句子相似度信息,从所述候选答案集合中选取所述检索问题的目标答案。
12.如权利要求11所述的自动问答装置,其特征在于,所述相似度获取子单元,用于:获取候选答案集合中候选答案对应的答案句子向量、以及检索问题对应的问题句子向量;获取所述答案句子向量与所述问题句子向量之间的向量相似度;
所述答案选取子单元,用于:根据所述答案句子向量与所述问题句子向量之间的向量相似度,从所述候选答案集合中选取所述检索问题的目标答案。
13.如权利要求12所述的自动问答装置,其特征在于,所述相似度获取子单元,用于:获取候选答案集合内候选答案的答案词组对应的词向量,并根据所述答案词组对应的词向量获取所述候选答案对应的答案句子向量;获取检索问题的问题词组对应的词向量,并根据问题词组对应的词向量获取检索问题对应的问题句子向量。
14.如权利要求12所述的自动问答装置,其特征在于,所述相似度获取子单元,用于:将检索问题表示成相应的问题矩阵,并基于卷积神经网络模型对问题矩阵进行卷积处理,得到检索问题对应的问题句子向量;将候选答案集合内候选答案表示成相应的答案矩阵,并基于所述卷积神经网络模型对答案矩阵进行卷积处理,得到候选答案对应的答案句子向量。
15.如权利要求14所述的自动问答装置,其特征在于,所述相似度获取子单元,用于:
分别采用多个不同的卷积核对问题矩阵进行卷积运算,得到不同卷积核对应的卷积结果;
根据不同卷积核对应的卷积结果构建检索问题对应的问题句子向量;
基于所述卷积神经网络模型对答案矩阵进行卷积处理,得到候选答案对应的答案句子向量,包括:
分别采用多个不同的卷积核对答案矩阵进行卷积运算,得到不同卷积核对应的卷积结果;
根据不同卷积核对应的卷积结果构建候选答案对应的答案句子向量。
16.如权利要求10所述的自动问答装置,其特征在于,所述答案选取子单元,用于:
获取候选答案中答案词的问题答案共现次数、与检索问题中问题词的问题出现次数的次数比例;
根据次数比例获取候选答案对应的目标答案概率,所述目标答案概率为所述答案作为检索问题的目标答案的概率;
根据答案对应的目标答案概率从所述候选答案集合中选取所述检索问题的目标答案。
17.如权利要求10-16任一项所述的自动问答装置,其特征在于,所述问题获取单元,包括:
检索问题获取子单元,用于:
获取用户当前输入的句子、以及用户之前输入的历史句子;
当所述句子不含主谓语和动宾语,且所述历史句子含有主谓语或者动宾语时,将历史句子中的主语或者宾语作为所述句子的主语,以合成新句子;
将所述新句子作为检索问题;
相近问题获取子单元,用于根据所述检索问题的问题词组以及所述倒排索引确定与所述检索问题相近的相近问题。
18.如权利要求17所述的自动问答装置,其特征在于,所述检索问题获取子单元,还用于:
当合成新句子失败时,根据所述句子内词组的词类型从所述句子提取相应的关键词,将所述历史句子中词类型与所述关键词相同的目标词组,替换为所述关键词,以得到替换后的句子,将替换后的句子作为检索问题。
19.一种存储介质,其特征在于,所述存储介质存储有指令,所述指令被处理器执行时实现如权利要求1-9任一项所述的自动问答方法。

说明书全文

一种自动问答方法、装置及存储介质

技术领域

[0001] 本发明涉及人工智能技术领域,具体涉及一种自动问答方法、装置及存储介质。

背景技术

[0002] 聊天机器人系统就是一种借助于通讯手段能够时时刻刻在线、并通过自然语言与人沟通交流的人工智能系统。聊天机器人系统实质上是一种自动问答(QA)系统。该自动问答系统,也叫问题回答系统,是记忆一个大语料库,自动检索查找并回答用户提问的计算机处理系统。
[0003] 具体地,聊天机器人系统在用户输入问题后,会在数据库中检索与该问题匹配的答案,然后,输出该检索到的答案,以答复用户输入的问题,进而实现聊天。
[0004] 然而,目前聊天机器人系统经常会出现答案与问题不匹配的情况,答案相关性较差,降低了聊天机器人系统输出答案的准确性。

发明内容

[0005] 本发明实施例提供一种自动问答方法、装置及存储介质,可以提高聊天机器人系统输出答案的准确性。
[0006] 本发明实施例提供一种自动问答方法,包括:
[0007] 基于社交平台上的社交数据形成的多个问答对,所述问答对包括问题及其对应的答案;
[0008] 建立所述问题与其词组的倒排索引;
[0009] 获取检索问题,并根据所述检索问题的问题词组以及所述倒排索引确定与所述检索问题相近的相近问题;
[0010] 根据所述相近问题以及所述问答对获取检索问题的候选答案,得到检索问题的候选答案集合;
[0011] 从所述候选答案集合中选取所述检索问题的目标答案。
[0012] 相应的,本发明实施例还提供一种自动问答装置,包括:
[0013] 问答对形成单元,用于基于社交平台上的社交数据形成的多个问答对,所述问答对包括问题及其对应的答案;
[0014] 索引建立单元,用于建立所述问题与其词组的倒排索引;
[0015] 问题获取单元,用于获取检索问题,并根据所述检索问题的问题词组以及所述倒排索引确定与所述检索问题相近的相近问题;
[0016] 候选答案获取单元,用于根据所述相近问题以及所述问答对获取检索问题的候选答案,得到检索问题的候选答案集合;
[0017] 答案选取单元,用于从所述候选答案集合中选取所述检索问题的目标答案。
[0018] 相应的,本发明实施例还提供一种存储介质,所述存储介质存储有指令,所述指令被处理器执行时实现本发明实施例任一提供的自动问答方法。
[0019] 本发明实施例采用基于社交平台上的社交数据形成的多个问答对,所述问答对包括问题及其对应的答案,然后,建立所述问题与其词组的倒排索引,获取检索问题,并根据所述检索问题的问题词组以及所述倒排索引确定与所述检索问题相近的相近问题,根据所述相近问题以及所述问答对获取检索问题的候选答案,得到检索问题的候选答案集合,从所述候选答案集合中选取所述检索问题的目标答案。该方案可以先查询与检索问题相近的相近问题,并查询相近问题对应的答案,再从相近问题的答案中选取最合适的答案,因此,该方案可以输出与检索问题相匹配的答案,提高了聊天机器人系统输出答案的准确性和质量附图说明
[0020] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021] 图1a是本发明实施例提供的自动问答方法的流程示意图;
[0022] 图1b是本发明实施例提供的句子合成的流程示意图;
[0023] 图1c是本发明实施例提供的由词向量得到句子向量的示意图;
[0024] 图1d是本发明实施例提供的基于卷积神经网络的句子相似度的计算示意图;
[0025] 图1e是本发明实施例提供的词语共现次数统计的示意图;
[0026] 图2a是本发明实施例提供的自动问答系统的场景示意图;
[0027] 图2b是本发明实施例提供的自动问答方法的流程示意图;
[0028] 图2c是本发明实施例提供的机器人聊天界面的示意图;
[0029] 图2d是本发明实施例提供的机器人聊天界面的另一示意图;
[0030] 图3a是本发明实施例提供的自动问答系统的架构图;
[0031] 图3b是本发明实施例提供的排序系统的结构示意图;
[0032] 图4a是本发明实施例提供的自动问答装置的第一种结构示意图;
[0033] 图4b是本发明实施例提供的自动问答装置的第二种结构示意图;
[0034] 图4c是本发明实施例提供的自动问答装置的第三种结构示意图;
[0035] 图4d是本发明实施例提供的自动问答装置的第四种结构示意图。

具体实施方式

[0036] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037] 本发明实施例提供了一种自动问答方法、装置及存储介质。以下将分别进行详细说明。
[0038] 实施例一、
[0039] 本实施例将从自动问答装置的度进行描述,该自动问答装置具体可以集成在一个实体或者多个实体中;比如,该自动问答装置可以集成在服务器等设备中。
[0040] 一种自动问答方法,包括:基于社交平台上的社交数据形成的多个问答对,该问答对包括问题及其对应的答案,然后,建立该问题与其词组的倒排索引,获取检索问题,并根据该检索问题的问题词组以及该倒排索引确定与该检索问题相近的相近问题,根据该相近问题以及该问答对获取检索问题的候选答案,得到检索问题的候选答案集合,从该候选答案集合中选取该检索问题的目标答案。
[0041] 如图1a所示,该自动问答方法的具体流程可以如下:
[0042] 101、基于社交平台上的社交数据形成多个问答对,该问答对包括问题及其对应的答案。
[0043] 其中,社交平台是指给用户提供分享自己见闻、心情、感悟等信息的平台。比如,基于即时通讯的社交平台等。此外,社交平台还可以包括聊天机器人、问题系统;也即聊天机器、问题系统可以为交互社交信息的社交平台。
[0044] 社交平台上的社交数据为用户在社交平台上交互的社交信息数据,该社交数据可以包社交平台上的UGC(User Generated Content,用户生成内容)。比如,该社交数据可以包括用户在社交平台发表的内容(如文本内容等),以及其他用户在社交平台上针对该内容的评论信息或者回复内容等等。
[0045] 本实施例中,问答对也称为问题答案对(uestion-answer pair,QA pair),其指的是一问一答的一对社交数据如文本数据。该问答对具体可以包括问题及其对应的答案。比如,社交数据包括社交平台上发表的内容a,以及针对内容a的评论内容b、评论内容c、评论内容d;此时,便可以将内容a作为问题,分别将针对内容a的评论内容b、c、c作为问题的答案,最后可以组成问答对(a,b)、问答对(a,c)、问答对(a,d)。
[0046] 本实施例,可以获取社交平台上海量的社交数据,然后,拆解形成问答对。也即步骤“基于社交平台上的社交数据形成多个问答对”可以包括:
[0047] 获取社交平台上的社交数据;
[0048] 对社交数据进行问答拆解,以形成多个问答对。
[0049] 实际应用中,为了减少处理量以及提高答案的质量,还可以对社交数据进行数据过滤(即数据清洗),比如,过滤掉一些隐私数据或者敏感数据等,然后,对过滤后的社交数据进行问答拆解,形成多个问答对。也即步骤“对社交数据进行问答拆解”可以包括:
[0050] 对社交数据进行数据过滤,得到过滤后社交数据;
[0051] 对过滤后社交数据进行问答拆解。
[0052] 具体地,可以先对社交数据进行分词,然后,按照词汇过滤原则过滤掉一些词组数据,该词汇过滤原则可以根据实际需求设定,比如可以过滤掉人名、地名、机构名等命名实体数据,过滤掉电话号码、即时通讯账号、金融账号(如行卡号等)等隐私数据,过滤掉脏词等不文明词汇数据。也即,步骤“对社交数据进行数据过滤”可以包括:
[0053] 对社交数据进行分词处理,得到社交数据对应的词组数据;
[0054] 根据预设词汇过滤原则对社交数据对应的词组数据进行数据过滤。
[0055] 本实施例可以在离线状态下对数据进行过滤;比如,可以采用离线处理系统获取社交平台上的社交数据,然后,对社交数据进行过滤处理。
[0056] 102、建立该问题与其词组的倒排索引。
[0057] 其中,倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文本我们称为倒排索引文本,简称倒排文本(inverted file)。
[0058] 本实施例中述问题与其词组的倒排索引可以:由问题内的词组确定待去重文本。该倒排索引可以包括多个索引条目或者索引对,每个索引条目或者索引对包括索引关键词及其对应的索引项,其中,索引关键词可以为问题中的词组,索引项可以为词组对应的问题。因此,本实施例中建立该问题与其词组的倒排索引,即为建立表征词组与问题之间的对应关系的索引对或者索引条目。具体地,步骤“建立该问题与其词组的倒排索引”可以包括:
[0059] 对问答对中问题进行分词处理,得到问题的词组;
[0060] 根据问题以及问题的词组建立索引对,该索引对包括索引关键词及其对应的索引项,该索引关键词为问题的词组,索引项可以为该问题。
[0061] 例如,可以对问题Q进行分词处理后得到词组q1、q2、……qn,那么便可以建立索引对(q1,Q)、(q2,Q)……(qn,Q),以得到问题与问题词组的倒排索引。
[0062] 在建立问题与其词组的倒排索引之后,便可以基于该倒排索引查询到与检索问题相近的相近问题。
[0063] 103、获取检索问题,并根据该检索问题的问题词组以及该倒排索引确定与该检索问题相近的相近问题。
[0064] (1)、获取检索问题:
[0065] 其中,检索问题为需要检索答案的问题;该检索问题的获取方式可以有多种,比如,可以根据用户输入的句子来获取等。具体地,可以将用户输入的句子作为检索问题。
[0066] 该用户输入的句子可以为用户输入的一段或者多段内容,该句子内容可以为文字内容等,该句子可以由词组构成,该句子可以为一段完整的话,也可以为一段非完整的话。
[0067] 可选地,为了提升答案的准确性和质量,本实施例还可以采用句法分析对用户输入的句子进行合成,以便得到准确的检索问题。具体地,步骤“获取检索问题”可以包括:
[0068] 获取用户当前输入的句子、以及用户之前输入的历史句子;
[0069] 当该句子不含主谓语和动宾语,且该历史句子含有主谓语或者动宾语时,将历史句子中的主语或者宾语作为该句子的主语,以合成新句子;
[0070] 将该新句子作为检索问题。
[0071] 其中,历史句子可以为用户之前输入的句子,比如,该历史句子上一次用户输入的句子。例如,用户在输入“苹果好吃吗”之后,接着输入“红吗”,那么此时“苹果好吃吗”即为历史句子,“红吗”为用户当前输入的句子。
[0072] 本实施例中,用户输入的句子可以指的是用户通过终端上机器人聊天客户端输入的句子。比如,用户在机器人聊天界面中的输入框中输入消息内容时,终端向服务器发送该消息内容,此时服务器便可以对该消息内容进行接收。
[0073] 本实施例可以分别对用户当前输入的句子以及用户之前输入的历史句子进行句法分析,得到句法分析结果,然后,基于句法分析结果确定用户当前输入的句子是否含有主谓语或者动宾语,以及历史句子是否含有主谓语或者动宾语。
[0074] 句法分析(Parsing)就是指对句子中的词语语法功能进行分析,比如对“我来晚了”进行句法分析,可得到:“我”是主语,“来”是谓语,“晚了”是补语。
[0075] 本实施例中,当用户当前输入的句子不含主谓语和动宾语,且用户之前输入的历史句子含有主谓语或者动宾语时,可以将历史句子中的主语或者宾语作为该句子的主语,以合成新句子。
[0076] 例如,用户第一轮输入:“苹果好吃吗”;第二轮输入“红吗”;此时,通过句法分析可知,用户第二轮输入的句子(即用户当前输入的句子)不含有主谓语以及动宾语,但是用户第一轮输入的句子(即历史句子)含有主语,因此,可以把第一轮输入的句子中主语作为当前句子的主语,拼接成新句子“苹果红吗”,然后,该新句子作为检索问题。
[0077] 可选地,实际应用中,采用上述合成方式可能会不成功,那么为了提升检索问题的准确性,本实施例方法还包括:
[0078] 当合成新句子失败时,根据词组的词类型提取该句子中相应的关键词;
[0079] 将该历史句子中词类型与该关键词相同的目标词组,替换为该关键词,以得到替换后的句子;
[0080] 将替换后的句子作为检索问题。
[0081] 其中,词组的词类型可以基于词组的词性来划分,比如,可以将词组划分为名词、动词、形容词、数词、量词、代词、虚词等等。此外,当还可以基于词组所表达的词意来划分,比如,可以将词组划分为人名、地名、机构名等等。
[0082] 本实施例,可基于词类型优先级来从句子中提取相应的关键词;比如,可以设置名词的优先级高于动词的优先级,此时,可以提取句子中词类型为名词的词组作为关键词,若提取不到,则提取句子中词类型为动词的词组作为关键词词,也即按照先提取名词、后提取动词这样的优先级来提取关键词。
[0083] 可选地,在提取名词时,可以进一步地,按照实体命名词(如人名、地名、机构名)、非实体命名词依次从高到低的优先级,来从句子中提取关键词。其中,在提取实体命名词时可以按照人名、地名、机构名从高到底的优先级提取来从句子中提取关键词。在提取非实体命名词时,可以按照非实体命名词的tfidf(term frequency–inverse document frequency,信息检索数据挖掘的常用加权技术)值来提取相应的非实体命名词作为关键词,比如,可以提取tfidf值最高的非实体命名词来作为关键词。
[0084] 具体地,可以先提取句子中词类型为人名的词组作为关键词,若提取不到,则提取句子中词类型为地名的词组关键词,若提取不到,则提取句子中词类型为机构名的词组关键词,若提取不到,则提取句子中tfidf值最高的名词关键词,若还提取不到,则进一步提取句子中词类型为动词的词组关键词。
[0085] 当从句子中成功提取关键词之后,可以将该历史句子中词类型与该关键词相同的目标词组,替换为该关键词。比如,如果提取到的关键词为人名、地名、或机构名作为关键词时,可以将历史句子中的人名、地名、或机构名替换为该关键词,如果提取到的关键词为动词,则将历史句子中谓语或动词替换为该关键词等等,如果提取到的关键词为非实体命名词,那么可以将历史句子中主语或者宾语替换为该关键词。
[0086] 例如,用户第一轮输入:“去北京出差了吗”;第二轮输入“上海吗”;此时,通过句法分析可知,用户第二轮输入的句子(即用户当前输入的句子)不含有主谓语以及动宾语,但是用户第一轮输入的句子(即历史句子)含有动宾,因此,采用上述替换主语的方式拼接合成句子会失败,此时可以从第二轮输入的句子中提取实体命名词“上海”作为关键词,然后,将第一轮输入的句子中实体命名词“北京”替换为关键词“上海”,便可以合成新的句子“去上海出差吗”;最后将该新的句子作为检索问题。
[0087] 可选地,本实施例在关键词替换合成句子失败时,还可以基于统计的合成策略来合成新句子,以作为检索问题。比如,可以从历史句子中提取相应的关键词,然后,将关键词拼接合成新的句子。本实施例可以统计历史句子中词组的idf值,然后根据词组的idf值选取关键词。比如,选取历史句子中全局统计idf值最高的词作为关键词等。
[0088] 根据上述对检索问题的获取方式介绍,本实施例可以定义三种策略来合成新的句子,以作为检索问题。该三种策略包括:
[0089] 句法分析合成策略1:当用户当前输入的句子不含主谓语和动宾语,且用户之前输入的历史句子含有主谓语或者动宾语时;将历史句子中的主语或者宾语替换为当前输入的句子的主语。
[0090] 句法分析合成策略2:当用户当前输入的句子不含主谓语和动宾语,且用户之前输入的历史句子含有主谓语或者动宾语时,根据词组的词类型提取该句子中相应的关键词,将该历史句子中词类型与该关键词相同的目标词组,替换为该关键词。
[0091] 比如,按照人名、地名、机构名、tfidf值最高的名词、动词从高到底的优先级从当前的句子中提取相应的关键词,然后,替换历史句子中相应的词组。具体地:
[0092] case1:如果提取到了人名、地名、机构名作为关键词,那么在上一query中直接寻找相应的同类型实体进行替换
[0093] case2.如果提取到了名词,那么与候选主语或宾语计算相似度,选择替换[0094] case3.如果提取到了动词,那么替换谓语或动词。
[0095] 统计合成策略:以从历史句子中提取相应的关键词,然后,将关键词拼接合成新的句子。具体地,统计历史句子中词组的idf值,然后根据词组的idf值选取关键词。比如,选取历史句子中全局统计idf值最高的词作为关键词等。
[0096] 参考图1b,本实施例的句子合成的流程如下:
[0097] 1031、获取用户当前输入的当前句子以及用户之前输入的历史句子。
[0098] 其中,当前句子为用户当前通过终端上机器人聊天客户端输入的内容,历史句子为用户之前通过终端上机器人聊天客户端输入的内容。
[0099] 1032、分别对当前句子以及历史句子进行句法分析,得到句法分析结果。
[0100] 1033、根据句法分析结果判断是否当前句子不含主谓语和动宾语,且历史句子含有主谓语或者动宾语;若是,则执行步骤1034,若否,则无需合成,结束合成流程。
[0101] 1034、采用句法分析合成策略1进行句子合成。
[0102] 1035、确定是否合成成功,若否,则执行步骤1036,若是,则合成成功,结束合成流程。
[0103] 1036、采用句法分析合成策略2进行句子合成。
[0104] 1037、确定是否合成成功,若否,则执行步骤1038,若是,则合成成功,结束合成流程
[0105] 1038、采用统计合成策略进行句子合成。
[0106] 1039、确定是否合成成功,若否,则执行步骤1040,若是,则合成成功,结束合成流程。
[0107] 1040、确定无法合成。
[0108] (2)、确定相近问题:
[0109] 其中,与检索问题相近的相近问题为基于倒排索引检索到的与检索问题的问题词组相匹配的问题,如与问题词组相近、类似或者相同的问题。
[0110] 本实施例中问题与其词组的倒排索引可以包括:索引对,其中该索引对包括索引关键词及其对应的索引项,该索引关键词为问题的词组,索引项可以为该问题。此时,相近问题为:与检索问题的问题词组相匹配的索引对中的问题,具体地,为关键词与检索问题的问题词组相匹配的索引对中的问题。也即步骤“根据该检索问题的问题词组以及该倒排索引确定与该检索问题相近的相近问题”可以包括:
[0111] 在索引对中查询与检索问题的问题词相匹配的问题,得到与该检索问题相近的相近问题。
[0112] 比如,可以对检索问题分词处理,得到检索问题的问题词组,然后,在索引对中查询与该问题词组相匹配的问题。当检索问题的词组有多个时,可以在索引对中查询与每个问题词相匹配的问题,这样便可以得到一组与检索问题相近的相近问题。
[0113] 例如,对检索问题A进行分词后,得到词组a1、a2、……ai……an,然后,在索引对中分别查询关键词与a1、关键词与a2、……关键词与an匹配的索引对,最后将关键词与ai匹配的索引对中的问题作为与检索问题A相近的相近问题,这样便可以得到一系列的相近问题;比如,经过查询每个问题词组对应不同的问题时,那么,此时便可以得到相近问题Q1、Q2……Qn。
[0114] 104、根据该相近问题以及该问答对获取检索问题的候选答案,得到检索问题的候选答案集合。
[0115] 在得到多个相近问题后,可以在问答对中查询每个相近问题对应的答案,这样便可以得到多个候选答案,形成候选答案集合。
[0116] 具体地,可以在问答对中确定问题与相近问题相匹配的匹配问答对,然后,将匹配问答对中的答案作为检索问题的候选答案。也即,可以将问题与相近问题相匹配的问答对中的答案作为检索问题的候选答案,比如,可以将问题与相近问题类似或相同的问答中的答案作为检索问题的候选答案。
[0117] 比如,问答对有(Q1、A1)、(Q2、A2)……(Qi、Ai)……(Qn、An)当相近问题有Q1、Q2……Qi时,那么便可以从问答对中获取每个相近问题对应的答案,得到候选答案集合{A1、A2……Ai}。
[0118] 105、从该候选答案集合中选取该检索问题的目标答案。
[0119] 比如,可以候选答案集合{A1、A2……Ai}中选取一个或者多个答案作为检索问题的最终答案。
[0120] 实际应用中,可以对候选答案进行打分,然后,基于候选答案的分数对候选答案进行排序,得到排序后候选答案集合,最后,从排序后候选答案集中选取最终的答案。也即步骤“从该候选答案集合中选取该检索问题的目标答案”可以包括:
[0121] 对候选答案集合中候选答案进行打分,得到候选答案的分数;
[0122] 根据候选答案的分数从候选答案集合中候选答案进行排序,得到排序后候选答案集合;
[0123] 从排序后候选答案集合中选取检索问题的目标答案。
[0124] 其中,候选答案的排序方式,可以有多种,如可以采用分数从高到低的方式的进行排序,又比如,还可以采用分数从低到高的方式进行排序。
[0125] 本实施例中,可以选取排在最前面或者最后面的候选答案作为检索问题的目标答案。具体地方式可根据实际需求设定。
[0126] 为了提高输出答案与检索问题的相关性,以提升答案的质量,本实施例可以采用以下方式选取检索问题的目标答案:
[0127] (1)、基于答案与问题之间的相似度:
[0128] 具体地,可以获取候选答案集合中候选答案与检索问题之间的句子相似度信息;根据候选答案集合中候选答案与检索问题之间的句子相似度信息,从该候选答案集合中选取该检索问题的目标答案。
[0129] 其中,句子相似度信息为用于表征两个句子之间的相似度的信息;本实施例可采用向量空间模型来计算句子相似度,此时句子相似度信息包括:句子向量之间的向量相似度。其中,句子向量之间的向量相似度可以采用向量之间的夹角余弦值(即余弦相似度)来度量,向量之间的距离(如欧氏距离、曼哈顿距离等等)来度量等等;也即句子向量之间的向量相似度可以包括:句子向量之间的余弦相似度、句子向量之间的距离等等。
[0130] 也即步骤“获取候选答案集合中答案与检索问题之间的句子相似度信息”可以包括:
[0131] 获取候选答案集合中候选答案对应的答案句子向量、以及检索问题对应的问题句子向量;
[0132] 获取该答案句子向量与该问题句子向量之间的向量相似度;
[0133] 此时,步骤“根据候选答案集合中候选答案与检索问题之间的句子相似度信息,从该候选答案集合中选取该检索问题的目标答案”可以包括:根据答案句子向量与问题句子向量之间的向量相似度,从该候选答案集合中选取该检索问题的目标答案。
[0134] 本实施例可以获取候选答案集合中每个候选答案的答案句子向量与问题句子向量之间的向量相似度如余弦相似度,然后,基于每个候选答案的答案句子向量与问题句子向量之间的向量相似度,从候选答案集合中选取检索问题的最终回复答案。
[0135] 比如,可以根据候选答案集合中每个候选答案对应的答案句子向量与问题句子向量之间的向量相似度,对候选答案集合中候选答案进行打分,然后,基于集合内候选答案的分数对候选答案进行排序,得到排序后的候选答案集合,从排序后的候选答案集合中选取检索问题的目标答案。
[0136] 本实施例中,获取句子向量的方式可以有多种,为了形成精确的句子向量,以准确地计算出向量相似度,本实施例可以如下方式获取句子向量:
[0137] (1-1)、基于词向量获取句子向量:
[0138] 具体地,上述步骤“获取候选答案集合中候选答案对应的答案句子向量、以及检索问题对应的问题句子向量”可以包括:
[0139] 获取候选答案集合内候选答案的答案词组对应的词向量,并根据该答案词组对应的词向量获取该候选答案对应的答案句子向量;
[0140] 获取检索问题的问题词组对应的词向量,并根据问题词组对应的词向量获取检索问题对应的问题句子向量。
[0141] 本实施例可以采用数据训练的方式来获取词向量,比如,可以采用word2vec工具在预设数量的问答对(QA-pair)上训练出了词向量。具体地,可以选取预设数量(如1亿)的问答对作为训练数据,然后,基于训练数据对候选答案内候选答案的答案词组进行词向量训练,得到答案词组对应的词向量;以及,基于训练数据对检索问题的问题词组进行词向量训练,得到问题词对应的词向量。其中,问答对可以为基于社交平台上的社交数据形成的问答对。
[0142] 实际应用中,在训练词向量时可以预先设定词量的维数,以形成相应维数的词向量,进而可以得到相应维数的句子向量。也即,可以基于训练数据和预设向量维数对答案词进行词向量训练,以及基于训练数据和预设向量维数对问题词组进行词向量训练。
[0143] 本实施例在获取词向量之后,可以采用向量相加的方式来形成句子向量,优选地,可以对词向量进行加权求和得到句子向量。如,当有相同维度的词向量W1、W2、W3、……Wn时,可以通过公式:W1*X1+W2*X2+W3*X3+Wi*Xi……W6*X6=S,其中S为Sentence句子向量,Xi为词向量Wi对应的权重值。
[0144] 比如,参考图1c,词向量包括100维的词向量W1、W2、W3、W4、W5、W6;那么可以将W1-W6加权求和形成100维的句子向量。如通过公式:W1*X1+W2*X2+W3*X3+W4*X4+W5*X5+W6*X6=S。
[0145] (1-2)、基于卷积神经网络获取句子向量
[0146] 鉴权上述(1-1)获取句子向量方式会存在词语的顺序信息丢失问题,导致句子向量不精确,因此为提升句子向量的精确性,本实施例可以采用卷积神经网络模型获取句子向量。
[0147] 具体地,步骤“获取候选答案集合中候选答案对应的答案句子向量、以及检索问题对应的问题句子向量”可以包括:
[0148] 将检索问题表示成相应的问题矩阵,并基于卷积神经网络模型对问题矩阵进行卷积处理,得到检索问题对应的问题句子向量;
[0149] 将候选答案集合内候选答案表示成相应的答案矩阵,并基于该卷积神经网络模型对答案矩阵进行卷积处理,得到答案对应的答案句子向量。
[0150] 本实施例获取矩阵的方式,可以基于词向量来获取,也即步骤“将检索问题表示成相应的问题矩阵”可以包括:获取检索问题的问题词对应的词向量,然后,基于问题词对应的词向量获取检索问题对应的问题矩阵。
[0151] 步骤“将候选答案集合内候选答案表示成相应的答案矩阵”可以包括:获取候选答案集合中候选答案的答案词对应的词向量,然后,基于答案词对应的词向量获取候选答案对应的答案矩阵。
[0152] 比如,已知每个词的词向量,且词向量为100维,并假定句子最长有50个词,那么可以形成或构成50*100的句子矩阵。
[0153] 其中,词向量可以通过样本数据对词进行训练得到,如通过预设数量的问答对对词进行向量训练得到。
[0154] 优选地,本实施例可以采用多个不同的卷积核来对矩阵进行卷积运算,以得到相应的句子向量。比如,可以分别采用不同的卷积核对矩阵进行卷积运算,得到不同卷积核对应的卷积结果,然后,基于不同卷积核对应的卷积结果构建相应的句子向量。
[0155] 也即步骤“基于卷积神经网络模型对问题矩阵进行卷积处理,得到检索问题对应的问题句子向量”可以包括:
[0156] 分别采用多个不同的卷积核对问题矩阵进行卷积运算,得到不同卷积核对应的卷积结果;
[0157] 根据不同卷积核对应的卷积结果构建检索问题对应的问题句子向量。
[0158] 步骤“基于该卷积神经网络模型对答案矩阵进行卷积处理,得到候选答案对应的答案句子向量”可以包括:
[0159] 分别采用多个不同的卷积核对答案矩阵进行卷积运算,得到不同卷积核对应的卷积结果;
[0160] 根据不同卷积核对应的卷积结果构建候选答案对应的答案句子向量。
[0161] 本实施例在获取不同卷积核对应的卷积结果之后,可以分别对每个卷积核对应的卷积结果作池化处理,得到每个卷积核对应的特征值,然后,根据每个卷积核对应的特征值构建相应的句子向量。比如,在得到不同卷积核对应的卷积结果之后,可以针对每个卷积核对应的卷积结果做池化处理,得到每个卷积核对应的特征值,然后,基于每个卷积核对应的特征值构建检索问题对应的问题句子向量或者候选答案对应的答案句子向量。
[0162] 例如,句子构成50*100的矩阵S,卷积核分别为数量均为500个的1*100,2*100,3*100,5*100权值矩阵。可以对这个句子的矩阵进行特征的提取和计算,通过卷积、非线性变换、池化操作,最终生成了句子的一个向量化表示(长度2000的向量)。参考图1d,为分别对
100*6的问题矩阵和答案矩阵进行卷积处理的过程,基于卷积神经网络模型可以从问题矩阵提取问题句子向量,从答案矩阵提取答案句子向量,然后,计算问题句子向量与答案句子向量之间的余弦相似度。
[0163] 假设,以卷积核为100*3的一个权值矩阵M为例,句子构成50*100的矩阵S,那么卷积的过程就是将这个100*3的卷积窗口M在100*50的矩阵S上进行滑动,共经过(50-3+1)=48次。在滑动的每一步,都需要计算权值矩阵M和句子矩阵中卷积窗口所覆盖的一部分矩阵的卷积(图1d中深色的长方形部分)。在整个移动过程中可以生成48个结果(针对大小为3的卷积核,其他大小的卷积核生成结果数量不同。大小为1的有50个结果,大小为2的有49个结果,大小为5的有46个结果),针对该结果做最大池化,最终由于共有2000个卷积核,所以会生成2000维的句子抽象表示,即生成句子向量。
[0164] 本实施例方法在获取答案矩阵向量和问题矩阵向量之后,可以获取这两个句子向量之间的向量相似度,如余弦相似度等。其中,余弦相似度,又称为余弦相似性。通过计算两个向量的夹角余弦值来评估他们的相似度。夹角越小,余弦值越接近于1,它们的方向更加吻合,则越相似。
[0165] 比如,假设向量A=(A1,A2,...,An),B=(B1,B2,...,Bn);可以通过以下公式计算向量A和B之间的余弦相似度:
[0166]
[0167] 例如,可以计算候选答案集合中每个候选答案对应的答案句子向量与检索问题对应的问题句子向量之间的余弦相似度,然后,基于余弦相似度对候选答案进行打分,得到每个候选答案的分数(如余弦值越大分数越高),以及根据每个候选答案的分数对候选答案进行排序(如按照分数从高到低的顺序进行排序),从排序后的集合中选取检索问题的目标答案。
[0168] (2)、基于词语共现统计:
[0169] 本实施例可以统计答案中的词和问题中的词两两共现的次数,以及问题中每个词出现的次数,然后,基于统计结果选取检索问题的答案。也即步骤“从该候选答案集合中选取该检索问题的目标答案”可以包括:
[0170] 获取检索问题中问题词组的问题出现次数,以及候选答案中答案词的问题答案共现次数;
[0171] 根据检索问题中问题词组的问题出现次数、以及候选答案中答案词的问题答案共现次数,从该候选答案集合中选取该检索问题的目标答案。
[0172] 其中,该问题出现次数为:问题词组在问答对中出现的次数,也即问题包含问题词组的问答对的数量。
[0173] 问题答案共现次数为:答案中的答案词组和检索问题中的问题词组在问题对中两两共现的次数;也即问题包含问题词组、且答案包含问题词的问答对的数量。
[0174] 比如,问题Q分词后的词组为q1、q2……qi……qn。当有800个问答对的问题包含q1时,那么q1的问题出现次数为800,当有789个问答对的问题包含或出现q2时,那么q2的问题出现次数为789,……当有m个问答对的问题包含或出现qi时,那么qi的问题出现次数为m,以此类推可以得到问题中每个问题词的问题出现次数,。
[0175] 又比如,问题Q分词后的词组为q1、q2……qi……qn;候选答案A分词后得到a1、a2……ai……aj。当问题包含或出现qi,答案包含或出现qi的问答对有k个时,那么ai和qi的共现次数为k。
[0176] 参考图1e,可以统计检索问题Q、候选答案A1、候选答案A2的词出现次数,如候选答案案中的词和检索问题中的词两两共现的次数,以及检索问题中每个词出现的次数。从图1e所示的表格中可看出当问题中出现“吃饭”时,好答案中出现“吃”,坏答案中出现“电”,通过统计发现“吃”和问题中的四个词同现的次数均超过了“电”和问题中四个词的同现次数。
[0177] 在获取检索问题中问题词组的问题出现次数、以及答案中候选答案词的问题答案共现次数,本实施例可以基于问题词组的问题出现次数和答案中候选答案词的问题答案共现次数来区别候选答案的好坏,以选取检索问题的最佳答案。
[0178] 比如,可以根据检索问题中问题词组的问题出现次数、以及答案中候选答案词的问题答案共现次数,对候选答案集合中候选答案进行打分,然后,基于候选答案的分数对候选答案集合中候选答案进行排序,最后,从排序后的候选答案集合中选取检索问题的答案。
[0179] 优选地,本实施例在统计词出现次数之后,还可以计算问题答案共现次数与问题出现次数之间的次数比例,然后,基于该次数比例获取每个候选答案作为目标答案的概率,最后,基于概率来选取目标答案。也即步骤“根据检索问题中问题词组的问题出现次数、以及候选答案中答案词的问题答案共现次数,从该候选答案集合中选取该检索问题的目标答案”可以包括:
[0180] 获取候选答案中答案词的问题答案共现次数、与检索问题中问题词的问题出现次数的次数比例;
[0181] 根据次数比例获取候选答案对应的目标答案概率,该目标答案概率为该答案作为检索问题的目标答案的概率;
[0182] 根据答案对应的目标答案概率从该候选答案集合中选取该检索问题的目标答案。
[0183] 比如,问题Q分词后的词组为q1、q2……qi……qn;对每个候选答案A分词后得到词组a1、a2……ai……aj,那么可以统计qi的问题出现次数Count(qi),即qi在问答对中出现的次数,以及(qi,ai)的问题答案共现次数Count(qi,ai),即qi和ai同时出现在同一问答对的次数,可以获取次数比例Count(qi,ai)/Count(qi);假设候选答案Ai分词后得到a1、a2……am,m小于或等于j,此时可以计算Ai的目标答案概率Score(Q,Ai)=1/t*Count(q1,a1)/Count(q1)+1/t*Count(q2,a1)/Count(q2)+……+1/t*Count(qn,a1)/Count(qn)+1/t*Count(q1,a2)/Count(q1)+1/t*Count(q2,a2)/Count(q2)+……+1/t*Count(qn,a2)/Count(qn)+……+1/t*Count(q1,ai)/Count(q1)+1/t*Count(q2,ai)/Count(q2)+……+1/t*Count(qn,ai)/Count(qn)+……+1/t*Count(q1,am)/Count(qi)+1/t*Count(q2,am)/Count(q2)+……+1/t*Count(qn,am)/Count(qn)。其中,t为问题Q与候选答案的词组数量之和。比如,问题Q分词后有z个词组,答案A分词后总共有c个词组,此时t=z+c。
[0184] 参考图1e,可以计算Score(Q,A1)、Score(Q,A2)。具体过程如下:
[0185] Score(Q,A1)=1/8*Count(你,吃)/Count(你)+1/8*Count(吃饭,吃)/Count(吃饭)+1/8*Count(了,吃)/Count(了)+1/8*Count(吗,吃)/Count(吗)+1/8*Count(你,没有)/Count(你)+1/8*Count(吃饭,没有)/Count(吃饭)+1/8*Count(了,没有)/Count(了)+1/8*Count(吗,没有)/Count(吗)=0.055
[0186] Score(Q,A2)=1/8*Count(你,电)/Count(你)+1/8*Count(吃饭,电)/Count(吃饭)+1/8*Count(了,电)/Count(了)+1/8*Count(吗,电)/Count(吗)+1/8*Count(你,没有)/Count(你)+1/8*Count(吃饭,没有)/Count(吃饭)+1/8*Count(了,没有)/Count(了)+1/8*Count(吗,没有)/Count(吗)=0.017。
[0187] 由上可知,Score(Q,A1)>Score(Q,A2),所以A1比A2更适合做Q的答案。
[0188] 在获取每个候选答案A的目标答案概率Score之后,可以基于每个候选答案A的目标答案概率Score对候选答案集合中每个候选答案进行打分(如Score越大分数越高),然后,对候选答案排序,从排序后的集合中选取目标答案,如选取排在最前的候选答案作为目标答案。
[0189] 由上可知,本发明实施例采用基于社交平台上的社交数据形成的多个问答对,该问答对包括问题及其对应的答案,然后,建立该问题与其词组的倒排索引,获取检索问题,并根据该检索问题的问题词组以及该倒排索引确定与该检索问题相近的相近问题,根据该相近问题以及该问答对获取检索问题的候选答案,得到检索问题的候选答案集合,从该候选答案集合中选取该检索问题的目标答案。该方案可以先查询与检索问题相近的相近问题,并查询相近问题对应的答案,再从相近问题的答案中选取最合适的答案,因此,该方案可以输出与检索问题相匹配的答案,提高了聊天机器人系统输出答案的准确性和质量。
[0190] 实施例二、
[0191] 根据实施例一所描述的方法,以下将举例作进一步详细说明。
[0192] 本发明实施例以自动问答装置集成在服务器中为例来介绍本发明提供的自动问答方法。
[0193] 参考图2a,本发明实施例提供了一种自动问答系统,包括服务器和终端,该服务器集成有自动问答装置,该服务器与终端通过网络连接。
[0194] 如图2b所示,一种自动问答方法,具体流程可以如下:
[0195] 201、服务器获取社交平台上的社交数据,并对社交数据进行数据过滤。
[0196] 其中,社交平台是指给用户提供分享自己见闻、心情、感悟等信息的平台。比如,基于即时通讯的社交平台等。此外,社交平台还可以包括聊天机器人、问题系统;也即聊天机器、问题系统可以为交互社交信息的社交平台。
[0197] 社交平台上的社交数据为用户在社交平台上交互的社交信息数据,该社交数据可以包社交平台上的UGC(User Generated Content,用户生成内容)。
[0198] 本实施例服务器可以按照词汇过滤原则过滤掉一些词组数据,该词汇过滤原则可以根据实际需求设定,比如可以过滤掉人名、地名、机构名等命名实体数据,过滤掉电话号码、即时通讯账号、金融账号(如银行卡号等)等隐私数据,过滤掉脏词等不文明词汇数据。
[0199] 202、服务器根据过滤后的社交数据形成多个问答对,并保存问答对。
[0200] 其中,问答对也称为问题答案对(uestion-answer pair,QA pair),其指的是一问一答的一对社交数据如文本数据。
[0201] 203、服务器对问答对中问题进行分词,并建立该问题与其词组的倒排索引。
[0202] 该倒排索引可以包括多个索引条目或者索引对,每个索引条目或者索引对包括索引关键词及其对应的索引项,其中,索引关键词可以为问题中的词组,索引项可以为词组对应的问题。
[0203] 比如,服务器可以对问答对中问题进行分词处理,得到问题的词组;根据问题以及问题的词组建立索引对,该索引对包括索引关键词及其对应的索引项,该索引关键词为问题的词组,索引项可以为该问题。
[0204] 204、终端向服务器发送用户当前输入的消息内容。
[0205] 比如,参考图2c,用户打开机器人聊天应用之后,用户点击应用界面上的宠物便可以进入与机器人的对话界面,用户可以通过对话界面的输入框中输入消息内容,当用户输入内容点击发送按钮后,终端便可以将用户当前输入的消息内容发送给服务器,以便服务器返回该内容的反馈消息内容,即答案。例如,用户在对话输入框中输入“你吃饭了吗”,终端会将该内容发送给服务器。
[0206] 205、服务器根据用户当前输入的消息内容获取检索问题。
[0207] 比如,服务可以将该消息内容中的句子作为检索问题。例如可以将“你吃饭了吗”直接作为检索问题Q。
[0208] 又比如,为了提升答案的准确性和质量,本实施例可以针对消息内容中句子进行句法分析,以便得到准确的检索问题。具体,服务器,可以获取用户当前输入内容中的当前句子,以及用户之前输入内容的历史句子,然后,分别对当前句子和历史句子进行句法分析,以确定用户当前输入的句子是否含有主谓语或者动宾语,以及历史句子是否含有主谓语或者动宾语。
[0209] 如果当前句子不含主谓语和动宾语,且该历史句子含有主谓语或者动宾语时可以采用上述介绍的合成策略来合成新句子,以作为检索问题,具体地句子合成可以参考实施例一种的合成过程,此处不再赘述。
[0210] 206、服务器基于倒排索引查找与检索问题的问题词组相匹配的问题,得与检索问题相近的一组相近问题。
[0211] 其中,与检索问题相近的相近问题为基于倒排索引检索到的与检索问题的问题词组相匹配的问题,如与问题词组相近、类似或者相同的问题。
[0212] 问题与其词组的倒排索引可以包括:索引对,其中该索引对包括索引关键词及其对应的索引项,该索引关键词为问题的词组,索引项可以为该问题。此时,可以对检索问题分词处理,得到检索问题的问题词组,然后,在索引对中查询与该问题词组相匹配的问题。当检索问题的词组有多个时,可以在索引对中查询与每个问题词相匹配的问题,这样便可以得到一组与检索问题相近的相近问题。
[0213] 例如,可以对问题Q进行分词处理后得到词组q1、q2和q3,倒排索引包括:索引对(q1,Q1)、(q2,Q2)、(q3,Q3)……。那么边可以从倒排索引中确定问题Q的相近问题为Q1、Q2和Q3。
[0214] 207、服务器从问答对中查询与相近问题匹配的答案,并将匹配答案作为检索问题的候选答案,得到检索问题的候选答案集合。
[0215] 具体地,服务器可以在问答对中确定问题与相近问题相匹配的匹配问答对,然后,将匹配问答对中的答案作为检索问题的候选答案。
[0216] 例如,从问答对中确定相近问题Q1、Q2和Q3的答案,假设问答对包括(Q1、A1)、(Q2、A2)、(Q3、A3)……。那么此时,便可以得到检索问题Q的候选答案集合{A1、A2、A3}。
[0217] 208、服务器对候选答案集合中候选答案进行打分,得到每个候选答案的分数。
[0218] 比如,服务器可以分别对候选答案集合{A1、A2、A3}内的答案进行打分,以100分为例,假设A1、A2、A3分别为:80分、76分、79分。
[0219] 其中,对候选答案的打分方式可以有多种,比如,包括:
[0220] (1)、基于答案与问题之间的相似度:
[0221] 具体地,服务器可以获取候选答案集合中候选答案与检索问题之间的句子相似度信息;根据候选答案集合中候选答案与检索问题之间的句子相似度信息,对候选答案进行打分。
[0222] 其中,句子相似度信息为用于表征两个句子之间的相似度的信息;本实施例可采用向量空间模型来计算句子相似度,此时句子相似度信息包括:句子向量之间的向量相似度。其中,句子向量之间的向量相似度可以采用向量之间的夹角余弦值(即余弦相似度)来度量,向量之间的距离(如欧氏距离、曼哈顿距离等等)来度量等等;也即句子向量之间的向量相似度可以包括:句子向量之间的余弦相似度、句子向量之间的距离等等。
[0223] 比如,服务器可以获取候选答案集合中候选答案对应的答案句子向量、以及检索问题对应的问题句子向量,获取该答案句子向量与该问题句子向量之间的向量相似度,然后,基于根据答案句子向量与问题句子向量之间的向量相似度对候选答案进行打分。实际应用中,可以通过Word2vec算法来计算句子之间的向量相似度。
[0224] 具体打分规则可以根据实际需求设定,比如,当向量相似度为余弦相似度时,答案的向量与问题的向量之间的余弦值越大,对答案打分越高。
[0225] 其中,句子向量获取方式可以包括:基于词向量获取,比如,获取句子的词组对应的词向量,并根据该词组对应的词向量获取该句子对应的答案句子向量
[0226] 此外,为提高句子向量的准确性,句子向量获取方式还可以包括:基于卷积神经网络获取,比如,将检索问题表示成相应的问题矩阵,并基于卷积神经网络模型和多个不同的卷积核,对句子矩阵进行卷积处理,得到句子对应的句子向量。
[0227] 具体地,词向量的获取、句子向量的获取、向量相似度的获取可以参考实施例一中的详细描述。
[0228] (2)、基于词语共现统计:
[0229] 比如,可以统计答案中的词和问题中的词两两共现的次数,以及问题中每个词出现的次数,然后,基于统计结果对候选答案进行打分。
[0230] 具体地,获取检索问题中问题词组的问题出现次数,以及候选答案中答案词的问题答案共现次数,根据检索问题中问题词组的问题出现次数、以及候选答案中答案词的问题答案共现次数,对候选答案进行打分。
[0231] 优选地,本实施例服务器在统计词出现次数之后,还可以计算问题答案共现次数与问题出现次数之间的次数比例,然后,基于该次数比例获取每个候选答案作为目标答案的概率,最后基于概率来对候选答案进行打分。
[0232] 实际应用时,当候选答案的目标答案概率越大,对该候选答案的打分越高。
[0233] 具体地,出现次数的获取、次数比例的获取,以及目标答案概率的获取可以参考实施例一种的详细描述。
[0234] 209、服务器根据候选答案的分数,对候选答案集合中候选答案进行排序。
[0235] 比如,服务器可以按照分数从高到低的顺序依次对候选答案进行排序。如根据A1、A2、A3的分数,排序后候选答案集合为{A1、A3、A2}。
[0236] 210、服务器从排序后的候选答案集合中选取检索问题的目标答案,并向终端发送该答案。
[0237] 具体地,服务器可以选取集合中排序最前的候选答案为检索问题的最佳答案。在一些其他实施例中,还可以选取排序最后的候选答案为检索问题的最近答案,如当按照分数从低到高的顺序排序时。
[0238] 例如,服务器可以从排序后候选答案集合{A1、A3、A2}中选取A1为检索问题Q的目标答案即最佳答案,然后,服务器会向终端发送该A1。终端在接收A1时可以在机器人聊天界面中显示,这样便实现了机器人聊天。
[0239] 例如,参考图2d,当用户在机器人聊天界面的输入框中输入的消息内容为“你吃饭了吗”,终端发送将该消息内容发送给服务器之后,服务器将该消息内容作为检索问题Q,然后,通过查询该检索问题Q的相似问题及其答案,以获取候选答案列表{A1=“没有吃”、A2=“没有吃电”、A3=“没有果”},服务器可以对各候选答案进行候选答案列表中候选答案进行排序,得到排序后候选答案列表{A1=“没有吃”、A3=“没有吃水果”、A2=“没有吃电”},接着服务器可以从候选答案列表中选取排在最前面的候选答案A1作为检索问题Q的最佳答案,服务器将该候选答案A1发送给终端,参考图2d,终端在机器人聊天界面显示A1=“没有吃”。
[0240] 由上可知,本发明实施例可以基于社交平台上的社交数据形成的多个问答对,该问答对包括问题及其对应的答案,然后,建立该问题与其词组的倒排索引,获取检索问题,并根据该检索问题的问题词组以及该倒排索引确定与该检索问题相近的相近问题,根据该相近问题以及该问答对获取检索问题的候选答案,得到检索问题的候选答案集合,接着,基于句子向量相似度算法、卷积神经网络的相似度算法、或词语共现统计对该候选答案集合中候选答案进行打分,基于集合内候选答案的分数对候选答案排序,最后从排序后的候选答案集合内选取该检索问题的目标答案。该方案可以输出与检索问题相匹配的答案,提高了聊天机器人系统输出答案的准确性和质量。
[0241] 实施例三、
[0242] 根据实施例一和二所描述的方法,以下将举例作进一步详细说明。
[0243] 本发明实施例提供了一种自动问答系统,参考图3a,该自行问答系统可以包括:在线检索系统、离线处理系统以及排序系统。
[0244] 自动问答系统实现聊天的过程,如下:
[0245] 离线处理系统,获取社交平台上的海量社交数据(如UGC数据),对海量社交数据进行数据清洗(即数据过滤),然后,将社交数据拆解成问答对基QA对,并将QA对放入在线检索系统。比如,离线处理系统可以过滤掉人名、地名、机构名等命名实体,过滤掉电话号码、即时通讯号、银行卡号等隐私数据,过滤掉脏词等不文明词汇。具体地,QA对形成、数据清洗可以参考实施例一中的详细描述。
[0246] 在线检索系统,对录入的海量QA对进行索引化建设,构建出倒排索引,方便进行检索操作,通过检索可以找到与用户输入问题Q最相近的问题。具体地,将QA对中的问题进行分词,建立问题与其词之间的倒排索引,该倒排索引包括:关键词为问题的词组,索引对象为问题。具体地,倒排索引建立、相近问题查询可以参考实施例一中的详细描述。
[0247] 在线检索系统,接收终端发送的用户输入的消息内容,然后,基于该消息内容获取用户输入的检索问题Q。以及,在海量QA对中查询与用户输入问题Q最相近的问题的答案,以作为检索问题Q的候选答案,得到候选答案列表。在线检索系统将候选答案列表与用户输入的检索问题Q输出给排序系统。
[0248] 排序系统,包括:打分模和排序模块,其中,打分模块,用于对候选答案列表中的候选答案进行打分。参考图3b,打分模块可以基于以下三种算法来对候选答案进行打分:
[0249] (1)、词语供现统计:
[0250] 统计答案中的词和问题中的词两两共现的次数,以及问题中每个词出现的次数,然后,基于统计结果选取检索问题的答案。具体地,可以获取检索问题中问题词组的问题出现次数,以及候选答案中答案词的问题答案共现次数,计算问题答案共现次数与问题出现次数之间的次数比例,然后,基于该次数比例获取每个候选答案作为目标答案的概率,最后,基于概率来对候选答案进行打分。
[0251] 其中,该问题出现次数为:问题词组在问答对中出现的次数,也即问题包含问题词组的问答对的数量。
[0252] 问题答案共现次数为:答案中的答案词组和检索问题中的问题词组在问题对中两两共现的次数;也即问题包含问题词组、且答案包含问题词的问答对的数量。
[0253] (2)、Word2vec向量相似度计算:
[0254] 采用word2vec工具在预设数量的问答对(QA-pair)上训练出了答案和问题中词组的词向量,根据该答案词组对应的词向量获取该候选答案对应的答案句子向量;根据问题词组对应的词向量获取检索问题对应的问题句子向量;计算答案句子向量与问题句子向量之间的余弦相似度,基于候选答案对应的答案句子向量与问题句子向量之间的余弦相似度对候选答案进行打分。
[0255] 比如,可以在获取词向量之后,可以采用向量相加的方式来形成句子向量,优选地,可以对词向量进行加权求和得到句子向量。如,当有相同维度的词向量W1、W2、W3、……Wn时,可以通过公式:W1*X1+W2*X2+W3*X3+Wi*Xi……W6*X6=S,其中S为Sentence句子向量,Xi为词向量Wi对应的权重值。
[0256] (3)、基于卷积神经网络的相似度计算:
[0257] 鉴于word2vec加权的句子向量对于词语的顺序信息的丢失问题,本实施例可采用卷积神经网络模型,通过设置不同大小的卷积核,来捕捉词语的顺序。具体地,将句子表示成相应的矩阵,并基于卷积神经网络模型和多个不同的卷积核对矩阵进行卷积处理,得到句子对应的句子向量。比如,基于卷积神经网络模型和多个不同的卷积核对答案矩阵以及问题矩阵分别进行卷积处理,得到候选答案对应的答案句子向量以及检索问题对应的问题句子向量。在获取句子向量之后,可以计算答案句子向量与该问题句子向量之间的向量相似度,然后,基于根据答案句子向量与问题句子向量之间的向量相似度对候选答案进行打分。
[0258] 具体打分规则可以根据实际需求设定,比如,当向量相似度为余弦相似度时,答案的向量与问题的向量之间的余弦值越大,对答案打分越高。
[0259] 参考图3b,在对每个候选答案进行打分后,排序模块可以基于每个候选答案的分数对候选答案列表中的答案进行排序,输出排序后的候选答案列表。
[0260] 在输出排序后的候选答案列表之后,自动问答系统可以从该候选答案列表中选取相应位置的候选答案作为检索问题Q的最终答案。比如,选取列表中最前面的候选答案作为检索问题Q的最终答案。
[0261] 由上可知,本发明实施例提供的自动问答系统可以基于社交平台上的社交数据形成的多个问答对,该问答对包括问题及其对应的答案,然后,建立该问题与其词组的倒排索引,获取检索问题,并根据该检索问题的问题词组以及该倒排索引确定与该检索问题相近的相近问题,根据该相近问题以及该问答对获取检索问题的候选答案,得到检索问题的候选答案集合,接着,基于句子向量相似度算法、卷积神经网络的相似度算法、或词语共现统计对该候选答案集合中候选答案进行打分,基于集合内候选答案的分数对候选答案排序,最后从排序后的候选答案集合内选取该检索问题的目标答案。该方案可以输出与检索问题相匹配的答案,提高了聊天机器人系统输出答案的准确性和质量。
[0262] 实施例四、
[0263] 为了更好地实施以上方法,本发明实施例还提供自动问答装置,如图4a所示,该自动问答装置可以包括:问答对形成单元401、索引建立单元402、问题获取单元403、候选答案获取单元404和答案选取单元405,如下:
[0264] (1)问答对形成单元401;
[0265] 问答对形成单元401,用于基于社交平台上的社交数据形成的多个问答对,该问答对包括问题及其对应的答案。
[0266] 中,社交平台是指给用户提供分享自己见闻、心情、感悟等信息的平台。比如,基于即时通讯的社交平台等。
[0267] 社交平台上的社交数据为用户在社交平台上交互的社交信息数据,该社交数据可以包社交平台上的UGC(User Generated Content,用户生成内容)。比如,该社交数据可以包括用户在社交平台发表的内容(如文本内容等),以及其他用户在社交平台上针对该内容的评论信息或者回复内容等等。
[0268] 本实施例中,问答对也称为问题答案对(uestion-answer pair,QA pair),其指的是一问一答的一对社交数据如文本数据。该问答对具体可以包括问题及其对应的答案。
[0269] 为了减少处理量以及提高答案的质量,问答对形成单元401,还可以对社交数据进行数据过滤,得到过滤后社交数据,对过滤后社交数据进行问答拆解,形成多个问答对。
[0270] 比如,问答对形成单元401,可以先对社交数据进行分词,然后,按照词汇过滤原则过滤掉一些词组数据。比如可以过滤掉人名、地名、机构名等命名实体数据,过滤掉电话号码、即时通讯账号、金融账号(如银行卡号等)等隐私数据,过滤掉脏词等不文明词汇数据。
[0271] (2)索引建立单元402;
[0272] 索引建立单元402,用于建立该问题与其词组的倒排索引。
[0273] 其中,倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文本我们称为倒排索引文本,简称倒排文本(inverted file)。
[0274] 本实施例中述问题与其词组的倒排索引可以:由问题内的词组确定待去重文本。该倒排索引可以包括多个索引条目或者索引对,每个索引条目或者索引对包括索引关键词及其对应的索引项,其中,索引关键词可以为问题中的词组,索引项可以为词组对应的问题。因此,本实施例中建立该问题与其词组的倒排索引,即为建立表征词组与问题之间的对应关系的索引对或者索引条目。
[0275] 也即,索引建立单元402可以,具体用于对问答对中问题进行分词处理,得到问题的词组,根据问题以及问题的词组建立索引对,该索引对包括索引关键词及其对应的索引项,该索引关键词为问题的词组,索引项可以为该问题,。
[0276] (3)问题获取单元403;
[0277] 问题获取单元403,用于获取检索问题,并根据该检索问题的问题词组以及该倒排索引确定与该检索问题相近的相近问题。
[0278] 参考图4b,该问题获取单元403可以包括:检索问题获取子单元4031和相近问题获取子单元4032;
[0279] 检索问题获取子单元4031,用于:
[0280] 获取用户当前输入的句子、以及用户之前输入的历史句子;
[0281] 当该句子不含主谓语和动宾语,且该历史句子含有主谓语或者动宾语时,将历史句子中的主语或者宾语作为该句子的主语,以合成新句子;
[0282] 将该新句子作为检索问题;
[0283] 相近问题获取子单元4032,用于根据该检索问题的问题词组以及该倒排索引确定与该检索问题相近的相近问题。
[0284] 其中,历史句子可以为用户之前输入的句子,比如,该历史句子上一次用户输入的句子。
[0285] 其中,检索问题获取子单元4031还可以用于:
[0286] 当合成新句子失败时,根据该句子内词组的词类型从该句子提取相应的关键词,将该历史句子中词类型与该关键词相同的目标词组,替换为该关键词,以得到替换后的句子,将替换后的句子作为检索问题。
[0287] 又比如,该检索问题获取子单元4031还可以用于在关键词替换合成句子失败时,基于统计的合成策略来合成新句子,以作为检索问题。比如,可以从历史句子中提取相应的关键词,然后,将关键词拼接合成新的句子。
[0288] (4)候选答案获取单元404;
[0289] 候选答案获取单元404,用于根据该相近问题以及该问答对获取检索问题的候选答案,得到检索问题的候选答案集合。
[0290] 具体地,候选答案获取单元404可以在问答对中确定问题与相近问题相匹配的匹配问答对,然后,将匹配问答对中的答案作为检索问题的候选答案。也即,可以将问题与相近问题相匹配的问答对中的答案作为检索问题的候选答案。
[0291] (5)答案选取单元405;
[0292] 答案选取单元405,用于从该候选答案集合中选取该检索问题的目标答案。
[0293] 比如,答案选取单元405可以用于对候选答案集合中候选答案进行打分,得到候选答案的分数,根据候选答案的分数从候选答案集合中候选答案进行排序,得到排序后候选答案集合,从排序后候选答案集合中选取检索问题的目标答案。
[0294] 其中,候选答案的排序方式,可以有多种,如可以采用分数从高到低的方式的进行排序,又比如,还可以采用分数从低到高的方式进行排序。
[0295] 为了提高输出答案与检索问题的相关性,以提升答案的质量,本实施例可以采用以下方式选取检索问题的目标答案。
[0296] 比如,参考图4c,答案选取单元405,可以包括:
[0297] 相似度获取子单元4051,用于获取候选答案集合中候选答案与检索问题之间的句子相似度信息;
[0298] 答案选取子单元4052,用于根据候选答案集合中候选答案与检索问题之间的句子相似度信息,从该候选答案集合中选取该检索问题的目标答案。
[0299] 其中,句子相似度信息为用于表征两个句子之间的相似度的信息;本实施例可采用向量空间模型来计算句子相似度,此时句子相似度信息包括:句子向量之间的向量相似度。其中,句子向量之间的向量相似度可以采用向量之间的夹角余弦值(即余弦相似度)来度量,向量之间的距离(如欧氏距离、曼哈顿距离等等)来度量等等;也即句子向量之间的向量相似度可以包括:句子向量之间的余弦相似度、句子向量之间的距离等等。
[0300] 具体地,该相似度获取子单元4051,用于:获取候选答案集合中候选答案对应的答案句子向量、以及检索问题对应的问题句子向量;获取该答案句子向量与该问题句子向量之间的向量相似度;
[0301] 答案选取子单元4052,用于根据该答案句子向量与该问题句子向量之间的向量相似度,从该候选答案集合中选取该检索问题的目标答案。
[0302] 其中,句子向量的获取方式有多种,比如,相似度获取子单元4051,可以用于获取候选答案集合内候选答案的答案词组对应的词向量,并根据该答案词组对应的词向量获取该候选答案对应的答案句子向量;获取检索问题的问题词组对应的词向量,并根据问题词组对应的词向量获取检索问题对应的问题句子向量。
[0303] 又比如,相似度获取子单元4051,可以用于:
[0304] 将检索问题表示成相应的问题矩阵,并基于卷积神经网络模型对问题矩阵进行卷积处理,得到检索问题对应的问题句子向量;
[0305] 将候选答案集合内候选答案表示成相应的答案矩阵,并基于该卷积神经网络模型对答案矩阵进行卷积处理,得到候选答案对应的答案句子向量。
[0306] 为了提高句子向量的准确性,本实施例还可以采用多个不同的卷积核来对矩阵进行卷积运算,以得到相应的句子向量。例如:
[0307] 相似度获取子单元4051,可以用于:
[0308] 分别采用多个不同的卷积核对问题矩阵进行卷积运算,得到不同卷积核对应的卷积结果,根据不同卷积核对应的卷积结果构建检索问题对应的问题句子向量;
[0309] 分别采用多个不同的卷积核对答案矩阵进行卷积运算,得到不同卷积核对应的卷积结果;
[0310] 根据不同卷积核对应的卷积结果构建候选答案对应的答案句子向量。
[0311] 本实施例在获取不同卷积核对应的卷积结果之后,可以分别对每个卷积核对应的卷积结果作池化处理,得到每个卷积核对应的特征值,然后,根据每个卷积核对应的特征值构建相应的句子向量。比如,在得到不同卷积核对应的卷积结果之后,可以针对每个卷积核对应的卷积结果做池化处理,得到每个卷积核对应的特征值,然后,基于每个卷积核对应的特征值构建检索问题对应的问题句子向量或者候选答案对应的答案句子向量。
[0312] 参考图4d,本实施例中答案选取单元405可以包括:
[0313] 次数获取子单元4053,用于获取检索问题中问题词组的问题出现次数,以及候选答案中答案词的问题答案共现次数;该问题出现次数为问题词组在问答对中出现的次数,该问题答案共现次数为候选答案中的答案词组和检索问题中的问题词组在问题对中两两共现的次数;
[0314] 答案选取子单元4054,用于根据检索问题中问题词组的问题出现次数、以及答案中候选答案词的问题答案共现次数,从该候选答案集合中选取该检索问题的目标答案。
[0315] 该答案选取子单元4054,可以用于:
[0316] 获取候选答案中答案词的问题答案共现次数、与检索问题中问题词的问题出现次数的次数比例;
[0317] 根据次数比例获取候选答案对应的目标答案概率,该目标答案概率为该答案作为检索问题的目标答案的概率;
[0318] 根据答案对应的目标答案概率从该候选答案集合中选取该检索问题的目标答案。
[0319] 具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
[0320] 该自动问答装置具体可以由一个或者多个实体实现,比如集成在服务器等设备中,又比如,该自动问答装置可以离线处理服务器、在线处理服务器、排序服务器等实现。
[0321] 由上可知,本发明实施例自动问答装置通过问答对形成单元401基于社交平台上的社交数据形成的多个问答对,该问答对包括问题及其对应的答案,然后,由索引建立单元402建立该问题与其词组的倒排索引,由问题获取单元403获取检索问题,并根据该检索问题的问题词组以及该倒排索引确定与该检索问题相近的相近问题,由候选答案获取单元
404根据该相近问题以及该问答对获取检索问题的候选答案,得到检索问题的候选答案集合,答案选取单元405从该候选答案集合中选取该检索问题的目标答案。该方案可以先查询与检索问题相近的相近问题,并查询相近问题对应的答案,再从相近问题的答案中选取最合适的答案,因此,该方案可以输出与检索问题相匹配的答案,提高了聊天机器人系统输出答案的准确性和质量。
[0322] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
[0323] 以上对本发明实施例所提供的一种自动问答方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈