- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
智能聊天系统的设计和实现 智能聊天机器人发展情况 智能聊天系统的设计原理 开发方案的尝试与选择 最佳方案设计 方案的实现 总结 智能聊天机器人发展情况 1、发展历史 1950年英国数学家Alan Turing的论文《计算与智能》拉开人工智能的序幕。 1966年麻省理工学院的JosephWeizenbaum教授开发伊莉莎-模仿了精神治疗师的答复。 1972年,精神病医生Kenneth Colby在斯坦福大学人工智能实验室由伊莉莎的基础上开发了帕里(PARRY),帕里模拟了狂想症患者。 2、国外和国内智能聊天机器人 国外: Eliza 神经治疗师 Parry 狂想症患者 爱丽丝(Alice) 和 埃尔博特 国内:腾讯出品 小Q、QQ小妹和刀客机器人 3、发展趋势 (1) 模式匹配 (2)言语理解与推理 智能聊天系统的设计原理 人工神经网络 搜索算法 中文分词算法 机器学习 机器推理 开发方案的尝试与选择 方案一:基于.txt文件的语料库 设计思路:基于模式匹配的原理,预先在Windows下建立 question.txt 和answer.txt文件,问答两句依次对应存储在文本文件。用户输入语句后就去遍历查询question文件,一旦匹配成功,那么就输出answer同样行的回答句。 方案优点:简单,只需要两个txt文件存储数据。 方案缺陷:只能进行完全匹配,随着数据量的增加,海量数据的查询会拖累整个程序的运转。 方案二:利用AIML语料库和RebeccaAIML 软件服务器 设计思路:照搬基于AIML智能聊天机器人的开发方法,建立中文AIML知识库。 方案优点:RebeccaAIML 软件提供了内部实现和一个成熟且开源的AIML知识库,使用方便,安装简单,且可以通过API直接定制自己的人机交互界面。 方案缺陷:RebeccaAIML封装了内部实现,对于开发人员来说就像黑箱。而且编码方式为英文,但是,已经有人利用Python开发出了能够平滑处理中文的模块。 方案三:基于数据库 设计思路:设计数据库基本表,构建机器人聊天所需要的语料库,从而搭建出整个神经网络。编程调用jdbc或者odbc链接到相应的数据库,程序接收用户输入,链接数据库进行搜索,将搜索结果返回给程序输出。 方案优点:充分的利用SQL Server 2000对数据的存储和快速搜索功能,达到即时聊天的基本要求。 方案缺陷:在输出的答句中可能出现与问题完全不相称,对软件系统的流程的控制不够专业。 最佳方案设计 总体规划 对可以开发智能聊天系统的三个方案逐一论证,最后选定基于数据库的语料库(知识库)的方案。对于一个智能聊天系统而言,它是聊天类软件的就必须要求它能像自然人一样通过文本交流,它是智能的就必须要求它能基本正确的回答问题和提问的条件下学习知识,丰富语料库。而且一个友好的用户界面和方便操作程序也必不可少。基于以上的规划和目标,随后将详细介绍其设计。通体规划如左图所示。 互动界面——聊天 互动界面——学习 聊天和学习 1、聊天 (1)用户输入文本数据; (2)点击“确认发送”按钮,内置程序开始判断所获取的是否为NULL,是则返回(1),并在用户和机器人聊天内容文本显示区输出“对话不能为空”字样,否则继续; (3)对所获得文本进行处理(字符串转成字符串数组),并与数据库内的字表匹配处理,达到切分语句目的。如果匹配成功,则返回临时的切分字集的映射表对应的句子,否则返回并输出“我不明白”; (4)本次对话结束,返(1)继续。 2、学习 (1)用户进入学习模式; (2)① 用户在问句输入框内输入,并按如下要求—写出提问句:请分词,并用空格隔开! ② 请输入所教问句相对应答句;判断是否符合学习要求,否则结束本次学习并丢弃学习数据,是则进行下一步; (3)将获得的学习数据分别存入对应的字表和句子表中; (4)本次学习结束,返回(1)继续。 分词 关于分词的已在智能聊天系统原理的中文分词算法有所介绍,分词算法的选择还与数据库的设计有关系。选择正向最大匹配方法来实现分词。其分词的步骤如下: (1)在聊天环境下; (2)用户输入语句,获取文本,判断是否是NULL,是则在在相应区域输出空字符串,否则继续下一步; (3)从左边开始已选定的阈值在数据库中构建的神经网络中进行匹配; (4)匹配成功则记录该条匹配,失败则阈值减一继续进行匹配; (5)判断句子是否结束
文档评论(0)