一种基于Android手机的通过天气推荐APP的方法及系统与流程

文档序号:17642901发布日期:2019-05-11 00:47阅读:421来源:国知局
一种基于Android手机的通过天气推荐APP的方法及系统与流程

本发明涉及通信技术领域,尤其涉及一种基于android手机的通过天气推荐应用的方法及系统。



背景技术:

随着现代通信技术的发展,通讯设备涉足的领域越发广泛。其不仅在通讯、存储、微型娱乐等传统领域上增强了性能,还在学习、买卖、运输、游戏、视频以及新兴行业等与人类生活息息相关的领域进行着结合,伴随其结合出现了app技术,即手机应用软件。通过app协助人们进行包括交易、上网以及社交等线上行为,其简便快捷的操作流程,提高了人们的生活以及工作效率,其在日常生活中已被人们通过手机的形式进行大量使用。

现今,app技术日益成熟,涉及各行各业的app海量出现于手机应用市场中,为用户提供了丰富的使用选择。用户根据自己的喜好以及行为习惯去安装app,不同的人会有不同的行为规则。

而天气状况影响着人类的衣食住行,从而在很大程度上促发了人们行为习惯的产生。人们在不同的天气环境下会产生不同的心情,进而进行不同的行为。用户对app的使用情况亦是如此,其在不同天气情况下会因为心情好坏以及环境状况进行不同app的使用。在现有的android手机app技术中,虽然用户对app的使用数据均会在应用系统或网络服务器中有所记录,但并没有系统针对用户在何种天气情况使用何种app进行记录并分析,未能通过与天气因素相结合,以此分析用户的app使用习惯,不能达到对用户人性化的智能服务。

综上所述,本领域缺少一种结合天气因素,分析用户行为习惯,从而根据该行为习惯向用户推荐app的方法及系统。



技术实现要素:

本发明的目的在于提供一种基于android手机的通过天气推荐应用的方法及系统,解决了本领域android手机系统上的app市场里缺少针对用户行为习惯的推荐系统。同时,本发明提供了协同过滤算法,以达到对用户人性化的智能服务。

本发明解决其技术问题所采用的技术方案是:一种基于android手机的通过天气推荐app的方法,所述基于android手机的通过天气推荐app的方法包括以下步骤:

s101,基于android系统源代码添加后台监控系统;

s102,建立后台监控系统的数据库,数据库中保存每日用户在app中的使用数据;

s103,监控系统调取用户的app使用数据以及当天天气数据,并做出并行的对应记录;

s104,根据上一步骤所获取的app使用数据以及当天天气数据,通过包括app的使用的次数、app的使用时间以及app的流量消耗在内的数据,计算app使用情况与其所对应的当地气候间的关系式;

s105,根据当天天气情况采集与之对应的app使用数据,并将其中相应的app推送给用户;

s106,通过中心服务器获取注册用户的总体数据,并对该数据进行协同过滤,将过滤筛选出的app推送给注册用户。

进一步地,所述步骤s101包括基于android5.0以上系统源代码添加系统级应用,该系统级应用在后台记录用户每日的app使用情况;

所述步骤s102中监控系统中的应用数据库包括:用户id号、使用时间以及消耗流量对应的数据类型为integer;应用名以及包名对应的数据类型为varchar(50);使用次数对应的数据类型为int;天气对应的数据类型为varchar(10);省份对应的数据类型为varchar(20);日期对应的数据类型为date;关系值对应的数据类型为double;

所述步骤s103中所述监控系统调取用户的app使用数据包括使用com.android.internal.os.pkgusagestats获取app应用的启动次数以及使用时间;所述监控系统调取用户的当天天气数据包括根据gps定位的城市和中国天气网http://m.weather.com.cn/d/town/index?lat=31.25956&lon=121.52609数据获取当时的天气信息;

所述步骤s104中所述的关系式包括天气a的适合度,该适合度计算公式为:wa=count*a1+time*a2+usage*a3

其中,count为app的使用的次数,time为app的使用时间,usage为app的消耗流量,a1为0.2,a2为0.5,a3为0.3。

进一步地,所述步骤s105中包括将天气情况分为8种,即晴、多云、阴、雪、雨、雹、雾以及风等8种天气情况:其中推荐给用户的所述相应的app为达到系统设定阈值的app,所述阈值为app使用次数大于等于1次以及使用时间大于等于1分钟,当其中某种天气下所使用的app次数大于等于1次,且使用时间大于等于1分钟时,即将该数据信息记录到所述数据库中。

进一步地,当所述8种天气中的任意一种包含至少2天数据时,计算该天气下各个app的天气适合度,并对其进行排序,当用户再遇上该天气时,将排序靠前的app推荐给用户。

进一步地,所述排序靠前是排序最靠前的3个。

