我有一个网站,客户购买标有各种分类术语的项目。我想通过考虑与他们所购买的商品相关的标签来创建一组可能对相同商品感兴趣的顾客。每次我想要构建组时,我都想知道是否可以使用某种类型的评分来解决问题,而不是比较每个客户的标签列表。使用得分来查找客户
我在想它的方式,每个标签都会有一些独特的编号分配给它。当我执行评分操作时,它会提供一个只能通过组合一组特定标签才能实现的数字。
我可以定期更新客户的“分数”,以便它保持相关。
我在正确的轨道上吗?有任何想法吗?
我有一个网站,客户购买标有各种分类术语的项目。我想通过考虑与他们所购买的商品相关的标签来创建一组可能对相同商品感兴趣的顾客。每次我想要构建组时,我都想知道是否可以使用某种类型的评分来解决问题,而不是比较每个客户的标签列表。使用得分来查找客户
我在想它的方式,每个标签都会有一些独特的编号分配给它。当我执行评分操作时,它会提供一个只能通过组合一组特定标签才能实现的数字。
我可以定期更新客户的“分数”,以便它保持相关。
我在正确的轨道上吗?有任何想法吗?
您对问题的描述看起来更像集群或推荐问题。我不确定这些标签是否足以提供聚合或推荐困难的信息。
你对这个分数的想法对我来说看起来并不乐观,因为如果这些数字没有足够小心地选择,相同的总和可能以几种方式实现。
我建议你:
您可以为每个用户存储标签。当某些用户购买新商品时,您会将该商品的标签添加到用户的标签中。在定期时间,您将更新用户配置文件。假设我们有用户A和B.如果在更新时A和B之间的相似度大于某个阈值,那么您将在用户之间添加一个关系,表明这两个用户是相似的。如果它较低,则会删除关系(如果以前它们是相关的)。相似性可以是多个常见标签或num_common_tags/num_of_tags_assigned_either_in_A_or_B
。
稍后,当您希望获取具有特定标记集的用户时,您只需执行一个查询来检查哪些用户具有该组标记。您也可以通过查找哪些用户与相关用户链接来检查给定用户的类似用户。
如果您为每个标签分配一个唯一的2的幂数,那么您可以将与标签对应的值相加,并且具有完全相同标签集合的用户将获得相同的值。
red = 1
green = 2
blue = 4
yellow = 8
例如,只有谁拥有了一套{ red, blue }
客户将有5
这基本上是使用位图来表示一组的值。缺点是如果你有很多标签,你会很快用完整数。例如,如果您的(无符号)整数类型是四个字节,那么您将被限制为32个标签。有库和类可以让你表示更大的位集,但是在那个时候,可能值得考虑其他方法。
此方法的另一个问题是,它不会帮助您聚类相似但不完全相同的成员。
哇。让我把这一切都带入... – Ward
你的分数是什么意思? –
下面是我的意思的例子,但它不会这样工作:如果我有红= 1,蓝= 2,绿= 3,黄= 4,我可以看看任意组合的总和。问题是它不会是唯一的。红色和蓝色将是3,这也是绿色。如果我能得到结果是1个唯一的数字(分数),那么我可以比较分数而不是每个单独的标签。 – Ward
为什么总结而不仅仅是一个列表? –