如何构建像stackoverflow这样的标记系统

D3V*_*PER 6 php mysql tags tagging database-design

我正在实现类似于StackOverflow标签系统的标签系统,但我只是想知道如何获取相关标签并定义标签之间的关系权重,如任何标签页中的"相关标签"列表,如/sf/ask/tagged/php/它们通过2个或更多标签之间的共现来定义关系权重

我如何在PHP/MySQl中为标签"X"定义最相关的标签,并在用户添加越来越多的帖子/问题时保持所有权重最新?

Dar*_*mas 2

您可能想查看这方面的统计数据:

  1. 给定标签 X
  2. 检查所有其他标签 Y
  3. 计算 Y 和 X 同时出现的频率
  4. 除以 Y 出现的频率
  5. ???
  6. 利润!!!

至于第 5 步的更多信息:此信息变化非常缓慢,因此您可以真正缓存这些内容,并且仅在有时间时重新创建它。

你最终想要的是一种关系

conditional_probability(X, Y, P)
Run Code Online (Sandbox Code Playgroud)

它告诉您在给定 X 的情况下,(P) 标签 Y 的可能性有多大。P 是在步骤 4 中计算的。

  • 我认为你应该在第五步中更加明确。;) (5认同)