sourcecode/scoring/mf_core_scorer.py (64 lines of code) (raw):

from typing import Dict, List, Optional from . import constants as c from .mf_base_scorer import MFBaseScorer class MFCoreScorer(MFBaseScorer): def __init__( self, seed: Optional[int] = None, pseudoraters: Optional[bool] = False, useStableInitialization: bool = True, saveIntermediateState: bool = False, threads: int = c.defaultNumThreads, firmRejectThreshold: Optional[float] = 0.3, ) -> None: """Configure MFCoreScorer object. Args: seed: if not None, seed value to ensure deterministic execution pseudoraters: if True, compute optional pseudorater confidence intervals threads: number of threads to use for intra-op parallelism in pytorch """ super().__init__( includedGroups=c.coreGroups, includeUnassigned=True, captureThreshold=0.5, seed=seed, pseudoraters=pseudoraters, useStableInitialization=useStableInitialization, saveIntermediateState=saveIntermediateState, threads=threads, firmRejectThreshold=firmRejectThreshold, ) def get_name(self): return "MFCoreScorer" def _get_note_col_mapping(self) -> Dict[str, str]: """Returns a dict mapping default note column names to custom names for a specific model.""" return { c.internalNoteInterceptKey: c.coreNoteInterceptKey, c.internalNoteFactor1Key: c.coreNoteFactor1Key, c.internalRatingStatusKey: c.coreRatingStatusKey, c.internalActiveRulesKey: c.coreActiveRulesKey, c.noteInterceptMinKey: c.coreNoteInterceptMinKey, c.noteInterceptMaxKey: c.coreNoteInterceptMaxKey, c.numFinalRoundRatingsKey: c.coreNumFinalRoundRatingsKey, c.lowDiligenceNoteInterceptKey: c.lowDiligenceLegacyNoteInterceptKey, } def _get_user_col_mapping(self) -> Dict[str, str]: """Returns a dict mapping default user column names to custom names for a specific model.""" return { c.internalRaterInterceptKey: c.coreRaterInterceptKey, c.internalRaterFactor1Key: c.coreRaterFactor1Key, } def get_scored_notes_cols(self) -> List[str]: """Returns a list of columns which should be present in the scoredNotes output.""" return [ c.noteIdKey, c.coreNoteInterceptKey, c.coreNoteFactor1Key, c.coreRatingStatusKey, c.coreActiveRulesKey, c.activeFilterTagsKey, c.coreNoteInterceptMinKey, c.coreNoteInterceptMaxKey, c.coreNumFinalRoundRatingsKey, ] def get_helpfulness_scores_cols(self) -> List[str]: """Returns a list of columns which should be present in the helpfulnessScores output.""" return [ c.raterParticipantIdKey, c.coreRaterInterceptKey, c.coreRaterFactor1Key, c.crhCrnhRatioDifferenceKey, c.meanNoteScoreKey, c.raterAgreeRatioKey, c.aboveHelpfulnessThresholdKey, ]