大数据分析设计-基于Hadoop运动项目推荐系统

一、项目介绍
  随着生活水平的提高,人们的健康意识越来越强。但是目前人们日常运动持续性还是比较差,为了改变这一现状。我们研究设计了基于Hadoop的运动推荐项目系统。系统通过统计分析用户运动信息,获取大众用户的运动习惯,设计人们感兴趣的运动模式,以提高人们的运动积极性。系统包含了体育项目信息、项目分类、体验反馈等功能。能够让用户随时随地查看各种运动项目信息的同时,用户还可以自己进行在线交流等,管理员作为系统的维护员可以对系统上各项相关信息进行管理。总体来说系统是通过Hadoop架构搭建,中间件使用的是tomcat服务器,数据库管理平台采用开源的Mysql,前端使用的主要是jsp页面展示技术。通过测试,该需要能够较好的完成设定的目标。

关键词:运动项目推荐;用户体验;MySQL;Hadoop

二、开发环境
Hadoop后端+HTML前端+大数据屏——>Hadoop、HTML、大数据屏
————————————————

三、功能介绍
2.2功能需求分析

运动项目推荐系统的主要目的分为三个。
首先:可以通过该系统可以很好的整合和发布体育项目的相关信息。以前通过传统的项目查询以及体验反馈的方式有个最大的问题就是信息查询、反馈方式繁琐,而且各种信息容易丢失,有了这样一个运动项目推荐系统,那么则可以很容易的把所有的运动项目信息都放到数据库中,如果再对数据库进行备份处理,那么这样就可以很好的对运动项目信息进行保存。
其次:运动项目推荐系统提供了一个用户和用户,用户与管理员进行互动交流的系统,用户可以通过注册获取一个帐户,查询运动项目相关的信息,进行体验反馈等。在这个系统中,用户之间可以进行随时查询、交流等。
再次:该系统需要很好的功能扩充性和可维护性。由于该系统是涉及的用户比较多,对管理员来说同样也是一个信息管理系统,包括用户信息,公告信息,运动项目信息等。而且,随着用户数量的增加,必然对程序的更新迭代要求更高,所有在开发的时候就需要注意程序的可维护性和可拓展性。

2.3用例分析
运动项目推荐系统中的管理员角色主要负责了如下功能操作。
(1)公共管理功能需求:站点管理包括了轮播图,公告栏两部分,管理员可以对这两部分进行添加,修改,删除和查询等。
(2)用户管理功能需求:用户管理部分包括了管理员,注册用户两部分,管理员可以对这两部分进行添加,修改,删除以及查询等。
(3)信息管理功能需求:内容管理部分包括了体育项目管理、项目分类、体验反馈等,管理员可以对其进行管控。

图2-1管理员角色用例图
运动项目推荐系统中的注册用户角色主要负责了如下功能操作。
(1)注册登录功能需求:没有账号的用户,可以输入账号,密码,昵称,邮箱等信息进行注册操作,注册后可以输入账号和密码进行登录。
(2)公告信息功能需求:用户可以登录系统后点击导航栏的“公告信息”进行公告浏览查看。
(3)体育资讯功能需求:用户可以查看系统发布的最新体育资讯信息操作。
(4)体育项目功能需求:用户可以在体育项目栏查看以及搜索具体某项体育运动的信息等。


图2-2用户角色用例图

运动项目推荐系统的整体架构确定以后,再来看运动项目推荐系统的主要功能模块图。整体的功能模块包括前台和后台,前台只要实现了注册用户功能,主要的页面,包括首页,体育资讯,体育项目,公告信息等页面。后台的模块主要实现了管理员用户功能,有登录、公共管理、用户管理、信息管理等。确定了模块以后,再设计各个模块的功能特点,方便抽取出各个模块的公共部分来。


图3.1运动项目推荐系统功能模块图

四、核心代码
部分代码:


# -*- coding: utf-8 -*-
import os
import importlib

services_abspath_arr = []
services_arr = []
services_dir_ = os.getcwd() + "\\hadoop"

# 遍历模块文件(绝对路径)加到services_abspath_arr数组


# 选择服务函数
def service_hadoop_select(str):
    for service_item in services_arr:
        if str.capitalize() == service_item.__class__.__name__:
            return service_item


def foreach_file(path_name):
    for root, dirs, files in os.walk(path_name):
        for f in files:
            services_abspath_arr.append(os.path.join(root, f))


# 读取模块
# f:文件路径
def loadModule(f):
    # 将f变成相对路径
    f = f.replace(services_dir_ + "\\", "").replace(".py", "").replace("\\", "/")
    # print(f)
    mod = importlib.import_module(
        "jobs."+f.replace("/", ".")
    )
    arr_1 = f.split("/")
    cs_service = getattr(mod, arr_1[len(arr_1) - 1].capitalize())
    # service的class形式
    service = cs_service()
    services_arr.append(service)


foreach_file(services_dir_)

for f in services_abspath_arr:
    if f.find(".pyc") == -1 and f.find("__init__") == -1:
        # print(f)
        loadModule(f)


五、效果图

  • 12
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如今大数据已经成了各大互联网公司工作的重点方向,而推荐系统可以说就是大数据最好的落地应用之一,已经为企业带来了可观的用户流量和销售额。特别是对于电商,好的推荐系统可以大大提升电商企业的销售业绩。国内外的知名电商,如亚马逊、淘宝、京东等公司,都在推荐系统领域投入了大量研发力量,也在大量招收相关的专业人才。打造的电商推荐系统项目,就是以经过修改的中文亚马逊电商数据集作为依托,并以某电商网站真实的业务架构作为基础来实现的,其中包含了离线推荐与实时推荐体系,综合利用了协同过滤算法以及基于内容的推荐方法来提供混合推荐。具体实现的模块主要有:基于统计的离线推荐、基于隐语义模型的离线推荐、基于自定义模型的实时推荐,以及基于内容的、和基于Item-CF的离线相似推荐。整个项目具有很强的实操性和综合性,对已有的大数据和机器学习相关知识是一个系统性的梳理和整合,通过学习,同学们可以深入了解推荐系统在电商企业中的实际应用,可以为有志于增加大数据项目经验的开发人员、特别是对电商业务领域感兴趣的求职人员,提供更好的学习平台。适合人群:1.有一定的 Java、Scala 基础,希望了解大数据应用方向的编程人员2.有 Java、Scala 开发经验,了解大数据相关知识,希望增加项目经验的开发人员3.有电商领域开发经验,希望拓展电商业务场景、丰富经验的开发人员4.有较好的数学基础,希望学br习机器学习和推荐系统相关算法的求职人员

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值