【问题标题】:Understanding the role of the function build_vocab in Doc2Vec了解 Doc2Vec 中函数 build_vocab 的作用
【发布时间】:2020-11-16 21:37:08
【问题描述】:

我最近开始研究 Doc2Vec 模型。 我已经了解了它的机制以及它是如何工作的。 我正在尝试使用 gensim 框架来实现它。 我已将我的训练数据转换为 TaggedDocument。 但我有一个问题: 这条线model_dbow.build_vocab([x for x in tqdm(train_tagged.values)])的作用是什么? 是创建代表文本的随机向量吗? 谢谢你的帮助

【问题讨论】:

    标签: nlp data-science gensim text-classification doc2vec


    【解决方案1】:

    Doc2Vec 模型在完全分配和初始化训练语料库之前需要了解几件事。

    首先,模型需要知道出现的单词及其频率——一个工作词汇表——以便它可以确定在应用min_count 地板后将保留的单词,并分配/初始化单词向量和相关词的内部模型结构。词频也将用于影响负词示例的随机采样(对于默认的负采样模式)和非常频繁的词的下采样(根据sample 参数)。

    此外,模型需要知道整个训练集的粗略大小,以便在每个 epoch 的过程中逐渐降低内部 alpha 学习率,并在日志输出中给出有意义的进度估计。

    build_vocab() 结束时,模型所需的所有内存/对象都已创建。根据底层算法的需要,所有向量都将被初始化为低幅度随机向量,以便为模型训练做好准备。 (通过训练,它基本上不会在内部使用更多内存。)

    此外,在build_vocab() 之后,词汇表被冻结:在训练(或以后的推理)期间出现的任何不在模型中的单词都将被忽略。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-05
      • 1970-01-01
      • 2021-07-09
      • 1970-01-01
      相关资源
      最近更新 更多