@@ -19,18 +19,21 @@ def score_max(self, hypothesis: str, references: list[str]) -> float:
1919
2020 def validate_corpus_score_input (self , hypotheses : list [str ], references : list [list [str ]]):
2121 # This method is designed to avoid mistakes in the use of the corpus_score method
22- assert type (hypotheses ) == list , "Hypotheses must be a list"
23- assert type (references ) == list , "References must be a list"
22+ assert isinstance (hypotheses , list ) , "Hypotheses must be a list"
23+ assert isinstance (references , list ) , "References must be a list"
2424 if len (references ) > 0 :
2525 reference_type = type (references [0 ])
26- assert reference_type == list , f"References must be a list of lists (found list of { reference_type } )"
26+ assert reference_type in [list , tuple ], \
27+ f"References must be a list of lists or tuples (found list of { reference_type } )"
2728
2829 for reference in references :
2930 assert len (hypotheses ) == len (reference ), \
30- f"Hypotheses ({ len (hypotheses )} ) and reference ({ len (references )} ) must have the same number of instances"
31+ (f"Hypotheses ({ len (hypotheses )} ) and reference ({ len (reference )} ) "
32+ f"must have the same number of instances (references is ({ len (references )} ))" )
3133
3234 def corpus_score (self , hypotheses : list [str ], references : list [list [str ]]) -> float :
3335 # Default implementation: average over sentence scores
36+ # example: hypotheses=["hello"], references=[["hi"], ["hello"]]
3437 self .validate_corpus_score_input (hypotheses , references )
3538 transpose_references = list (zip (* references ))
3639 return sum (self .score_max (h , r ) for h , r in zip (hypotheses , transpose_references )) / len (hypotheses )
0 commit comments