首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >gensim word2vec访问输入/输出向量

gensim word2vec访问输入/输出向量
EN

Stack Overflow用户
提问于 2016-11-07 14:03:01
回答 4查看 4.8K关注 0票数 17

在word2vec模型中,有两个线性转换,将词汇空间中的单词转换到隐藏层( " In“向量),然后返回到词汇空间( "out”向量)。通常,这个输出向量在训练后被丢弃。我想知道在gensim python中是否有一种简单的方法来访问out向量?同样,我如何访问out矩阵?

动机:我想实现最近这篇论文中提出的想法:A Dual Embedding Space Model for Document Ranking

以下是更多细节。从上面的引用中,我们得到了以下word2vec模型:

这里,输入层的大小为$V$,词汇表的大小为$d$,隐藏层的大小为$d$,输出层的大小为$V$。这两个矩阵是W_{IN}和W_{OUT}。通常,word2vec模型只保留W_IN矩阵。在gensim中训练word2vec模型后,您会得到如下内容:

模型‘土豆’=-0.2,0.5,2,...

如何访问或保留W_{OUT}?这可能在计算上非常昂贵,我真的希望gensim中的一些内置方法可以做到这一点,因为我担心如果我从头开始编写它,它将不会提供良好的性能。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-11-13 03:20:02

虽然这可能不是一个恰当的答案(目前还不能评论),但没有人指出这一点,看看here。创造者似乎回答了一个类似的问题。此外,这也是你有更高机会得到有效答案的地方。

深入研究他在word2vec源代码中发布的link,您可以更改syn1删除以满足您的需要。只需记住在你完成后删除它,因为它被证明是一个内存消耗很大的东西。

票数 9
EN

Stack Overflow用户

发布于 2018-09-04 08:23:45

要获取任何单词的syn1,这可能会起作用。

代码语言:javascript
复制
model.syn1[model.wv.vocab['potato'].point]

其中model是经过训练的word2vec模型。

票数 2
EN

Stack Overflow用户

发布于 2016-11-12 23:55:52

下面的代码将启用保存/加载模型。它在内部使用pickle,可选地将模型的内部大型NumPy矩阵直接从磁盘文件映射到虚拟内存,以实现进程间内存共享。

代码语言:javascript
复制
model.save('/tmp/mymodel.model')
new_model = gensim.models.Word2Vec.load('/tmp/mymodel')

Gensim是一个免费的库,用于处理原始的、非结构化的数字文本(“纯文本”)。gensim中的算法,如潜在语义分析、潜在狄利克雷分配和随机投影,通过检查训练文档语料库中单词的统计共现模式来发现文档的语义结构。

一些很好的博客描述了这个项目的用法和示例代码库

安装参考here

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40458742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档