【发布时间】:2020-01-24 02:48:16
【问题描述】:
我正在使用 word2vec(和 doc2vec)来获取句子的嵌入,但我想完全忽略词序。 我目前正在使用 gensim,但如果需要,可以使用其他包。
例如,我的文字如下所示:
[
['apple', 'banana','carrot','dates', 'elderberry', ..., 'zucchini'],
['aluminium', 'brass','copper', ..., 'zinc'],
...
]
我有意将“apple”视为与“zucchini”和“banana”一样接近,因此我将窗口大小设置为一个非常大的数字,例如 1000。 我知道这可能会出现 2 个问题。
问题 1:
窗口可能滚动在句子的开头创建以下训练对:
('apple', ('banana')), ('apple', ('banana', 'carrot')), ('apple', ('banana', 'carrot', 'date')) 在它最终到达正确的 ('apple', ('banana','carrot', ..., 'zucchini')) 之前。
这似乎会使“苹果”更接近“香蕉”而不是“西葫芦”,
因为它们包含“apple”和“banana”的对比包含“apple”和“zucchini”的对要多得多。
问题 2: 我听说配对的采样与目标词到上下文词的距离成反比——这也导致了一个问题,使附近的词看起来比我想要的更紧密。
有解决问题 1 和 2 的方法吗? 我应该使用 cbow 而不是 sgns 吗?还有其他我应该注意的超参数吗? 在这种情况下,删除/忽略订单的最佳方法是什么?
谢谢
【问题讨论】: