【问题标题】:Extracting top recommendations from multiple recommendation lists从多个推荐列表中提取顶级推荐
【发布时间】:2011-08-30 06:17:36
【问题描述】:

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

这是一个用例:

列表_A: {项目1,重量1} {项目2,重量1} {项目3,重量1} {项目4,重量1} {item5,weight1}

列表_B: {项目8,重量2} {项目5,重量2} {项目7,重量2} {项目2,重量2} {item6,weight2}

列表_C: {item11,weight3} {项目23,重量3} {项目34,重量3} {项目24,重量3} {item5,weight3}

列表_D: {项目9,重量4 {项目7,重量4 {项目3,重量4 {项目2,重量4 {item5,weight4

假设 weight1=10, weight2=5, weight3=3, weight1=2

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

谢谢。

【问题讨论】:

  • 试着找出最终的清单应该是什么,然后在问题中描述你用来这样做的所有步骤。
  • @asThiwanka:您可以通过单击答案旁边的箭头来投票赞成答案,您可以通过单击绿色复选标记来接受对您的问题最有帮助的答案。这有助于组织网站,也是感谢帮助您的人的一种方式。

标签: java algorithm list


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多