移动平台智能聊天机器人.docx

上传人:b****3 文档编号:5341892 上传时间:2022-12-15 格式:DOCX 页数:30 大小:2.36MB
下载 相关 举报
移动平台智能聊天机器人.docx_第1页
第1页 / 共30页
移动平台智能聊天机器人.docx_第2页
第2页 / 共30页
移动平台智能聊天机器人.docx_第3页
第3页 / 共30页
移动平台智能聊天机器人.docx_第4页
第4页 / 共30页
移动平台智能聊天机器人.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

移动平台智能聊天机器人.docx

《移动平台智能聊天机器人.docx》由会员分享,可在线阅读,更多相关《移动平台智能聊天机器人.docx(30页珍藏版)》请在冰豆网上搜索。

移动平台智能聊天机器人.docx

移动平台智能聊天机器人

 

移动平台开发

 

课题名称:

智能聊天机器人

学院:

专业:

学号:

姓名:

指导老师:

赵慧杰

日期:

2014年11月

目录

前言1

第一章Android系统及开发环境的安装与配置1

1.1Android系统及开发环境的安装与配置1

1.1.1Android的由来1

1.1.2Android系统的优点1

1.1.3Android系统的现状及展望2

1.2开发环境的安装与配置3

1.2.1操作系统及准备工作3

1.2.2开发环境的安装3

第二章需求分析6

2.1可行性分析6

2.1.1智能聊天机器人的发展史6

2.1.2智能聊天机器人的现状及发展7

2.2设计的需求与概述7

2.2.1设计环境7

2.2.2设计概述7

2.2.3设计的特点9

第三章程序的设计与实现13

3.1系统流程图13

3.2程序设计13

第四章程序的运行与测试16

4.1程序的安装16

4.2程序的运行与测试21

第五章设计总结24

致谢25

参考文献26

附代码27

智能聊天机器人设计

前言

Android在英文中愿意是机器人,Google在2007年11月5日宣布其基于Linux平台的开源手机操作系统后,使用其作为该操作系统的名称。

Android号称是首个为移动终端打造的真正开放和完整的移动软件。

从软件分层的角度来开,Android平台由应用程序、应用程序框架、Android运行时、库、Linux内核5部分构成。

采用Linux内核是Android平台开放性的基础,Linux内核层为我们在软件层和硬件层间建立了一个抽象层,使得应用程序开发人员无需关心硬件细节,但是如果想要Android平台运行到自己的硬件平台上就必须对Linux内核层进行修改,通常要做的就是为自己的硬件编写驱动,并且可以自由设计用户操作界面[10]。

从目前的发展形势来看Android系统因为它的开源性得到了很多移动设备生产商以及网络运营商的青睐。

第一章Android系统及开发环境的安装与配置

1.1Android系统及开发环境的安装与配置

1.1.1Android的由来

Android来源于硅谷著名的极客AndyRubin建立的Android公司,Rubin的最初目标是想把Android打造成一个可以对任何软件设计人员开放的移动终端平台。

很快这个公司便得到了青睐,很多人表示打算买下他的公司。

Rubin想Google的创始人之一拉里·佩奇提出合伙的意向后,Google就抢先把他的公司买下。

并于2007年11月5日宣布与包括摩托罗拉、HTC、LG、三星等33家手机厂商、手机芯片提供商、软硬件供货商、移动运营商联合组成开放手机联盟(OpenHandsetAlliance),并发布了名为Android的开放手机软件平台。

1.1.2Android系统的优点

与其他手机操作系统相比,Android有4个无可比拟的优点:

●开放性:

Android系统同时包含了底层操作系统以及移动电话所需的全部软件,不存在专有权障碍,开发平台允许任何移动终端厂商加入到Android联盟中来,并允许不同厂商可以根据自己的需求对平台进行定制和扩展,无需任何授权许可费用;

●所有应用程序平等:

Android系统中,系统核心应用和第三方应用都是完全平等的,用户可以将手机中的任意应用程序替换成所需的其他应用程序;

●应用程序间无界限:

开发人员可以吧Web上的数据与本地的日历、联系人、位置信息结合起来,应用程序还可声明它们可供其他程序使用;

●快速方便的应用程序开发:

Android平台为开发人员童工了大量的实用库及工具,可以让开发人员快速的创建自己的应用[3]。

