我正在尝试训练在预处理段落上嵌入的Doc2Vec单词。我删除了标点符号,并进行了标记化,pos标签和分块。
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)
当我运行Doc2Vec模型时,出现错误“ AttributeError:'Tree'对象没有属性'words'”。应该怎么做才能纠正这个问题?谢谢。
答案 0 :(得分:0)
Gensim Doc2Vec
需要您提供的文本语料库成为对象的可迭代序列,每个对象都有一个words
属性(字符串标记列表)和tags
属性(标签列表)名称,通常是字符串标记)。
gensim中的示例类TaggedDocument
是一种合适的对象的示例。显然ne_chunk()
不会返回兼容TaggedDocument
的对象。
您应该逐步阅读gensim docs / tutorial-notebooks中的工作示例,以了解事物应该如何工作。参见例如:
https://github.com/RaRe-Technologies/gensim/blob/develop/docs/notebooks/doc2vec-lee.ipynb