in paq/generation/question_generator/generator.py [0:0]
def generate_question(self, data: Union[str, List[str]]):
"""
Generate question for a single input sequence or a batch of input sequences.
"""
if isinstance(data, str):
data = [data]
all_records = self.pipeline(
data,
return_text=True,
# return_scores=True,
clean_up_tokenization_spaces=True,
max_length=self.max_question_len,
min_length=3,
num_beams=self.num_beams,
num_return_sequences=self.num_return_sequences,
**self.kwargs
)
assert len(all_records) == len(data) * self.num_return_sequences
generated_questions = [r["generated_text"].strip() for r in all_records]
scores = [r.get("score", None) for r in all_records]
batched_questions = [
generated_questions[i:i + self.num_return_sequences]
for i in range(0, len(generated_questions), self.num_return_sequences)
]
batched_scores = [
scores[i:i + self.num_return_sequences]
for i in range(0, len(scores), self.num_return_sequences)
]
return batched_questions, batched_scores