tensorflow word2vec:参数和预处理

时间:2017-06-23 14:14:30

标签: tensorflow word2vec word-embedding

我使用https://github.com/tensorflow/tensorflow/blob/r1.2/tensorflow/examples/tutorials/word2vec/word2vec_basic.py中的word2vec_basic,我有一些(一般)问题。

我应该如何确定num_steps?在示例中,它设置为100001。

skip_window是5还是更大(10,25)?

此外,是否应从训练数据集中删除停用词和标点符号,并将所有单词转换为小写?

感谢。

1 个答案:

答案 0 :(得分:1)

通常num_steps越多,模型越好。您可以从loss的一个值开始,并将其用作针对不同值的基准。您可以绘制num_steps vs num_steps,并查看在skip_window参数的某个阈值后,您的损失是否真的在下降。

选择{{1}}取决于您选择的数据集类型。如果窗口大小为5可以捕获单词的上下文,但如果选择10,则会降低学习模型的质量,反之亦然。

我们举一个例子。考虑以下句子 - “Tensorflow程序员机器学习的优秀框架。”如果窗口大小为2,那么单词' Tensorflow '的向量会直接受到影响单词' great '和' framework ',但如果窗口大小为5' Tensorflow '可能会受到另外两个单词的影响 - “ ”和“机器学习”。因此,它会拉近两个单词的向量。

而且,就停用词而言,我建议删除停用词和标点符号,并将这些词转换为小写,因为它们会向数据集添加噪音,并且对上下文词没有太大的重要性。

您可以查看此link,以便更好地了解Google用于培训word2vec模型的数据。