自动问答简介
自动聊天机器人,也称为自动问答系统,由于所使用的场景不同,叫法也不一样。自动问答(Question Answering,QA)是指利用计算机自动回答用户所提出的问题以满足用户知识需求的任务。不同于现有搜索引擎,问答系统是信息服务的一种高级形式,系统返回用户的不再是基于关键词匹配排序的文档列表,而是精准的自然语言答案。近年来,随着人工智能的飞速发展,自动问答已经成为倍受关注且发展前景广泛的研究方向。
![v2-825997cb3b5c8a587066b2430a7b9a77_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/7e978a9ac9b73e88190ded7b7f3111ab.jpeg)
自动问答主要研究的内容和关键科学问题如下:
- 问句理解:给定用户问题,自动问答首先需要理解用户所提问题。用户问句的语义理解包含词法分析、句法分析、语义分析等多项关键技术,需要从文本的多个维度理解其中包含的语义内容。
- 文本信息抽取:自动问答系统需要在已有语料库、知识库或问答库中匹配相关的信息,并抽取出相应的答案。
- 知识推理:自动问答中,由于语料库、知识库和问答库本身的覆盖度有限,并不是所有问题都能直接找到答案。这就需要在已有的知识体系中,通过知识推理的手段获取这些隐含的答案。
纵观自动问答研究的发展态势和技术现状,以下研究方向或问题将可能成为未来整个领域和行业重点关注的方向:基于深度学习的端到端自动问答,多领域、多语言的自动问答,面向问答的深度推理,篇章阅读理解、对话等。
基于 Chatterbot 制作中文聊天机器人
ChatterBot 是一个构建在 Python 上,基于一系列规则和机器学习算法完成的聊天机器人,具有结构清晰,可扩展性好,简单实用的特点。
Chatterbot 安装有两种方式:
- 使用
pip install chatterbot
安装; - 直接在 Github Chatterbot 下载这个项目,通过
python setup.py install
安装,其中 examples 文件夹中包含几个例子,可以根据例子加深自己的理解。
安装过程如果出现错误,主要是需要安装这些依赖库:
chatterbot-corpus>=1.1,<1.2
mathparse>=0.1,<0.2
nltk>=3.2,<4.0
pymongo>=3.3,<4.0
python-dateutil>=2.6,<2.7
python-twitter>=3.0,<4.0
sqlalchemy>=1.2,<1.3
pint>=0.8.1
1. 手动设置一点语料,体验基于规则的聊天机器人回答。
from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
Chinese_bot = ChatBot("Training demo") #创建一个新的实例
Chinese_bot.set_trainer(ListTrainer)
Chinese_bot.train([
'亲,在吗?',
'亲,在呢',
'这件衣服的号码大小标准吗?',
'亲,标准呢,请放心下单吧。',
'有红色的吗?',
'有呢,目前有白红蓝3种色调。',
])
下面进行测试:
# 测试一下
question = '亲,在吗'
print(question)
response = Chinese_bot.get_response(question)
print(response)
print("\n")
question = '有红色的吗?'
print(question)
response = Chinese_bot.get_response(question)
print(response)
从得到的结果可以看出,这应该完全是基于规则的判断:
亲,在吗
亲,在呢
有红色的吗?