我正在实现一个标签系统类似于StackOverflow标签系统,但我只是想知道如何获取相关标签和定义标签之间的关系权重,如任何“相关标签”列表中的任何像这样的标签页https://stackoverflow.com/questions/tagged/php他们通过2个或更多标签之间的共同出现来定义关系权重如何构建标签系统像stackoverflow
我如何在PHP/MySQl中执行此操作来为标签“X”定义最相关的标签并将所有权重保持为用户添加越来越多的帖子/问题的日期?
我正在实现一个标签系统类似于StackOverflow标签系统,但我只是想知道如何获取相关标签和定义标签之间的关系权重,如任何“相关标签”列表中的任何像这样的标签页https://stackoverflow.com/questions/tagged/php他们通过2个或更多标签之间的共同出现来定义关系权重如何构建标签系统像stackoverflow
我如何在PHP/MySQl中执行此操作来为标签“X”定义最相关的标签并将所有权重保持为用户添加越来越多的帖子/问题的日期?
你可能想看看统计数据如下:
至于步骤5的更多信息:这些信息只是变化很慢,所以你可以真正缓存这些东西,只有当你有时间时才能重新创建它。
你想到底是什么关系
conditional_probability(X, Y, P)
它告诉你如何可能(P)标签Y的,给予X. p在步骤4计算
我用这个博客输入calculating relative tag size within a cloud。你可以在整个可能或特定的发现集上使用这种算法。
代替存储数据库中所有标签的非规格化权重,我将它们缓存在我的(Ruby)进程中,并在添加/删除标签或进程重新启动时重建它们。
至于如何存放,一般希望:
一旦你的,一旦你有一个发现组项目的结果页面上,这是一个简单的加入和独特找出一套“相关”标签。
1每个帖子的ID可以被标记有一个或多个标签(PHP +其他标签)
2让我们回到每个标签都有相关的帖子ID
3的foreach帖子ID得到所有标签等以同样的方式比PHP
4只显示那些具有数比prticular号码以上(比如4000)
想想这个问题已经被标记为“mysql的”,“数据库设计”,“标签”和“标记”做你会看到你如何将PHP与其他标签相关联。
我想你应该在第五步中更加明确。 ;) – Bobby 2010-11-17 07:43:12
我会写这个作为一个SQL查询,但看看这个网站上的问题的数量(因此,标记引用),我怀疑每次有人想问一个问题时,它会产生如此多的计数和组。毕竟,这些信息经常被读取而不是被修改。 – AlexanderMP 2010-11-17 07:45:10