INNER CODE UNIT · Python
_get_MC_answers
AMontgomerie/question_generator · questiongenerator.py:217
def _get_MC_answers(self, correct_answer: Any, docs: Any) -> List[Mapping[str, Any]]:
"""Finds a set of alternative answers for a multiple-choice question. Will attempt to find
alternatives of the same entity type as correct_answer if possible.
"""
entities = []
for doc in docs:
entities.extend([{"text": e.text, "label_": e.label_}
for e in doc.ents])
# remove duplicate elements
entities_json = [json.dumps(kv) for kv in entities]
pool = set(entities_json)
num_choices = (
min(4, len(pool)) - 1
) # -1 because we already have the correct answer
# add the correct answer