智能聊天系统的设计和实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3)对所获得文本进行处理
(字符串转成字符串数组),
并与数据库内的字表匹配处理,
达到切分语句目的。如果匹配
找不到比配的
成功,则返回临时的切分字集
的映射表对应的句子,否则返 输出“我不明白”
回并输出“我不明白”; (4)
本次对话结束,返(1)继续。
分词 分词程序对用户问句进行切分
数据库基 本字表
与基本字表匹配获得切分结果
2、国外和国内智能聊天机器人
国外: Eliza 神经治疗师 Parry 狂想症患者 爱丽丝(Alice) 和 埃尔博特
国内:腾讯出品 小Q、QQ小妹和刀客机器人
3、发展趋势
(1) 模式匹配 (2)言语理解与推理
智能聊天系统的设计原理
• 人工神经网络 • 搜索算法 • 中文分词算法 • 机器学习 • 机器推理
开发方案的尝试与选择
• 方案一:基于.txt文件的语料库
设计思路:基于模式匹配的原理, 预先在Windows下建立 question.txt 和answer.txt文件,问 答两句依次对应存储在文本文件。 用户输入语句后就去遍历查询 question文件,一旦匹配成功,那 么就输出answer同样行的回答句。
人机交互界面 1、提供用户输入 2、robot的输出
方案缺陷:在输出的答句中可能出 现与问题完全不相称,对软件系统 的流程的控制不够专业。
核心程序 JDBC
SQL Server 2000 服务器 数据表
最佳方案设计
• 总体规划
对可以开发智能聊天系统的三个方案 逐一论证,最后选定基于数据库的 语料库(知识库)的方案。对于一 个智能聊天系统而言,它是聊天类 软件的就必须要求它能像自然人一 样通过文本交流,它是智能的就必 须要求它能基本正确的回答问题和 提问的条件下学习知识,丰富语料 库。而且一个友好的用户界面和方 便操作程序也必不可少。基于以上 的规划和目标,随后将详细介绍其
结束学习
Βιβλιοθήκη Baidu
• 分词
关于分词的已在智能聊天系统原理 的中文分词算法有所介绍,分词算 法的选择还与数据库的设计有关系。 选择正向最大匹配方法来实现分词。 其分词的步骤如下:
(1)在聊天环境下;
(2)用户输入语句,获取文本,判 断是否是NULL,是则在在相应区 域输出空字符串,否则继续下一步;
(3)从左边开始已选定的阈值在数 查找失败阈值减一 据库中构建的神经网络中进行匹配;
RebeccaAIML 软件
开发API
AIML语料库
用户界面
• 方案三:基于数据库
设计思路:设计数据库基本表,构 建机器人聊天所需要的语料库,从 而搭建出整个神经网络。编程调用 jdbc或者odbc链接到相应的数据 库,程序接收用户输入,链接数据 库进行搜索,将搜索结果返回给程 序输出。
方案优点:充分的利用SQL Server 2000对数据的存储和快速搜索功能, 达到即时聊天的基本要求。
设计。通体规划如左图所示。
基于数据库的语料 库
智能聊天系统
分词程序 搜索程序 学习程序 数据库连接程序
用户界面: 聊天、学习
互动界面——聊天
窗体的名称 标签申明一
此处为用户和机器人聊天内 容显示
界面美化区域
标签申明二
用户输入区
确认按钮
系统评价
好
差
一般
窗体标题
以下区域将显示你和robot的对话
你将在以下区域输入你的问句 输入文本
(4)匹配成功则记录该条匹配,失 败则阈值减一继续进行匹配;
(5)判断句子是否结束,否则跳过 成功的词,阈值恢复初始值,是则 结束本次分词;
设计思路:照搬基于AIML智能聊天 机器人的开发方法,建立中文
AIML知识库。
方案优点:RebeccaAIML 软件提供 了内部实现和一个成熟且开源的 AIML知识库,使用方便,安装简 单,且可以通过API直接定制自己 的人机交互界面。
方案缺陷:RebeccaAIML封装了内 部实现,对于开发人员来说就像黑 箱。而且编码方式为英文,但是, 已经有人利用Python开发出了能 够平滑处理中文的模块。
对应的答句输入
② 请输入所教问句相对应答 句;判断是否符合学习要求, 否则结束本次学习并丢弃学习 数据,是则进行下一步;
有无数据输入 有数据获得且符合教学规范
(3)将获得的学习数据分别存入
对应的字表和句子表中;
为Null就结束
(4)本次学习结束,返回(1)
继续。
数据库的词和答 句表
有数据输入但不符合规范
双字
三字
从词到句的映射表中找出答句
数据库中的 答句表
答句的概率
只找到一个对应的 答句
四字及多字不做展示
找到多个匹配的相同概率的随 机选一句
输出后结束对话
用户进入学习模式
2、学习
(1)用户进入学习模式;
(2)① 用户在问句输入框内输 入,并按如下要求—写出提问 句:请分词,并用空格隔开!
将问句的词之间用 空格隔开
系统评价
好
差
发送 一般
互动界面——学习
标签申明一
学习界面
问句输入 标签申明二 答句输入
界面美化区
提交按钮
窗体标题
请分词,并用空格隔开! 输入文本
输入答句 输入文本
文本
用户输入
• 聊天和学习
1、聊天
(1)用户输入文本数据;
(2)点击“确认发送”按钮, 内置程序开始判断所获取的是 否为NULL,是则返回(1), 并在用户和机器人聊天内容文 本显示区输出“对话不能为空” 单字 字样,否则继续;
机器人输出 用户与机器人互动界面
用户输入
方案优点:简单,只需要两个txt文 件存储数据。
方案缺陷:只能进行完全匹配,随 着数据量的增加,海量数据的查询 会拖累整个程序的运转。
Answer.txt
遍历/匹配
Question.tx t
• 方案二:利用AIML语料库 和RebeccaAIML 软件服 务器
智能聊天系统的设计和实现
作者:*** 指导老师:***
******
智能聊天系统的设计和实现
• 智能聊天机器人发展情况 • 智能聊天系统的设计原理 • 开发方案的尝试与选择 • 最佳方案设计 • 方案的实现 • 总结
智能聊天机器人发展情况
1、发展历史
1950年英国数学家Alan Turing的论文《计算与智能》拉开人工智能 的序幕。 1966年麻省理工学院的JosephWeizenbaum教授开发伊莉莎-模仿了 精神治疗师的答复。 1972年,精神病医生Kenneth Colby在斯坦福大学人工智能实验室由 伊莉莎的基础上开发了帕里(PARRY),帕里模拟了狂想症患者。