一种用于机器人的交互输出方法与流程

文档序号:12719989阅读:209来源:国知局
一种用于机器人的交互输出方法与流程

本发明涉及机器人领域,具体涉及一种用于机器人的交互输出方法。



背景技术:

随着人工智能技术的不断发展,自动应答系统越来越多的应用于人类日常的生产生活中。

在现有技术中,自动应答系统通采用基于知识库的应答搜索策略。即在需要进行自动应答时,获取当前的用户提问,使用知识库匹配算法从知识库中搜索匹配用户提问的答案。

在上述应答策略中,获取对应当前的用户提问的前提是知识库中已经保存有与用户提问匹配的答案。但是,实际的交互场景是复杂多变的,知识库中不可能保存有所有可能发生的交互请求的对应答案。当用户提问超出了知识库的范围时,应答系统就无法对用户提问做出应答。



技术实现要素:

本发明提供了一种用于机器人的交互输出方法,所述方法包括:

获取多模态交互输入数据;

解析所述多模态交互输入数据,提取请求问题;

获取知识库中所述请求问题的匹配问题,当不存在所述匹配问题时基于获取所述知识库中所述请求问题的相似问题;

根据所述请求问题以及所述相似问题生成对应所述请求问题的答案,根据所述答案生成并输出对应所述多模态交互输入数据的多模态交互输出。

在一实施例中,根据所述请求问题以及所述相似问题生成对应所述请求问题的答案,其中:

将所述请求问题以及所述相似问题分别进行分词编码;

对所述请求问题以及所述相似问题的编码结果进行解码以生成所述答案。

在一实施例中,对所述请求问题以及所述相似问题的编码结果进行解码,其中,采用注意力机制对所述请求问题以及所述相似问题的编码结果进行解码。

在一实施例中,获取所述请求问题的相似问题,其中,所述相似问题的个数为一个。

在一实施例中,当不存在所述匹配问题时基于所述知识库搜索获取所述请求问题的相似问题,其中,基于所述知识库中各个问题与所述请求问题的相似度确定所述匹配问题或所述相似问题,包括:

当不存在与所述请求问题的相似度达到第一阈值的问题时判断不存在所述匹配问题;

当不存在与所述请求问题的相似度达到第二阈值的问题时判断不存在所述相似问题。

本发明还提出了一种智能机器人,所述机器人包括:

输入采集模块,其配置为获取多模态交互输入数据;

问题提取模块,其配置为解析所述多模态交互输入数据,提取请求问题;

问题匹配模块,其配置为获取知识库中所述请求问题的匹配问题,并且,当不存在所述匹配问题时基于获取所述知识库中所述请求问题的相似问题;

答案生成模块,其配置为根据所述请求问题以及所述相似问题生成对应所述请求问题的答案;

输出模块,其配置为根据所述答案生成并输出对应所述多模态交互输入数据的多模态交互输出。

在一实施例中,所述答案生成模块包含:

编码单元,其配置为将所述请求问题以及所述相似问题分别进行分词编码;

解码单元,其配置为对所述请求问题以及所述相似问题的编码结果进行解码以生成所述答案。

在一实施例中,所述解码单元配置为采用注意力机制对所述请求问题以及所述相似问题的编码结果进行解码。

在一实施例中,所述问题匹配模块配置为获取所述请求问题的相似问题,其中,所述相似问题的个数为一个。

在一实施例中,所述问题匹配模块配置为基于所述知识库中各个问题与所述请求问题的相似度确定所述匹配问题或所述相似问题,包括:

当不存在与所述请求问题的相似度达到第一阈值的问题时判断不存在所述匹配问题;

当不存在与所述请求问题的相似度达到第二阈值的问题时判断不存在所述相似问题。

根据本发明的方法,可以在机器人基于知识库搜索不到合适的答案时,自行生成匹配的答案返回给用户。相较于现有技术,本发明的方法拓展了机器人可应答范围,提高了智能机器人的应答准确度,改善了机器人的用户体验。

本发明的其它特征或优点将在随后的说明书中阐述。并且,本发明的部分特征或优点将通过说明书而变得显而易见,或者通过实施本发明而被了解。本发明的目的和部分优点可通过在说明书、权利要求书以及附图中所特别指出的步骤来实现或获得。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:

图1是根据本发明一实施例的方法流程图;

