Skip to content

基于JStarCraft RNS引擎,Spring Boot框架和公共数据集搭建的千人千面演示项目. 系统会根据用户的行为记录,自动调整用户的推荐内容和搜索内容.使用者可以通过该项目了解*推荐系统*与*搜索系统*的运作流程. 涵盖了个性化推荐与个性化搜索2个部分.

License

Notifications You must be signed in to change notification settings

HongZhaoHua/jstarcraft-example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

168 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JStarCraft Example


License Total lines

希望路过的同学,顺手给JStarCraft框架点个Star,算是对作者的一种鼓励吧!

目录


介绍

JStarCraft Example是一个基于JStarCraft RNS引擎引擎,Spring Boot框架和公共数据集搭建的千人千面演示项目.

系统会根据用户的行为记录,自动调整用户的推荐内容和搜索内容.使用者可以通过该项目了解推荐系统搜索系统的运作流程.

涵盖了个性化推荐与个性化搜索2个部分.


特性

个性化模型

本演示项目使用了以下8中个性化模型:

  • AssociationRule
  • MostPopular
  • Random
  • BPR
  • ItemKNN
  • LDA
  • UserKNN
  • WRMF

点击了解更多的个性化模型


安装

项目为了尽可能聚焦于个性化推荐和个性化搜索的演示,不包含任何多余组件的部署(例如MySQL/Redis/Spark/Elasticsearch).

JStarCraft Examlpe要求使用者具备以下环境:

  • JDK 8或者以上
  • Maven 3

安装JStarCraft-Core框架

git clone https://github.com/HongZhaoHua/jstarcraft-core.git

mvn install -Dmaven.test.skip=true

安装JStarCraft-AI框架

git clone https://github.com/HongZhaoHua/jstarcraft-ai.git

mvn install -Dmaven.test.skip=true

安装JStarCraft-RNS引擎

git clone https://github.com/HongZhaoHua/jstarcraft-rns.git

mvn install -Dmaven.test.skip=true

打包JStarCraft-Example项目

git clone https://github.com/HongZhaoHua/jstarcraft-example.git

mvn package -Dmaven.test.skip=true

使用

运行JStarCraft-Example项目

java -jar jstarcraft-example-1.0.jar

电影的个性化推荐与搜索

  1. 复制链接http://127.0.0.1:8080/movie.html到浏览器.
  2. 选择用户
  3. 选择模型
  4. 填写查询条件
  5. 选择是否过滤(已评价的条目)
    • 选择是,则相当于个性化推荐
    • 选择否,则相当于个性化搜索
  6. 点击个性化

个性化效果如图所示: movie

根据行为记录自动调整模型

用户可以通过点击评价:1 2 3 4 5对应的分数给条目打分,系统每隔5分钟会自动刷新模型.


架构


概念

推荐与搜索的本质


示例

词项查询

支持单词和语句:

  • 单词
  • 语句(使用双引号""包括)
Story
"Toy Story"

范围查询

支持指定最小值和最大值:

  • {}尖括号表示不包含最小值或最大值
  • []方括号表示包含最小值或最大值
[1990,2000}

通配符查询

支持在单词或者语句中结合通配符:

  • 使用?匹配单个字符
  • 使用*匹配0个或多个字符
te?t
te*t

模糊查询

test~

组合查询

支持多种逻辑操作符:

  • 使用&&实现交集操作
  • 使用||实现并集操作
  • 使用!实现差集操作
  • 使用()实现分组操作,形成更为复杂的逻辑查询
1990 || (Toy && Story)

对比


版本


参考


协议

JStarCraft Example遵循Apache 2.0协议,一切以其为基础的衍生作品均属于衍生作品的作者.


作者

作者 洪钊桦
E-mail 110399057@qq.com, jstarcraft@gmail.com

致谢

特别感谢LibRec团队在推荐方面提供的支持与帮助.

特别感谢陆徐刚在搜索方面提供的支持与帮助.


About

基于JStarCraft RNS引擎,Spring Boot框架和公共数据集搭建的千人千面演示项目. 系统会根据用户的行为记录,自动调整用户的推荐内容和搜索内容.使用者可以通过该项目了解*推荐系统*与*搜索系统*的运作流程. 涵盖了个性化推荐与个性化搜索2个部分.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published