def reciprocal_rank_fusion( ranked_lists, k=60, ): fused_scores = {} for ranked_list in ranked_lists: for rank, document_id in enumerate( ranked_list, start=1, ): fused_scores[document_id] = ( fused_scores.get(document_id, 0) + 1 / (k + rank) ) return sorted( fused_scores.items(), key=lambda item: item[1], reverse=True, ) __ __