我使用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)?
此外,是否应从训练数据集中删除停用词和标点符号,并将所有单词转换为小写?
感谢。
答案 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模型的数据。