基于图的上下文关联回复生成方法、计算机及介质与流程

文档序号:17990474发布日期:2019-06-22 00:45阅读:118来源:国知局
基于图的上下文关联回复生成方法、计算机及介质与流程

本发明属于人机交互技术领域,具体涉及基于图的上下文关联回复生成方法、计算机及介质。



背景技术:

图是计算机系统中一种常用的数据结构或存储方式。如果在人机交互中,机器回复的内容与之前n轮人机交互的内容有关,此时机器的回复满足上下文关联。

目前,在人机交互领域,机器生成回复的方法有许多。比如:通过预设问答库的方式让机器在问答库中检索一条回答回复给用户,通过机器学习、深度学习的等人工智能方法让机器生成答复等。

这些方法虽然得到了较为深入的研究和较为普及的应用,但是其缺点也尤为突出,前者需要预设足够大的问答库,且本质上机器的回复过程并不存在任何智能,机器也不能理解用户的输入。后者,机器生成的答复经常会存在语法错误,或机器的答复高度雷同。



技术实现要素:

针对现有技术中的缺陷,本发明提供一种基于图的上下文关联回复生成方法、计算机及介质,具备了上下文分析和记忆的能力,回复灵活。

第一方面,一种基于图的上下文关联回复生成方法,包括以下步骤:

当存在历史的多轮对话信息时,根据该多轮对话信息生成语境子图;

接收用户输入的对话信息,对所述对话信息进行分词,得到分词实体;

从所述分词实体中提取对话信息中的核心信息,定义为三元组;

根据所述对话信息中的三元组以及其他分词实体构建该对话信息的通用图;

将该对话信息的通用图与语境子图进行对比,获得两者的交集;

根据所述交集生成回复信息。

优选地,所述根据多轮对话信息生成语境子图具体包括:

获取上轮对话信息提取到的三元组;

在预设的通用知识图谱中,提取出与上轮对话信息中三元组对应的实体距离为一跳范围内的实体;

如果语境子图为空或不存在,将上轮对话信息的三元组以及提取出来的实体填充至语境子图中;

如果语境子图不为空,将上轮对话信息的三元组以及提取出来的实体加入所述语境子图中,更新所述语境子图。

优选地,该方法在所述将该对话信息的通用图与语境子图进行对比,获得两者的交集之后,还包括:

将该对话信息的通用图与语境子图进行对比,获得两者的增量集;所述增量集包括存在于该对话信息的通用图中,但是不存在于语境子图中的实体;

将增量集中的实体加入所述语境子图中,更新所述语境子图。

优选地,所述对对话信息进行分词,提取三元组具体包括:

采用分词工具对对话信息进行分词,获得分词实体;

对所述分词实体进行词性标注,提取所述三元组。

优选地,该方法在所述生成语境子图之后,还包括:

设置三元组的自动销毁时间;

当检测到三元组的自动销毁时间到达时,删除所述语境子图中的自动销毁时间到达的三元组及其对应的实体。

优选地,该方法在删除所述语境子图中的自动销毁时间到达的三元组及其对应的实体之后,还包括:

将所述自动销毁时间到达的三元组及其对应的实体存储至预设的长时记忆存储区中。

优选地,所述根据所述交集生成回复信息具体包括:

根据预设的规则模板和所述交集生成多条初始回复信息;

对所有的初始回复信息进行评分;

提取出评分结果满足预设的评分要求的初始回复信息,生成回复信息。

第二方面,一种计算机,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行第一方面所述的方法。

第三方面,一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行第一方面所述的方法。

由上述技术方案可知,本发明提供的基于图的上下文关联回复生成方法、计算机及介质,能够大幅度的转义话题,不触发相关上下文回答,具备上下文分析和记忆的功能。以连续的与上文相关语料作为输入,回复的话题能够不断在不同实体和主题之间游走,不断将旧话题和新话题载入内存,回复灵活。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。

图1为实施例一提供的上下文关联回复生成方法的流程图。

图2为实施例二提供的语境子图构建的方法流程图。

图3为实施例四提供的计算机的模块框图。

具体实施方式

下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

实施例一:

一种基于图的上下文关联回复生成方法,参见图1,包括以下步骤:

s1:当存在历史的多轮对话信息时,根据该多轮对话信息生成语境子图;