图2、图3以及图4是根据本发明实施例的方法的部分流程图;

图5是根据本发明一实施例的机器人系统结构简图;

图6以及图7是根据本发明实施例的机器人系统部分结构简图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此本发明的实施人员可以充分理解本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程并依据上述实现过程具体实施本发明。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。

随着人工智能技术的不断发展,自动应答系统越来越多的应用于人类日常的生产生活中。

在现有技术中,自动应答系统通常采用基于知识库的应答搜索策略。即在需要进行自动应答时,获取当前的用户提问,使用知识库匹配算法从知识库中搜索匹配用户提问的答案。

在上述应答策略中,获取对应当前的用户提问的前提是知识库中已经保存有与用户提问匹配的答案。但是,实际的交互场景是复杂多变的,知识库中不可能保存有所有可能发生的交互请求的对应答案。当用户提问超出了知识库的范围时,应答系统就无法对用户提问做出应答。

针对现有技术中存在的问题,本发明提出了一种用于机器人的交互输出方法。在根据本发明的一实施例中,当用户提问超出了知识库的范围时(知识库中并未保存有与用户提问匹配的问题),启用对话生成模型根据用户提问生成合适的答案。这样,在用户提问超出了知识库的范围的情况下(在机器人基于知识库搜索不到合适的答案时),也可以自行生成匹配的答案返回给用户。相较于现有技术,本发明的方法拓展了机器人可应答范围。

进一步的,在一实施例中,在利用对话生成模型生成对应用户的答案的过程中,还通过加入先验知识的方式使得对话生成模型对用户提问的理解表达更丰富,从而生成更具语义性的回答,使得对话生成模型生成的答案更加切合用户提问。具体的,从知识库中获取与用户提问相似的相似问题,然后利用对话生成模型基于原本的用户提问以及从知识库中获取的相似问题来生成对应原本的用户提问的答案。这样就可以大大提高智能机器人的应答准确度。

以一具体的应用场景为例,当用户请求一个问题(原始问题,Original Question)时,机器人首先在知识库中寻找与Original Question相同的Question,如果找到相同的Question(这里的相同指的是含义基本相同),将其对应Answer传入机器人系统的决策模型,由决策模型基于Answer实现对用户的应答。

如果没有找到相同的Question,将与Original Question最接近的相似问题(Similar Question)和Original Question分词之后传入对话生成模型,把对话生成模型生成的Answer作为答案传入决策模型,决策模型判断是否将Answer作为答案返回给用户。例如,用户请求一个Question“每年元旦都来高烧”,对话生成模型返回一个Answer“祝早日康复,身体健康!”作为回复传入决策层,由决策层判断可以输出,将该回复返回给用户。

接下来基于附图详细描述根据本发明实施例的方法的详细流程,附图的流程图中示出的步骤可以在包含诸如一组计算机可执行指令的计算机系统中执行。虽然在流程图中示出了各步骤的逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

如图1所示,在一实施例中,机器人首先获取多模态交互输入数据(例如用户的问题输入)(步骤S100);然后解析获取到的多模态交互输入数据(步骤S110),从中提取请求问题(用户想要问什么)(原始问题,Original Question)(步骤S120)。

接下来从知识库中获取请求问题的匹配问题,具体的,即从知识库中搜索请求问题的匹配问题(步骤S130),判断是否存在请求问题的匹配问题(能否搜索到匹配问题)(步骤S140)。

如果存在匹配问题,则根据该匹配问题获取对应的答案(步骤S150);并接下来基于获取到的答案(与匹配问题对应的答案)生成并输出响应多模态输入数据的多模态输出(应答用户的提问)(步骤S160)。

如果不存在匹配问题,则从知识库中获取与请求问题相似的相似问题(步骤S170);并接下来利用对话生成模型根据原始的请求问题以及获取到的相似问题获取对应原始的请求问题的答案(步骤S180);最后基于获取到的答案(综合请求问题以及相似问题获取到的答案)生成并输出响应多模态输入数据的多模态输出(应答用户的提问)(步骤S160)。

基于本发明的方法,不仅可以基于知识库搜索获取匹配用户提问的答案,而且可以在知识库搜索不到对应的答案时(用户的提问超出知识库的范围)自动生成对应的答案,大大拓展了机器人可应答范围,改善了机器人的用户体验。

