2个版本

0.1.2 2024年7月4日
0.1.0 2021年12月1日

#144 in 开发工具

25 每月下载量

MIT 许可证

30KB
635

Disco CLI

🔥 从CSV文件生成推荐

  • 支持基于用户和基于项目的推荐
  • 支持显式和隐式反馈
  • 使用高性能矩阵分解

也适用于RustRuby

Build Status

安装

下载最新版本

您也可以使用Homebrew

brew install ankane/brew/disco

或Cargo进行安装

cargo install disco-cli

快速入门

下载MovieLens 100k数据集并生成基于项目的推荐

disco download movielens-100k
disco item-recs movielens-100k.csv output.csv --factors 20
grep "^Star Wars" output.csv

使用方法

数据

创建一个包含您的数据的CSV文件。如果用户直接对物品进行评分,这被称为显式反馈。CSV文件应该有三个列:user_iditem_idrating

user_id,item_id,rating
1,post1,5
1,post2,3.5
2,post1,4

如果用户没有直接对物品进行评分(例如,他们购买物品或阅读帖子),这被称为隐式反馈。使用 value 代替 rating 并使用类似购买数量、页面浏览量或仅 1 的值。

user_id,item_id,value
1,post1,1
1,post2,1
2,post1,1

每个 user_id/item_id 组合应只出现一次。

基于用户的推荐

生成基于用户的推荐 - “喜欢类似用户的用户也喜欢”

disco user-recs data.csv output.csv

这会创建一个包含 user_idrecommended_item_idscore 列的CSV文件。

基于项目的推荐

生成基于项目的推荐 - “喜欢此项目的用户还喜欢”

disco item-recs data.csv output.csv

这会创建一个包含 item_idrecommended_item_idscore 列的CSV文件。

相似用户

生成相似用户

disco similar-users data.csv output.csv

这会创建一个包含 user_idsimilar_user_idscore 列的CSV文件。

算法

Disco使用高性能矩阵分解。

指定因子数和迭代次数

disco ... --factors 8 --iterations 20

选项

指定每个用户或商品的推荐数量

disco ... --count 10

数据集

下载数据集

disco download movielens-100k

支持的数据库包括

  • movielens-100k
  • movielens-1m
  • movielens-25m
  • movielens-latest-small
  • movielens-latest

历史记录

查看变更日志

贡献

鼓励每个人帮助改进这个项目。以下是一些你可以帮助的方式

开始开发

git clone https://github.com/ankane/disco-cli.git
cd disco-cli
cargo run

依赖关系

~7–18MB
~255K SLoC