【问题标题】:How to match Tagged items based on "similarity"如何根据“相似性”匹配标记项目
【发布时间】:2008-11-25 07:37:17
【问题描述】:

我有一个真正的问题。

我有一个架构如下的数据库:

项目

  • 身份证
  • 说明
  • 其他垃圾

标签

  • 身份证
  • 姓名

item2tag

  • item_id
  • tag_id
  • 计数

基本上,每个项目最多被标记为 10 个事物,具有不同的计数。 items2tag中有50,000个项目和50,000个标签,大约有500,000个条目。给定一个项目,我想找到“最相似”的项目。

“最相似”是指具有最相似标签组合的项目......如果某件事“酷”是“有趣”的两倍,我想找到所有其他几乎“酷”是他们“有趣”的两倍。当然,这应该适用于 10 个标签,而不仅仅是 2 个。

有什么想法吗?

【问题讨论】:

    标签: database tagging nearest-neighbor trigonometry


    【解决方案1】:

    好吧,您可以查看线性代数,为每个项目提供一个 n 维向量,然后计算项目之间的距离以找到最接近的项目,但即使是小型数据集,这也相当复杂。

    这就是 Google 提出 Map Reduce 的原因。这可能是您最好的选择,但即便如此,它也不是微不足道的。

    -亚当

    【讨论】:

      【解决方案2】:

      鉴于您将项目标签关系表示为向量, 你所拥有的是nearest-neighbor search 的一个实例。 您可以在Collaborative Filtering 的字段中找到指针。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-10
        • 1970-01-01
        • 1970-01-01
        • 2012-12-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多