一图简看基于搜索的问答机器人设计

前言

对于 chatbot,如今学界更流行的实现方式是基于深度学习和强化学习,好比seq2seq模型,具体可参考前面的文章《深度学习的seq2seq模型》。数据库

而对于工业界,直接用 seq2seq 模型来实现端对端的仍是几乎没有的,但在不少模块的处理也开始引入深度学习,除此以外也会尝试使用强化学习。目前来看能工业界使用的更多仍是传统的基于搜索的实现,本文来看看如何设计基于搜索的问答系统。网络

关于问答系统

问答系统主要就是实现用户提问,而后返回一个最合理的回答。问答系统与通常的搜索引擎不太同样的是它容许用户用天然语言进行提问,理论上若是要作出较好的效果都须要涉及到天然语言处理。并发

核心思想

收集现有的全部问答集,根据用户的提问,由计算机负责解析问题的语义并从问答集中检索出最相关的问答对应的答案返回给用户。另外,为了使系统更具鲁棒性更加友好,咱们能够选出最相关的前N条问答组成候选集,另外再提供必定的机制在用户不满意结果时向其提供候选集的其余答案。机器学习

核心模块

这里写图片描述

  • spider,负责网络爬取相关的问答并入库到数据库。
  • 知识库,业务最专业最准确的知识来源。
  • 人工添加,支持人工添加新问答。
  • QA数据库,用于存储全部的问答集,能够由两张表存放,问题表和答案表,经过 id 关联起来,而且答案表中也可保存答案相关的文档名称,后面可做为答案附件。
  • lucen,用于将数据库相关问答集创建索引,注意这里只需创建问题的索引,由于根据用户检索候选集时只需根据问题来检索。
  • 类似性工具,对若干个问答候选集进行评分,选出与用户提问最类似的那个问题对应的答案,返回给用户。类似性能够用word2vec或编辑距离。

-------------推荐阅读------------分布式

个人2017文章汇总——机器学习篇ide

个人2017文章汇总——Java及中间件工具

个人2017文章汇总——深度学习篇学习

个人2017文章汇总——JDK源码篇搜索引擎

个人2017文章汇总——天然语言处理篇.net

个人2017文章汇总——Java并发篇


跟我交流,向我提问:

这里写图片描述

公众号的菜单已分为“读书总结”、“分布式”、“机器学习”、“深度学习”、“NLP”、“Java深度”、“Java并发核心”、“JDK源码”、“Tomcat内核”等,可能有一款适合你的胃口。

为何写《Tomcat内核设计剖析》

欢迎关注:

这里写图片描述
相关文章
相关标签/搜索