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

标签 php mysql database-design tags tagging

我正在实现一个类似于 StackOverflow 标签系统的标签系统,但我只是想知道如何获取相关标签并定义标签之间的关系权重,例如任何标签页中的“相关标签”列表 https://stackoverflow.com/questions/tagged/php他们通过 2 个或更多标签之间的共现来定义关系权重

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

最佳答案

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

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

关于第 5 步的更多信息:此信息变化非常缓慢,因此您可以真正缓存这些东西,只有在有时间时才重新创建。

你最终想要的是一种关系

conditional_probability(X, Y, P)

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

关于php - 如何构建像 stackoverflow 这样的标记系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4202375/

相关文章:

php - 如何允许下载暂停/恢复?

php - 获得上个月的第一天和最后一天的最佳方式?

java - Hibernate如何使用外键向表添加新行

mysql - 如何构建数据库模式以允许 "1 in a million"情况?

php - 正确设置我的 mysql 表

php - 同时向 PostgreSQL 和 MySQL 插入相同的数据

php - 注释未插入 MySQL 表中

php - 如何使用 FPDI 设置 PDF 页面的大小

mysql - 请根据提到的行数告诉我哪个查询是有效的

database - 数据建模:父类(super class)型/子类型