Torchtext TabularDataset: data.Field не содержит фактических импортированных данных?
Из документации Torchtext я узнал, что способ импортировать CSV-файлы - через TabularDataset. Я сделал это так:
train = data.TabularDataset(path='./data.csv',
format='csv',
fields=[("label",data.Field(use_vocab=True,include_lengths=False)),
("statement",data.Field(use_vocab=True,include_lengths=True))],
skip_header=True)
"label" и "Statement" - это имена заголовков 2 столбцов в моем CSV-файле. Я определил их как data.Field, но "label" и "Statement", похоже, на самом деле не содержат данных из моего CSV-файла, несмотря на то, что консоль без проблем распознала их как объекты полей данных. Я обнаружил эту проблему, когда попытался создать список вокабов с помощью Statement.build_vocab(train, max_size=25000). Я напечатал len(Statement.vocab), возвращаемое значение равно "2", что, очевидно, не отражает фактические данные в CSV-файле. Я сделал что-то не так при импорте данных CSV, или моя сборка Vocab выполнена неправильно? Есть ли отдельный метод для размещения данных в полевых объектах? Спасибо!!
1 ответ
Поля должны быть определены отдельно, как это
TEXT = data.Field(sequential=True,tokenize=tokenize, lower=True, include_lengths=True)
LABEL = data.Field(sequential=True,tokenize=tokenize, lower=True)
train = data.TabularDataset(path='./data.csv',
format='csv',
fields=[("label",LABEL),
("statement",TEXT)],
skip_header=True)
test = data.TabularDataset(path='./test.csv',
format='csv',
fields=[("label",LABEL),
("statement",TEXT)],
skip_header=True)