我正在构建一个类似于 Reddit 的系统,用户可以在其中“喜欢”项目。 “喜欢”将用于确定项目的排名。还有一个“老化”因素,最近的“喜欢”比以前的“喜欢”更重要。
总而言之,它类似于描述的算法here .
我的问题是我需要确保结果排名中项目的多样性。每个项目都属于一个类别。某些类别可能特别受欢迎。我不希望首页(或第二页)的所有项目都属于类别 A,而其他类别的项目无处可寻。
那么,是否有任何聪明的算法可以确保此处结果的多样性——确保每个页面中都有不同类别的良好组合?
谢谢
最佳答案
对于每个类别,创建该类别中所有项目的排名。然后,当您生成提要时,您可以选择以不同方式组合各个排名。例如,您可以随机均匀地合并类别:对于提要中的每个位置,随机选择一个类别并从该类别中取出您尚未放入提要中的排名最高的项目。
关于algorithm - 有什么算法可以确保社交排名系统中的类别多样性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6688809/