一种基于位置的微互助推荐方法与流程

文档序号:13004767阅读:121来源:国知局
一种基于位置的微互助推荐方法与流程

本发明属于任务推荐技术领域,具体涉及一种适用于志愿者任务的推荐方法。



背景技术:

随着人们生活水平的不断提高,残疾人这一特殊的弱势群体越来越受到社会大众的关注。残疾人是否能够及时得到志愿者的帮助已经成为一个衡量志愿者服务质量的标准。志愿服务也渐渐由原来的发达国家发展到了欠发达地区,以志愿服务为核心的第三部门也俨然成为了各国最重视、发展速度最快的一个领域。根据最新的数据显示,我国残疾人总人数约为8502万人。但是据不完全统计我国注册的

志愿者人数仅仅只有5500多万,虽然每年为社会提供超过3亿小时的志愿服务,但是平均到每一个残疾人身上却还不到4个小时。此外,志愿者们参加活动的方式是首先由公益组织发起一个活动,志愿者们响应活动号召来帮助残疾人。而志愿活动都或多或少带有一定的社会性和集体性,这就造成了残疾人在公益组织活动的时间内才能得到集中式的帮助,但是在日常生活中需要帮助却找不到合适的志愿者。正是由于残疾人与志愿者之间的人数差异和对残疾人的日常需求考虑不周,如果只靠这些志愿者是完全不能满足残疾人正常的需求。

传统的推荐方法包括基于内容的推荐、基于协同过滤的推荐和基于混合式的推荐技术等,被广泛应用于各式各样的系统中,并获得了不错的效果。但是,在针对志愿者和残疾人方面传统的推荐方法存在着诸多问题。首先,需求不能满足。残疾人和志愿者的用户特殊性以及新用户问题,传统的推荐技术既没有融入残疾人和志愿者用户的特征,又不能及时的获取新用户的兴趣需求,难以推荐出真正符合残疾人用户兴趣需求的内容。其次,无法满足残疾人的时效性。传统的推荐方法,不论是基于内容的推荐、基于协同过滤的推荐还是基于混合式的推荐技术,都是一种基于线上信息的推荐,这些方法对文本、视频、音频等网络资源的推荐效率还不错,但是面对残疾人和志愿者之间的志愿活动却不能够满足其时效性。因为残疾人发起的志愿活动大多是基于线下的请求,而如果按照传统的推荐方式并没有考虑到地理位置这个特殊的上下文信息,导致无法满足用户的时效性。再次,致使志愿者流失。由于推荐技术的不足,导致志愿者在接受任务的时候需要花费许多的额外时间和精力,让他们逐渐丧失了对志愿的热情,无法建立起长效的志愿服务机制。这些原因都导致了传统的推荐技术无法帮助残疾人满足其日常生活的帮助,也无法帮助志愿者高效地接受志愿任务,造成了负面的社会效益。



技术实现要素:

为了使残疾人和志愿者之间的志愿任务更加高效有序的进行,本发明通过扩展现有的推荐技术,提出了一种基于位置的微互助任务推荐方法。该方法不仅能够针对残疾人和志愿者的基本特征,满足残疾人对任务时效性的要求,降低志愿者对志愿活动付出的额外精力。

本发明提出的基于位置的微互助任务推荐方法,综合残疾人和志愿者互助之间的特点和需求关系,建立结构化的数据来表示各种模型;在模型的基础之上分析影响用户接受志愿任务的因素并将其量化表示;完成面向残疾人和志愿者的推荐策略,针对不同的用户进行相应的志愿任务推荐。具体步骤如下:

(一)建立结构化的数据模型

在设计基于位置的微互助推荐方法之前,首选需要认真分析目标用户,包括用户的特征,用户在执行志愿活动时的所需要的各类信息及其特点,接着根据这些特征建立相应的结构化的数据模型,只有这些基础数据机构的完整性得到保障,才能有利于推荐方法对用户特征的正确抽取。反之则会导致推荐方法性能下降。

