Ranker

Ranker sorts the objects in the Corpus by a given scoring function and annotates the objects with their rankings.

Example usage: Ranking users in r/Cornell by the number of comments they have made.

class convokit.ranker.ranker.Ranker(obj_type: str, score_func: Callable[[convokit.model.corpusComponent.CorpusComponent], Union[int, float]], score_attribute_name: str = 'score', score_feat_name=None, rank_attribute_name: str = 'rank', rank_feat_name=None)

Ranker sorts the objects in the Corpus by a given scoring function and annotates the objects with their rankings.

Parameters:
  • obj_type – type of Corpus object to rank: ‘conversation’, ‘speaker’, or ‘utterance’
  • score_func – function for computing the score of a given object
  • score_attribute_name – metadata attribute name to use in annotation for score value, default: “score”
  • rank_attribute_name – metadata attribute name to use in annotation for the rank value, default: “rank”
summarize(corpus: convokit.model.corpus.Corpus, selector: Callable[[convokit.model.corpusComponent.CorpusComponent], bool] = <function Ranker.<lambda>>)

Generate a dataframe indexed by object id, containing score + rank, and sorted by rank (in ascending order) of the objects in an annotated corpus, with an optional selector selecting which objects to be included in the dataframe

Parameters:
  • corpus – annotated target corpus
  • selector – a (lambda) function that takes a Corpus object and returns True or False (i.e. include / exclude). By default, the selector includes all objects of the specified type in the Corpus.
Returns:

a pandas DataFrame

summarize_objs(objs: List[convokit.model.corpusComponent.CorpusComponent])

Generate a dataframe indexed by object id, containing score + rank, and sorted by rank (in ascending order) of the objects in an annotated corpus, or a list of corpus objects

Parameters:objs – list of annotated corpus objects
Returns:a pandas DataFrame
transform(corpus: convokit.model.corpus.Corpus, y=None, selector: Callable[[convokit.model.corpusComponent.CorpusComponent], bool] = <function Ranker.<lambda>>) → convokit.model.corpus.Corpus

Annotate corpus objects with scores and rankings.

Parameters:
  • corpus – target corpus
  • selector – (lambda) function taking in a Corpus object and returning True / False; selects for Corpus objects to annotate.
Returns:

annotated corpus

transform_objs(objs: List[convokit.model.corpusComponent.CorpusComponent])

Annotate list of Corpus objects with scores and rankings.

Parameters:objs – target list of Corpus objects
Returns:list of annotated COrpus objects