1.1.3Android系统的现状及展望

Android系统目前的发展十分迅速,在国内外,Android都有成熟的消费者,Android社区也十分红火,全球各大厂商和运营商也纷纷加入了Android的阵营,包括韩国的三星(SAMSUNG)、英国的索尼爱立信(SonyEricsson)、中国台湾HTC、中国移动、中国联通、中兴通讯、华为通讯、联想等大企业。

除开手机外,各大厂家也陆续推出了采用Android系统的MID(MobileInternetDevices)产品。

根据ComScore公司14年第一季度的移动互联网市场研究报告中显示,14年2月份Android的市场份额增37%,位居榜首,RIM、苹果分别以28.9%和25.2%的移动市场占有率紧随其后,如图1。

图1各厂商移动互联网市场占有率

虽然Android初出茅庐,论个头还不如苹果、RIM,开放这个趋势的力量使得这颗的新星足够明亮,有媒体预测Android的市场占有率将在2015年达到50%并在2016年确定其移动互联网市场的霸主地位,就目前Android的发展趋势来看,这并非一个不可能完成的任务。

1.2开发环境的安装与配置

1.2.1操作系统及准备工作

Android的开发环境在操作系统上并没有太大的限制,它可以使用WindowsXP及其以上版本、MACOS、Linux等操作系统,在该程序的开发中,我选择了Windows8作为开发操作系统。

Android是以Java语言作为开发语言,官方推荐使用Eclipse作为开发软件,在搭建开发环境前必须准备JDK、Eclipse、AndroidSDK三个软件,JDK与Eclipse都可以在其官方网站上下载到其最新版本,AndroidSDK则需要通过AndroidSDKSetup来下载安装。

1.2.2开发环境的安装

1)安装JAVA运行环境

在“

2)下载和安装Eclipse

在Eclipse的官方网站“http:

//www.eclipse.org/downloads”下载最新版本的“EclipseIDEforJavaDevelopers”下载完毕后解压缩即可使用,无需安装。

3)安装AndroidSDK

AndroidSDK因为原下载地址失效,只能通过AndroidSDKSetup这个工具来下载安装,此工具可以在通过“

r04-windows.zip”该网址获取。

下载完成后解压缩,运行其内的“SDKSetup.exe”即可自动检测下载AndroidSDK,如图2所示。

图2AndroidSDKSetup

4)安装Eclipse的Android插件

使用Eclipse作为开发开发工具必须要安装AndroidDevelopmentTools(ADT)的外挂,其安装步骤如下:

●启动Eclipse后,选择“Help”→“InstallNewSoftware…”打开“Install”窗口;

●点击窗口中的“Add”按钮,在“AddRepository”窗口中输入如图3所示信息。

图3AddReponsitory

●点击OK后,“Install”列表中会多出一项“DeveloperTools”,勾选后点击“Next”既开始下载ADT,下载完成后按软件提示操作即可完成安装ADT。

如图4所示。

图4安装ADT

5)应用SDK到Eclipse

选择“Window”→“Preferences…”在“Preferences”窗口的左边选中“Android”,在右边点击“Browse…”选择AndroidSDK所在目录作为SDKLocation,如图5所示。

图5AndroidPreferences

第二章需求分析

2.1可行性分析

2.1.1智能聊天机器人的发展史

IM出现&盛行之后,有msn聊天机器人接棒,也有QQ自动应答机器人轻舞飞扬……直到8年后的某一天,苹果第一次引入Siri,才全新定义了“智能聊天机器人”。

据XX百科记录,“Siri可以令iPhone4S变身为一台智能化机器人,利用Siri用户可以通过手机读短信、介绍餐厅、询问天气、语音设置闹钟等。

Siri可以支持自然语言输入,并且可以调用系统自带的天气预报、日程安排、搜索资料等应用,还能够不断学习新的声音和语调,提供对话式的应答。

”这里面涵盖了四大技术:

自然语义分析、机器学习、深度神经网络、大数据。

苹果的加入,把智能聊天机器人带到了一个新的高度,显然,苹果已经发现新的人机交互方向了。

老对手Google自然不甘落后,很快推出GoogleAssistant(GoogleNow)。

然后是IBM也加入,微软小冰跟进,国外巨头都上了,国内的XX坐不住了,在拥有了语音识别、自然语义分析和大数据的基础储备之后,两年之后的2014年5月,XX花大价钱从Google挖来了机器学习、人工智能领域的专家AndrewNG。

