【发布时间】:2010-08-10 05:32:06
【问题描述】:
如何将一组标签与我数据库中另一个帖子的标签进行比较以获取相关帖子?
我要做的是将帖子上的一组标签与另一个帖子的标签进行比较,而不是单独比较每个标签。因此,假设您想根据帖子中的标签获取真正相关的项目,然后从最相关到最不相关显示它们。无论关系级别如何,每次都必须显示三个相关项目。
帖子 A 的标签有:“建筑”、“木材”、“现代”、“瑞士”
帖子 B 的标签有:“建筑”、“木材”、“现代”
Post C 有标签:“建筑”、“现代”、“石头”
帖子 D 有标签:“建筑”、“房子”、“住宅”帖子 B 与帖子 A 的相关度为 75%(3 个相关标签)
帖子 C 与帖子 A 的相关度为 50%(2 个相关标签)
帖子 D 与帖子 A 的相关度为 25%(1 个相关标签)
我该怎么做?我目前正在使用 3-tables。
posts
> id
> image
> date
post_tags
> post_id
> tag_id
tags
> id
> name
我已经搜索了 Internet 和 Stack Overflow 以了解如何执行此操作。我最接近的发现是 How to find "related items" in PHP,但它实际上并没有为我解决太多问题。
【问题讨论】:
-
我已经用更清晰的问题更新了我的帖子。
-
你如何计算你的百分比?您期望从 A 与 B 的关系(而不是 B 与 A)中得到什么关系百分比? 100% 还是 75%?如果答案是 75%,那么在 B 中添加另一个不相关的标签会改变这种情况吗? B与C的关系如何? 66% 或 50%(2 个相关,2 个不相关)?
-
这是个好问题。我认为通过计算相关分数,结果会更好。我不知道计算标签是否无关的额外工作是否重要——不过这可能是有益的。