我对 word2vec 完全陌生,所以请多多包涵。我有一组文本文件,每个文件都包含一组推文,介于 1000-3000 之间。我选择了一个常用关键字(“kw1”),并希望使用 word2vec 为“kw1”找到语义相关的术语。例如,如果关键字是“apple”,我希望根据输入文件看到相关术语,例如“ipad”“os”“mac”……。因此,“kw1”的这组相关术语对于每个输入文件都是不同的,因为 word2vec 将在单个文件上进行训练(例如,5 个输入文件,在每个文件上运行 word2vec 5 次)。
我的目标是在给定通用关键字(“kw1”)的情况下为每个输入文件找到相关术语集,这些关键字将用于其他目的。
我的问题/疑问是:
- 将 word2vec 用于这样的任务是否有意义?考虑到输入文件的小尺寸,使用它在技术上是否正确?
我已经从 code.google.com 下载了代码:https ://code.google.com/p/word2vec/并且刚刚对其进行了试运行,如下所示:
time ./word2vec -train $file -output vectors.bin -cbow 1 -size 200 -window 10 -negative 25 -hs 1 -sample 1e-3 -threads 12 -binary 1 -iter 50
./distance vectors.bin
从我的结果中,我看到当我使用“距离”工具获取与“kw1”相关的术语时,我得到了很多嘈杂的术语(停用词)。所以我确实删除了停用词和其他嘈杂的术语,例如用户提及。但是我还没有看到 word2vec 需要清理输入数据的任何地方......?
如何选择合适的参数?当我更改“-window”、“-iter”等参数时,我看到结果(通过运行距离工具)变化很大。我应该使用哪种技术来找到参数的正确值。(我无法进行手动试验和错误,因为我将扩大数据集)。