一种智能自然语言问答方法与流程

文档序号:15047491发布日期:2018-07-27 23:00阅读:216来源:国知局

本发明涉及信息检索、自然语言问答系统,自然语言处理领域,尤其涉及一种智能自然语言问答方法。



背景技术:

问答系统(questionansweringsystem)是指能够对计算机用户输入的使用自然语言描述的问句做出回答的计算机程序。问答系统集自然语言处理、信息检索、知识表示为一体,正日益成为国际上研究的热点。它既能够让用户用自然语言提问,又能够为用户返回一个简洁、准确的答案。自然语言问答系统中的人机界面、精确性和实时性是自然语言问答系统的三大研发目标,其中,精确性是自然语言问答系统的首要目标。为了提高问答精确性,上下文的连贯是非常必要的。目前,问答系统为了让用户与系统之间的对话具有连贯性,主要采用的是脚本预设的方法。以下代码给出了一种典型设置问答系统上下文关联的方法。

<pattern>你的名字是*</pattern>

<condition>

<liname=″knowname″value=″true″>你已经知道我的名字了。干吗还问?</li>

<liname=″guesscount″value=″″>不对,不对。<think>

<setname=″knowname″>didguess</set><setname=″guesscount″>2</set></think>

</li>

<liname=″guesscount″value=″2″>

不对.继续猜.<think><setname=″guesscount″>3</set></think>

</li>

</condition>

从以上代码可以看到通过标签和变量可以实现让问答系统具有上下文的连贯性,这种方法可以准确的定义上下文逻辑关系,不足之处是实现成本较高,在知识库较大情况下定义上下文关系需要设计人员做很多工作。因此,有必要设计一种较为方便的让问答系统对话上下文具有连贯性的方法。



技术实现要素:

为解决现有技术中的不足,本发明的目的是提供一种智能自然语言问答方法,旨在解决现有自然语言问答方法实现成本高的问题,工作量大的问题。

为实现上述目的,本发明的技术方案为:一种智能自然语言问答方法,包括:

获取提问信息;

对所述提问者的问题按照所述提问者设置的数据信息进行排序;

将提问信息输入到知识图谱中查询答案;

若在知识图谱中未查询到答案,则将提问信息输入到社区数据中查询答案;

若在社区数据中未查询到答案,则将提问信息输入到互联网数据中查询答案。

作为优选,若在知识图谱中查询到答案,则终止查询。

作为优选,若在社区数据中查询到答案,则终止查询。

作为优选,所述将提问信息输入到知识图谱中查询答案的步骤具体包括:

将提问信息进行切分;

将切分后的结果在知识图谱中分别查找中间结果;

将中间结果输入到数据库中获取情感偏向,根据情感偏向得到答案。

作为优选,所述将提问信息输入到社区数据中查询答案的步骤具体包括:

将切分后的结果在社区数据中分别查找中间结果;

将中间结果与预设的特征信息进行比较,根据比较结果得到答案。

作为优选,所述将提问信息输入到互联网数据中查询答案的步骤具体包括:

将切分后的结果在互联网数据中分别查找中间结果;

将中间结果按照语言规则组合后得到答案。

本发明的有益效果:准确率高,计算量小,实现成本低。

附图说明

图1是本发明实施例一的一种机器人交互内容的生成方法的流程图;

图2是本发明实施例二的一种机器人交互内容的生成系统的示意图。

具体实施方式

下面结合附图和较佳的实施例对本发明作进一步说明。

实施例一

如图1所示,本实施例中公开一种智能自然语言问答方法,包括:

s101、获取提问信息;

s102、将提问信息输入到知识图谱中查询答案;

s103、若在知识图谱中未查询到答案,则将提问信息输入到社区数据中查询答案;

s104、若在社区数据中未查询到答案,则将提问信息输入到互联网数据中查询答案。

本发明公开的一种智能自然语言问答方法:获取提问信息;将提问信息输入到知识图谱中查询答案;若在知识图谱中未查询到答案,则将提问信息输入到社区数据中查询答案;若在社区数据中未查询到答案,则将提问信息输入到互联网数据中查询答案。这样就可以将提问信息首先输入到知识图谱中查询答案,如果查询到,就是反馈给用户,如果没有查询到,那么就会继续到社区数据中查询,如果查询到,就反馈给用户,如果没有查询到,那就会继续到互联网数据中查询,如果查询到及反馈给用户。这样就可以结合基于知识图谱的问答的准确率高的特点,基于社区数据的问答的覆盖率较高的特点,基于互联网数据的问答的覆盖率更高的特点,来提高问答的覆盖率和准确率,扩大问答方法的适用范围和通用性。

本实施例中,基于互联网数据的问答(web-qa,webquestionanswering),基于社区数据的问答(c-qa,communityquestionanswering),基于知识图谱的问答(kb-qa,knowledgebasedquestionanswering)这三种问答的方法和系统中,kb-qa的特点在于准确率最高,但覆盖率最低,c-qa的特点在于准确率次高,但覆盖率较高,web-qa的特点在于准确率最低,但覆盖率最高。本实施例通过将三者有效的结合,可以增加问答的准确率和覆盖率。

根据其中一个示例,所述方法进一步包括:若在知识图谱中查询到答案,则终止查询。这样就可以在查找到答案之后就终止查询以节省资源和时间,方便用户及时获取到答案。

