我是tensorflow和word2vec的新手。我刚刚研究了word2vec_basic.py,它使用Skip-Gram
算法训练模型。现在,我想使用CBOW
算法进行训练。如果我简单地反转train_inputs
和train_labels
,就可以实现吗?
最佳答案
我认为CBOW
模型不能简单地通过翻转train_inputs
中的train_labels
和Skip-gram
来实现,因为CBOW
模型体系结构将周围单词的向量之和作为一个单独的实例用于分类器进行预测。例如,您应该一起使用[the, brown]
来预测quick
,而不是使用the
来预测quick
。
要实现CBOW,您必须编写一个新的generate_batch
生成器函数并汇总周围单词的向量,然后再应用逻辑回归。我写了一个示例,您可以引用:https://github.com/wangz10/tensorflow-playground/blob/master/word2vec.py#L105
关于python - Tensorflow:Word2vec CBOW模型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37394970/