针对志愿活动中的场景,本发明所建立的数据模型,包括用户(usermodel)、擅长(personality)、群组(group)、任务(request)、推荐(recommend)、通知(notification)、角色(role)等。

用户模型(usermodel),作为平台的基础,以用户为中心建立自然、高效、有序的用户界面有助于用户在后续相关的发布、接受、反馈、推荐任务信息中起到关键作用,在本发明中采用五元组来表示用户模型,具体如下:

usermodel=<userid,personality,role,group,request>

在其中,userid表示的是平台中用户的唯一标识符,在模型后续有关用户数据的生成、汇集、反馈的时候中用到的增加、删除、修改、查找等都需要用这个用户的唯一标识符作为数据库的关联条件。

所述擅长模型(personality),是一个与用户有关的所有基本信息的集合,包含用户两个方面的特征:一方面是每个平台使用者所具有的客观属性,另一方面是体现用户主观特征的偏好(preference),具体如下所示:

personality=<username,passwd,age,gender,idnumber,preference…>

在其中,username指的是用户名,passwd是用户设置的密码,age是用户的年龄,gender是用户的性别,idnumber是用户的编号。preference指的是用户主观擅长的内容,由用户自行设置。

所述角色模型(role),用于表示不同的角色(role)所拥有的不同权限,内容包括角色类型(roletype)和角色名(rolename),具体如下所示:

role=<roletype,rolename>

所述群组模型(group),包括的主要内容是群组编号(groupid),群组中存在哪些用户(groupuserrelation关系表)、创建者(creator)、创建时间(creattime)等内容,它与用户是多对多的关系,具体如下所示:

group=<groupid,groupname,creator,creattime,groupuserrelation>

所述任务模型(request),用于存储每个用户所发布和接受的任务,主要包括任务编号(requestid),任务基本信息(character)、安全码(code)、通知(notification)、推荐(recommend)等内容,与用户也同样是多对多的关系,具体如下所示:

request=<requestid,character,code,notification,recommend>

所述通知模型(notification),作为移动端应用运营最重要的营销手段,对应用消息的受到越来越多移动应用开发商的重视,一个任务拥有多个通知,而每个通知对应的则是一个任务,它与任务模型是一对多的关系,包括了通知编号(notificationid),通知对应的任务编号(requestid)以及通知内容(content)等,具体如下所示:

notification=<notificationid,requestid,content>

所述推荐模型(recommend),用于存储系统根据用户的需求生成的推荐信息,主要包括推荐编号(recommendid),被推荐用户(rec_user)、推荐时间(time)、被推荐任务编号(requestid)以及推荐任务是否被接受(is_accepted)等信息,与通知模型类似,它与任务模型也是一对多的关系,具体如下所示:

recommend=<recommendid,rec_user,time,requestid,is_accepted>。

(二)确定影响推荐的因素,并将其量化

制定任务推荐策略时,首先需要了解什么是影响用户接受任务的因素,这将有助于推荐方法的制定者充分了解用户对志愿任务的预期以及这些因素对接受任务的影响程度。因此,全面分析志愿者和残疾人接受任务的因素,将其尽可能量化为具体的用户特征指标,构建成完整的评估体系。

志愿者们是否接受任务的时候,他们的行为主要包括了两个方面:主管方面和客观方面。

主观方面:是否有能力完成、发布者与我的关系、偏好(指参加什么类型的活动)、加入的群组。

客观方面:任务距离、悬赏的积分数。

因此,针对这些影响用户接受任务后,对其进行了一个排序,从重要到次要分别是:任务距离、是否有能力完成、发布者与我的关系、偏好、加入的群组、悬赏积分。面对这些因素,将其分别量化为客观的推荐指标,具体如表1所示。

表1:影响维度与客观指标转换

