基于智能推荐的校园兼职招聘平台

3协同过滤算法简介

目前,推荐算法有很多种,可以应用于日常生活的许多领域,对大量数据进行处理和分析,然后进行分类。它将显示用户可能感兴趣的内容,这是推荐算法的主要功能之一[1]。

协同过滤算法通常包括两类:一类是基于用户的协同过滤算法,另一类是基于物品的协同过滤算法[2]。

3.1.1基于用户的协同过滤算法

根据用户的协同过滤算法的主要实现方式是,根据获取使用者的历史的一些活动统计(如使用者对职位的收集),并由此分析出使用者对某个工作类别的偏好,再根据判断用户偏好的重要程度,甚至是对某个工作类型的评价,把这种统计加以数字化,从而形成了使用者喜好的二维矩阵,同样的方法也可以用于其他应用,因此可以方便地使用找到相同的用户组,然后通过统计相似率计算用户之间的相似度,从而筛选出最相似的用户,类似用户首选且用户未收集的职位也推荐给用户[3]。然而⽤户有新⾏为,不⼀定会导致推荐结果的实时变化.

图3-1 基于用户的协同过滤原理

3.1.2基于物品的协同过滤算法

一个商品的协同过滤算法(ItemCF)是目前在业内运用得最为普遍的方法之一,在亚马逊、Netflix、以及YouTube的推荐方法的基本上都是采用ItemCF。它可以向客户介绍一个与他之前所感兴趣的东西类似的商品。比如:该方法会因你选择了《数据挖掘导论》而给你选择《机器学习》[4]。但是,ItemCF方法并不使用物体的内容属性统计物体内部的相似度,而主要是根据研究客户的行动记录统计物体内部的相似度。该方法还指出,商品A与商品B相互之间存在着较大相似度的原因,在于喜爱商品A的客户大都也喜爱商品B。

3.2 基于用户收藏的协同过滤算法实现

因为该课题是为了实现具有个性化推荐功能的校园兼职招聘平台,也因为利⽤用该⽤户的历史经验⾏为给⽤户提供了有理有据的推荐解释,如此才能够使⽤户⽐比较信服,所以本系统使用了基于物品的协同过滤算法,⽤户有新⾏为,它将导致用户的推荐结果发生实时变化[5]。基于物品的协同过滤算法的基础过程包括:

  1. 计算物品之间的相似度

基于余弦(Cosine-based)的计算方法,利用求二矢量间的角度余弦值来表达事物间的相似之处,方法为:其中分子是二矢量的内积,即二矢量相同距离的数字相乘。

公式 3-1

上述公式的分母是平均喜欢u项的用户数,分子是平均喜欢u项和v项的用户数。上述公式似乎非常合理,但如果V项非常流行,很多人都喜欢它,那么上面公式中的分子和分母将非常接近,w将非常接近1。也就是说,任何产品都是受欢迎的,即任何商品都和热门商品之间的相似度很高,这会导致ItemCF算法会总是推荐热门商品,这并不是一个好的设计[6]。因此可以采用下面的公式:

公式 3-2

  1. 按照商品的类似情况以及在校大学生的历史情况,给大学生形成选择清单

当构建起了物品的相似度矩阵以后,我们就要面对一个问题,便是怎样在多个相同的东西中选取用户最感兴趣的东西[7]。因此,ItemCF算法采用了下列公式方法统计用户u对物品j的感兴趣程度:

公式 3-3

上式中的N(u)是在校大学生喜欢的物品集合,S(j,K)是与物体j最接近的k个物体的组合,Wji是指物体j与i的接近程度,而Rui则是指在校大学生u对物体i的趣味。对上式的通俗意思是,对在校大学生u最喜欢的物品列表中的每一种物品i,都可以通过物品相似率矩阵找出与其最接近的K个物品,令为Kij,j=1,2,3,.K,然后通过物体的相同高度Wij来显示使用者对物体j的关心情况[12]。

最后将筛选出来的物品按照用户对其感兴趣程度逆序排序,取全体列表或者列表前K个物品推荐给用户,至此ItemCF算法完成[13]。

计算职位之间的相似度代码如下:

for(Recruit i:memberLove){
            for(Recruit j:allRecruits){

               if(i.getId()!=j.getId()){//去重(两集合相同的职位去除掉)
                  Search searchSim = new Search();
                  int loveInCommon = 0;
                  //计算共同喜欢职位ij的用户数
                  for(MemberCollect mci:i.getMemberCollect()){
                     for(MemberCollect mcj:j.getMemberCollect()){
                        if(mci.getMember().getId()==mcj.getMember().getId()){
                           loveInCommon++;
                        }}}
                  //职位相似度计算
                  double sim = (i.getMemberCollect().size()*j.getMemberCollect().size())==0?0:(loveInCommon/Math.sqrt(i.getMemberCollect().size()*j.getMemberCollect().size()));
                  matrix.add(new SimValue(i, j, sim));
               }}}

根据职位相似度计算各个职位的推荐度代码如下:

