Torchtext AttributeError: у объекта 'Example' нет атрибута 'text_content' - PullRequest
2 голосов
/ 08 марта 2019

Я работаю с RNN и использую Pytorch & Torchtext.У меня проблема со сборкой Vocab в моем RNN.Мой код выглядит следующим образом:

TEXT = Field(tokenize=tokenizer, lower=True)
LABEL = LabelField(dtype=torch.float)

trainds = TabularDataset(
    path='drive/{}'.format(TRAIN_PATH), format='tsv',
    fields=[
        ('label_start', LABEL),
        ('label_end', None),
        ('title', None),
        ('symbol', None),
        ('text_content', TEXT),
    ])

testds = TabularDataset(
    path='drive/{}'.format(TEST_PATH), format='tsv',
    fields=[
        ('text_content', TEXT),
    ])

TEXT.build_vocab(trainds, testds)

Когда я хочу построить Vocab, я получаю эту досадную ошибку:

AttributeError: 'Example' object has no attribute 'text_content'

Я уверен, что нет пропавших без вести text_content припис.Я сделал try-catch, чтобы отобразить этот конкретный случай:

try:
    print(len(trainds[i]))
except:
    print(trainds[i].text_content)

Удивительно, но я не получаю никакой ошибки, и эта специальная команда печати показывает:

['znana', 'okresie', 'masarni', 'walc', 'y', 'myśl', 'programie', 'sprawy', ...]

Так что это указывает существует text_content атрибут.Когда я выполняю это на меньшем наборе данных, это работает как шарм.Эта проблема возникает, когда я хочу работать с правильными данными.У меня кончились идеи.Может быть, у кого-то был похожий случай, и он может объяснить это.

Мой полный след:

AttributeError                            Traceback (most recent call last)
<ipython-input-16-cf31866a07e7> in <module>()
    155 
    156 if __name__ == "__main__":
--> 157     main()
    158 

<ipython-input-16-cf31866a07e7> in main()
    117             break
    118 
--> 119     TEXT.build_vocab(trainds, testds)
    120     print('zbudowano dla text')
    121     LABEL.build_vocab(trainds)

/usr/local/lib/python3.6/dist-packages/torchtext/data/field.py in build_vocab(self, *args, **kwargs)
    260                 sources.append(arg)
    261         for data in sources:
--> 262             for x in data:
    263                 if not self.sequential:
    264                     x = [x]

/usr/local/lib/python3.6/dist-packages/torchtext/data/dataset.py in __getattr__(self, attr)
    152         if attr in self.fields:
    153             for x in self.examples:
--> 154                 yield getattr(x, attr)
    155 
    156     @classmethod

AttributeError: 'Example' object has no attribute 'text_content'

Ответы [ 2 ]

0 голосов
/ 22 июля 2019

Эта проблема возникает, когда поля не передаются в том же порядке, что и в файле csv / tsv. Порядок должен быть таким же. Также проверьте, не указаны ли дополнительные или меньшие поля, чем в файле csv / tsv.

0 голосов
/ 11 марта 2019

У меня была такая же проблема.Причина заключалась в том, что некоторые строки в моем входном наборе данных CSV были пустыми.

...