回过头来说说微软小冰,微信为什么那么着急的封杀它?

难道是外界所说的伪造帐号、造成混乱吗?

绝对不是!

那是因为,腾讯作为国内的另外一个互联网巨头,早就认识到未来人机交互的方向,在自己的“智能机器人”诞生之前,岂容他人在自家领地挖墙角?

可以想象,未来软件人机交互的方向是:

拟人化。

你和一个“智力不低”的“人”而不是一个冷冰冰的系统对话,告诉她你的需求,她回答你,给你展示信息,带你体验各种功能,并能教会你各种技能……

界面极致简单。

软件的主要界面将会是一个类似IM的对话界面,这个可以从Hop这个以IM形式出现的邮件APP里一窥端倪。

2.1.2智能聊天机器人的现状及发展

在中国,手机已经成为人们日常生活必不可少的一部分,智能手机在高校人群中逐渐得到了普及,Android手机凭借其优秀的系统性能以及良好的用户体验迅速得到了广大网民的青睐。

老网民肯定还记得263聊天室、QQ聊天室,火爆的聊天场景,充满好奇的人们聚一个虚拟的小房间里畅所欲言,不断地发出欢声笑语。

那时候,有一些特别可爱的AI聊天机器人,简单的回复你几句,给你讲几个笑话,发几张美女,贴几条新闻……虽然简单,但那么真诚、可爱,像一个初生的小宝宝,给我们留下无限纯真和美好的回忆。

基于这些,有必要设计一款具有智能聊天程序。

2.2设计的需求与概述

2.2.1设计环境

客户端操作系统:

Android;

客户端硬件设备:

Android手机等移动终端;

JDK版本1.6以上;

AndroidSDK版本2.2以上

开发环境:

windows7/windowsXP

开发软件:

eclipse

2.2.2设计概述

所谓聊天机器人,是能够模拟人类思维,在对自然语言进行识别、分析、判断的基础上,给以近似人类的回答,可以与人就某一话题进行交流、讨论的智能程序。

聊天机器人以网络即时通讯(instantmes2senger)软件为平台或者嵌于网页之中,能够实现人、机之间以自然语言方式进行的远程会话、交流等交互功能。

聊天机器人具有一定的人工智能,在程序运行时,可以自主地、独立地、用类似人类的方式与人进行聊天。

虽然聊天语句是由它的编写者、使用者或者聊天对象输入的,但是经过程序自身的逻辑判断、选择后,输出语句所包含的思想内容已经不属于单个语句的输入者,或者超出了单个输入者的范围,因为同一语句在不同的语境中的含义不同。

所以,人机聊天形成的不是人与程序的编写者、使用者之间的人人关系。

现有的聊天机器人技术是以符号主义为理论基础的。

认为人类大脑和恰当编程的数字计算机可以被看作同一类装置的两个不同的特例,它们都通过形式规则操作符号生成智能行为。

在模拟人类语言活动的性质、行为和规律时,考虑的是对思维功能与大脑结构的模拟。

选择的技术路径是:

把人类的思维过程。

目前关注的主要是分析、判断和选择过程,转换成一定的算法,建立语言数据库。

从而把人类的语言模式传授给计算机。

这种模拟是建立在物理层面上的,由于物理符号系统是一个物理的过程,它与人的心理活动有着根本的区别。

因此,要模拟人的心理与意识,在原则上是不可能的事。

由于人类很可能根本不是按照通常的方式使用常识性知识的。

正如海德格尔和维特根斯坦所指出的,与常识性理解相当的,很可能是日常技能。

在经验的范围内,我们不可能对人类所有的语言技能进行考察。

因此,传授给聊天机器人的只能是具体语境下经验主义的具体技能,并不是理念主义的超语境的普遍性技能。

机器人按照既定的程序输出聊天语句,表现出来的只是人类心理活动的形式化特征。

因此,现有的聊天机器人不具有达到人类水平的认知能力、语言能力,更不具有反思能力,没有哈贝马斯提出的人人之间的交往资质。

虽然到目前为止,人工智能已经发展到了模拟神经网络的阶段,但相对于人的智能而言,它仍然是低层次的。

