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