我想用Gensim的实施Word2Vec与作为输入,而不是句子上下文的单词对的列表。我本来以为进入手动创建上下文的单词对作为句子就相当于进入原句和窗口参数设置为1,但是这两种方法产生不同的结果。如何Gensim的Word2Vec计算句子的上下文的单词对,我应该怎么进入我的手动创建对作为输入的功能?使用gensim的Word2Vec自定义字上下文对
回答
您的意思是说,在提供原始句子与长window
与配对window=1
之间发生“不同的结果”?
假设您使用skip-gram和window=1
,您可以可以将较长句子中的对模拟为您自己的双令牌文本。那就是:
这句话...
['A', 'B', 'C', 'D']
...会产生window=1
训练对...
[('B', 'A'),
('A', 'B'), ('C', 'B'),
('B', 'C'), ('D', 'C'),
('C', 'D')]
而且,你会得到同样的训练,对你反而喂了Word2Vec window=1
句子:
['A', 'B']
['B', 'C']
['C', 'D']
但是,现在要注意r elative字频率已经改变 - 和词频率可以影响频繁字降频采样(用sample
参数作为控制)和负示例性选择(在缺省负采样模式)。仅此一项就意味着方法之间的结果将不尽相同。如果使用多个worker,即使您试图确定性地种植随机数生成器,操作系统线程调度(下面采样& negative-sampling)也涉及有意的随机性可能意味着不同运营商之间的工作进程不同,因此也有不同的配对顺序 - 考虑和随机使用。因此,每次运行(即使使用完全相同的参数,但使用多个工作线程),通过设计可以给出略微不同的结果。
最后,如果使用大于1的window
值,则算法会为每个目标词实际选择使用从1到您的值中随机选择的其他窗口大小。 (这样做的目的是为了更有效地提供更接近单词的重量,这种方法的效果与将某些缩放因子应用于更遥远的单词相同,但整体工作量较少,从而加快训练速度。)
因此,如果您试图模拟字对大于-1 window
值的,你不能创建的所有内窗词的幼稚的配对为您的新句子近似长句行为。你必须执行一个类似的随机窗口缩小。 (而且,你还是对整个字的频率的波动影响。)
不过,假设你有兴趣在这条道路,因为你真正的数据可能不是真实的,字排序自然语言中的句子,没有可能很重要。你可以尝试提供自己的合成对作为句子,无论你的最终目标是什么,仍然可以得到可接受的结果 - 你应该尝试一下,看看。对于原始的word2vec算法的窗口化或加权过程,没有什么神奇的证明 - 它只是做了一些有趣的事情。其他选择可能对其他类型的语料库同样好或更好。
- 1. 使用Gensim减少Google的Word2Vec模型
- 2. gensim word2vec - 用在线文字嵌入更新数组的尺寸
- 3. GenSim Word2Vec意外修剪
- 4. Gensim word2vec在python3失踪vocab
- 5. 什么是Gensim word2vec输出
- 6. Gensim word2vec在线培训
- 7. Gensim word2vec在预定义词典和词索引数据
- 8. 什么是gensim Word2Vec中的`null_word`参数?
- 9. gensim word2vec给出不一致的结果
- 10. 可视化gensim生成的word2vec
- 11. 使用a.all()或a.any()错误,而试图使用gensim word2vec
- 12. 从gensim获取重量矩阵word2Vec
- 13. Gensim Word2Vec模型:切割尺寸
- 14. gensim word2vec存取/导出向量
- 15. 如何在由gensim创建的word2vec上运行tsne?
- 16. 从gensim解释否定的Word2Vec相似度
- 17. 如何判断Gensim Word2Vec是否使用C编译器?
- 18. 使用映射重命名gensim Word2Vec单词
- 19. 在gensim word2vec模型中给出文字给定文字嵌入模型的概率
- 20. getsharedpreferences从自定义的edittext上下文
- 21. python word2vec使用环绕词的上下文相似性
- 22. WPF数字上下自定义控件
- 23. JSON-LD自定义上下文
- 24. 创建自定义上下文菜单
- 25. 自定义Mylyn上下文UI?
- 26. 自定义上下文菜单
- 27. Android上下文菜单自定义?
- 28. Android自定义上下文菜单
- 29. 创建自定义上下文菜单
- 30. Django与Jinja2 - 使用自定义上下文处理器