欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    会话机器人原型系统的设计与实现机械制造及其自动化专业.docx

    • 资源ID:7002198       资源大小:105.30KB        全文页数:25页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    会话机器人原型系统的设计与实现机械制造及其自动化专业.docx

    摘要2第1章前言5第1.1节研究的背景与意义5第1.2节国内外研究现状分析5第1.3节主要研究内容和组织结构6第2章系统相关技术概念6第2.1节AIML知识库62.1.1IJAlML素7第2.1.2节其他标记元素7第2.2节AIML知识树9第2.3节自然语言处理与AlML解析算法11第2.4节AIML与S-R理论13第2.5节本章小结13第3章系统的设计与实现14第3.1节AIML的开发环境14第3.2节系统需求分析与总体设计14第3.3节系统服务器端的设计与实现15第3.3.1节AlML知识库的建立与改进15第3.3.2节AlML解析器的设计15第3.3.3节接收分析器的实现15第3.3.4节记忆功能的实现20第3.4节系统客户端的设计与实现22第3.5节本章小结23第4章总结与展望23第4.1节论文总结23第4.2节研究展望24参考文献24致谢错误!未定义书签。摘要科学技术的发展改变着人们的生活方式。在如今信息化和科技化的时代背景下,人们对科技产品的需求不断加深。因可以大幅度减少人工客服的工作量、使人们的工作更高效化以及丰富人们的娱乐方式,目前会话机器人(ChatboD已经成为人们热议的话题之一。在过去的十多年里,国内外对Chatbot已有大量的研究,并且有了很多成熟的产品。本文会话机器人系统的设计基于人工智能标记语言(AlML语言),文中首先介绍了设计系统所需的各个技术。首先介绍了AlML核心标签与AIML知识库,AlML推理技术基于文本匹配的回溯推理算法,并由此算法建立的多级索引结构知识树。然后介绍了自然语言处理(NLP)、人工智能、刺激反应理论(S-R理论)等概念,详细阐述了AlML解析过程,这为接下来的设计与实现做了准备。接下来对系统需求分析,得出需要实现问答对话和自主创建对话两个功能。最后设计系统总体框架,并画出系统设计的流程图。文中展现了系统设计的流程和核心代码。为实现会话机器人这一系统,详细介绍了服务器端和客户端的设计。在服务器端,需要建立AIML知识库、解析器和分析器,同时,我还增加了brainFile文件用来实现记忆知识库功能。在建立AIML知识库时,我对已有知识库进行分析,通过句式变换降低了系统复杂度。在客户端,文中展示了在交互环境下的运行程序和结果,系统根据用户提问的内容不同而匹配不同的结果,结果表明各个模块均达到预期。最后,对本文进行了总结,并针对系统尚不支持中文的问题提出了改进的策略。关键词:AIML;会话机器人;人工智能;自然语言处理AbstractThedevelopmentofscienceandtechnologyhaschangedthewaythatpeoplelive.Intheinformationage,people'sdemandfortechnologyproductscontinuestodeepen.ThecurrentChatbothasbecomeoneofthehottopics,becauseitcangreatlyreducetheworkloadoftheartificialcustomerservice,makepeople'sworkmoreefficientandenrichpeople'sentertainmentmethodsInthepasttenyears,Chatbothasmadealotofresearchathomeandabroad,andtherearemanymatureproducts.ThedesignoftheconversationalrobotsysteminthispaperisbasedonArtificialIntelligenceMarkupLanguage(AIML).Inthispaper,thevarioustechniquesrequiredfordesigningthesystemareintroduced.Firstly,!introducetheAIMLcoretagsandAlMLknowledgebase,AIMLreasoningtechnology-backtracking-reasoningalgorithmbasedontextmatching,andthisalgorithmestablishesamulti-levelindexstructure-knowledgetree.Then1introducetheconceptofnaturallanguageprocessing(NLP),artificialintelligence,stimuli-responsetheory(S-Rtheory),andelaboratetheprocessofAIMLanalysis,whichpreparedforthenextdesignandimplementation.Thenextanalysisofthesystemrequirementsledtotheneedtoimplementbothhuman-machinedialogueandcreatingconversationsautonomously.Finally,!designtheoverallframeworkofthesystemanddrawtheflowchartofthesystemdesign.Thetextshowsthesystemdesignprocessandcorecode.Inordertorealizethesystemofsessionrobot,thedesignofserverandclientisintroducedindetail.Ontheserverside,anAIMLrepository,parser,andparserneedtobesetup.Atthesametime,IalsoaddedabrainFilefiletoimplementthememoryfunction.WhenbuildingtheAlMLknowledgebase,Ianalyzetheexistingknowledgebaseandreducethecomplexityofthesystemthroughsentencetransformation.Ontheclientside,thearticleshowstherunningprogramsandresultsintheinteractiveenvironment.Thesystemmatchesdifferentresultsaccordingtothecontentoftheuser,squestion.Theresultsshowthatallthemoduleshavereachedexpectations.Finally,thispapersummarizesthepaperandproposesanimprovedstrategyfortheproblemthatthesystemdoesnotsupportChinese.Keywords:AIML;ChatbotjArtificalIntelligence;NLP第1章前言第L1节研究的背景与意义就像MaCarthy博士所说“我们不仅仅是在使用科学技术,而是生活在其中3小随着科学技术的进步和移动互联网的发展,计算机已经成为人们日常生活中不可或缺的组成部分。人们需要计算机提高效率,人机交互便成了打开这一渠道的主要方式,因为使用自然语言是人们网上交流和获取信息的基本媒介。因此试想一下,如果人机之间可以直接交流的话,人们的生活也就会变得更加高效便捷。现如今,各大互联网公司推出了自己的智能会话机器人,来替代人工面对的庞大的客服需求,可以极大的减少人工成本。这使得会话机器人成为人工智能领域热门方向之一,近年来NLP的高速发展,会话机器人(Chatbot)已经有很多成熟的产品,比如GOOgle的AliCe,在接收语音提示和搜索方面作用明显,苹果的Siri,可以给Siri发语音聊天、定时指令等。在国内,会话机器人也是有广泛的应用,比如淘宝的客服,科大讯飞的语音助手等都能提供聊天服务。会话机器人是借助自然语言与人进行智能对话的系统,目前比较主流的是基于人工智能的会话机器人21。其主要是通过人工录入一些模板,当有用户提问时,会从这些模板中找出对应的匹配模板返回给用户。但这种会话机器人又有自我学习的能力,随着聊天次数的增多,答案也会越来越准确。第1.2节国内外研究现状分析相比于国内,国外在会话机器人方面研究较早且更为成熟。EUZA是LWeizenbaum设计并发布的ChatbO3其原理是仿照罗杰治疗室,根据用户输入的关键词搜索数据库文件中的知识,缺点是对优先级低的关键词难以匹配3oTALKBOT是由可沃特在1998年用JavaScript和PERL编写的,是在线会话机器人。ALICE是基于AIML语言设计的问答系统,是由S.Wallace博士等人在CMU开发,曾三夺Loebner奖。ALlCE支持模式匹配、上下文匹配、条件分支等,是一个类库丰富的对话机器人4。JABBERWACKY用NLP处理人机对话的上下文内容,并以此为依据给出用户输入对应的系统回答。目前,JABBERWACKY引入了语音识另U技术,能够自由实现人机对话。设计师R.Carpenter设计并实现了一款能够不断在人机互动中学习的智能机器人5。近年来,国内在会话机器人方面也有了巨大的突破,如2010年支付宝推出智能服务系统“智能小宝”,其高效的处理与服务能力减少了支付宝人工客服量的二分之一;清华大学推出图书馆智能系统”小图,可以快速回答学生问题,深受学生好评。目前ChatbOt常常被设计在虚拟游戏、CAD或者辅助系统中,根据不同的用途开发不同的Chatbot,是这几年人们将会话机器人系统应用到生活中的主要方式。第1.3节主要研究内容和组织结构本文主要围绕会话机器人系统设计所需的技术概念以及设计过程展开描述,从介绍相关背景开始,到设计过程所需的相关知识和技术,以下是各章节具体内容:第一章:主要介绍系统开发的研究背景和意义,阐述时下研究Chatbot的重要性,然后分析国内外研究现状,指出Chatbot系统开发的历史和技术应用。第二章:主要介绍设计Chatbot所需的各种技术:AIML核心标签与知识库、AIML知识树、NLP与推理过程、S-R理论等。第三章:这一章介绍了系统的需求分析和总体设计,从开发环境开始,陆续展示了系统开发过程中的模块设计和核心代码,包括知识库的建立与改进、解释器与分析器的设计、记忆功能的实现、交互环境下的展示等。第四章:总结全文工作,同时,指出系统设计中的不足并对需要完善的地方进行了展望。第2章系统相关技术概念第2.1节AlML知识库AIML(ArtificialIntelligenceMarkupLanguage),全名为人工智能标记语言4,7-8,是一种创建自然语言软件代理的XML语言,它采用XML的结构来存储数据,因其具有良好的兼容性和可扩展性被广泛应用于智能对话聊天系统中。AIML是描述一种数据对象以及处理这种对象的方式,是整个对话聊天系统的知识库。目前AlML已经有了Pythcm,Ruby,Java,C等语言的版本。第2.1.1节AIML核心元素AlML定义了一套具有特定含义的标签,使其具有强大的对话功能,而用户也可以根据自己的需要定义新的标签元素,这突出在AlML的扩展性。在AlML标记语言中,以<aiml>作为程序的开始和结尾元素,<aiml>也是AlML的根元素。Category是AlML库中的基本单位,用来匹配一个类别或者目录,每个CategOry元素都至少包含两个子元素:PattenI和template元素。Pattem元素用来匹配用户的输入,template元素展示机器人对用户问题的应答。在该例中,如果用户输入“BY”,则机器回复“Doyoumean“bye”?”。<?xmlversion="1.0"encoding="ISO-8859-1”?><aimlversion=1.0"><category><pattem>BY<pattern><template>Doyoumeanubyen?<template><category><aiml>第2.1.2节其他标记元素AIML除category之外还有很多基本的标记元素比如语境标记元素Vthat>、随机选择标记元素random、判断标记元素condition、话题标记元素<topic>、记忆元素Vthink>、通配标记元素VStar>、递归调用元素<sari>等。(1) random是随机元素,指从列表里随机取一个,和<li>一起使用,其中<li><li>构成一个列表。若Vliname="rule”>表明需要自定义规则推理,若<liname="SParq>表明需要SParql查询语句。<category><pattern>BYE<pattern><template><random><li>Seeyoulater<getname=name,7>.<li><li>Goodbye<getname=name'7>.<li><li>Untilnexttime<getname=',name,7>.<li><li>Thanksforchatting,<getname="name,7>.<li><li>Seeyoulater<getname=name'7>.<li><random><template><category>(2) COndition元素有三种表示方式:<conditionname=namevalue="value>HELLO<condition><conditionname=,'namecontains=value">HELLO<condition><conditionname=,nameexists=value">HELLO<condition>第一种方式表示name变量的值如果和value相等,那么机器人回复的内容包括”HELLO”;第二种方式表示name变量的值如果里面包含VaIUe这个字符串,那么机器人回复的内容包括“HELLO”;第三种方式表示name变量的值如果存在value的值,那么机器人回复的内容包括“HELLO”。(3) srai元素支持多对一的回答,表示vsrai>里面的话会被当作是用户输入,然后重新查找匹配模式,直到找到非vsrai>定义的回复,如下例。<category><pattern>CYA<pattern><template><srai>BYE<srai><template><category>(4) gender标签表示性别替换。例如:<gender>Shelikeplayingfootball.</gender>经过AIML解析器后将转换成Helikeplayingfootballo(5) that元素使得机器人能够具有思考功能的作用,它表示先前机器人说的话。在下例中,如果机器人先问用户“DOESBONJOURMEANHELLOORGOODBYEm,用户回答“HELLO",那么接下来机器人问“Bonjour,<getname="name”/>!”<category><pattem>HELLO<pattern><that>DOESBONJOURMEANHELLOORGOODBYE<that><template>Bonjour,<getname=name'7>!<template><category>(6) topic元素是用来设置主题。(7) Star元素是绑定"”通配符的内容,如下例,若输入“TELLMEABOUTJESUSABC”,则机器人回复“WHOISJESUSABC,0<category><pattem>TELLMEABOUTJESUS*<pattern><template><srai>WHOISJESUS<star><srai><template><category>(8)learn元素用来动态调用外部AIML文件,如Vlearnfilename=,std-religion.aim,>。更多核心元素的使用详见http:/www.Alicebot.org/第2.2节AlML知识树使用会话机器人的核心问题在于推理技术,目前常见的有基于语义分析、文本匹配、数据挖掘等方法。对于小规模的知识库,开发人员一般采用文本匹配的方法。常见的基于文本匹配的推理技术有正则表达式、反向索引、AlML回溯推理。(1)正则表达式,这是最常见的文本匹配方式,一般采用非确定性有穷自动机(NFA)算法。NFA算法是带回溯的深度优先搜索,它是基于表达式的(Regex-Directed),会依次处理各子表达式,在遇到两个可能匹配时择其一,另一个留备回溯时遍历。NFA算法的回溯过程不断地吞吐单词,因此耗时很长,同时,因其总是贪婪地访问第一个匹配项,有些“更长”的匹配项访问不到,使得回复的正确度降低。(2)反向索引,也称倒排索引,是建立数据结构存储单词或词组以及它在多个文档中位置的映射,通过搜索词可以找到对应的文档。如果一个词组对应多个文档中的索引,则通过组合和Pagerank算法提高回复的正确率。但该技术不支持带有通配符(如I','?','*')的模糊匹配,同时会返回词组在文档中出现的频率等无关信息。(3)AlML回溯推理。鉴于(1)(2)中的不足,本文采用的技术如下:首先在知识库预处理时,建立多级索引结构,如“喜欢漫画海贼王”,采用三级索引结构,第一级存储“喜欢”,第二级存储“漫画”,第三级“海贼王二上级索引会指向下级索引,构成树状结构(见图1),采用这种模型可以同时达到(1)和(2)的优点:采用指针的指向可以实现回溯的功能,支持带有通配符的模糊匹配;采用多级索引可以加快检索的速度。在AIML回溯推理技术中我们采用的树称为AIML知识树,即所有的知识库数据对象(即AIML文件)将以多叉树的形式加载到内存中,如下图所示,根节点称为Graphmaster(简记为GM),树的每个节点(NOdemaPPer)代表一个通配符或词组,每条路径表示一种匹配模式(pattern),每个叶子节点表示一个模板(template),当匹配成功后,返回该叶子节点的模板信息9。在AIML系统知识库中存储了40000多条分类,但其中很多模式的首个单词或词组相同,如果采用这种知识树,则指向根节点GM的Nodemapper也只有2000多个而已,这大大减少了内存的开销。图1AIML知识树结构示意图第2.3节自然语言处理与AlML解析算法自然语言处理(NLP)10是实现人与计算机之间用自然语言沟通,由数学、认知科学、语言学等多学科交叉的技术,目前广泛应用在机器翻译、语音合成、会话机器人等领域。NLP主要包括词法分析、句法分析和语义分析三部分。词法分析即分词,英文中词与词之间有空格隔开,如ChineSeIangUage;句法分析是分析过程中关键的一步,是对句子的结构、语法进行分析,如辨别疑问句等,例如ItiSabOok,进行句法分析后,得出“It”是主语,“is”是谓语,“abook”是宾语;而语义分析是NLP的最终目的,它注重整个段落的上下文分析,具体来说,对于一个句子,理解单词在该句子中的含义,同时以谓语动词为核心,理解各成分的关系。AiML解析不采用复杂的自然语言处理。当机器人接收到用户的问题时,要先用分词器对问题进行分词,同时分析是否有需要替换的词,如“How's”替换为“Howis”,完成分词后对语句进行推理。推理过程是与AIML知识树进行匹配,整个推理过程为:步骤1:将句子的第一个单词与知识树根节点比较,进行问句规范化后,转入步骤2;步骤2:节点中是否包括“”的通配符,如果存在,则将节点以外的部分在以当前节点为根节点的子树中继续搜寻,否则,转入步骤3;步骤3:节点中是否包括“”的通配符,如果存在,则将节点以外的部分在以当前节点为根节点的子树中继续搜寻,否则,转入步骤4;步骤4:节点中是否包括“*”的通配符,如果存在,则将节点以外的部分在以当前节点为根节点的子树中继续搜寻,否则,转入步骤5;步骤5:若步骤2-4匹配失败,则回溯到父节点,并将节点放回句子中,再次匹配。这里举一个例子说明它的推理过程,假设知识库中有如下几个分类:<category><pattern>_loveyourfather.<pattem><template>YES,Ilovehimverymuch.<template><category><category><pattem>Doyouloveyourmother?<pattem><template>YES,Iloveherverymuch.<template><category><category><pattem>Doyoulove*boy7<paltem><template>YES,thatboyisverysmart.<template><category>对这些category,其知识树简图如下所示。假设用户输入“Doyouloveyourmother?,则推理的过程为:匹配串为"Doyouloveyourmother?",将首个单词“do”与第一级节点(I)或(5)匹配,DO先匹配节点(1),you匹配下一节点(2)失败,因为是问句进行回退,you匹配节点(1),成功,Iove匹配下一节点(2),成功,your匹配下一节点(3),成功,mother匹配下一节点(4),节点(4)非“*”、"mother",失败,回溯到根节点;D。匹配节点(5),成功,you匹配下一节点(6),成功,1。Ve匹配下一节点(7),成功,your匹配时有两种选择,先匹配优先级高的,mother匹配下一节点(9),失败,进行回溯;your匹配节点(10),成功,mother匹配(11),成功。整个匹配完成,最后返回对应的结果template,给用户。图2知识树简图第2.4节AIML与S-R理论人工智能旨在通过了解智能的本质并以此生产出与人类智能相似作用的智能机器,目前已广泛应用在图像识别、语音翻译、NLP等领域。人工智能的主要学派有行为主义、符号主义和联结主义三大学派,其中行为主义通常认为源于控制论。行为主义理论又称刺激反应(S-R)理论,理论认为对环境和对行为的刺激,任何行为都可以被改变;同时,不断对正确反应的强化和对错误反应的消退,可以增强学习效果。设计AIML主体思想正是S-R理论,通过对用户的输入语句分析匹配(即S理论),给出特定的答案(即R理论),从而使得用户问题得到表示和处理。第2.5节本章小结本章节介绍了设计会话机器人系统所需的相关技术,这为接下来系统的设计与实现做了理论铺垫。会话机器人是当下热门的技术应用,它的实现基于AIML语言。AlML语言的核心在于定义了一套具有特殊含义的标签,文中介绍了各类标签及其作用。用AlML语言编写的文件组称为AIML知识库。在启动机器人时需要调用知识库,此时会将知识库以多叉树形式加载到内存中,这里介绍了推理技术和知识树的相关概念。AIML解析是系统运行的重要环节,它是自然语言处理的一个应用,文中对解析推理的过程进行了详细的阐述。最后,本章节介绍了设计AIML的主体思想是S-R理论。第3章系统的设计与实现第3.1节AIML的开发环境本系统在64位WindoWS操作系统下开发,支持AIML的语言有多种,如Python,Ruby,Java,C等版本,这里选择使用Python3.7,在终端安装AlML的方式为:pipinstallaiml图3AIML安装示意图第3.2节系统需求分析与总体设计现实中很多人已经厌烦了人与人之间网上通信,人们不愿泄露自己的真实身份和个人信息,但在与“聪明”的机器人聊天时,人们便会放松下来。会话机器人(ChatbOt)不会将人们信息外传,包括姓名、年龄、工作信息等,所以ChatbOt能够实现与用户的日常对话。参考苹果Siri的设计需求,在本文中,系统的设计应具有如下功能:(1) 对用户的问题做出响应;(2) 如果当前没有会话,则机器人自主创建会话;为了使用户利用本系统与机器人随意交流,根据需求,Chatbot整体设计流程如下几步:步骤一:初始化,即将AlML文件导入到计算机内存中;步骤二:处理用户输入,对用户的输入分析是否为问句,并做提取关键词、去噪音等步骤;步骤三:问题查询推理,根据上述推理过程做出推理,对问题进行匹配;步骤四:模板处理,对步骤三进行完善。具体流程图如下:图4系统设计流程图第3.3节系统服务器端的设计与实现第3.3.1节AlML知识库的建立与改进AlML知识库是人机对话系统的核心部分,知识库的建立是复杂、工程量巨大的,因此往往调用系统自带知识库。如果系统自带知识库内容不足,也可以访问网络数据库,比如图灵知识库。Python中安装AIML库时会自动安装自带的知识库,在这里,如果我们做一些句式变换,可以使系统的时间复杂度和空间复杂度变小。假设知识库中存在如下几个分类:<pattern>WhereisBeijing?<pattem><pattem>HowisBeijing7<pattem><pattern>WhereisHongKong7<pattem><pattern>HowisHongKong?</pattem>在知识库当中,这是四个不同的分类,然而我们也可以考虑将问题变为如下:<category><pattem>Whereis*?<pattern><template><think><setname=,search,>location<set><think><sari><star><sari><template><category><category><pattem>Howis*?<pattem><template><think><setnarne=,search,>describe<set><think><sari><star><sari><template><category><category><pattern>HongKong<pattern><template><condilion><liname=''search''value='Tocation''>HKisinthesouthofChina.<li><liname=''search''value=,describe,>HK.isabeautifulcity.<li><condition><template><category>我们可以将四个分类分成问句规则和知识体。具体来说,假如用户输入“WhereisHongKong?”,系统首先匹配"Whereis*?”成功,推理到<think>时,此时设置了name为SearCh、值为IOCatiOn的变量,再以*对应的HongKong为输入访问<pattern>>为HongKong的模板,在vli>条目中匹配name为search>值为location对应的回复。通过这种方式,我们就可以实现问句与知识体分离,假如再添加"ShangHai”的两个分类,则仅需要添加''ShangHaF的知识体便可,无需重复问法。假设原本有n种问句规则,m个相关知识体,系统存储的知识体数目将从m*n缩减为m+n,这将大幅度减少系统的时间复杂度和空间复杂度。我们用此方法对系统自带知识库进行改进,在调用知识库时,首先需要声明aiml版本与编码格式,具体的调用方式是,如果用户输入LOADAlMLB,则机器人学习<leam><learn>L间的文件。示例代码如下:al.l.=aiXn用>匹加"calag明7-itt-即Sl声t是go""pl.teer先ar下e<<<三esta以catTA,本>-一版一程Lml1过YLa.Tx11三hlP配果n>em户户AD<aiml>1.式In格Od码nc扁输输入入B来ai肛用个AI>一仙Pa应文LOG响ml>IMLer式Att摸<learn>testchat,aiml<learn><在这下面能添加更多的aiml文件><learn>.aimlstd-65percent.aijnl<learn><learn>.aimlstd-dictionary.aiml<learn><learn>.aimlstd-geography.aiml<learn><learn>.ainlstd-inventions,aiml<learn><learn>.aimlstd-personality.aiml<learn><learn>./aiml/std-robot,ail<learn><learn>.aimlstd-suffixes,aij11l<learn><learn>./aiml/std-atomic,aiml<learn><learn>./ainlstd-disconnect.ai»l</learn><learn>.aij11lstd-german.aiml<learn><learn>.aij11lstd-knowledge.aiml<learn><learn>./aiml/Std-PiCkUpaiml<learn><learn>.aimlstd-sales.aiml<learn><learn>.aimlstd-that.aiml<learn><learn>.aimlstd-botmaster.aiml<learn><learn>.aimlstd-dont.aiml<learn><learn>.aij11lstd-gossip.aiml<learn><learn>.ainlstd-lizards.ail<learn><learn>.ainlstd-politics.aij11l<learn><learn>.aimlstd-sextalk.aiml<learn><learn>.aimlstd-turing.aiml<learn><learn>./aiwl/std-brain.ail<learn><learn>.aimlstd-errors.aiml<learn><learn>.aimlstd-hello.aiml<learn><learn>.ailstd-login.aiml<learn><learn>.aimlstd-profile.aiml<learn><learn>.aimlstd-sports.ail<learn><learn>.ainlstd-yesno.aiml<learn><learn>./aiwl/std-connect.aiml<learn><learn>./ainlstd-gender.aiml<learn><learn>./aiml/std-inactivity,aiml<learn><learn>.aimlstd-numbers.aiml<learn><learn>.aimlstd-religion.aij11l<learn><learn>.aimlstd-srai.ai»l</learn><template><category>图5AIML知识库调用示例代码这里的std-*.aiml格式文件为改进后的系统知识库文件,通过learn标签可以访问这些文件。为了方便系统的维护,一般根据不同的场景增加不同的aiml文件,如科普知识文件std-knowledge.aiml、地理知识文件std-geography.aiml宗教知识文件std-religion.aiml等。如果新增aiml文件到知识库中,仅需将文件放到''Jaiml尸目录下。系统初始化时会基于这些文件构建多叉树,当收到用户问题时会在多叉树中进行模式匹配。第3.3.2节AlML解析器的设计AIML解析器是为了解析AIML知识库,目前ChatbOl的解析器已有多个成熟版本,比如用Ruby编写的PROGRAMD,用Java编写的CHATTERBEAN,用PASCAL编写的PROGRAME等。这里采用PyAIML解析器,其原理是通过扫描AIML知识库建立定向模式树,即这里的多叉树,再通过深度搜索(DFS)来匹配输入的问题。PyAIML的安装方式为:pipinstallpython-aiml第3.3.3节接收分析器的实现不同的客户端上编码不同,因此对于用户的输入,需要先解码为Unieode。同时,当获得用户输入时,应防止其他线程的干扰。Chatbot分析用户输入分如下几步:步骤一:如果当前没有会话,则机器人自主创建会话;步骤二:对用户的输入分词处理,将获取的词组添加到列表中;步骤三:对词组依次做出响应,并将收到的response放到回复列表中;步骤四:返回回复列表,并针对I/O进行编码;步骤五:在Finany模块中释放内存。具体代码如下所示,最后将该函数放入AlML分析器的运行类Kemel()中。defrespond(self,inputsessionID_globalSessionID):ifIen三三0:returnu*try:input_三self._cod.dec(input_)exceptUnicodeError:passexceptAttributeError:passttpreventotherthreadsfromStoJnPingalloverus.self._respondLock.acquireOtry:#Addthesession,ifitdoesn,talreadyexistself._addSession(sessionID)ttsplittheinputintodiscretesentencessentences=Utils,sentences(input_)fInalResponseu*forsinsentences:InputHistory=self.getPred

    注意事项

    本文(会话机器人原型系统的设计与实现机械制造及其自动化专业.docx)为本站会员(李司机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开