【发布时间】:2016-11-01 20:12:46
【问题描述】:
Tensorflow 教程here 指的是它们的基本实现,您可以在 github here 上找到,Tensorflow 作者使用 Skipgram 模型实现 word2vec 向量嵌入训练/评估。
我的问题是关于 generate_batch() 函数中(目标,上下文)对的实际生成。
在this lineTensorflow 作者从单词滑动窗口中的“中心”单词索引中随机抽取附近的目标索引。
但是,他们also keep a data structure targets_to_avoid 首先添加了“中心”上下文词(当然我们不想对其进行采样),但在我们添加它们之后还添加了其他词。
我的问题如下:
- 为什么要从这个围绕单词的滑动窗口进行采样,为什么不直接使用循环并使用它们而不是采样呢?他们担心
word2vec_basic.py(他们的“基本”实现)中的性能/内存似乎很奇怪。 - 无论 1) 的答案是什么,为什么他们都 采样并跟踪他们使用
targets_to_avoid选择的内容?如果他们想要真正随机,他们会使用带替换的选择,如果他们想确保获得所有选项,他们应该首先使用循环并获得所有选项! - 内置的tf.models.embedding.gen_word2vec 也可以这样工作吗?如果是这样,我在哪里可以找到源代码? (在 Github 存储库中找不到 .py 文件)
谢谢!
【问题讨论】:
-
你找到答案了吗?如果是这样,您可以添加作为答案吗?
标签: python tensorflow word2vec