Python Doc2Vec gensim,带监督数据预定义标签

Python Doc2Vec gensim,带监督数据预定义标签,python,gensim,supervised-learning,doc2vec,Python,Gensim,Supervised Learning,Doc2vec,我试图使用gensim的doc2vec创建一个模型,该模型将在一组文档和一组标签上进行训练。标签是手动创建的,需要放入培训计划中。到目前为止,我有两个列表:一个句子列表和一个与该句子对应的标签列表。我需要专门使用doc2vec。以下是我到目前为止所做的尝试 from gensim import utils from gensim.models import Doc2Vec tweets = ["A tweet", "Another tweet", "A third tweet", ... ,

我试图使用gensim的doc2vec创建一个模型,该模型将在一组文档和一组标签上进行训练。标签是手动创建的,需要放入培训计划中。到目前为止,我有两个列表:一个句子列表和一个与该句子对应的标签列表。我需要专门使用doc2vec。以下是我到目前为止所做的尝试

from gensim import utils
from gensim.models import Doc2Vec

tweets = ["A tweet", "Another tweet", "A third tweet", ... , "A thousandth-something tweet"]
labels_list = [1, 1, 3, ... , 16]

tagged_data = [tweets, labels_list]
model = Doc2Vec(size=20, alpha=0.025, min_alpha=0.00025, min_count=1, dm=1)
model.build_vocab(tagged_data)
for epoch in range(max_epochs):
    model.train(tagged_data, total_examples=model.corpus_count, 
epochs=model.iter)
    model.alpha -= 0.0002
    model.min_alpha = model.alpha

我在使用
model.build\u vocab(taged\u data)
的行中得到错误,即存在
AttributeError:“list”对象没有属性“words”
。我在谷歌上搜索了这个,它说要把它放到一个有标签的句子对象中,但如果我有预定义的标签,我不确定这是否有效。那么,有人知道如何将预定义标签放入doc2vec吗?提前感谢。

Doc2Vec的语料库应该是一个类似于gensim中包含的
TaggedDocument
示例类的对象集合:一个
单词
字符串标记列表和一个
标记
标记列表。(标签是通过训练从每个文本中学习的文档向量的关键,通常是唯一的文档ID,但也可以是在多个文档上重复的已知标签,或者是ID和标签。)

带有一个非标记字符串列表和一个标签列表的
标记的_数据
,与预期格式完全不同

您应该在gensim
docs/notebes
目录中查看并浏览一些关于
Doc2Vec
的Jupyter笔记本示例,例如
Doc2Vec lee.ipynb
Doc2Vec IMDB.ipynb
。也可以在线查看这些内容,例如:


此外,您可能不需要或不想多次调用
train()
,这很容易出错。(如果你从一个在线例子中复制了这种方法,那么这个例子可能已经过时了。)再调用一次,在
epochs
参数中使用您首选的培训通过次数。

Doc2Vec的语料库应该是一个类似于gensim中包含的
TaggedDocument
示例类的对象集合:具有
单词
字符串标记列表和
标记
列表。(标签是通过训练从每个文本中学习的文档向量的关键,通常是唯一的文档ID,但也可以是在多个文档上重复的已知标签,或者是ID和标签。)

带有一个非标记字符串列表和一个标签列表的
标记的_数据
,与预期格式完全不同

您应该在gensim
docs/notebes
目录中查看并浏览一些关于
Doc2Vec
的Jupyter笔记本示例,例如
Doc2Vec lee.ipynb
Doc2Vec IMDB.ipynb
。也可以在线查看这些内容,例如:

此外,您可能不需要或不想多次调用
train()
,这很容易出错。(如果你从一个在线示例中复制了这种方法,那么这个示例可能已经过时了。)在
epochs
参数中使用你喜欢的培训通过次数调用一次