具体地,语境子图中包含了多轮历史对话信息的主题和实体,能够反映用户在几次交互过程中关注的主题及相关的实体。如果本次多轮对话是首次对话时,说明不存在多轮对话信息的历史记录,默认语境子图为空或者是该领域的子图。例如:当用户选择的是特定领域时,则语境子图可以初始设置为与该特定领域核心话题相关的子图,这样语境子图能够覆盖到该领域内大部分的核心话题,这样用户在进行初始对话时,可以利用该子图进行多轮会话。

s2:接收用户输入的对话信息,对所述对话信息进行分词,得到分词实体;

s3:从所述分词实体中提取对话信息中的核心信息,定义为三元组;

具体地,对对话信息进行分词是为了后续更好地提取出三元组。核心信息包括主语、谓语和宾语等主干信息。

s4:根据所述对话信息中的三元组以及其他分词实体构建该对话信息的通用图;

具体地,该对话信息的通用图能够完整地反映出本次对话信息的主题和实体。例如可以按照语法规则构建通用图。如用户输入“李白是唐代伟大的浪漫主义诗人,被后人誉为“诗仙”,与杜甫并称为“李杜””;针对该对话信息抽取以下多个三元组,其中三元组中为空的内容用空格表示:[李白,,唐代]、[李白,是,浪漫主义诗人]、[李白,是,诗仙]、[李白,,杜甫]、[李白与杜甫,并称,李杜],建立这句话的通用图,通用图中核心实体是李白,包含“唐代诗人”、“浪漫主义诗人”、“杜甫”、“李杜”等实体。

s5:将该对话信息的通用图与语境子图进行对比,获得两者的交集;

s6:根据所述交集生成回复信息。

具体地,交集包括同时存在于通用图与语境子图的实体的集合。例如语境子图是关于一人名周某某的主题,例如:星座、职业、爱好、身高、体重等。如果用户本次对话信息是“请问周某某的星座是什么”,由于星座是同时存在于通用图与语境子图的实体,所以两者的交集包括星座,所以根据语境子图中“星座”这一实体的关联实体(例如白羊座)生成回复信息,例如回复“周某某是白羊座”。还例如:针对上面李白例子,如果语境子图中包含实体“杜甫”、“李杜”,则“杜甫”、“李杜”是语境子图和通用图的交集,也就是核心实体从李白扩大/转移到杜甫,为后续转移话题提供参考,让用户感觉机器人非常智能,能够思考。

该方法能够大幅度的转移话题,不触发相关上下文回答,具备上下文分析和记忆的功能。以连续的与上文相关语料作为输入,回复的话题能够不断在不同实体和主题之间游走,不断将旧话题和新话题载入内存,回复灵活。

实施例二:

实施例二在实施例一的基础上增加以下内容:

参见图2,所述根据多轮对话信息生成语境子图具体包括:

s11:获取上轮对话信息提取到的三元组;

具体地,当用户在进行每一轮对话时,就会对该轮对话信息进行分词,提取出本次对话信息的三元组。如果当前会话处理结束后,结合已结束的会话信息中的三元组更新语境子图。

s12:在预设的通用知识图谱中,提取出与上轮对话信息中三元组对应的实体距离为一跳范围内的实体;

具体地,知识图谱中和目标实体(即上轮对话信息的三元组)直接相连的实体,就是和目标实体距离为一跳范围内,即一跳可达。如果和目标实体中间隔着一个其他实体相连的实体,就是和目标实体距离为两跳。例如上述例子中,目标实体是职业,则一跳可达的实体是歌手。一跳可达实体包含了用户期望的回复、与用户输入相关的信息、用户下一步可能询问/输入的问题等与目标实体密切相关的实体。如果“周某某”是目标实体,那么其一跳可达的实体包括职业、爱好、星座等。

通用知识图谱包含有常见人机交互内容中涉及到的主题或实体。从通用知识图谱中提取出与目标实体一跳可达的实体,便能够很好地预测用户期望的回复、与用户输入相关的信息、用户下一步可能询问/输入的问题。

s13:如果语境子图为空或不存在,将上轮对话信息的三元组以及提取出来的实体填充至语境子图中。

具体地,如果上轮对话信息是用户的首次交互,那么语境子图还不存在或语境子图为空。此时根据首次交互内容生成语境子图。

s14:如果语境子图不为空,将上轮对话信息的三元组以及提取出来的实体加入所述语境子图中,更新所述语境子图。

具体地,如果上轮对话信息不是用户的首次交互,那么语境子图中有数据。此时根据上轮对话信息的三元组以及提取出来的实体更新所述语境子图。这样语境子图就包含了用户多次交互记录,即语境子图包括用户对话过程中所有实体和主题。

