Предположим, у меня есть набор данных с текстом и метками. Метки представляют собой двоичные целые, а текст представляет собой набор предложений переменной длины. В каждом предложении один ярлык, и в целом у меня 6400 предложений и 6400 ярлыков. Предложения могут варьироваться от 132 слов, цитат, восклицательных знаков, точек или запятых в предложении до 10.
Допустим, я токенизирую свой набор данных с помощью токенайзера SpaCy следующим образом:
TEXT = data.Field(sequential=True, lower=True, tokenize='spacy', include_lengths=True)
LABELS = data.Field(sequential=False, use_vocab=False)
Далее я хочу создать TabularDataset следующим образом:
train_data = data.TabularDataset(
path='data/train.tsv',
format='tsv',
skip_header=True,
fields=[('text', TEXT), ('label', LABELS)])
Я хочу, чтобы записи в train_data сортировались по длине предложения от самого длинного предложения (следовательно, наибольшее количество токенов) до самого короткого. Это возможно? Как мне это сделать, и в какой момент в вышеуказанной программе я это делаю?