for(Recruit j:allRecruits){
            j.setTuimvalue(0);
            for(SimValue s:matrix){
               if(j.getId()==s.j.getId()){
                  j.setTuimvalue(j.getTuijianvalue()+s.sim);
               }}}

计算推荐集代码如下:

Collections.sort(allRecruits,new CompareItTuijian());
         int size=5;//推荐排名最高的5个
         if(allRecruits.size()<=size)size=allRecruits.size();
         int count=0;
         for(Recruit j:allRecruits){

获得所有用户收藏的职位集合A,去掉用户已收藏的职位形成集合B,建立职位相似度矩阵[14];计算共同喜欢职位i和j的用户数,再根据公式计算职位相似度。之后根据职位相似度计算各个职位的推荐度,计算并建立推荐集,按推荐度排序取前5个内容并且去除推荐度为0的职位。主要代码运行结果如下:

  1. 计算相似度部分,以一位用户为例

图3-2 相似度计算结果

  1. 计算推荐度部分过程,以一位用户为例

图3-3 推荐度计算结果

  1. 推荐结果,不同用户各不相同

第4章 概要设计

4.1 系统总体设计结构

此系统主要分为4个功能模块:

1、学生用户端模块

校园兼职招聘平台的学生用户模块包括新用户的注册登录,学生可以进行职位检索、查看详情、发布简历、收集职位、评估职位、创建和删除简历,以及查看已发布简历的状态与企业反馈的信息等操作。

2、企业用户端模块

校园兼职招聘平台的企业用户模块包括企业信息的编辑,职位的发布与删除,以及查看学生的求职简历,并且给予反馈等操作

3、系统管理员端模块

系统管理员可以控制所有用户的有关权限,同时对所有客户的有关资料和所有客户的有关资料进行控制,并能够对系统的行业信息进行控制

4、智能推荐模块

主要是协同过滤算法的实现,通过算法进行智能的为不同用户推送相应职位

功能模块图如图4-1所示:

图4-1 功能模块图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2981784.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

ARP 攻击神器:ARP Spoof 保姆级教程

一、介绍 arpspoof是一种网络工具&#xff0c;用于进行ARP欺骗攻击。它允许攻击者伪造网络设备的MAC地址&#xff0c;以欺骗其他设备&#xff0c;并截获其通信。arpspoof工具通常用于网络渗透测试和安全评估&#xff0c;以测试网络的安全性和漏洞。 以下是arpspoof工具的一些…

数智亚运,为什么需要智能电子桌牌?

近日&#xff0c;杭州亚运会博物馆正式对公众开放&#xff0c;深度还原了杭州从申请办、筹办至举办亚运会的各个精彩历程。馆内有“亚运与杭州”、“亚运与亚洲”“亚运与未来”三大板块展示区&#xff0c;展示了大量亚运会使用过的实物&#xff0c;还有当时引人注目的数字科技…

遥测终端赋能水库泄洪监测预警,筑牢度汛安全防线!

4月10日&#xff0c;水利部召开水库安全度汛视频会议。会议要求着力强化水库防洪“四预”措施&#xff0c;加快构建雨水情监测预报“三道防线”&#xff0c;完善预警信息发布机制&#xff0c;推进数字孪生水利工程建设&#xff0c;为科学调度指挥决策提供支持。强调坚决牢牢守住…

大模型应用RAG系列(1)初识RAG

题外话 之前我们在讲大模型的应用方向和架构时&#xff0c;有提到RAG、Agent、Fine-Tune。在作者写大模型专题的文章时&#xff0c;也是边学习&#xff0c;边梳理&#xff0c;边总结。在这个过程中&#xff0c;大模型在各个方向都不断地快速发展&#xff0c;对应的paper、理论…

25计算机考研院校数据分析 | 上海交通大学

上海交通大学电子信息与电气工程学院成立于2001年12月&#xff0c;其前身可湖源至百年前的电机专科&#xff0c;具有中国电气工程师“摇篮”之美称。50年代根据学科发展需要分为电工与计算机科学系(三系)和电子工程系(四系)。1985年&#xff0c;三系和四系合并&#xff0c;成立…

机器学习之sklearn基础教程

ChatGPT Scikit-learn (简称sklearn) 是一个非常受欢迎的Python机器学习库。它包含了从数据预处理到训练模型的各种工具。下面是一个关于如何使用sklearn进行机器学习的基础教程。 1. 安装和导入sklearn库 首先&#xff0c;你需要安装sklearn库&#xff08;如果你还没有安装的…

嬴图| ISO/IEC-GQL国际图语言标准发布,图技术开启新纪元

GQL作为继SQL之后的第二个数据库查询语言国际标准&#xff0c;近日正式发布。这标志着图技术开启新纪元——图时代即将到来&#xff01; 同时&#xff0c;这也预示着将有越来越多的组织采用“图”来解决各种复杂问题&#xff0c;更意味着SQL系统与负载将逐渐转向GQL&#xff0…

Fork for Mac v2.42 激活版 Git客户端

Fork for Mac是一款运行在Mac平台上的Git客户端&#xff0c;Fork Mac版具备基本的取、推、提交、修改、创建和删除分支和标签、创建和删除远程备份等功能&#xff0c;还有实用的差异查看器&#xff0c;你可以通过清晰的视图快速发现源代码中的更改。 Fork for Mac v2.42 激活版…

Java八股文4-Linux篇

Linux篇 Linux中常见命令&#xff1a;Linux常见命令 1.free命令-查看内存状态 free命令用于显示内存状态&#xff0c;它可以提供关于系统内存使用情况的详细信息。这个命令会显示出内存的使用情况&#xff0c;包括实体内存、虚拟的交换文件内存、共享内存区段&#xff0c;以及…

【网盘源码】百度云盘手动cookie获取,添加到扫码系统管理平台。

一.获取cookie步骤 1.谷歌浏览器选择开发者模式。 2.选择网路&#xff0c;过滤接口main 3.选择request head&#xff0c;cookie列表里面可查看二.添加到管理平台。 1.登录管理平台&#xff0c;输入账户和密码 2.选择账户设置&#xff0c;添加cookie。 4.复制卡密链接&#xff…

k8s calico vxlan式详解

之前的文章讲了k8s ipip模式的使用以及流量路径&#xff0c;本篇文章主要是来讲解一下vxlan 模式下pod 流量是如何通信的。 一、ipip模式转vxlan 修改calico backend参数 将calico_backend参数由bird设置为vxlan,因为vxlan部署不使用bgp 修改calico controllers的configmap…

【GitHub】2FA认证(双重身份验证)

GitHub 2FA认证&#xff08;双重身份验证&#xff09; 写在最前面一、使用 TOTP 应用程序配置双2FA&#xff08;双因素身份验证&#xff09;1. 介绍2. github3. 认证 官网介绍小结 & 补充 &#xff1a;权限不足or验证码错误问题 &#x1f308;你好呀&#xff01;我是 是Yu欸…

统一SQL 支持Oracle CHAR和VARCHAR2 (size BYTE|CHAR)转换

统一SQL介绍 https://www.light-pg.com/docs/LTSQL/current/index.html 源和目标 源数据库&#xff1a;Oracle 目标数据库&#xff1a;Postgresql&#xff0c;TDSQL-MySQL&#xff0c;达梦8&#xff0c;LightDB-Oracle 操作目标 在Oracle中的CHAR和VARCHAR2数据类型&…

3月8日是星期六

突然有查询特殊条件日期的需求。 <html> <title>3月8日是星期六</title> <center> <h1 id"h1"></h1> <div id"div"></div> </center> <script> var weekday [星期日, 星期一, 星期二, 星期…

三款数据可视化工具深度解析:Tableau、ECharts与山海鲸可视化

在数字化时代&#xff0c;数据可视化工具成为了企业和个人进行数据分析和决策的重要助手。市面上众多数据可视化工具各具特色&#xff0c;本文将为您介绍三款热门的数据可视化工具&#xff0c;帮助您更好地理解和利用数据。 首先&#xff0c;让我们来认识Tableau。Tableau是一款…

智谱AI通用大模型:本地部署ChatGLM3-6B开源大模型

目录 一、ChatGLM3介绍 二、环境配置和检查 2.1 操作系统 2.2 硬件环境 2.3 软件环境 三、本地源码部署 3.1 克隆源码 3.2 下载模型文件 3.3 安装依赖 3.4 代码调用 四、运行Demo 4.1 设置本地模型环境变量 4.2 Gradio 网页版 Demo 4.3 Streamlit 网页版 Demo …

架构师系列-Nginx、OpenResty(一)- 基本使用配置

Nginx 模块 高度模块化的设计是 Nginx 的架构基础&#xff0c;Nginx 服务器被分解为多个模块&#xff0c;每个模块就是一个功能模块&#xff0c;只负责自身的功能&#xff0c;模块之间严格遵循“高内聚&#xff0c;低耦合”的原则。 核心模块 核心模块是 Nginx 服务器正常运行…

【Python学习】面向对象

面向对象 1.初识对象1.1 生活中数据的组织1. 2 程序中数据的组织1.3 使用对象组织数据1.4进行对比 2. 成员方法2.1 类的定义和使用2.2 成员变量和成员方法2.2.1 成员变量2.2.2 成员方法的定义语法2.2.3 self 的作用 3. 类和对象3.1 面向过程3.2 面向对象 4.构造方法4.1 属性成员…

是德软件89600 RFID使用笔记

文章目录 1、进入RFID软件&#xff1a;2、RFID软件解调设置项3、如何查看一段指令数据 本文是日常工作的笔记分享。 lauch VSA&#xff08;矢量频谱分析&#xff09;后会出现以下界面&#xff1a; 当然这是因为频谱仪的输入有信号才显示如下&#xff1a; 否则就显示频谱仪的噪…

MIGO行项目屏幕增强

MIGO行项目屏幕增强 一、增强描述 由于在事务码MIGO中存在的字段中没有能够满足客户需求的字段&#xff0c;所以需要在事务码MIGO的屏幕中添加一个新的页签用来保存物料凭证中行项目增加的字段。 通过查找BADI的程序ZDEMO_BADI,输入参数MIGO后&#xff0c;得到对应BADI为MB_M…