优选地,该方法在所述将该对话信息的通用图与语境子图进行对比,获得两者的交集之后,还包括:

将该对话信息的通用图与语境子图进行对比,获得两者的增量集;所述增量集包括存在于该对话信息的通用图中,但是不存在于语境子图中的实体;

将增量集中的实体加入所述语境子图中,更新所述语境子图。

具体地,增量集反应了本次对话信息中新增的实体或主题。当每轮对话结束后,可以根据每轮对话的增量集更新语境子图。

本发明实施例所提供的方法,为简要描述,实施例部分未提及之处,可参考前述方法实施例中相应内容。

实施例三:

实施例三在其他实施例的基础上增加以下内容:

所述对对话信息进行分词,提取三元组具体包括:

采用分词工具对对话信息进行分词,获得分词实体;

对所述分词实体进行词性标注,提取所述三元组。

具体地,分词工具可以为jieba分词工具。词性标注是语料库语言学中将语料库内单词的词性按其含义和上下文内容进行标记的文本数据处理技术。词性标注可以由特定算法完成,常见的词性标注算法包括隐马尔可夫模型(hiddenmarkovmodel,hmm)、条件随机场(conditionalrandomfields,crfs)等。该方法在进行词性标注,主要用于标出核心信息。

优选地,该方法在所述生成语境子图之后,还包括:

设置三元组的自动销毁时间;

当检测到三元组的自动销毁时间到达时,删除所述语境子图中的自动销毁时间到达的三元组及其对应的实体。

具体地,当三元组载入内存时,即存储新的对话信息中的三元组时,设置三元组的自动销毁时间,以模拟人的遗忘功能。比如,自动销毁时间可以设置为1分钟,即表示每组三元组仅存在1分钟,这样一来,可以根据一分钟内对话信息的所有三元组形成了语境子图,但是一分钟之前对话信息的三元组和其相关实体(例如相连的实体)都被删除,表示大脑只记忆近期(1分钟内)的数据。

优选地,该方法在删除所述语境子图中的自动销毁时间到达的三元组及其对应的实体之后,还包括:

将所述自动销毁时间到达的三元组及其对应的实体存储至预设的长时记忆存储区中。

具体地,可以根据自动销毁时间到达的三元组构建超时删除集,这样超时删除集即表示用户对话中超时被删除的实体。超时删除集被单独保存在长时记忆存储区,以模拟人类的长时记忆和潜意识。表示用户之前很长一段时间内交互过的主题或实体。

优选地,所述根据所述交集生成回复信息具体包括:

根据预设的规则模板和所述交集生成多条初始回复信息;

对所有的初始回复信息进行评分;

提取出评分结果满足预设的评分要求的初始回复信息,生成回复信息。

具体地,该方法以交集作为对话信息生成事实,根据规则模板生成回复。其中规则模板是预定义的,也可以通过不断优化完善规则模板,加强生成表达的自然度。由于根据交集往往可会生成多句初始回复信息,所以该方法可以对初始回复信息进行评分,以选择最合适的初始回复信息作为最终的回复信息。例如采用ranking算法进行排序,排序之后,排名最高的回答就是最合适的回答。

本发明实施例所提供的方法,为简要描述,实施例部分未提及之处,可参考前述方法实施例中相应内容。

实施例四:

一种计算机,参见图3,包括处理器801、输入设备802、输出设备803和存储器804,所述处理器801、输入设备802、输出设备803和存储器804通过总线805相互连接,其中,所述存储器804用于存储计算机程序,所述计算机程序包括程序指令,所述处理器801被配置用于调用所述程序指令,执行上述的方法。

应当理解,在本发明实施例中,所称处理器801可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

输入设备802可以包括触控板、指纹采传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风等,输出设备803可以包括显示器(lcd等)、扬声器等。

该存储器804可以包括只读存储器和随机存取存储器,并向处理器801提供指令和数据。存储器804的一部分还可以包括非易失性随机存取存储器。例如,存储器804还可以存储设备类型的信息。

本发明实施例所提供的计算机,为简要描述,实施例部分未提及之处,可参考前述方法实施例中相应内容。

实施例五:

一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述的方法。

所述计算机可读存储介质可以是前述任一实施例所述的终端的内部存储单元,例如终端的硬盘或内存。所述计算机可读存储介质也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述计算机可读存储介质还可以既包括所述终端的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

本发明实施例所提供的介质,为简要描述,实施例部分未提及之处,可参考前述方法实施例中相应内容。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

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