根据图1所示的流程,当用户提问在知识库范围内时,获取到的答案(步骤S150)是预先保存在知识库中与匹配问题对应的答案。因此答案的正确与否就在于建立知识库是针对匹配问题预先保存的答案是否正确。而当用户提问在知识库范围内外,获取到的答案(步骤S150)是对话生成模型综合相似问题以及请求问题而生成的答案(步骤S180)。答案的正确与否则主要取决于答案的生成过程(步骤S180)。

为了保证答案的正确率,在本发明一实施例中,对话生成模型采用了编解码框架(Encoder-Decoder框架)来生成答案。首先将请求问题以及相似问题分别进行分词编码;然后对请求问题以及相似问题的编码结果进行解码;最后根据解码结果生成答案。

具体的,Encoder-Decoder框架包含两部分,Encoder层和Decoder层。Encoder层主要是指输入变长的句子,进行语义理解,输出定长的向量表达,该层一般是RNN网络。Decoder层主要是指输入定长的向量表达(即Encoder的输出),根据任务的不同输出变长的句子。将分词后的Similar Question和Original Question通过两个Encoder层,生成一个对Question中部分词(words)的选择性向量表达,将其传入Decoder层生成一个Answer。

如图2所示,在一实施例中,首先对请求问题以及相似问题进行分词处理(步骤S201以及步骤S202),然后对请求问题以及相似问题的分词结果进行编码分别获取请求问题以及相似问题的编码结果(步骤S211以及步骤S212)。接下来综合请求问题以及相似问题的编码结果进行解码(步骤S220)并最终生成答案(步骤S230)

进一步的,在本发明一实施例中,机器人采用注意力机制(Attention mechanism)对请求问题以及相似问题的编码结果进行解码。及对话生成模型的Decoder层采用Attention mechanism进行解码。在这里,Attention mechanism是一种将模型输入句子的第i个词(word)和模型输出句子的第j个word关联起来的机制。Attention mechanism能够使得输入的句子被选择性的表达出来,而不是全部表达。

进一步的,在本发明一实施例中,相似问题的编码的实现过程(步骤S212)是输入为分词后的Similar Question,通过Encoder层编码进行语义表达,将编码结果和Original Question编码结果通过Attention mechanism对Similar Question进行选择性表达并将结果传入Decoder层以进行生成Answer。其中加入Original Question编码结果是为了更好的对Similar Question的语义选择。

进一步的,在本发明一实施例中,请求问题的编码实现过程(步骤S211)是输入为分词后的Original Question,通过Encoder层编码进行语义表达,将编码结果和Similar Question编码结果通过Attention mechanism对Original Question进行选择性表达并将结果传入Decoder层以进行生成Answer。其中加入Similar Question编码结果是为了更好的对Original Question的语义理解。

如图3所示,首先对请求问题以及相似问题进行分词处理(步骤S301以及步骤S302);然后对分词后的Original Question(请求问题),通过Encoder层编码进行语义表达(步骤S311);同时,对分词后的Similar Question(相似问题),通过Encoder层编码进行语义表达(步骤S312)。

将步骤S311的编码结果(请求问题的编码结果)和步骤S312的编码结果(相似问题的编码结果)通过Attention mechanism对Original Question(请求问题)进行选择性表达(步骤S313)。同时,将步骤S311的编码结果(请求问题的编码结果)和步骤S312的编码结果(相似问题的编码结果)通过Attention mechanism对Similar Question(相似问题)进行选择性表达(步骤S314)。

通过Decoder层基于步骤S313以及步骤S314的结果进行解码(步骤S320),以最终生成答案(Answer)(步骤S330)。

进一步的,在一实施例中,为了提高对话生成模型生成的答案的准确度,在图1所示的步骤S170中,仅获取请求问题的一个相似问题。

进一步的,在一实施例中,基于知识库中各个问题与请求问题的相似度确定匹配问题或相似问题。具体的,设置第一相似度阈值,当知识库中存在与请求问题的相似度达到第一相似度阈值(大于或等于)的问题时,判断存在匹配问题,大于第一相似度阈值的相似度最大的问题即为匹配问题。当知识库中不存在与请求问题的相似度大于第一相似度阈值的问题时,判断不存在匹配问题,相似度最大的问题即为相似问题。