进一步地,所述步骤s106中的协同过滤包括步骤s200挑选单一用户在所述任一8种天气情况下所需推荐的输入节点,以及步骤s300对输入节点的相似度进行计算。

进一步地,所述步骤s200包括:判断单一用户与其他用户使用的相同app数量是否大于等于3,若满足该条件则进行下一步计算,并对所计算的进行排序,计算公式为:vab=p*a1+c*a2

其中p为是否同省,若是则p为1,若不是p则为0;c为相同的app数量;a1为0.6,a2为0.4;

所述步骤s200还包括:在所述任一8种天气情况下,若用户a与用户b在某种相同天气状况下所使用3个app的wa值的总和相差不超过7%,则将所述3个app之外的app进行过滤。

进一步地,所述步骤s300包括相似度计算公式:

其中,p值取3,将输入节点uab的值从低到高排序,若最接近0的用户b是和用户a在该天气时的行为接近,则将对应天气情况下用户b有使用而用户a没有使用的app推送给用户a。

进一步地,一种基于android手机的通过天气推荐app的系统,所述中心服务器包括监控模块、数据库以及数据处理单元:其中,监控模块用于与android手机配合进行所述步骤s101,以及进行所述步骤s103;监控模块与数据库连通,数据库用于进行所述步骤s102;监控模块与数据处理单元连通,数据处理单元用于进行所述步骤104,以及与android手机配合进行所述步骤s105;中心服务器进行所述步骤106,并将处理结果传输至android手机中。

进一步地,所述中心服务器使用xmpp协议。

本发明的有益效果在于:在现有技术中,用户手机的应用使用数据一直都只有简单的网络数据使用情况,缺少与其他因素以及用户行为进行结合考虑,进而为用户总结出有规律可循的数据结果,以此方便于用户的使用。本发明通过记录用户在不同天气状况下的自身手机的app使用情况,增加以用户app使用数据为基础的协同过滤算法为用户推荐app,使得用户在手机上使用app时体验到人性化的智能服务,从而方便快捷的使用app,增强了用户体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将结合附图及实施例对本发明作进一步说明,下面描述中的附图仅仅是本发明的部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图:

图1是本发明实施例1中基于android手机的通过天气推荐app的方法的步骤流程图;

图2是本发明实施例1中基于android手机的通过天气推荐app的方法的具体步骤流程图;

图3是本发明实施例1中数据库的数据类型列表;

图4是本发明实施例1中基于android手机的通过天气推荐app的系统的模块关系图。

具体实施方式

为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明的部分实施例,而不是全部实施例。基于本发明的实施例,本领域普通技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。

在实施例1中,如图1所示,一种基于android手机的通过天气推荐app的方法,首先在使用android系统的手机中安装系统应用,即客户端;建立本地推荐系统数据库;记录app使用情况以及天气情况;计算app使用情况与天气的关系值;将计算数据上传至中心服务器;服务器对其数据进行整理;将整理后的app推荐至用户手机中的客户端。

具体的,如图2所示,步骤s101,基于android系统源代码添加后台监控系统;步骤s102,建立后台监控系统的数据库,数据库中保存每日用户在app中的使用数据;步骤s103,监控系统调取用户的app使用数据以及当天气候数据,并做出并行的对应记录;步骤s104,根据上一步骤所获取的app使用数据以及当天天气数据,通过包括app的使用的次数、app的使用时间以及app的流量消耗在内数据,计算app使用情况与其所对应的当地气候间的关系式;步骤s105,根据当天天气情况采集与之对应的app使用数据,并将其中相应的app推送给用户;步骤s106,通过中心服务器获取注册用户的总体数据,并对该数据进行协同过滤,将过滤筛选出的app推送给注册用户。

其中,对于步骤s101,系统基于android5.0以上系统源代码添加系统级应用,该系统级应用在后台记录用户每日的app使用情况,并通过与中心服务器无线连接,进而建立用于app推送服务的客户端程序。

对于步骤s102,如图3所示,所述监控系统中的应用数据库包括用户id号、使用时间以及消耗流量对应的数据类型为integer;应用名以及包名对应的数据类型为varchar(50);使用次数对应的数据类型为int;天气对应的数据类型为varchar(10);省份对应的数据类型为varchar(20);日期对应的数据类型为date;关系值对应的数据类型为double。

其中,时间以分钟为单位量,流量以mb为单位量。数据表的字段类型设定旨在保证能正常存储数据且尽量节省空间:用户id号是长数字,使用integer数据类型;应用名是字符串,应用名长度是变长字符串,而使用varchar时,应用名一般不会超过10个汉字,设定字符长度为(10)即能容纳所有应用名;包名是字符串,包名长度为变长字符串,而使用varchar时,包名为英文,设定字符长度为(50)才能容纳所有包名;使用次数是数字,而一天的使用次数不会过多,其中,时间单位为分钟,是长数字,一天时间以分钟单位度量为24*60分钟,故使用smallint数据类型;消耗流量单位是mb,1g=1024mb,10g=10240mb,一天一个应用的消耗流量在现有的调研中是不超过integer的范围,所以使用integer;天气是字符串,因为天气名称限定在两个汉字以内,字符长度设为(2),故使用varchar;省份名称是汉字,使用varchar,不超过4个汉字,故字符长度限定为(4);日期为当天日期,为完整记录日期使用date类型;关系值w为此应用在今天求出的天气适合度,结果为浮点数,故使用double。

