问答系统

对话系统包括闲聊、问答、任务型对话三大部分。
问答系统特指那些一问一答形式的聊天。
任务型对话指用户希望通过聊天的方式达成某种目的。
闲聊中,对话系统的输出不一定是肯定句,也可以是问句。

开放域问答系统虽然开放,但它能够解决的问题类型是有限的:
按照问题类型,又可作如下划分:

  • 事实型问题: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 等。

特定领域的问答系统的构建通常使用知识图谱的方式。知识图谱的基本组成就是三元组,知识图谱的工具体系包括:知识图谱编辑工具、知识图谱查询工具。
知识图谱问答最大的缺点是它需要构建知识图谱,问答系统不具备可迁移性,不同领域需要整理不同的知识,这是工作量最大的部分。并且,知识图谱的整理需要专家知识,这项工作无论交给程序员来做还是交给业务方来做都是一项艰难的工作。知识图谱问答的优点在于它简单直接、可解释性强、可以执行高阶逻辑查询。

基于阅读理解的问答系统一定程度上可以认为是专门为了解决知识图谱问答存在的问题。知识图谱中存储的知识是高度结构化的,这和实际生活并不符合。许多文章很难提炼出知识结构来。基于阅读理解的问答系统知识的存储形式就是非结构化的文本片段。基于阅读理解的问答系统有两类:抽取式和检索式。

参考资料:https://yq.aliyun.com/articles/609928

要构建一个自动问答系统,应从哪些方面入手?(来自知乎)

  • 机器学习里的分类算法。
  • 自然语言处理里的信息检索、信息抽取以及一些基础技术包括句法分析、命名实体识别等等。
  • 如果想做的更加智能,还可以应用人工智能的一些技术,比如知识推理等等。

大型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框架开发,容易扩展,具有强大的负载能力和稳定性。
原文地址:https://www.cnblogs.com/weiyinfu/p/10839297.html