对话系统包括闲聊、问答、任务型对话三大部分。
问答系统特指那些一问一答形式的聊天。
任务型对话指用户但愿经过聊天的方式达成某种目的。
闲聊中,对话系统的输出不必定是确定句,也能够是问句。程序员
开放域问答系统虽然开放,但它可以解决的问题类型是有限的:
按照问题类型,又可做以下划分:算法
- 事实型问题:WH 问题,例如 when / who / where 等;
- 是非型问题:Is Beijing the capital of China?
- 对比型问题:Which city is larger, Shanghai or Beijing?
- 观点型问题:What is Chinese opinion about Donald Trump?
- 缘由/结果型问题:how / why / what 等。
特定领域的问答系统的构建一般使用知识图谱的方式。知识图谱的基本组成就是三元组,知识图谱的工具体系包括:知识图谱编辑工具、知识图谱查询工具。
知识图谱问答最大的缺点是它须要构建知识图谱,问答系统不具有可迁移性,不一样领域须要整理不一样的知识,这是工做量最大的部分。而且,知识图谱的整理须要专家知识,这项工做不管交给程序员来作仍是交给业务方来作都是一项艰难的工做。知识图谱问答的优势在于它简单直接、可解释性强、能够执行高阶逻辑查询。数据库
基于阅读理解的问答系统必定程度上能够认为是专门为了解决知识图谱问答存在的问题。知识图谱中存储的知识是高度结构化的,这和实际生活并不符合。许多文章很难提炼出知识结构来。基于阅读理解的问答系统知识的存储形式就是非结构化的文本片断。基于阅读理解的问答系统有两类:抽取式和检索式。django
参考资料:https://yq.aliyun.com/articles/609928api
要构建一个自动问答系统,应从哪些方面入手?(来自知乎)
- 机器学习里的分类算法。
- 天然语言处理里的信息检索、信息抽取以及一些基础技术包括句法分析、命名实体识别等等。
- 若是想作的更加智能,还能够应用人工智能的一些技术,好比知识推理等等。

大型QA系统大多数是基于Web信息检索的,各级NLP技术好比句法分析,NER,IR/IE等都会涉及。
还有一种是基于Knowledge Base的, 将天然问句形式化成Query,到知识库里检索答案。网络
若是想本身作一个简单系统的话能够先选择一个特定领域好比医疗QA,到网上抓取数据,用语义网RDF/OWL构建一个知识库,而后用开源NLP包分析问句,转换成查询语句去搜答案,最后返回给用户,在这个基础上本身能够深刻作推理等其余高级功能。架构
开源问答系统(不是智能问答系统)
像经常使用类型的网站(好比博客系统、问答系统、维基系统)都有开源库。框架
- OSQA基于django
- zheye.org “者也”,模仿知乎,基于Ruby Rails
- askbot基于django
- Shapado shapado 是一个用 Ruby 开发的相似 stackoverflow 的问答网站软件,基于 Mongodb 开发。
- 仿百度知道PHP问答系统 Tipask,是PHP Laravel问答系统
- PHP问答系统 Question2Answer
- CNProg 是一个面向中国程序员的开源技术问答社区。 一个介于论坛、博客、维基和Digg之间的社区系统,基于Python和Django开发。 具备透明、开放、全民管理的运做模式,让全部用户可以更加容易地寻求帮助,找到问题答案,解决实际的技术问题。
- Anwsion 是一个相似知乎以问答为基础的彻底开源的社交网络建站程序,基于 PHP+MYSQL 应用架构,它集合了问答,digg,wiki 等多个程序的优势,帮助用户轻松搭建专业的知识 库和在线问答社区。
- LampCMS 是一款相似 Stack Overflow 的服务于开发人员的问答系统(Q&A program), 深度整合了Facebook,Twitter等的APIs
- QuestionAnsweringSystem 基于Java的人机问答系统
- Stacked 是一个用 ASP.NET 实现相似 StackOverFlow 网站功能的开源软件。
- LampCMS 的后台数据库使用的是一款很是有名的开源的 NoSQL 数据库 MongoDB
- OpenEphyra 是一个使用 Java 开发的模块化、可扩展的问答系统、安装简单。
- VIF (virtual discussion forum) 是一个用 Java 开发的论坛软件,主要适合问答型的社区。VIF 提供一个发布的工做流和发帖Review机制以确保发帖人的内容质量。
- Coordino 可以让你建立一个问答系统,使用 PHP 开发。
- Qwench:PHP开发,相似stackoverflow
- WeCenter 是一个相似知乎以问答为基础的彻底开源的社交网络建站程序,基于 PHP + MYSQL 应用架构,它集合了问答,digg,wiki 等多个程序的优势,帮助用户轻松搭建专业的知识 库和在线问答社区
- NGQA 基于Java Web的问答系统。
- tipask:Tipask是一款开放源码的PHP问答系统,基于Laravel框架开发,容易扩展,具备强大的负载能力和稳定性。