智能问答系统构思(持续更新)

本次智能问答系统设计,分为前台、后台、知识库构建三个主要功能模块,其中前台是为问答操作提供界面,后台实现产品文档录入、知识库管理以及与前台通信、知识库构建根据录入文档实现QA对”自动化生成。采用前台和后台结合的方式,前台是一个跟用户交互的聊天界面,后台从提供的文档中抽取出尽可能多的QA对,以支持前台app的交互。后台使用从页面查找css结构规则来找问题和采用神经网络训练文档,来更加准确合理的给出答案。

能问答系统主要包含文档库知识库用户管理三大模块,涉及的技术包括排序学习、词向量、模糊匹配、卷积神经网络、语言模型

我们系统的核心内容是从文档中抽取出尽可能多的高质量的QA对,为此我们采取了三种方式来实现,我们先使用规则提取文档中的内容。我们发现测试数据集中的内容比较固定,我们使用Java的HTML解析工具解析测试数据集文档,根据CSS样式选择器选择固定区域的内容作为我们提取的结果。比如这篇文档的这个部分的内容就可以作为问题,而下面的这段文字可以作为他的答案。

 

然后是NLP分析,这种方式是应用开源的NLP分词工具,从文档中提取出关键语句,然后提取关键语句中的关键词语作为问题,关键语句作为答案。比如从这篇文档中选取这段话作为答案,问题则是这段话中的弹性云服务器。

 

最后我们采用深度学习构建的模型去分析,这个神经网络模型可以提取出文档中适合作为问题的语句。

匹配分为两部分,

一部分是精确的匹配,也就是用户的问题和抽取出来的问题是完全匹配的,那么

肯定这个问题对应的答案也是最合适的,这也是最理想的条件。

另一部分是当问题和抽取出的问题不能精确匹配的时候,我们这时候需要采取算法来使用户的问题和数据库中的标准问题去匹配,找到一个匹配度最高的返回,我们使用的处理办法是 先将用户输入的问题先使用ansj分词工具提取出五个关键词,然后使用模糊匹配去数据库中查找,将找到的数据存储到链表,去重以后,采用余弦向量的算法去找到一个得分最高的问题,这个问题的答案就是要返回给用户的答案。

 

posted on 2018-07-03 23:05  王甜甜的小摩托  阅读(3522)  评论(0编辑  收藏  举报

导航