现在看来,形成生物学意义上的模拟,至少在短期内是不可能的。

聊天是社会交往的一种方式,是以语言符号为媒介所进行的精神层面的社会交往。

交往行为是至少两个主体之间所形成的在世界观、文化价值、伦理道德等精神方面的联系,突显的是主体间的精神沟通。

而没有思想、意识、感情、情绪以及心理特征的聊天机器人与人聊天,只是对人人聊天的形式化描述,即人与人聊天在具体语境下的数字化模型。

无法形成相互交流、相互沟通、相互理解的人与人聊天的主体结构。

聊天机器人是一种计算机程序,具有不以人的意志为转移的客观实在性。

同时,技术是合目的的工具,聊天机器人技术亦如此。

从这个意义上讲,聊天机器人具有一般意义上的物的属性。

在人机聊天中,人们通过自然语言与它发生作用,机器人给以包含某种知识、思想、理念和价值,符合各种语境的反馈。

并且,这一过程是单向度的。

所以,从哲学和逻辑学角度来说,人机聊天形成的是客体结构,如图6所示。

 

询问者

 

2.2.3设计的特点

1)改变话题

在一个开放式的回话中,主题会不断变化到聊天机器人无法了解而且没有编程的主题上。

如果主题偏移到已经编好程序的内容上,它就可以重新回到立足点。

如果提到没有涉及到的,那么它就可一随时改变聊天的话题内容。

具体的聊天如图7所示。

图7

2)一次说一整句话

你已经注意到了,如果你曾经和朋友聊天的话,真人会把一句话分开说,就像他们平时说话一样。

人们会加上一个“嗯”,为了戏剧化的效果,或者他们会加上“……”显示自己在思考或者反应。

而聊天机器人并不真正理解人类的说话,这些话头话尾会引发一些回应。

如果有人输入“嗯”和“OK”,而聊天机器人回答是随机的,就是—这种能够应付一切没有预编程情况的句子,那么游戏结束——它被揭穿了。

为了应对这种情况,聊天机器人喜欢用的简单方法,是设置一个最小字符串值来判断不完整的句子,或者识别嘀咕的话和不正常的间隔。

聊天内容如图8所示。

图8

3)一直说下去

聊天机器人对待谈话就像在打网球。

说话,回话,说话,回话——来回往复。

真人感觉到停顿的时候,就会详细谈一开始的语句,或者再摸索更多信息。

如果这些详细的阐述已经预编程好了,这活儿对聊天机器人就太轻松了。

不过,也产生了展开平行回话的危险——一个人回复一句话,然后再回复另外一句话,而接下来的新语句又是重叠在一起的。

这对机器人来说比较艰难,所以详谈必须谨慎从事。

聊天内容如图9所示。

图9

4)

找茬打架

这是个大招。

打架不需要记忆或者一致性。

它们自己就可以演进,每个新的回复都会提升怒气值,一个接一个地回复下去,就会让怒气满点。

打架也不需要为糟糕的拼写和语法找借口。

打架也不需要理智。

它们总是可以转移到什么新的事情上,或者没完没了地重复自己。

它们也不需要广泛的内容。

他们总是可以在现成的词库中找到短语,或者愚蠢的打发办法,或者改变主题,或者无意义的侮辱,而不会有人怀疑出了什么问题。

在早期的互联网上,一个大学生让自己写的聊天机器人,一聊就是一晚上,而这个聊天机器人预编程了不少令人恼火的短语。

大学生回来的时候发现一大堆对话,有人急不可耐地要找他联系他。

机器人用预编程的侮辱性短语加以回复。

那人怒气冲天,聊了一个小时,愤然离线。

那个人评论这件事情的时候说那个程序不断重复自己,“像是个该死的机器人还是什么玩意”。

他聊得很投入,但从来没有猜到自己正在和电脑硬件聊天。

这是让聊天机器人看上去像人类的最终办法。

这也很好地证明了任何东西都可以模拟人类的最差品质。

聊天内容如图10所示。

图10

第三章程序的设计与实现

3.1系统流程图

 

 

3.2程序设计

(1)首先在图灵机器人的官网上面注册一个属于自己的账号,如图11所示。

图11

(2)创建一个安卓项目工程,如图12。

图12

(3)在layout中布局主界面的格局,如图13所示。

图13

(4)布局聊天发送信息显示的界面,如图14所示。