其中特别重要的是用户的位置,经过相应的调查,用户认为,一公里内志愿任务是他们可以接受的距离,并不会引起他们的反感,因此,在此,任务的距离将被定义在一公里之内。

(三)基于位置的任务推荐

在获得了相应的影响每个用户接受推荐的客观指标之后,就是进行相应的任务推荐。推荐的具体步骤:

(1)轮询用户获取用户位置信息。可以从上述的指标看出,用户与任务之间的距离是志愿者是否接受任务最主要考虑的信息,因此,通过不断地获取用户的地理位置信息,计算数据库中是否存在一公里以内其他人发起的志愿任务,如果存在则转至下一步,否则不进行推荐;

(2)查询数据库,获取用户曾经接受过的任务、所加入的群组以及在注册时填写的爱好内容,这些内容对于新用户来有可能不存在,不过这些并不影响推荐;

(3)遍历步骤1中符合要求的所有备选任务,采用分值计算法来计算每个任务的分数;分值计算法是一个基于权重的方法,对于不同的任务有不同的计算方法,具体是:首先计算用户与任务地点的距离,距离的权重值最高,具体为1000-distance)/20.0,即如果任务与用户距离为700米,则这个结果为15分;接着如果用户加入了任务所发布的群组,则再加上6分;如果这个任务是用户在注册时填写的爱好内容,则再加上4分;如果这个任务是用户在接受过的内容,则再加上2分;最后则是任务的悬赏积分,权重最低,为score/2.5分;

(4)将上述分值计算法中分数最大的任务选出,并推荐给相应的用户。

本发明的有益效果:

1、全面的分析和量化了用户、志愿任务的特征与关系,构建出的指标更加全面;

2、提供一种准确性更高的基于位置的微互助推荐方法;

3、帮助志愿者以最小的额外付出来完成志愿活动,有利于长效机制的建立。

附图说明

图1是本推荐方法索构建的结构化数据框架。

图2是基于推荐方法实现的平台的整体架构图。

图3是本推荐方法中影响推荐因素的构成。

图4是任务推荐方法的具体流程图。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图3及实施实例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

实施例:采用智能手机作为志愿者用户的终端设备,以windows平台下的eclipse和osx系统下的xcode分别开发android以及ios手机客户端的开发,选用mysql作为后台的数据库,采用java和objective-c作为编程语言,研究开发了基于位置的微互助平台来实现对志愿任务的发布、接收、推荐等任务。

如图1所示,面对志愿者接受任务的具体场景,首先建立了基于用户、活动等的结构化数据模型,主要包括了用户、群组、任务、推荐、通知等几大模型,这些模型共同保障了系统基础数据模型的完整性。

图2是微互助平台的整体框架图,微互助平台的主要分为四层结构,从上到下分别是界面层、中间的核心逻辑层和模型层以及底层的数据层。界面层作为与用户交互的展示界面,主要是展示平台的信息。逻辑层和模型层是整个系统的中间层,也是系统核心的部分:模型层是上述提及的模型建立过程。核心逻辑层主要是有保障系统安全的安全机制、激励用户的激励机制以及核心的推荐策略所构成。而数据库层则是承担着存放平台中产生数据的作用,包括相关的基本信息表如任务表、用户表以及相关的关系表,为平台提供基础服务。

图3是影响用户接受任务的一些因素,其中上下文信息中的距离是由系统不断向用户轮询并自动计算获得的,偏好则是用户在平台注册账号时填写的,分数则是残疾人发布任务时预先填写好的,群组则是志愿者用户在日常交互过程中加入的。系统通过抽取这些上下文信息,结合当前的任务列表以及目标用户的历史数据,生成相应的推荐任务。

图4则是具体的任务推荐方法的流程图,首先筛选出附近存在的符合要求的任务,如果有则进行利用分值计算法来得出最符合用户的任务将其推荐。同时将相应的推荐结果存储在数据库中,以便后续在进行推荐。

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