from typing import List, Tuple
import numpy as np
[docs]class PMF:
"""Probability mass function for re-ranking matrix."""
def __init__(self, rank_lists: List[List[str]], top_k: int) -> None:
"""Constructor for PMF instance.
Args:
rank_lists (List[List[str]]): Target ranking lists.
top_k (int): Re-ranking for `top_k` items to obtain a “better” ordering.
"""
self.rank_lists = rank_lists
self.top_k = top_k
self.initialize()
[docs] @staticmethod
def get_elements(rank_lists: List[List[str]]) -> List:
"""Get the list for unique elements.
Args:
rank_lists (List[List[str]]): Target ranking lists.
Returns:
List: List of unique elements from target.
"""
return list(set(sum(rank_lists, [])))
[docs] def initialize(self) -> None:
"""Initialize the PMF instance."""
self.pmf, self.unique_elements = self.initialize_uniform()