接受信息显示的界面,如图15所示。

图14图15

(5)设计实现功能的有关java文件,如图16所示。

图16

●程序的入口:

MainActivity.java

实现的函数有:

privatevoidinitView()//创建初始化方法

privateStringgetRandomWelcomeTips()//得到问候语数据

publicvoidgetDataUrl(Stringdata)//链接API接口

publicvoidparseText(Stringstr)//解析js内容

publicvoidonClick(Viewv)//响应“发送”按钮

privateStringgetTime()//获取时间

●封装链接请求:

HttpData.java

实现的函数有:

@Override

protectedStringdoInBackground(String...params)//添加复写方法

@Override

protectedvoidonPostExecute(Stringresult)//复写方法,通过这个方法来获取数据

●接口,用于或的请求的数据:

HttpGetDataListener.java

接口中只定义函数名,不定义函数实现的功能。

voidgetDataUrl(Stringdata);

●封装数据:

ListData.java

实现的函数有:

publicListData(Stringcontent,intflag,Stringtime)//构造函数,初始化变量

publicvoidsetContent(Stringcontent)//设置初始化内容

publicStringgetContent()//获得内容

publicvoidsetFlag(intflag)

publicintgetFlag()

publicvoidsetTime(Stringtime)//设置时间

publicStringgetTime()//获得时间

●对输入内容的处理:

TextAdapter.java

实现的函数有:

publicTextAdapter(Listlists,ContextmContext)//构造函数,初始化变量

publicintgetCount()//获得发送信息的数量

publicObjectgetItem(intposition)

publiclonggetItemId(intposition)

publicViewgetView(intposition,ViewconvertView,ViewGroupparent)

第四章程序的运行与测试

4.1程序的安装

程序运行后将apk发送至安卓手机,下载并安装。

4.2程序的运行与测试

(1)初始化界面

(2)聊天测试

 

(2)提示时间测试

第5章

设计总结

通过本次程序设计,让我亲身体验了安卓手机程序设计的具体过程。

尽管自己一直在使用安卓手机,但是不了解其中的很多知识。

通过本次设计我学到了很多新的知识,程序接口的设计,界面的布局,功能的具体实现等。

经过这次设计,我也遇到了很多困难,有些是能力之外的,但是这不是我退却的理由,我要做的就是利用一切可以的合理手段去完成自己的这个设计,对于自己设计的项目,一定要设计到最好。

我要具有良好的心态去对待这次设计,规划设计的具体步骤,一步一个脚印的去做,耐心认真对待每一个具体的步骤,我一定可以走的更远。

本次设计也有很多不足,比如说拥堵的登陆认证,对于提问者语义的具体分析,机器人回答的更加合理,更加接近于人与人的聊天,这些都是我需要改善的地方,我会不断努力,继续探索,不会停下脚步,继续向前走!

致谢

非常感谢赵慧杰老师能够提供这样一次,基于Android平台的程序设计的机会。

这次设计让我受益匪浅,收获很大。

让我明白了,实践远远比理论重要。

同时,我也非常感谢在这次设计中给我提供帮助的同学,他们耐心指导,认真帮我改错使我非常感动,在此,我向他们表示真挚的谢意。

参考文献

[1]姚尚朗.崭岩《Android开发入门与实战》[M].人民邮电出版社.

[2]穆肃《网络智能聊天系统的原理及其教学应用》[J].外语电教化

[3]Jerome(J.F.)DiMarzio《Android程序员指南》[M].McGraw-Hill公司

[4]E2EColud工作室.《深入浅出GoogleAndroid》[M].人民邮电出版社

[5]陈璟,陈平华,李文亮《Android内核分析》[J].现代计算机(专业版)

[6]杨丰盛《Android应用开发揭秘》[M].机械工业出版社

[7]靳岩,姚尚朗《GoogleAndroid开发入门与实践》[M].人民邮电出版社

[8]印旻,王行言《ava语言与面向对象程序设计》[M](第2版)清华大学出版社

[9]张仕成《基于GoogleAndroid平台的应用程序开发与研究》[J].电脑知识与技术

[10]JeffFriesen《LearnJavaforAndroidDevelopment》[M].USA:

Apress

[11]冯健翔《人工智能及航天应用概论(上)广义人工智能基础研究》[M].宇航出版社

附代码

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1