【发布时间】:2025-12-26 13:50:12
【问题描述】:
数据结构:
User has many Profiles
(Limit - no more than one of each profile type per user, no duplicates)
Profiles has many Attribute Values
(A user can have as many or few attribute values as they like)
Attributes belong to a category
(No overlap. This controls which attribute values a profile can have)
示例/上下文:
我相信通过堆栈交换,您可以为一个用户拥有多个配置文件,因为每个交换站点的配置文件都不同?在这个问题中:
- 配置文件:视频,因此视频配置文件仅包含视频类别的属性
- 属性,因此视频类别中的属性可能是流派
- 属性值,例如喜剧、动作、惊悚都是属性值
配置文件和属性只是在两个级别上对属性值进行分组的方式。 没有分组(这是从 2. 开始的加权所需要的),关系只是 User hasMany Attribute Values。
问题:
给每个用户一个相似度评分与其他用户。
- 基于与用户关联的所有属性值的相似性。
- 平/一级
- 两个用户之间的属性值数量不等
- 每个用户只能选择一次属性值,所以不能重复
- 因此,具有余弦相似度的二进制字符串/布尔数组?
- 1 + 重量 配置文件
- 给每个配置文件一个权重(总共 1 个?)
- 计算出轮廓相似度,然后乘以权重并求和?
- 1 + 权重属性类别和配置文件
- 由于属性属于类别,类别可以加权
- 每个类别的相似度,加权总和,然后按配置文件相同?
- 或合并个人资料和类别权重
- 3 + 距离每个属性值
- 每个可能值与值的相似性距离表
- 而不是值的相似度 === 值
- “接近”属性有助于整体相似性。
- 不知道怎么做这个
花哨的代码和有用的功能很棒,但我真的很想完全了解如何完成这些任务,所以我认为通用伪代码是最好的。
谢谢!
【问题讨论】:
-
您是否需要完成所有这些任务,或者您只是将这些方法视为一个主要目标的可能解决方案(找到用户之间的相似性)?你能给我们一些背景吗?
-
这些是我考虑过的方法,1 是最简单的,4 是最复杂的。我想了解如何做每一个,所以是的,我需要所有这些,但是由于 1 会影响理解 2 等等,它们基本上都是一个解决方案的一部分。我愿意接受有关如何完成这些任务的任何建议,但我认为它们是我比较用户的最佳方式。
-
什么是属性和类别?你能提供一些例子吗?更一般地说,这些档案在现实生活中是什么?比如说,他们是来自 Fb、LinkedIn 等的个人资料还是什么?此外,您对权重的直觉是什么(对于个人资料和类别)。很抱歉问了这么多问题,但寻找相似之处总是取决于具体的设置和任务细节。
-
已添加到问题中。这有意义吗?
标签: algorithm match similarity weighted cosine-similarity