针对用户的提问意图获取答案信息的方法及装置的制造方法_2

文档序号:9579288阅读:来源:国知局
获取历史对话记录时,也可以以第一用户为单位分别进行提 取,对于同一第一用户而言,可以提取出该第一用户与各个第二用户之间的历史对话记录。 例如,第一用户A过去与第二用户B、C、D之间进行过对话,因此,就可以获取到该第一用户 A与第二用户B、C、D之间的历史对话记录。当然,在实际应用中,可以提取一段时间内(例 如最近一周内、一个月内等)的历史对话记录进行分析。基于这些数据,为该第一用户A挖 掘出针对各种第二用户意图的答案,这样,第一用户A端的"智能机器人"在接收到其他第 二用户的提问之后,就可以基于这些答案作出回答。
[0032] S102:从所述历史对话记录中对各个第二用户提出的问题语料进行用户意图识 另IJ,获取同一用户意图下包括的各个问题语料,并获取该第一用户对同一用户意图下的各 问题语料给出的回复语料;
[0033] 如前文所述,在历史对话记录中,第二用户主要作为提问方,因此,其对话语料一 般都是问题语料,但是,第二用户在对话过程中的用语具有很高的随意性,针对同一意图, 所问问题的具体语言表达方式可能是多种多样的。例如,同样是想问卖家用户使用何种快 递方式,有的买家用户可能问"用什么快递",有的可能问"快递用哪家"等等。如果针对所有 问题都提取对应的答案,则最终生成的"问题-答案"数据库(也即保存有问题与答案之间 的对应关系)的规模会是非常巨大的,并且也不利于后续在回答其他用户提问的使用。例 如后续的问题如果又改变了提问的方式,可能就无法从该数据库中查询到对应的答案,相 应的,"智能机器人"就无法回答该问题,此时,可能仍然需要通过人工的方式进行回答。
[0034] 为此,在本申请实施例中,在进行数据挖掘的过程中,就可以首先针对历史对话记 录中第二用户的问题语料,进行用户意图的识别,这样,使得表达相同意图但是使用了不同 语言表达形式的问题语料,被结构化地表示成用户意图,同一用户意图下可以包括多个问 题语料,然后基于第一用户为这些问题语料给出的回复语料,分析出能够回答该用户意图 的最佳或最合适的答案,并且可以添加到"意图-答案"数据库中。例如,历史对话记录中 包括以下问题语料:"用什么快递"、"快递用哪家"等,此时,可以将这些问题语料识别为"询 由Γ这一用户意图,相应的,在"询邮"这一用户意图下,可以包括上述各问题语料。后续"智 能机器人"在回答第二用户的问题时,也可以首先根据第二用户输入的问题文本,识别出该 用户的用户意图,然后从"意图-答案"数据库中提取出该用户意图对应的答案,并发送给 该第二用户即可。这样,即使第二用户在提问时,语言表达方式上又发生了变化,只要能够 从其语言中识别出用户意图,就仍然可以自动给出合适的答案,降低人工干预的概率。需要 说明的是,关于具体如何进行用户意图的识别,可以采用已有技术中的实现方式,并不属于 本申请实施例的重点,因此,这里不再详述。
[0035] 在对问题语料进行了用户意图识别,并确定出各用户意图下包含的问题语料之 后,就可以从历史对话记录中提取出第一用户针对这些问题语料给出的回复语料,通过对 这些回复语料的分析,来挖掘出最适合回答对应的用户意图的中心答案。例如,对于用户意 图M,其中包含第二用户的问题语料有问题语料X、y、z,此时,就可以从用户对话记录中,提 取出第一用户针对问题语料X、y、z给出的回复语料,通过对这几条回复语料的分析,来确 定出最适合回答该用户意图Μ的中心答案。
[0036] 其中,在确定出某一用户意图下包含的各个问题语料之后,具体如何从历史对话 记录中提取出第一用户针对这些问题语料给出的答复语料,可以有多种实现方式。例如,其 中一种方式下,考虑到对话双方一般都是采用一问一答的方式来进行对话,也就是说,第二 用户在提出一个问题之后,第一用户紧接着就可以做出相应的回复。当然,这属于比较理想 的状态,还有些情况下,在第二用户连续提出多个问题的情况下,第一用户给出的回复的顺 序可能会发生一些错乱,例如,第二条回复可能会是用于回复第一个问题的,等等。但是,无 论是在理想状态下还是非理想状态,第一用户针对第二用户的问题给出的回复一般都是在 第一用户提出问题之后,并且是在距离该问题比较近的几条回复之内。因此,在该方式下, 可以按照各语料的生成时间(该信息在历史对话记录中会有记载)先后顺序,对第一用户 与第二用户之间的历史对话记录进行排序,形成语料序列,当然,对于存在多个第二用户的 情况,会形成多个语料序列,一个语料序列对应一个第二用户。之后,针对同一用户意图下 的各个问题语料,可以从语料序列中,提取出在问题语料之后且距离问题语料最近的预置 条目(例如一条或者两条等等)的目标回复语料,这样,就可以这种目标回复语料确定为第 一用户对该用户意图中的问题语料给出的回复语料。
[0037] 例如,第一用户Α与第二用户Β之间的历史对话记录,按照语料生成时间先后顺序 进行排列之后,得到以下语料序列:
[0038] {问题语料1,回复语料1,问题语料2,回复语料2,回复语料3,问题语料3,问题语 料4,回复语料4……}
[0039] 假设某用户意图下的问题语料包括问题语料1,预先定义与问题语料之间的距离 小于等于1的回复语料都可以作为该问题语料的目标回复语料(距离为0时,代表与问题 语料直接相邻,距离为1时,代表与问题语料之间隔着一条回复语料,以此类推),则,由于 回复语料1在该问题语料1之后生成,并且与该问题语料1直接相邻,也即距离为〇,回复 语料2也是在问题语料1之后生成,与该问题语料1之间的距离为1,回复语料1以及回复 语料2都可以被作为第一用户回答该问题语料1时给出的目标回复语料被提取出来。相应 的,如果问题语料2是另一用户意图下的问题语料,则按照前述假设关系,回复语料2、回复 语料3也将会被作为第一用户回答该问题语料2时给出的目标回复语料被提取出来,以此 类推。
[0040] 总之,针对各个用户意图,都可以从历史对话记录中提取出第一用户针对该用户 意图给出的多个回复语料,这些回复语料中有的可能确实能够回答该用户意图,有些可能 不能回答该用户意图,属于噪音,能够回答该用户意图的回复语料中还可能存在最适合回 答该用户意图的最佳语料,因此,后续的步骤中就会针对各个用户意图,从分别对应的多个 回复语料中,过滤掉噪音,并筛选出最适合回答对应用户意图的回复语料,作为对应用户意 图的中心答案进行保存。
[0041]S103:针对同一用户意图,对各个回复语料进行聚类,得出多个类别,并在包含回 复语料数目多于预置阈值的目标类别中,分别计算各个回复语料在所述目标类别中成为类 别中心的权重;
[0042]具体的,在针对一个用户意图获取到多个回复语料之后,就可以从这些回复语料 中提取最能回答该用户意图的中心答案。具体实现时,可以首先对这些回复语料进行聚类, 主要是通过比对各个回复语料之间的文本相似度来进行聚类,具体可以使用多种算法进行 该聚类过程。例如,在一种实现方式下,可以使用杰卡德相似系数计算回复语料之间的相似 度,然后使用canopy算法进行聚类,此时,假设某用户意图对应Ν个回复语料,并假设最小 相似度为T1,一致相似度为T2,在初始状态下,各个回复语料的中心标志位flag=false。 这样,具体的聚类过程可以包括以下步骤:
[0043] 步骤1,从N个回复语料中随机选取一个回复语料n,开设一个类别1,并假设该回 复语料为该类别的中心点;
[0044] 步骤2,计算其他回复语料与该中心点之间的距离d;
[0045]步骤3,如果某回复语料m与该中心点之间的距离d小于T1,则将该回复语料m加 入到该类别1中;
[0046]步骤4,如果d小于T2,则将该回复语料m的标志位flag置为true,以此表明该回 复语料m已经找到了所述的类别,不需要再为该回复语料开设一个新的类别;
[0047]-次遍历结束之后,再从所有flag为false的回复语料中重新随机选取一个回复 语料,重复执行步骤1至步骤4,以此类推,直到所有的回复语料的标志位均被置为true,就 可以完成对回
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1