对于步骤s103,所述监控系统调取用户的app使用数据包括使用com.android.internal.os.pkgusagestats获取app应用的启动次数以及使用时间;所述监控系统调取用户的当天天气数据包括根据gps定位的城市和中国天气网http://m.weather.com.cn/d/town/index?lat=31.25956&lon=121.52609数据获取当时的天气信息。

对于步骤s104,所述的关系式包括天气a的适合度,该适合度计算公式为:wa=count*a1+time*a2+usage*a3

其中,count为app的使用的次数,time为app的使用时间,usage为app的消耗流量,a1为0.2,a2为0.5,a3为0.3。其中,其中a1+a2+a3=1,因子的百分比比例代表因子在适合度的重要程度,使用时间>消耗流量>使用次数,具体值为初始化值,不限于因用户使用情况的改变而进行调整。

具体的,对于步骤s105,为简化系统提高推荐系统效率,其包括将天气情况分为8种,即晴、多云、阴、雪、雨、雹、雾以及风等8种天气情况,例如当天天气为晴天,则系统采集手在晴天中手机所使用app的数据情况,以此类进行工作:其中推荐给用户的所述相应的app为达到系统设定阈值的app,所述阈值为app使用次数大于等于1次以及使用时间大于等于1分钟,当其中某种天气下所使用的app次数大于等于1次,且使用时间大于等于1分钟时,即将该数据信息记录到所述数据库中。其中,当所述8种天气中的任意一种包含至少2天数据时,计算该天气下各个app的天气适合度,并对其进行排序,当用户再次遇上该天气时,将该天气排序靠前的app推荐给用户。其中,考虑到天气适合度的契合性,将排序最靠前的3个app推荐给用户,旨在使推荐更优化,用户不用再做过多选择,节省用户时间。

具体的,对于所述步骤s106中的协同过滤包括步骤s200挑选单一用户在所述任一8种天气情况下所需推荐的输入节点,以及步骤s300对输入节点的相似度进行计算。其中,所述步骤s200包括:判断单一用户与其他用户使用的相同app数量是否大于等于3,若满足该条件则进行下一步计算,并对所计算的进行排序,计算公式为:vab=p*a1+c*a2

其中p为是否同省,若是则p为1,若不是p则为0;c为相同的app数量;a1为0.6,a2为0.4,为保证排序的效率以及不重复性,排序的节点限于10个;

所述步骤s200还包括:所述任一8种天气情况下,若用户a与用户b在某种相同天气状况下所使用3个app的wa值的总和相差不超过7%,则将所述3个app之外的app进行过滤。

所述步骤s300包括相似度计算公式:

其中,p值取3,将输入节点uab的值从低到高排序,若最接近0的用户b是和用户a在该天气时的行为接近,则将对应天气情况下时用户b有使用而用户a没有使用的app推送给用户a。

在本实施例中,如图4所示,一种基于android手机的通过天气推荐app的系统,所述系统包括中心服务器以及android手机,所述中心服务器包括监控模块、数据库以及数据处理单元:其中,监控模块用于与android手机配合进行所述步骤s101,以及进行所述步骤s103;监控模块与数据库连通,数据库用于进行所述步骤s102;监控模块与数据处理单元连通,数据处理单元用于进行所述步骤s104,以及与android手机配合进行所述步骤s105;中心服务器进行所述步骤s106,并将处理结果传输至android手机中。

其中,在客户端处于离线和联网状态时会进行不同的推送流程:在离线状态时,按照所述步骤s104、s105以及s200依次进行,数据处理单元执行步骤s200,其根据用户在不同天气的app使用情况,得出预推荐app的评分,并对其做出排序,在不同天气为用户推荐今天最优先适合的app。在联网状态时,按照所述步骤s104、s105以及s300依次进行,数据处理单元执行步骤s300,其向用户推送基于其他用户app使用情况所协同过滤得到的优先app列表。

另外,中心服务器使用xmpp协议,为对于所述数据库中的数据类型进行定义,进而更稳定的在网络中进行传输,手机系统上客户端会向中心服务器发起连接请求,连接建立后,中心服务器能识别客户端中的用户id,并维护和客户端的连接,从而实现推送功能,并进行功能扩展。另外,针对建立客户端后,更易于添加系统应用以及协同过滤算法的更新。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1