INNER CODE UNIT · Python
_split_into_segments
AMontgomerie/question_generator · questiongenerator.py:156
def _split_into_segments(self, text: str) -> List[str]:
"""Splits a long text into segments short enough to be input into the transformer network.
Segments are used as context for question generation.
"""
MAX_TOKENS = 490
paragraphs = text.split("\n")
tokenized_paragraphs = [
self.qg_tokenizer(p)["input_ids"] for p in paragraphs if len(p) > 0
]
segments = []
while len(tokenized_paragraphs) > 0:
segment = []
while len(segment) < MAX_TOKENS and len(tokenized_paragraphs) > 0:
paragraph = tokenized_paragraphs.pop(0)
segment.extend(paragraph)
segments.append(segment)