Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在构建一个类似于 Reddit 的系统,用户“喜欢”项目。“喜欢”将用于确定项目的排名。还有一个“老化”因素,最近的“喜欢”比古代的“喜欢”更重要。
总而言之,它类似于此处描述的算法。
我的问题是我需要确保结果排名中项目的多样性。每个项目都属于一个类别。某些类别可能非常受欢迎。我不希望首页(或第二页)中的所有项目都属于 A 类,而其他类别的项目却无处可寻。
那么是否有任何巧妙的算法可以确保结果的多样性——以确保每个页面中不同类别的良好组合?
谢谢
对于每个类别,创建该类别中所有项目的排名。然后,当您生成提要时,您可以选择以不同方式组合各个排名。例如,您可以随机且均匀地合并类别:对于提要中的每个位置,随机选择一个类别并从该类别中获取您尚未放入提要中的最高排名项目。