Сортировать записи TabularDataset по длине? - PullRequest
0 голосов
/ 22 апреля 2020

Предположим, у меня есть набор данных с текстом и метками. Метки представляют собой двоичные целые, а текст представляет собой набор предложений переменной длины. В каждом предложении один ярлык, и в целом у меня 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 сортировались по длине предложения от самого длинного предложения (следовательно, наибольшее количество токенов) до самого короткого. Это возможно? Как мне это сделать, и в какой момент в вышеуказанной программе я это делаю?

...