java - 从多个推荐列表中提取热门推荐

标签 java algorithm list

我有四个推荐列表,假设列表是 A、B、C、D。 每个列表都有相同数量的项目,并表示为键值对。但是我需要为列表 A 的元素赋予比列表 B 更高的优先级(权重),依此类推。最终我需要从四个列表中选择最好的一组项目作为最终推荐。

这是一个用例:

列表_A: {item1,weight1} {item2,weight1} {item3,weight1} {item4,weight1} {item5,weight1}

列表_B: {item8,weight2} {item5,weight2} {item7,weight2} {item2,weight2} {item6,weight2}

列表_C: {item11,weight3} {item23,weight3} {item34,weight3} {item24,weight3} {item5,weight3}

列表_D: {item9,weight4 {item7,weight4 {item3,weight4 {item2,weight4 {item5,weight4

假设权重1=10,权重2=5,权重3=3,权重1=2

根据这些列表,最终列表应该将“item5”作为第一项,因为它存在于所有四个列表中。如何获得这四个列表的其他最佳推荐?

谢谢。

最佳答案

如果我没理解错的话,这应该有点简单。在更高层次上,您需要一个数据结构作为

Map<Item, Map<List, Integer>>其中最后一个整数是 number_of_occurrences。一旦你有了,就可以直接乘以 number_of_occurrences * weight 并将它与生成的值一起扔到 TreeMap 中(这里也可以使用优先级队列)

现在您可以从 TreeMap 中获得前 n 个列表。

关于java - 从多个推荐列表中提取热门推荐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6082480/

相关文章:

java - 如何使用 Java API 将文件从一个 HDFS 文件夹复制到另一个 HDFS 文件夹?

c++ - 最大数据包数

python - 将列表分成随机大小的 block 的最佳方法?

javascript - 检查用户是否分配给特定插槽

algorithm - 最好的最短路径算法

list - 如何为 Grid (2d List) 类型制作 indexedMap 函数?

python - 如何归一化一个计数器并组合 2 个归一化的计数器? - Python

java - 尝试将不在周末的日子添加到 fechaProceso(localDate) Java

java - ArrayList.add 方法的时间复杂度是多少?

java - 有什么方法可以将 String 作为可变方法传递给方法吗?