我有一个字典,其中key和value是元组,其中key是(queryID,sentence),value是(score,documentID)(在key和value元组中,第一项是数字,第二项是字符串)。在
d={(1,'bla bla'):(10,'doc1'),(1,'yada yada'):(20,'doc2'),(2,'bla bla'):(30,'doc1'),(2,'more of the same'):(40,'doc3')}
我已经按查询ID对这个dict进行了分组,并按分数排序,因此对于每个查询ID,我都有按分数排序的项目。在
我想做的是为每个查询ID获取已经排序的dict中的前k项。 因此,如果查询ID=1有100个项目,qID=2也有相同的项目,我希望为每个项目获取排序后的dict中的前k个项目。 怎么能做到呢?在
这是我代码的一部分-为了得到排序的dict-
^{pr2}$
您只需遍历字典并附加一个结果数组。我想如果qID线性增加1:
这只适用于只有一个项目的最高分数,但它可以很容易地附加到工作的多个项目相同的分数。在
^{pr2}$我想这样的事情应该行得通。在
这将使用排序的_dict变量来获取与每个查询ID相关的前K个最高分数
相关问题 更多 >
编程相关推荐