【问题标题】:tensorflow word2vec: parameters and preprocessingtensorflow word2vec:参数和预处理
【发布时间】:2017-10-19 15:00:08
【问题描述】:

我正在使用来自 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)?

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

谢谢。

【问题讨论】:

    标签: tensorflow word2vec word-embedding


    【解决方案1】:

    通常num_steps 越多,模型越好。您可以从num_steps 的一个值开始,并将其用作针对不同值的基准。您可以绘制lossnum_steps 的图,看看在num_steps 参数的某个阈值之后您的损失是否真的减少了。

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

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

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

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

    【讨论】:

    • @daria 我根据我的学习更新了我的答案,请检查它是否有帮助。
    猜你喜欢
    • 2014-07-07
    • 2017-01-22
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2019-06-17
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多