【问题标题】:Doc2Vec model splits documents tags in symbolsDoc2Vec 模型将文档标签拆分为符号
【发布时间】:2018-04-05 11:40:24
【问题描述】:

我正在使用gensim 3.0.1

我有一个 TaggedDocument 列表,其中包含 "label_17" 形式的唯一标签,但是当我训练 Doc2Vec 模型时,它以某种方式将标签拆分为符号,因此 model.docvecs.doctags 的输出如下:

{'0': Doctag(offset=5, word_count=378, doc_count=40),
 '1': Doctag(offset=6, word_count=1330, doc_count=141),
 '2': Doctag(offset=7, word_count=413, doc_count=50),
 '3': Doctag(offset=8, word_count=365, doc_count=41),
 '4': Doctag(offset=9, word_count=395, doc_count=41),
 '5': Doctag(offset=10, word_count=420, doc_count=41),
 '6': Doctag(offset=11, word_count=408, doc_count=41),
 '7': Doctag(offset=12, word_count=426, doc_count=41),
 '8': Doctag(offset=13, word_count=385, doc_count=41),
 '9': Doctag(offset=14, word_count=376, doc_count=40),
 '_': Doctag(offset=4, word_count=2009, doc_count=209),
 'a': Doctag(offset=1, word_count=2009, doc_count=209),
 'b': Doctag(offset=2, word_count=2009, doc_count=209),
 'e': Doctag(offset=3, word_count=2009, doc_count=209),
 'l': Doctag(offset=0, word_count=4018, doc_count=418)}

但是在标记文档的初始列表中,每个文档都有自己唯一的标签。

模型训练的代码如下:

model = Doc2Vec(size=300, sample=1e-4, workers=2)
print('Building Vocabulary')
model.build_vocab(data)
print('Training...')
model.train(data, total_words=total_words_count, epochs=20)

因此,我无法像 model.docvecs['label_17'] 这样为我的文档编制索引并获取 KeyError

如果我将数据传递给构造函数而不是构建词汇表,也会发生同样的事情。

为什么会这样?谢谢。

【问题讨论】:

    标签: python-3.x gensim doc2vec


    【解决方案1】:

    Doc2Vec 期望文本示例、形状为TaggedDocument 的对象具有tags 属性,即标签列表

    如果你提供一个字符串,比如'label_17',它实际上是一个*list-of-characters*, so it's essentially saying thatTaggedDocument` 有标签:

    ['l', 'a', 'b', 'e', 'l', '_', '1', '7']
    

    确保将tags 设为一个标签列表,例如tags=['label_17'],您应该会看到训练标签方面的结果更符合您的预期。

    另外:您似乎有大约 200 个文档,每个文档大约 10 个单词。注意Word2Vec/Doc2Vec 需要大型、多样的数据集才能获得良好的结果。特别是只有 200 个文本但有 300 个向量维度,训练可以在训练任务(内部单词预测)上做得很好,只需要记住训练集的特性,这本质上是“过度拟合”并且不会导致其距离/排列表示可推广到其他示例的知识的向量。

    【讨论】:

    • 至于数据集大小,我知道这还不够,但目前所有可用的数据都可以解决问题。无论如何感谢您的评论!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    相关资源
    最近更新 更多