3 个版本
0.1.2 | 2024年4月27日 |
---|---|
0.1.1 | 2024年4月27日 |
0.1.0 | 2024年4月25日 |
#2703 in 解析实现
63 每月下载量
29KB
371 行
reco-forge 项目
小组名称:开拓者香蕉
小组成员:Juno Kim (jkim826), James Kendrick (jameslk3)
如何运行我们的项目
克隆 git 仓库(推荐)
- 克隆 GitHub 仓库
- 运行 "cargo run --example description" 或 "cargo run --example item"
- 您还可以使用 sample-json 目录中的其他提供的 JSON 文件
安装包
- 将以下行添加到您的 Cargo.toml 文件中:reco-forge = "0.1.2" 或运行 "cargo add reco-forge"
- 请参考此处的文档来编写您自己的代码或简单地复制示例
- 您可以选择根据要求创建自己的 JSON 文件,或者使用 git 仓库下 sample-json 中的文件
- 我们推荐 sample-json/movies/movies_clean_10.json,因为它提供了最高质量的描述,并且文件也较小(大型甚至中型文件需要很长时间)
简介
-
描述:reco-forge 是一个包,为用户提供生成个性化推荐系统的接口。
-
目标/目标:了解自然语言处理的工作原理,以及如何将其用于改进推荐系统,并使用序列化/反序列化来构建算法的节点。
-
为什么我们选择这个想法:我们选择这个想法是因为我们想了解自然语言处理和与推荐系统相关的有趣数据结构和算法。此外,这个想法特别适用于我们两人都感兴趣的视频游戏和电影等主题,但它可以应用于任何具有描述的物品组合。
技术概述
完成于检查点 1(4/3 - 4/7)
- 为了初始化我们将用于推荐系统基础的数据结构,我们需要用户以指定的 JSON 架构提供他们的数据集。此架构将包含物品名称、描述以及可选的用于过滤的标签列表。
- 我们将反序列化 JSON 到节点,每个节点将代表一个物品。
- 节点将有一个字段用于描述的向量表示。这些嵌入将由预训练的自然语言处理模型生成。
完成于检查点 2(4/17 - 4/21)或最终截止日期(5/1)
- 然后我们将构建将要被我们的选择算法操作的数据结构,目前我们还在决定。当前的想法是一个包含聚类的基于图算法。聚类的形成将通过节点之间的相似性来确定,使用像余弦相似度或欧几里得距离这样的度量。
- 推荐系统创建完成后,我们将拥有属于我们crate的函数,允许用户与系统交互。获取推荐的反向输入将是一个描述。这个描述将被转换成一个密集向量,然后我们的算法将返回相似的节点。可选地,可以使用包含在任何节点中的标签/进行结果过滤。如果时间允许,还可以允许用户从数据集中选择他们喜欢的东西,然后我们的系统可以直接跳转到找到那些节点并确定相似的事物。
可能的挑战
- 选择最佳的数据结构和算法,以确保在广泛类别的准确性、高性能和合理的复杂度。
- 确定如何与预训练的NLP模型和Rust工具交互。
依赖项
~23–36MB
~564K SLoC