要构建一个自动问答系统,应从哪些方面入手?(来自知乎)
- 机器学习里的分类算法。
- 自然语言处理里的信息检索、信息抽取以及一些基础技术包括句法分析、命名实体识别等等。
- 如果想做的更加智能,还可以应用人工智能的一些技术,比如知识推理等等。
大型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框架开发,容易扩展,具有强大的负载能力和稳定性。