一种智能问答系统
文献发布时间:2023-06-19 11:19:16
技术领域
本发明涉及自然语言处理技术领域,特别涉及一种智能问答系统。
背景技术
问答系统是信息检索系统的一种高级形式,它能用准确、简洁的自然语言回答用户用自然语言问题,以此满足人们快速准确地获取信息的需求。随着人工智能和自然语言处理领域的发展,问答系统越来越受到人们的关注。
目前,常规的智能问答系统往往只能应答一些基础类、百科类的问题,无法探寻用户问题中关键字的深层次含义。例如问题“C罗是哪个国家的人”,常规的智能问答系统会答复“葡萄牙”,而问题“克里斯蒂亚诺·罗纳尔多是哪个国家的人”,常规的智能问答系统往往答非所问。究其原因,是因为常规的智能问答系统无法辨别C罗就是克里斯蒂亚诺·罗纳尔多。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种智能问答系统,能够识别用户问题中关键字的深层次含义,给出恰当的答案。
本发明提供一种智能问答系统,包括:
智能问答库,用于收集若干个原始问题和与所述原始问题对应的答案,所述智能问答库将所述原始问题分成若干级分类,其中上一级分类对应若干个下一级分类,每一级分类均对应若干个关键字,所述若干级分类用于使每一个所述原始问题分类所属的最小类别都不相同;
缓存子系统,设有内存、本地磁盘以及远程服务器;所述内存、所述本地磁盘以及所述远程服务器都保存有所述智能问答库中原始问题对应的答案和所述智能问答库中分类对应的关键字;
查询子系统,设有接收模块、匹配模块以及输出模块;所述接收模块用于接收用户端输入的用户问题;所述匹配模块用于将所述用户问题与所述智能问答库中的所述原始问题进行匹配,若所述用户问题含有所述智能问答库中每一个分类的对应关键字,则所述匹配模块找出所述用户问题对应的答案,其中所述匹配模块先与所述内存中的关键字进行匹配,若匹配失败则与所述本地磁盘中的关键字进行匹配,若仍匹配失败则与所述远程服务器中的关键字进行匹配;所述输出模块用于输出所述用户问题的对应答案。
通过建立一个以上的智能问答库,并对智能问答库的问题层层分类,每一个分类都对应若干个关键字且每一个问题分类所属的最小类别都不相同;通过建立缓存子系统,用于保存智能问答库中原始问题对应的答案和智能问答库中分类对应的关键字;再通过建立查询子系统,设有用于接收用户问题的接收模块,检索智能问答库并将用户问题与所述原始问题进行匹配的匹配模块,用于输出所述用户问题的对应答案的输出模块,能够识别用户问题中关键字的深层次含义,给出恰当的答案。
本发明的一些实施例,所述缓存子系统用于在所述匹配模块找到所述用户问题对应的答案后,将所述用户问题保存在所述内存或本地磁盘中。
本发明的一些实施例,所述智能问答库分为通用问答库和专业问答库。
本发明的一些实施例,所述查询子系统还设有反馈模块,所述反馈模块用于将没有找到对应的答案的所述用户问题反馈给所述查询子系统。
本发明的一些实施例,所述查询子系统还设有定位模块,所述定位模块用于定位所述用户端的具体位置,以使所述匹配模块基于所述用户端的具体位置匹配最优的答案。
本发明的一些实施例,所述查询子系统还设有字词替换模块,所述字词替换模块用于在所述匹配模块匹配失败时,将所述用户问题的字词进行替换,再将替换字词后的所述用户问题与所述原始问题进行匹配。
本发明的一些实施例,所述接收模块的输入方式至少包含键盘输入,语音输入,系统预设问题输入中的一种。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例提供的一种智能问答系统的数据分类图;
图2为本发明实施例提供的一种智能问答系统的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本发明。
参照图1至图2,本发明的一个实施例,提供一种智能问答系统,能够识别用户问题中关键字的深层次含义,给出恰当的答案。
本发明实施例中的一种智能问答系统,如图1和图2所示,包括:
一个以上的智能问答库。原始的问题和答案,可以通过大数据收集,目前常见的有Apache Flume,Fluentd数据采集平台,对于一些专业的或者特定场所才能适用的问题和答案,也可以使用人工方式收集。例如问题“橘子洲在长沙吗”这类百科类问答往往通过大数据来收集,而问题“橘子洲的厕所在哪里”,“橘子洲的缆车怎么收费”这类无法通过百度查询到的内部讯息,往往通过人工方式收集。收集完原始的问题和答案之后,需要对这些问题进行分类,如银行类,公积金类,天文类,地理类等。对应的,将这些分类分别在数据库中建表,并存储对应的关键字用于检索。一些常见的数据库如mysq l、oracle、sq l server、sql ite、postgreSQL等就能满足需求。
基于上述分类之后的其中一类进行再次细分类,以银行类为例子,那么我们可以细分为中国银行,农业银行,建设银行,工商银行等。同样的,将这些分类分别在数据库中建表,并存储对应的关键字用于检索。重复上述分类操作,直至每一个原始问题分类所属的最小类别都不相同,并对该分类末端的问题与答案映射出对应关系保存到数据库中,这样一个智能问答库就建立完成。
例如以“农业银行5年定期的存款利率是多少”为例,首先对收集来的问题数据进行一级分类,它的一级分类就是“银行类问题”,对该类问题补充关键字列表,用于该类别问题的检索,关键字设置为“银行”,“储蓄所”,“信用合作社”等;进一步对该问题进行二级分类,它的二级分类就是“农业银行类问题”,标记对应的关键字用于检索;进一步对该问题进行三级分类,它的三级分类就是“利率类问题”,同样地,标记对应的关键字为“利率”,“利息”等用于检索;持续的对问题进行子类划分和关键字填充,直到该问题分类所属的最小类别都不相同为止,最后把答案和问题通过主键关联的方式保存在数据库中。当智能问答库中的原始问题包含“农业银行5年定期的存款利率是多少”时,用户输入问题“农村信用合作社5年定期的存款利率是多少”,该问题也会匹配到一级分类“银行类问题”、二级分类“农业银行类问题”及三级分类“利率类问题”中去。
缓存子系统,设有内存、本地磁盘以及远程服务器;内存、本地磁盘以及远程服务器都保存有智能问答库中原始问题对应的答案和关键字。
查询子系统,设有接收模块、匹配模块、输出模块。接收模块用于接收用户问题,例如问题“C罗是哪个国家的人”就是通过接收模块来接收的。匹配模块首先获取内存中一级分类的关键字,与接收模块获取到的用户问题进行循环匹配,如果用户问题中不存在内存中一级分类的关键字,则匹配不成功,那么匹配模块将获取本地磁盘中一级分类的关键字,与接收模块获取到的用户问题进行循环匹配,如果用户问题中不存在本地磁盘中的关键字,则匹配不成功,那么匹配模块将获取远程服务器中一级分类的关键字,与接收模块获取到的用户问题进行循环匹配。如果用户问题含有任一内存、本地磁盘以及远程服务器中一级分类的关键字,则匹配成功,若匹配成功,匹配模块会从一级分类的关键字开始,逐步与各个分类层级的关键字匹配,直到找到对应的答案为止,例如用户问题在本地磁盘一级分类中匹配到了对应的关键字,那么匹配模块将用户问题与二级分类的关键字进行匹配,匹配成功则将用户问题与三级分类的关键字进行匹配,一直逐步匹配,直到匹配到最小级别的分类关键字,从中找到对应的答案。输出模块用于输出用户问题的对应答案。
例如问题“克里斯蒂亚诺·罗纳尔多是哪个国家的人”,属于一级分类“运动”,二级分类“足球”,三级分类“足球球星”,四级分类“C罗”,5级分类“C罗国籍”,而四级分类“C罗”对应的关键字可设为“C罗”、“克里斯蒂亚诺·罗纳尔多”、“小小罗”等,虽然在问答库中,原始问题只包含“C罗是哪个国家的人”的原始问题和对应的答案,但四级分类“C罗”有“克里斯蒂亚诺·罗纳尔多”的关键字,那么匹配模块就默认“克里斯蒂亚诺·罗纳尔多是哪个国家的人”与“C罗是哪个国家的人”这两个问题是匹配的,输出模块就会输出答案。
常规的智能问答系统只能回答一些比较简单的基础式的百科内容,无法探寻用户问题中关键字的深层次含义,而本发明一种智能问答系统,通过建立一个以上的智能问答库,并对智能问答库的问题层层分类,每一个分类都对应若干个关键字且每一个问题分类所属的最小类别都不相同;通过建立缓存子系统,用于保存智能问答库中原始问题对应的答案和智能问答库中分类对应的关键字;再通过建立查询子系统,设有用于接收用户问题的接收模块,检索智能问答库并将用户问题与所述原始问题进行匹配的匹配模块,用于输出所述用户问题的对应答案的输出模块,能够识别用户问题中关键字的深层次含义,给出恰当的答案。
进一步,缓存子系统用于匹配模块在远程服务器找到用户问题对应的答案后,将用户问题对应的答案和关键字保存在内存或本地磁盘中,查询子系统的工作机制是首先会去内存中查询,如果内存中查询不到则进入磁盘中查询,最后才进行远程服务器的查询。如果将在远程服务器匹配成功的用户问题的对应的答案和关键字保存在内存中,内存空间消耗完后保存在本地磁盘中,那么再次查询同一个用户问题的时候,会缩短匹配时间。
进一步,智能问答库分为通用智能问答库和专业智能问答库。通用智能问答库适用绝大部分场合,而专业智能问答库用在某些特定场合,例如某楼盘售楼处,那用户问题就是关于该楼盘的,比如房价,公摊,绿化率,优惠政策,这样的用户问题不会太多但被问的频率又很高。在缓存子系统中的内存和本地磁盘中保存有关该楼盘的关键字和答案,智能问答系统就能解答特定场合的专业问题。
进一步,查询子系统还设有反馈模块,反馈模块用于将没有找到对应的答案的用户问题反馈给查询子系统,,此时查询子系统会将该用户问题保存下来,方便后续智能问答库问题的完善。
进一步,查询子系统还设有定位模块,定位模块用于定位用户端的具体位置,以使匹配模块基于用户端的具体位置匹配最优的答案。例如用户提问“故宫在哪”,常规的智能问答系统的回答往往都是“北京市”,如果用户本身在北京,他其实想问的是故宫更加详细的地址,如果定位模块基于用户端的具体问题定位该用户在北京,那么系统将会回答“东城区长安街”。当然如果定位在长沙,系统将会和常规智能问答系统一样答复“北京市”,如果定位在埃及,系统将会答复“中国”,定位模块用于定位用户端的具体问题,以使匹配模块就一个相同的问题匹配最优的答案。
进一步,查询子系统还设有字词替换模块,字词替换模块用于在匹配模块匹配失败时,将用户问题的字词进行替换,再将替换字词后的用户问题与原始问题进行匹配。例如用户输入问题“200度近视是否需要佩戴眼睛”,从生活常识可知,其实用户想要提问的是“200度近视是否需要佩戴眼镜”,因为“眼睛”与“眼镜”读音类似,导致用户不小心输入了错误的词语,这样匹配模块是无法正确将该用户问题与原始问题进行匹配的,这时候词语替换模块会尝试将“眼睛”替换成“眼镜”然后再重新进行匹配,通过字词替换模块,能在用户输入问题错误的情况下,查询子系统也能成功找到对应答案。
进一步,为了方便不同职业和年龄段的人群使用,查询子系统中的接收模块支持语音输入、键盘输入以及系统预设输入。系统预设输入会将某些高频的用户问题和关键字放置在搜索框的下拉框中,例如在足球场,高频关键字为“梅西”,“皇马”,“越位”等,在篮球场,高频关键字为“库里”,“湖人”,“后仰跳投”等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
- 智能问答系统的控制方法、装置及智能问答系统
- 生成智能问答系统的方法、装置、设备、介质及问答系统