基于安卓的购物推荐系统设计和实现 计算机科学和技术专业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕业设计题目基于安卓的购物推荐系统
摘要
如今,随着互联网和电子商务的快速发展,电子购物凭借其快速便捷的特点,成为现代人们最重要的购物方式,市场中产品也变得越来越丰富。
然而,产品数据的急剧膨胀造成的“信息过载”使得消费者很容易会迷失在大量的产品信息中。
因此推荐系统的诞生为消费者带来极大的帮助,个性化推荐系统通过分析用户行为数据,向用户推荐其可能会感兴趣的商品,提升用户的使用体验。
本文设计并实现了基于安卓的购物推荐系统,主要实现了一个具有推荐功能的网上购物APP的开发,推荐模块采用了基于用户的协同过滤推荐算法。
使用Java语言在Android Studio和Eclipse两个平台进行开发,数据库选择了MySQL,数据通过HTTP网络传输协议来进行实时数据通信,并采用JSON封装技术进行数据交互。
本论文首先简要阐述了推荐系统的相关背景及国内外发展现状,然后介绍了本文系统所涉及的相关技术,接着对该系统进行了详细的需求分析和系统设计,最后展示系统实现效果和关键代码,总结论文所做主要工作。
关键词:安卓系统;推荐系统;协同过滤算法;电子商务
Abstract
Nowadays, with the rapid development of the Internet and e-commerce, electronic shopping has become the most important shopping method for modern people due to its fast and convenient characteristics, and the products in the market have become more and more abundant. However, the "information overload" caused by the rapid expansion of product data makes it easy for consumers to get lost in a large amount of product information. Therefore, the birth of the recommendation system has brought great help to consumers. The personalized recommendation system analyzes user behavior data, recommends products that may be of interest to users, and enhances user experience.
This article designs and implements an Android-based shopping recommendation system, which mainly implements the development of an online shopping APP with recommendation function. The recommendation module uses a user-based collaborative filtering recommendation algorithm. The Java language is used for development on Android Studio and Eclipse platforms, the database is MySQL, the data is communicated in real time through the HTTP network transmission protocol, and the JSON encapsulation technology is used for data interaction.
This thesis first briefly describes the relevant background of the recommender system and the current status of development at home and abroad, and then introduces the related technologies involved in the system of this article, and then carries out a detailed demand analysis and system design for the system, and finally shows the system implementation effect and key codes , Summarize the main work done in the paper.
Keywords: Android system; Recommendation system; Collaborative filtering algorithm;
E-commerce
目录
摘要 (I)
ABSTRACT (II)
目录 ........................................................................................................................... I II 第1章引言 . (1)
1.1课题的背景与意义 (1)
1.2国内外研究现状 (1)
1.2.1 国外研究现状 (1)
1.2.2 国内研究现状 (2)
1.2.3 推荐系统在电子商务中的应用 (3)
1.3本文的主要内容 (4)
1.4本文的结构安排 (4)
第2章相关技术介绍 (5)
2.1A NDROID系统开发介绍 (5)
2.1.1 Android系统架构 (5)
2.1.2 Android应用基本组件 (7)
2.2网络通信协议 (8)
2.3数据的传输与解析......................................................... 错误!未定义书签。
2.4基于用户的协同过滤推荐算法 (8)
2.4.1 发现兴趣相似用户 (8)
2.4.2 推荐物品 (10)
第3章系统需求分析 (11)
3.1功能需求 (11)
3.2非功能性需求 (13)
3.2.1 界面需求 (13)
3.2.2 安全性 (13)
3.2.3 可维护性 (14)
3.2.4 推荐的实时性 (14)
3.3可行性分析 (14)
第4章程序的设计与实现 (15)
4.1系统设计总体概述 (15)
4.1.1 系统结构设计 (15)
4.1.2 服务器设计 (16)
4.2功能模块设计 (16)
4. 2.1 客户端功能设计 (17)
4. 2. 2 后台系统功能设计 (18)
4.3数据库设计 (18)
4.3.1 数据库E-R图 (18)
4.3.2 数据库表 (19)
第5章实现效果及关键代码 (22)
5.1前台客户端实现 (22)
5.1.1 用户注册 (22)
5.1.2 用户登录 (22)
5.1.3 商品列表 (23)
5.1.4 商品搜索、分类 (23)
5.1.5 商品详情 (24)
5.1.6 个人中心 (25)
5.1.7 我的购物车 (25)
5.1.8 我的订单 (26)
5.1.9 个人信息 (28)
5.1.10 个性化推荐 (28)
5.2后台系统实现 (33)
5.2.1 商品管理模块 (33)
5.2.2 用户管理模块 (33)
5.2.3 订单管理模块 (34)
第6章总结 (35)
6.1 总结 (35)
6.2 展望 (35)
致谢 (36)
参考文献 (37)
第1章引言
1.1 课题的背景与意义
如今,随着互联网和电子商务的快速发展,电子购物凭借其快速便捷的特点,成为现代人们最重要的购物方式,随着用户群体和数量的不断扩大,网络市场中的产品也变得越来越丰富。
在如今的日常生活中,网上购物已经与我们息息相关,各种网上购物软件逐渐地成为了人们购物消费中不可或缺的必需品。
然而,随着大量电商平台进入人们的生活,给人们的衣食住行带来便捷的同时,大量产品数据的急剧膨胀,造成了“信息过载”的问题,消费者时常因为面对大量数据而感到难以选择,无法成功找到需要的产品,搜索理想产品变得十分困难,消费者的消费体验变差。
所以如何帮助用户和消费者们从纷繁复杂的商品中寻找到用户真正需要的商品,推荐系统的产生和高效利用也变得十分重要。
在越来越激烈的角逐情况下,电商平台根据消费者的个人兴趣和消费行为过滤信息,然后将消费者可能喜好的商品推荐给消费者,利用推荐系统相关的技术可以更加高效地服务用户,提高用户体验,避免失去目标人群,同时也可以电商公司的竞争力。
在如今这个网络信息量爆炸的互联网时代中,任何用户都无法浏览一个电商网站中所有的内容,甚至能够受到较多关注的只有网站首页中的小部分信息,而其余剩下的大部分信息都只能受到很少部分的人的关注,这必然不可避免地会造成网站中信息资源的浪费。
而推荐系统可以更有效地帮助解决这个问题,推荐系统能够帮助不同类型的用户找到他们需要的商品数据信息,而后在推荐模块对用户实现个性化推荐,以满足具有不同需求的用户。
1.2 国内外研究现状
1.2.1 国外研究现状
在国外,个性化推荐系统和协同过滤算法被广泛使用,特别是在电子商务领域,它们具有非常好的和有希望的应用市场。
根据2007年研究调查的结果,绝大多数消费者都喜欢在可以实现个性化推荐的电子商务网站上购物。
在调查中,过去六个月内消费超过1000美元的消费者中,超过60%的消费者已使用网站提供的个性化推荐系
统并接受了推荐服务。
调查报告还显示,有40%的消费者担心推荐符合其兴趣和需求的个性化推荐。
个性化推荐系统方面发展良好的国外应用程序包括Altered Vista,Amazon和其他应用程序。
以Amazon这个网上书店购物网站为例,Amazon虽然只会在网上进行销售,但由于他高效、经典的推荐功能,十分受人喜爱。
它不仅仅会为用户提供高质量、高效率的综合数据库和检索系统外,还会针对每个用户提供个性化推荐服务。
Amazon不仅将为用户提供一个完整的高质量、高效率的数据库和搜索系统,还将为每个用户提供个性化的推荐服务,Amazon的个性化推荐服务不仅广泛应用于其电子邮件中,也广泛应用于其网页中。
例如,它将根据分析结果向软件工程师显示编程元素,并向医生推荐书籍和医学文章。
用户可以在“你的推荐”页面浏览推荐表单,并且在这个推荐页面中,用户可以进行很多操作,比如在网页上对被推荐的商品进行评分的操作,也可评价自己已经有过购买消费行为的商品,甚至还能看到此推荐模块向自己推荐这些商品的原因。
Amazon根据用户消费行为的特点以及用户已有的购物信息,为每个不同特点的消费者都能够提供合适并且个性化的建议,然后用户的信息和对于此推荐建议的意见将被再次保存,这样用户下次可以接收到更加符合个人要求的推荐信息。
Amazon的推荐功能更多使用的是基于项目的协同过滤推荐算法,并且随着Amazon的成功,在各大电子商务网站开始流行起基于项目的协同过滤算法。
1.2.2 国内研究现状
在推荐系统的发展进程来看,国内的研究与国外发展相比起步较晚,研究的内容和应用方面也比较欠缺。
首先,由于国内研究推荐系统的内容主要来源于国外已有的研究理念和成果,国内的研究比较缺乏创新。
二是由于国内的推荐系统的推荐算法在根据用户兴趣特征或消费行为、需求等维度做出高效适合的推荐,从而导致大部分推荐系统的个性化程度无法达到理想结果。
三是国内推荐系统的推荐功能灵活度不高,在国内大多数个性化推荐系统中,获取用户特征、兴趣等信息的方式往往是通过用户初始的注册信息,而且大部分都有明确的规定。
然而,很少有研究是基于用户在使用过程中的兴趣特征,缺乏这种动态过程的研究往往使得系统很难捕捉到用户兴趣的动态变化,会使得推荐功能灵活度降低,系统也无法实时充分了解用户兴趣。
当然,虽
然国内的理论研究内容更多的是来源于国外的研究理论和研究成果,但是随着我国互联网和国家经济的快速发展,我国在电子商务领域已进入蓬勃发展的状态个性胡推荐领域也得到很好的发展。
目前国内推荐系统部分做得比较好的有豆瓣网,淘宝等应用。
下面主要介绍一下豆瓣的推荐功能。
豆瓣是国内最早一批开始使用个性化推荐功能的网站,它主要通过使用协同过滤算法来为用户推荐可能感兴趣的内容。
豆瓣的个性化推荐算法是根据用户在网站中的浏览行为来分析用户的兴趣从而实现推荐的,用户行为包括了如推荐、收藏、喜欢、关注等用户操作。
因此可见,豆瓣的推荐更加关注用户的兴趣,而且豆瓣此推荐方法在用户和用户行为反馈更多的情况下,推荐的结果会更加符合用户期待;并且若用户使用频率越高,针对此用户的个性化推荐结果会变得更加准确。
1.2.3 推荐系统在电子商务中的应用
对于一个具有推荐功能的电子商务网站来说,它应当具有评价功能,并且可以将评价结果展现给所有用户,他还应当能够智能的向用户推荐展示用户可能感兴趣的商品信息。
而推荐需要收集用户的信息和消费信息,分析用户的历史行为数据,然后才能通过推荐算法计算出需要个性化推荐给用户的产品。
在实际用户体验中,当用户登录电子商务网站时,网站会在推荐模块中智能地对用户实施个性化推荐,并根据用户的数据实时改变推荐内容。
建立一个好的推荐系统需要不断的改进和优化。
这一过程不仅需要提高算法和计算效率,还需要更多的数据分析工作来寻找推荐规则。
研究表明,推荐系统对电子商务网站经济效益的增长具有显著的正向影响。
很多电子商务网站在加入个性化推荐后,销量都有不同程度的增长。
通过使用推荐系统向用户实现个性化推荐,可以为网站提高销量和经济效益。
在众多的电商网站推荐系统中,Amazon的推荐系统都是该领域的佼佼者,尽管国内的许多电子商务网站也采用了各种推荐算法,但是从推荐结果上来看,相较于Amazon的推荐算法,还是略显粗糙。
这也可以看出目前国内的推荐算法还不够成熟,存在许多问题,还需要对推荐系统的实际应用上进行更多的研究和探索。
1.3 本文的主要内容
本文设计的系统采用了基于用户的协同过滤推荐算法,除了主要实现基础的电商网站中的购物功能外,还利用此推荐算法,在猜你喜欢模块对用户进行个性化推荐,实现了基于安卓的购物推荐系统。
本文首先在引言中简单介绍选题背景,推荐系统的国内外研究现状以及在电子商务中的推荐系统。
接着对系统中使用的相关技术进行说明,对Android系统开发、使用的HTTP网络通信协议、数据的传输与解析都进行详细的说明,并具体描述了本系统所选择的基于用户的协同过滤推荐算法的实现方式。
然后对此系统进行了功能需求、非功能性需求和可行性等方面的需求分析,功能需求对本系统要实现的功能进行简单描述,非功能性需求分析从界面需求、安全性、可维护性、推荐的实时性进行了多方面需求分析。
程序设计部分首先介绍了本系统的结构设计和服务器设计,然后分析系统功能模块,具体说明系统Android客户端和web服务端的功能并画出系统流程图,然后在数据库部分画出此系统的数据库E-R表,列出此系统所使用的数据表。
本文最后通过截图展示所有功能的实现效果及关键代码,并对本论文进行总结。
1.4 本文的结构安排
本文共分为六个章节,文章组织结构如下:
第1章为引言,主要介绍了课题背景和推荐系统在国内外研究现状、电子商务中的推荐算法。
第2章为相关技术介绍,分别详细介绍了Android系统开发、网络通信协议、数据的传输与解析和此系统使用的基于用户的协同过滤推荐算法。
第3章为系统需求分析,对此系统在功能需求、非功能性需求和可行性三方面进行分析。
第4章则重点介绍了开发的过程和设计思想,具体说明了此系统开发的总体设计、功能模块设计和数据库设计。
第5章展示了系统运行的效果图并附上相关关键代码。
第6章为总结,对以上工作进行总结。
第2章相关技术介绍
2.1 Android系统开发介绍
Android公司由Andy Rubin等人于2003年10月创立,之后于2005年8月被Google收购,Andy Rubin继续负责Android项目。
经过多年的研究,Android第一个版本于2008年问世,从此,Android系统的发展进入了一个快速发展的时代。
在未来的开发过程中,Android系统坚持开放的原则。
任何个人和公司都可以根据自己的需要制作自己的Android系统,整个过程都是免费的。
基于此,国内外手机厂商纷纷推出了一系列Android手机。
比如华为、三星、小米都取得了不错的成绩。
截至目前,Android手机已占全球智能手机总量的八成,占据市场绝对优势。
Android操作系统已经发布了多个版本。
经过多年的发展,Google已经为Android系统建立了一个完整的生态系统。
2.1.1 Android系统架构
Android系统采用了分层的架构,由低到高分为四层结构,分别是Linux 内核层、系统运行库层、应用框架层和应用层。
Android系统的架构如图2-1所示。
图2-1 Android系统架构
Linux内核层:Android系统基于Linux2.6内核,这一层主为Android设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、蓝牙驱动、电源管理等。
系统运行库层:本层主要包括系统库和Android运行库。
系统库作为应用程序的支持库,是Linux内核层和应用程序框架层之间的重要纽带,为Android系统提供主要的运行支持。
Android运行库包括了一系列核心类库,该核心库提供了Java编程语言核心库的大多数功能。
每一个Android应用程序在Android运行时库中都拥有一个独立的Dalvik虚拟机,可以运行在独立的进程之中。
应用框架层:主要提供构建Android应用程序过程中常用的API函数。
Android 系统自带的核心应用程序就是使用这些API函数创建的,如活动管理器、资源管理器和通知管理器等。
开发者也可以通过使用API来构建自己的应用程序。
应用层:用于安装Android应用程序,如Android系统自带的程序,通讯录和浏览器等;开发人员编写的应用程也被安装在本层。
所有的应用程序都是使用Java语言编写的。
2.1.2 Android应用基本组件
应用程序组件是一个Android应用程序的基本构建块。
Android操作系统的基本组件有活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)、内容提供器(Content Provider)。
下面针对这四大组件做出进一步详细介绍。
(1)Activity
在很多Android类的应用程序中,Activity的主要交互功能就是和使用客户界面的人进行交互,它可以是最容易被人吸引和受到其他客户注意关注的一个交互地方,它也是一种可以包含了很多用户界面的应用组件。
一个Android应用程序通常会有许多个活动组成,对于首次打开应用便进入的界面称为主界面。
主界面的Activity一般称之为主活动。
另外在一个Activity中也可以重复启动另一个Activity,即Android 中的其他活动都是可以进行层叠。
每次当新的Activity开始时,当前的Activity就自然地被覆盖到系统的所有Activity之上,原来的Activity也都保留到了系统的回路堆栈中。
(2)Service
Service主要用于那些不需要与系统用户进行交互并且还需要长期运行的应用程序,是Android操作系统为实现这样功能而设计的一种解决方案。
因此有Service的运行不依赖于任何界面。
所以当应用程序被切换到后台时,应用程序仍然可以继续运行。
但是,这并不意味着Service是单独运行在一个进程中。
实际上Service的运行是依赖于创建Service时所在的应用程序进程。
当该应用程序进程被系统杀掉以后,Service也会停止运行。
(3)Broadcast Receiver
在Android操作系统中,允许一个应用程序进行接收并向其发送广播。
发送广播的目标是需要借助intent等设备才能够实现,而且接受广播主要使用的是广播接收机来接收广播。
当我们在android的应用程序中可以使用Broadcast Receiver软件来直接进行无线电和广播的接收时,就需要首先对自己真正想要直接接受到的无线电和网络信号进行登录和注册,注册的方法有动态注册和静态注册。
这样当我们需要接收的广播发生时,Broadcast Receiver就可以对该广播进行接收,然后对广播做出相应的处理。
因为Broadcast Receiver并没有人为可见的操作界面,所以Broadcast Receiver对广播的
处理需要借助于Activity和后台的Service。
并且可以在活动类onCreate()的方法中进行注册和在onDestory()的方法中进行注册。
(4)Content Provider
Content Provider是Android操作系统为客户提供的一种机制,用于有效地解决各种应用程序之间存在的数据分享问题,是一种跨程序共享数据的标准形式。
2.2 网络通信协议
在Android应用程序的开发过程中,我们经常会用到网络技术来实现客户端和服务器进行网络通信。
Android系统中提供的网络通信技术有HTTP网络通信、Socket网络通信、URL网络通信和WebView网络通信等。
由于HTTP协议是基于应用层的、面向对象的、无连接和无状态的网络通信协议。
有着简单快速等优点,并且HTTP网络通信正是基于HTTP协议的。
所以,在本项目的开发过程使用的网络通信技术是HTTP 网络通信技术。
在Android操作系统中,使用HTTP协议进行网络通信。
其工作原理大致可以理解为:Android客户端先往服务器发送一条HTTP请求,服务器在收到请求后会对HTTP 请求做出相应的处理。
然后把需要返回的数据返回给Android客户端。
最后在Android 客户端对收到的数据进行解析和处理。
2.3 基于用户的协同过滤推荐算法
基于用户的协同过滤推荐算法,具体推荐步骤可以概括如下:
(1)建立相似用户集合:确定相似度度量标准,将相似度高的用户作为推荐服务目标用户的相似用户;
(2)确定推荐结果:在相似用户集中按照目标用户的需求查找相似用户的偏好物品,找出其中目标用户尚未产生过行为的物品,将它推荐给目标用户。
2.3.1 发现兴趣相似用户
余弦相似度法是一种常见的计算相似度的方法。
在推荐系统中,每一个用户的评分都可以看作是二维集合空间上的向量。
如果用户对某个单物品没有进行过购买,那么就将该用户对该物品的评分设置为0。
而目标用户和待比较用户之间的相似性则通
过目标用户向量与待比较用户向量之间的余弦夹角进行度量。
假定用户u 和用户v 以及有着二元反馈信息的物品集合N ,N(u)表示用户u 有过正面反馈信息的物品集合,N(v)表示用户v 有过正面反馈信息的物品集合。
那么他们之间的相似度w 。
就可以通过如下的余弦相似度公式进行计算。
|
)()(||
N(v)N(u)|=
w uv v N u N ⋃⋂ 公式(2-1)
假设目前共有4个用户(A 、B 、C 、D )、5个物品(a 、b 、c 、d 、e ),下表记录了用户对物品的兴趣反馈信息。
表2-1 用户-物品表 用户 物品 A a b d B a c C b e D
c d e
首先建立“物品-用户”的倒排表,如表2-2所示。
表2-2 物品-用户表 物品 用户 a A B b A C c B D d e
A D C D
然后在喜欢他的两两用户之间的相同物品加1。
如图2-2所示:
图2-2 用户相似度矩阵1
根据余弦相似度,对上图进行进一步计算,结果如图2-3所示。
图2-3 用户相似度矩阵2
2.3.2 推荐物品
在使用余弦相似度计算出用户相似度之后,使用如下公式计算用户u 对某一物品i 的推荐度。
∑⋂∈⨯)
(),(=
i)p(u,i N K u S v vi
uv
r
w 公式(2-2)
其中S(u,K)是和用户u 兴趣最相似的K 个用户的最近邻集合,N(i)是那些对物品i 有过正反馈的用户集,w uv 是用户u 和用户v 之间的相似度,r vi 表示用户v 对物品i 的感兴趣程度。
此例中采用r vi =1。
在此例中,经过计算用户A 对物品c 和物品e 的推荐度都约为0.7416,所以可以向用户A 同时推荐物品c 、e 。
第3章系统需求分析
3.1功能需求
本系统作为基于安卓的购物推荐系统,需要包括Android客户端和Web服务器端两部分。
本系统应当具有以下部分功能:
1.Android客户端功能
(1)用户信息:新用户使用该系统需进行注册,登录根据用户的账号和密码。
(2)商品浏览:用户进入系统可以浏览、搜索商品、分类查看搜索商品。
(3)个人中心:此模块应该包括我的购物车、我的订单、个人信息、我的推荐等个人模块。
我的购物车中存放从商品详情页添加到购物车中的物品,在购物车中可进行购买操作;下单后生产的订单可在我的订单中查看;个人信息可由用户自行修改。
(4)推荐模块:推荐模块为此系统的重要模块,系统可根据用户订单信息生成推荐列表,向用户进行推荐。
Android客户端流程图如图3-1所示。
图3-1 客户端流程图
2.Web端功能
管理员登录后方可对系统后台数据信息进行简单管理。
Web管理模块流程图如图3-2所示.
图3-2 管理模块流程图
3.2 非功能性需求
3.2.1 界面需求
操作界面就是系统向用户展示的第一个环节,是留给用户的第一印象。
因此,针对这部分,此次软件的系统接口和界面必须做到美观大方,布局合理,且易于操作和使用。
3.2.2 安全性
该系统设置了登陆验证,只有输入的登录信息与数据库中保存的用户信息完全一致时才能进入系统获取更高权限,且保证其单人单次登录。
即同样的用户ID重复登
录时提醒前者被挤下线,需尽快更改密码。
音乐数据的安全保证不容小觑,因此只对管理员一人开放管理权限,同时监控系统用户的登录信息。
这样可以极大提高系统的安全性。
3.2.3 可维护性
系统投入使用后,可能会因为各种情况而发生错误,而本系统结构灵活,在发生错误时可以快速找出错误、进行维护,易于维护,可以帮助避免造成不便和损失。
3.2.4 推荐的实时性
在用户提交订单后立即生成订单,重新收集用户集合,计算推荐列表,实时更改推荐的商品,满足实时推荐的功能。
3.3 可行性分析
1. 技术可行性:从本次设计的系统所要完成的功能上来讲,目前现在拥有相对完善的理论基础和技术支持,并且通过互联网可以相对容易的查找到相关理论和技术。
在对系统的研发过程中,主要使用到的研发技术工具有Eclipse、JDK、Android Studio、Tomcat 、MySQL等,通过学习便可以熟练的掌握并使用。
因此,对于基于安卓的购物推荐系统在技术方面是可执行的。
2. 经济可行性:该系统以现存的操作系统、开发平台为基础,加上网络上可开源下载的jar包、数据库管理等软件,可在不耗费任何成本的情况下完成系统搭建,因此从经济方面考虑,不需要经费等财务支出。