根据其中一个示例,所述方法进一步包括:若在社区数据中查询到答案,则终止查询。这样就可以在查找到答案之后就终止查询以节省资源和时间,方便用户及时获取到答案。

根据其中另一个示例,所述将提问信息输入到知识图谱中查询答案的步骤具体包括:

将提问信息进行切分;

将切分后的结果在知识图谱中分别查找中间结果;

将中间结果输入到数据库中获取情感偏向,根据情感偏向得到答案。

这样就可以快速、方便的在知识图谱中查找到答案。

根据其中另一个示例,所述将提问信息输入到社区数据中查询答案的步骤具体包括:

将提问信息进行切分;

将切分后的结果在社区数据中分别查找中间结果;

将中间结果与预设的特征信息进行比较,根据比较结果得到答案。

这样就可以快速、方便的在社区数据中查找到答案,社区数据例如“百度知道”,“知乎”等社区。

根据其中另一个示例,所述将提问信息输入到互联网数据中查询答案的步骤具体包括:

将提问信息进行切分;

将切分后的结果在互联网数据中分别查找中间结果;

将中间结果按照语言规则组合后得到答案。

这样就可以快速、方便的在知识图谱中查找到答案。

例如,用户提出的一个“我穿这件衣服好看吗”的问题。

那么step1:在kb-qa中查询,“我”的爱好、心情,衣服的样式、颜色等,然后根据获取的人的偏好和衣服的特征,来判断是好看还是难看,从而得到答案。

step2:如果在kb-qa中查询不到,就在c-qa中查询。例如,知乎上是否有“我”的偏好信息,和是否有衣服的资料,目的就是得到“我”的特征,“衣服”的特征,然后判断是好看还是难看,从而得到答案。

step3:就本问题而言,显然web-qa是不合适的。因为web-qa没有“我”的资料,所以在web-qa就不会查询答案。

实施例二

如图2所示,本实施例公开一种智能自然语言问答方法,包括:

获取模块201,用于获取提问信息;

知识图谱模块202,用于将提问信息输入到知识图谱中查询答案;

社区数据模块203,用于若在知识图谱中未查询到答案,则将提问信息输入到社区数据中查询答案;

互联网数据模块204,用于若在社区数据中未查询到答案,则将提问信息输入到互联网数据中查询答案。

这样就可以将提问信息首先输入到知识图谱中查询答案,如果查询到,就是反馈给用户,如果没有查询到,那么就会继续到社区数据中查询,如果查询到,就反馈给用户,如果没有查询到,那就会继续到互联网数据中查询,如果查询到及反馈给用户。这样就可以结合基于知识图谱的问答的准确率高的特点,基于社区数据的问答的覆盖率较高的特点,基于互联网数据的问答的覆盖率更高的特点,来提高问答的覆盖率和准确率,扩大问答方法的适用范围和通用性。

本实施例中,基于互联网数据的问答(web-qa,webquestionanswering),基于社区数据的问答(c-qa,communityquestionanswering),基于知识图谱的问答(kb-qa,knowledgebasedquestionanswering)这三种问答的方法和系统中,kb-qa的特点在于准确率最高,但覆盖率最低,c-qa的特点在于准确率次高,但覆盖率较高,web-qa的特点在于准确率最低,但覆盖率最高。本实施例通过将三者有效的结合,可以增加问答的准确率和覆盖率。

根据其中一个示例,所述系统包括第一终止模块,用于若在知识图谱中查询到答案,则终止查询。这样就可以在查找到答案之后就终止查询以节省资源和时间,方便用户及时获取到答案。

根据其中另一个示例,所述系统包括第二终止模块,若在社区数据中查询到答案,则终止查询。这样就可以在查找到答案之后就终止查询以节省资源和时间,方便用户及时获取到答案。

根据其中另一个示例,所述知识图谱模块具体用于:

将提问信息进行切分;

将切分后的结果在知识图谱中分别查找中间结果;

将中间结果输入到数据库中获取情感偏向,根据情感偏向得到答案。

这样就可以快速、方便的在知识图谱中查找到答案。

根据其中另一个示例,所述社区数据模块具体用于:

将提问信息进行切分;

将切分后的结果在社区数据中分别查找中间结果;

将中间结果与预设的特征信息进行比较,根据比较结果得到答案。

这样就可以快速、方便的在社区数据中查找到答案,社区数据例如“百度知道”,“知乎”等社区。

根据其中另一个示例,所述互联网数据模块具体用于:

将提问信息进行切分;

将切分后的结果在互联网数据中分别查找中间结果;

将中间结果按照语言规则组合后得到答案。

这样就可以快速、方便的在知识图谱中查找到答案。

例如,用户提出的一个“我穿这件衣服好看吗”的问题。

那么step1:在kb-qa中查询,“我”的爱好、心情,衣服的样式、颜色等,然后根据获取的人的偏好和衣服的特征,来判断是好看还是难看,从而得到答案。

step2:如果在kb-qa中查询不到,就在c-qa中查询。例如,知乎上是否有“我”的偏好信息,和是否有衣服的资料,目的就是得到“我”的特征,“衣服”的特征,然后判断是好看还是难看,从而得到答案。

step3:就本问题而言,显然web-qa是不合适的。因为web-qa没有“我”的资料,所以在web-qa就不会查询答案。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。

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