进一步的,在实际应用场合中,存在知识库中所有的问题均与请求问题关联度很小的情况。如果此时仍将相似度最大的问题(其相似度相较其他问题虽然最大,但是其相似度的值(与请求问题的关联系)其实很小)作为相似问题输出给对话生成模型,就可能会生成与请求问题无关的答案。针对这种情况,在一实施例中,对请求问题的相似问题设置了进一步的相似度限定。具体的,设置第二相似度阈值(其小于第一相似度阈值),当不存在与请求问题的相似度达到(大于或等于)第二阈值的问题时判断不存在相似问题。

具体的,如图4所示,在一实施例中,机器人提取到请求问题(步骤S420)后搜索知识库(步骤S430),判断是否存在请求问题的匹配问题(是否存在与请求问题相似度达到第一相似度阈值的问题)(步骤S440)。

如果存在匹配问题(存在相似度达到第一相似度阈值的问题),则获取其中相似度最大的问题(匹配问题)对应的答案(步骤S450);并接下来基于获取到的答案(与匹配问题对应的答案)生成并输出响应多模态输入数据的多模态输出(应答用户的提问)(步骤S460)。

如果不存在匹配问题(不存在相似度达到第一相似度阈值的问题),则判断是否存在请求问题的相似问题(是否存在与请求问题相似度达到第二相似度阈值的问题)(步骤S470);如果存在相似问题(存在相似度达到第二相似度阈值的问题),则获取其中相似度最大的问题(相似问题)(步骤S471);并接下来利用对话生成模型根据原始的请求问题以及获取到的相似问题获取对应原始的请求问题的答案(步骤S480);最后基于获取到的答案(综合请求问题以及相似问题获取到的答案)生成并输出响应多模态输入数据的多模态输出(应答用户的提问)(步骤S460)。

如果不存在相似问题,则向用户输出无法理解当前用户提问(请求问题)的指示,或者利用对话生成模型仅仅基于请求问题生成对应的答案并输出(步骤S460)。

根绝本发明的方法,本发明还提出了一种机器人。如图5所示,在一实施例中,机器人包括:

输入采集模块500,其配置为获取多模态交互输入数据;

问题提取模块510,其配置为解析多模态交互输入数据,提取请求问题;

问题匹配模块520,其配置为获取知识库中请求问题的匹配问题,并且,当不存在匹配问题时基于获取知识库中请求问题的相似问题;

答案生成模块530,其配置为根据请求问题以及相似问题生成对应请求问题的答案,或者根据匹配问题获取对应的答案;

输出模块540,其配置为根据答案生成并输出对应多模态交互输入数据的多模态交互输出。

具体的,如图6所示,问题匹配模块620包含问题搜索单元621,其获取问题提取模块610输出的请求问题并在知识库存储器600(其也可以是网络服务器)保存的知识库中搜索。当问题搜索单元621搜索到匹配问题时,答案生成模块630的答案获取单元631从知识库存储器600保存的知识库中获取匹配问题对应的答案,并将答案输出给输出模块540。当问题搜索单元621搜索不到匹配问题时,其从知识库存储器600保存的知识库中获取相似问题并将相似问题以及请求问题输出给答案生成模块630的对话生成单元632,对话生成单元632根据相似问题以及请求问题生成答案并将答案输出给输出模块640。

进一步的,在一实施例中,问题匹配模块620配置为获取请求问题的相似问题,其中,相似问题的个数为一个。

进一步的,在一实施例中,问题匹配模块620配置为基于知识库中各个问题与请求问题的相似度确定匹配问题或相似问题,包括:

当不存在与请求问题的相似度达到第一阈值的问题时判断不存在匹配问题;

当不存在与请求问题的相似度达到第二阈值的问题时判断不存在相似问题。

进一步的,如图7所示,在一实施例中,答案生成模块700包含:

编码单元701,其配置为将请求问题以及相似问题分别进行分词编码;

解码单元702,其配置为对请求问题以及相似问题的编码结果进行解码以生成答案。

进一步的,在一实施例中,解码单元702配置为采用注意力机制对请求问题以及相似问题的编码结果进行解码。

虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。本发明所述的方法还可有其他多种实施例。在不背离本发明实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变或变形,但这些相应的改变或变形都应属于本发明的权利要求的保护范围。

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