INNER CODE UNIT · Python
_prepare_qg_inputs_MC
AMontgomerie/question_generator · questiongenerator.py:195
def _prepare_qg_inputs_MC(self, sentences: List[str]) -> Tuple[List[str], List[str]]:
"""Performs NER on the text, and uses extracted entities are candidate answers for multiple-choice
questions. Sentences are used as context, and entities as answers. Returns a tuple of (model inputs, answers).
Model inputs are "answer_token <answer text> context_token <context text>"
"""
spacy_nlp = en_core_web_sm.load()
docs = list(spacy_nlp.pipe(sentences, disable=["parser"]))
inputs_from_text = []
answers_from_text = []
for doc, sentence in zip(docs, sentences):
entities = doc.ents
if entities:
for entity in entities:
qg_input = f"{self.ANSWER_TOKEN} {entity} {self.CONTEXT_TOKEN} {sentence}"
answers = self._get_MC_answers(entity, docs)
inputs_from_text.append(qg_input)