如何根据“相似度”匹配标记项

时间:2008-11-25 07:37:17

标签: database tagging nearest-neighbor cosine

我有一个真正的问题。

我有一个包含模式的数据库,如下所示:

项目

  • id
  • 描述
  • 其他垃圾

代码

  • ID
  • 名称

item2tag

  • ITEM_ID
  • TAG_ID
  • 计数

基本上,每件商品都被标记为最多10件事,具有不同的数量。 items2tag中有50,000个项目和50,000个标签,以及大约500,000个条目。在给定一个项目的情况下,我想找到“最相似”的项目。

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

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

那么,你可以看一下线性代数给每个项目提供一个n维向量,然后计算项目之间的距离来找到最近的项目,但即使是很小的数据集也是如此。

这就是Google推出Map Reduce的原因。这可能是你最好的选择,但即便如此,这也是非常重要的。

- 亚当

答案 1 :(得分:0)

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