问题标签 [word2vec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1070 浏览

java - 如何使用word2vec?

我必须用语料库中的单词制作词汇图。为此,我需要用 word2vec 制作一个程序。

问题是我对此很陌生。我已经尝试了 4 天来找到使用 word2vec 的方法,但我迷路了。我的大问题是我什至不知道在哪里可以找到 Java 中的代码(我听说过深度学习,但我在他们的网站上找不到文件),如何将它集成到我的项目中......

0 投票
1 回答
6567 浏览

cosine-similarity - word2vec,总和还是平均词嵌入?

我使用 word2vec 将一个小短语(3 到 4 个单词)表示为唯一向量,方法是添加每个单独的单词嵌入或计算单词嵌入的平均值。

从我所做的实验中,我总是得到相同的余弦相似度。我怀疑这与训练后由 word2vec 生成的词向量被归一化为单位长度(欧几里得范数)有关吗?或者我的代码中有错误,或者我遗漏了一些东西。

这是代码:

这是输出:

我正在使用此处定义的余弦相似度 Cosine Similarity (Wikipedia)。规范和点积的值确实不同。

谁能解释为什么余弦是一样的?

谢谢你,大卫

0 投票
6 回答
42511 浏览

python - 如何检查 word2vec 训练模型中是否存在密钥

我已经使用 Gensim 的文档语料库训练了一个 word2vec 模型。模型训练完成后,我正在编写以下代码来获取单词“view”的原始特征向量。

但是,我得到一个单词的 KeyError,这可能是因为它在 word2vec 索引的键列表中不作为键存在。在尝试获取原始特征向量之前,如何检查索引中是否存在键?

0 投票
0 回答
263 浏览

python - 在多处理中共享 gensim (numpy) 模型时出现 SystemError

我有许多独立的任务,它们读取但不写入相同的 gensim 模型,大小约为 3.6GB。(Gensim 是一个基于 numpy 构建的主题建模库。)所以我决定通过首先从文件中加载 gensim 模型来并行化它们:

然后将model作为参数传递给要运行的进程池doWork

当我运行这个脚本时(我在这里显示的两个部分是一个可运行的脚本;请复制),它卡在了pool.map线上并SystemError发生了。输出是:

在我将 gensim 引入我的程序之前,该错误从未发生过。(没有多处理的 Gensim 也适用于我。)我认为这可能与与底层 gensim 和 numpy (BLAS) 的 C 代码的互操作有关。我想知道这个错误的原因以及如何解决它。如果我不能将 gensim 与子处理一起使用,有什么替代方案?

我认为model不会被复制,因为我的操作系统(Mac OS X)应该使用写时复制策略。我也不认为它与内存同步有关,因为没有打印一行“开始工作”,即model我的代码没有访问过。错误在于将 传递model给子流程。

0 投票
2 回答
1847 浏览

python - 使用带有 gensim 的 freebase 向量

我正在尝试使用 Google 发布的 freebase 词嵌入,但我很难从 freebase 名称中获取单词。

有谁知道它是否存在某种表格来将 freebase 表示映射到它们所代表的单词中?

问候,

赫迪

0 投票
2 回答
3604 浏览

machine-learning - 在 Word2Vec 中合并预训练模型?

我已经下载了 1000 亿字的谷歌新闻预训练矢量文件。最重要的是,我还在训练我自己的 3gb 数据,生成另一个预训练的矢量文件。两者都有 300 个特征维度和超过 1GB 的大小。

我如何合并这两个巨大的预训练向量?或者我如何训练一个新模型并在另一个之上更新向量?我看到基于 C 的 word2vec 不支持批量训练。

我希望从这两个模型中计算词类比。我相信从这两个来源学习的向量会产生很好的结果。

0 投票
1 回答
3969 浏览

python - Doc2vec 内存错误

我正在使用来自 teh gensim 框架的 doc2vec 模型来表示 15 500 000 个短文档(最多 300 个单词)的语料库:

创建向量后,有超过 18 000 000 个向量表示单词和文档。

我想为给定项目找到最相似的项目(单词或文档):

但是当计算相似性时我得到一个 MemoryError :

我有一台 60GB Ram 和 70GB swap 的 Ubuntu 机器。我检查了内存分配(在 htop 中),我观察到内存从未被完全使用过。我还将python中可能锁定在内存中的最大地址空间设置为无限制:

有人可以解释这个 MemoryError 的原因吗?在我看来,可用内存应该足以进行此计算。python或操作系统中可能有一些内存限制吗?

提前致谢!

0 投票
1 回答
12804 浏览

python - 如何在非常大的数据集上训练 Word2vec?

我正在考虑在网络爬网转储上使用超过 10 TB+ 的大规模数据训练 word2vec。

我在 iMac 上亲自训练了 c 实现 GoogleNews-2012 转储(1.5gb)花了大约 3 个小时来训练和生成向量(对速度印象深刻)。虽然我没有尝试 python 实现:( 我在某处读到,在 300 个向量长度的 wiki 转储(11gb)上生成向量大约需要 9 天才能生成。

  1. 如何加速word2vec?我需要使用分布式模型或需要在 2-3 天内完成的硬件类型吗?我有 8gb 内存的 iMac。

  2. 哪个更快?Gensim python还是C实现?

我看到 word2vec 实现不支持 GPU 训练。

0 投票
2 回答
2204 浏览

gensim - Gensim word2vec 查找给定单词最近的单词

如何使用 gensim 的 word2vec 实现找到给定单词的 N 个最近单词。什么是 API?我在这里指的是跳过克。也许我错过了一些东西,我阅读了所有关于寻找相似词,找出奇怪的词等等......

在 DL4j 中,我有这个方法称为wordsNearest(String A, int n) which gives me the n-nearest words to A. 在 Gensim 中相当于什么?

0 投票
1 回答
396 浏览

python - 平均多个模型 Word2vec Gensim

我已经用 Python 训练了几百万Word2VecGensim单词。我想用新数据更新这个训练有素的模型。但是从您以前的帖子和网络上的其他资源中,我知道这是不可能的。所以我正在尝试创建多个模型并转储它们。现在我想合并我正在倾销的模型。我想使用这些转储的结果。我之前有一篇文章Merging pretrained models in Word2Vec? 但我不知道该怎么做。我开始知道有一个名为 deepdist 的库,我正在尝试查看一些实验:

  1. 有没有可能的解决方案?
  2. 如果有的话,有人可以建议怎么做?

我在 Windows 7 Professional 上使用 Python2.7。