【问题标题】:Doc2vec: model.docvecs is only of length 10Doc2vec:model.docvecs 的长度仅为 10
【发布时间】:2017-12-21 16:27:43
【问题描述】:

我正在为 600000 行句子尝试 doc2vec,我的代码如下:

model = gensim.models.doc2vec.Doc2Vec(size= 100, min_count = 5,window=4, iter = 50, workers=cores)
model.build_vocab(res) 
model.train(res, total_examples=model.corpus_count, epochs=model.iter)

#len(res) = 663406

#length of unique words 15581
print(len(model.wv.vocab))

#length of doc vectors is 10
len(model.docvecs)

# each of length 100
len(model.docvecs[1])

我如何解释这个结果?为什么向量的长度只有 10,每个大小为 100?当 'res' 的长度为 663406 时,它没有意义。我知道这里有问题。

Understanding the output of Doc2Vec from Gensim package 中,他们提到docvec 的长度由'size' 决定,这并不清楚。

【问题讨论】:

    标签: python nlp gensim doc2vec


    【解决方案1】:

    TaggedDocumenttags 应该是标签列表。如果您改为提供字符串,例如 tags='73215',则将被视为与字符列表相同:

    tags=['7', '3', '2', '1', '5']
    

    最后,整个训练集中只有 10 个标签,只有 10 位数字的各种组合。

    您的 len(model.docvec[1]) 为 100 意味着您在构建 TaggedDocument 训练数据时并没有完全犯这个错误,但可能是类似的错误。

    查看res 中的第一项,看看它的tags 属性是否有意义,以及每个model.docvecs,看看使用的是什么而不是你想要的。

    【讨论】:

      猜你喜欢
      • 2015-08-09
      • 1970-01-01
      • 2022-12-23
      • 2013-06-07
      • 1970-01-01
      • 1970-01-01
      • 2014-01-23
      • 2021-04-21
      • 2022-07-04
      相关资源
      最近更新 更多