首页 > 其他分享 >推荐系统实现-笔记(2)

推荐系统实现-笔记(2)

时间:2024-03-21 09:44:40浏览次数:26  
标签:计算 推荐 系统 笔记 标题 过滤 相似 语料

推荐系统实现(1)

推荐系统Demo实现笔记:

系统概述

本推荐系统采用基于内容的推荐算法,旨在为用户提供与其已收藏内容相似的新内容推荐。系统设立了两级过滤机制,以提高推荐的准确性和实用性。第一级过滤根据语料自身的标签进行推荐,第二级过滤则基于第一级过滤得到的标签,计算每个类别中语料标题与所有收藏语料标题的相似度,推荐相似度最高的几个语料。

一级过滤机制

一级过滤机制根据语料自身的标签进行推荐,具体步骤如下:

获取用户已收藏的语料列表List<Favorites> favoriteCorpusList。

通过对favoriteCorpusList中不同标签进行数量排序。

将数量靠前的tag,从语料库中获取所有包含该标签的语料,形成初始候选语料列表。

根据用户的收藏行为和标签信息,对候选语料列表进行筛选和排序,生成推荐列表。

二级过滤机制

二级过滤机制基于一级过滤得到的候选语料列表,计算候选语料列表中每个语料标题与所有收藏语料标题的相似度,推荐相似度最高的几个语料。具体步骤如下:

对于数量靠前的每个类别(一级过滤后的类别),遍历其中的每个语料corpus。

对于每个corpus,计算其标题与所有收藏语料的标题的相似度排除与当前corpus相同的语料。

将计算得到的相似度值进行排序,最后取相似度值最高的几个语料作为推荐结果。

实现细节

相似度计算方法:采用Levenshtein(莱文斯坦距离)距离计算两个标题之间的相似度。(目前效果并不理想,待完善)

推荐结果展示:将推荐结果传递给前端页面,供用户浏览和选择。

Demo效果截图:

问题与反思:

目前的推荐系统实现的推荐效果很差,主要问题是:

二级过滤中采用的标题之间相似度计算算法比较粗糙。

语料内容和收藏内容不够丰富,因为目前语料平台中主要还是真题类语料占主体,这类语料标题格式和类容都比较类似。

后续改进思路:

方案一:改进二级过滤中的相似度算法,探索更适合本平台的相似度算法。

方案二:二级过滤更改为基于语料的内容计算相似度,这里的相似度计算可以采用更智能的方式实现。

相似度算法改进可以尝试similarity相似度计算工具包,可用于文本相似度计算、情感倾向分析等,Java编写。项目地址:https://github.com/shibing624/similarity。

整体的探索方向为WordNet词网研究JWS——Java WordNet Similarity。

标签:计算,推荐,系统,笔记,标题,过滤,相似,语料
From: https://www.cnblogs.com/Hygge1024/p/18086652

相关文章

  • 基于Java的桃花峪滑雪场租赁系统(Vue.js+SpringBoot)
    目录一、摘要1.1项目介绍1.2项目录屏二、功能模块2.1游客服务2.2雪场管理三、数据库设计3.1教练表3.2教练聘请表3.3押金规则表3.4器材表3.5滑雪场表3.7售票表3.8器材损坏表四、系统展示五、核心代码5.1查询教练5.2教练聘请5.3查询滑雪场5.4滑雪场预......
  • Linux系统连接手机USB网络共享后无法联网
    如题,离线安装了ubantu系统的服务器的所有网口都设置了静态ip,通过usb口外接手机usb网络共享后,通过ipaddr命令查看,发现usb0网卡没有拿到ip,通过尝试可以用以下命令解决sudodhclientusb0usb0重新向dhcp服务器请求ip,ipaddr看到获取到ip后可以pingbaidu.com试下,如果还......
  • C#笔记-异常处理
    一、引言1、什么是异常异常是程序运行时发生的不正常或错误情况。异常会打断程序的正常流程,导致程序终止或产生不可预测的结果。2、为什么要处理异常提高程序的健壮性和稳定性。提供友好的错误提示,提升用户体验。方便开发者定位和修复问题二、C#中的异常处理机制1、tr......
  • 毕业设计——基于facenet实时人脸识别系统的设计与实现+源码+综述
    如需完整源码,可以联系博主获取技术路径:opencv+mtcnn+facenet+python+tensorflow,实现局域网连接手机摄像头,对目标人员进行实时人脸识别一、引言随着信息技术的飞速发展,人脸识别技术已成为身份验证、安全监控等领域的核心技术之一。实时人脸识别系统,以其高效、准确的特点,......
  • WPF 添加系统托盘
    提问WPF如何添加系统托盘回答1.引入nugethandycontrolcsxmlns:hc="https://handyorg.github.io/handycontrol"2.窗体添加控件cs<hc:NotifyIconx:Name="NotifyIconContextContent"Text="软件名称"ContextMenu="{StaticResourceContextMenu}&qu......
  • 项目管理平台-01-jira 入门介绍 缺陷跟踪管理系统,为针对缺陷管理、任务追踪和项目管理
    拓展阅读Devops-01-devops是什么?Devops-02-Jpom简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件代码质量管理SonarQube-01-入门介绍项目管理平台-01-jira入门介绍缺陷跟踪管理系统,为针对缺陷管理、任务追踪和项目管理的商业性应用软件项目管理平台-01-Phab......
  • 基于Java+Springboot技术仓库管理系统的实现+项目全套源码+完整文档源码说明+毕业论文
    摘 要现如今,许多企业存在的问题:信息化不足,计算机使用率不高,大量的日常工作皆是手工处理,因此工作效率低,企业内部沟通不良等等问题很难克服。要提升企业竞争力,企业内部信息化是不可缺少的一个步骤。所以要实施先进的自动化系统,实现企业内部信息管理、共享及交流,才能让企业在......
  • 免费分享一套SpringBoot+Vue大学新生报到管理系统,帅呆了~~
    大家好,我是java1234_小锋老师,看到一个不错的SpringBoot+Vue大学新生报到管理系统,分享下哈。项目视频演示【免费】SpringBoot+Vue大学新生报到管理系统Java毕业设计_哔哩哔哩_bilibili【免费】SpringBoot+Vue大学新生报到管理系统Java毕业设计项目来自互联网,免费开源分享,严......
  • Kotlin,简直是 Java 的 Pro Max!(笔记3 进阶篇)
    目录拓展拓展函数拓展属性运算符重载operator高阶函数通过高阶函数,模拟实现标准函数apply内联函数inlinenoinlinecrossinline泛型泛型类泛型方法限定泛型类型模拟实现apply标准函数(泛型版)泛型高级特性回顾Java中的协变和逆变Kotlin的协变和逆变委托......
  • 多元统计分析课程笔记
    多元统计分析(数据分析)课程的笔记,主要内容为理论,公式推导以及例题。                                 ......