Python Doc2Vec gensim,带监督数据预定义标签
我试图使用gensim的doc2vec创建一个模型,该模型将在一组文档和一组标签上进行训练。标签是手动创建的,需要放入培训计划中。到目前为止,我有两个列表:一个句子列表和一个与该句子对应的标签列表。我需要专门使用doc2vec。以下是我到目前为止所做的尝试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", ... ,
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和标签。)
带有一个非标记字符串列表和一个标签列表的标记的_数据
,与预期格式完全不同
您应该在gensimdocs/notebes
目录中查看并浏览一些关于Doc2Vec
的Jupyter笔记本示例,例如Doc2Vec lee.ipynb
或Doc2Vec IMDB.ipynb
。也可以在线查看这些内容,例如:
此外,您可能不需要或不想多次调用
train()
,这很容易出错。(如果你从一个在线例子中复制了这种方法,那么这个例子可能已经过时了。)再调用一次,在epochs
参数中使用您首选的培训通过次数。Doc2Vec的语料库应该是一个类似于gensim中包含的TaggedDocument
示例类的对象集合:具有单词
字符串标记列表和标记
列表。(标签是通过训练从每个文本中学习的文档向量的关键,通常是唯一的文档ID,但也可以是在多个文档上重复的已知标签,或者是ID和标签。)
带有一个非标记字符串列表和一个标签列表的标记的_数据
,与预期格式完全不同
您应该在gensimdocs/notebes
目录中查看并浏览一些关于Doc2Vec
的Jupyter笔记本示例,例如Doc2Vec lee.ipynb
或Doc2Vec IMDB.ipynb
。也可以在线查看这些内容,例如:
此外,您可能不需要或不想多次调用train()
,这很容易出错。(如果你从一个在线示例中复制了这种方法,那么这个示例可能已经过时了。)在epochs
参数中使用你喜欢的培训通过次数调用一次