AttributeError: у объекта "Tree" нет атрибута "words". Ошибка Doc2Vec
Я пытаюсь обучить встраиванию слова Doc2Vec в предварительно обработанные абзацы. Я удалил пунктуацию и провел токенизацию, pos-тег и chunking.
import nltk
from nltk import word_tokenize, pos_tag, ne_chunk
from gensim.models.doc2vec import Doc2Vec
ne_tree = ne_chunk(pos_tag(word_tokenize(sent_pun)))
model = Doc2Vec(ne_tree)
Я получаю сообщение об ошибке "AttributeError: объект" Дерево "не имеет атрибута" слова "" при запуске модели Doc2Vec. Что нужно сделать, чтобы исправить это? Спасибо.
1 ответ
Gensim Doc2Vec
нужен набор текстов, который вы предоставляете, чтобы быть повторяемой последовательностью объектов, каждый из которых имеет words
свойство (список строковых токенов) и tags
свойство (список имен тегов, обычно строковых токенов).
Пример класса TaggedDocument
в gensim - пример подходящего вида объекта. Очевидно, что ne_chunk()
не возвращается TaggedDocument
совместимые объекты.
Вы должны пройтись по рабочим примерам в документации / учебниках gensim, чтобы получить представление о том, как все должно работать. Смотрите, например:
https://github.com/RaRe-Technologies/gensim/blob/develop/docs/notebooks/doc2vec-lee.ipynb