问题标签 [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 投票
0 回答
1185 浏览

python - NLP - 开放词汇词嵌入

如果我没有预定义的单词词典,如何将单词转换为向量(单词嵌入)?大多数词嵌入实现,如Word2vecGloVe都有一个固定的词词典。神经网络的输入是单热编码的,隐藏层的大小也取决于词汇的大小,这使得以后在不重新训练所有向量的情况下添加一个新词是不可能的。我需要一个为任意单词输入输出固定维度向量的网络。但是如何将“单词”输入到网络中呢?一种热编码是不可能的,因为我没有固定的单词词典。

将单词转换为三元向量或二元向量是否有效?三元向量已被用于句子嵌入(使用长短期记忆网络的深度句子嵌入),但我怀疑它是否同样适用于词嵌入,因为两种网络架构都发生了变化(词嵌入使用浅层网络而句子嵌入使用 RNN)和辅助任务。请帮忙。

笔记:

通过“转换为三元向量”,我的意思是:

  • 让输入单词为“CAT”在开头和结尾添加#s:“#CAT#”
  • 列出所有可能的三元组:#CA、CAT、AT#
  • 每个三元组都被转换为维度为 NxNxN 的一个热编码向量,其中 N 是我的字符集大小。例如,E("#CA") = {0,0,0,0,0,...,0, 1 ,0,0,0}
  • 将单词的每个三元组的一个热编码向量相加,得到单词的“三元组向量”。例如,trigram_vec("CAT") = {0,0,0,0,...0, 1 ,0,0,...0,0, 1 ,0,...0,0, 1 ,0 ,0,0,0}

提前感谢您的帮助!

0 投票
1 回答
1081 浏览

nlp - Doc2Vec:用于训练模型的反馈循环的最佳实践

我正在学习 Doc2Vec 和 gensim 库。我已经能够通过创建一个文档语料库来训练我的模型,例如

请注意,此特定文档有两个标签,即“LABELED_10”和“0”。

现在在我加载我的模型并执行之后

我明白了

这是完美的!因为我得到了与 LABELED_10 最相似的所有标签。

现在我想在训练我的模型时有一个反馈循环。因此,如果我给我的模型一个新文档,我想知道模型的分类在标记并将该文档添加到我的语料库之前的好坏。我将如何使用 Doc2Vec 来做到这一点?那么我怎么知道 LABELED_107 和 LABELED_10 的文档实际上是否相似。这是我想到的一种方法。这是我的随机森林分类器的代码

这是功能

最后我能做到

反馈过程

  1. 保留一个正确标记的验证集。

  2. 删除标签后将标记的验证集提供给分类器并将结果保存在 csv 中。

  3. 将结果与另一个具有正确标签的 csv 进行比较。

  4. 对于每个不匹配,将这些文档添加到标记的训练集中并再次训练模型。

  5. 重复更多验证集。

这种方法正确吗?另外,我可以增量训练 doc2vec 模型吗?可以说,最初我用 100k 标记文档训练了我的 doc2vec 模型。现在在验证步骤之后,我需要在另外 10k 个文档上训练我的模型。我必须从一开始就训练我的模型吗?这意味着我需要再次在最初的 100k 标记文档上训练我的模型吗?

我真的很感激你的见解。

谢谢

0 投票
2 回答
1064 浏览

word2vec - 从 deeplearning4j 和 word2vec 获得不同的结果

我使用 Google 的 word2vec 训练了一个词嵌入模型。输出是一个包含单词及其向量的文件。

我在 deeplearning4j 中加载了这个训练有素的模型。

但是从 deeplearning4j 的包和 word2vec 的距离函数得到的两个相似词列表是完全不同的,尽管我使用了相同的向量文件。

有人对 deeplaring4j 中的工作方式以及这些差异的来源有很好的了解吗?

0 投票
3 回答
37258 浏览

python - 如何使用 word2vec 找到最接近向量的单词

我刚刚开始使用 Word2vec,我想知道我们如何才能找到最接近向量假设的单词。我有这个向量,它是一组向量的平均向量:

有没有一种直接的方法可以在我的训练数据中找到与这个向量最相似的词?

或者唯一的解决方案是计算这个向量和我训练数据中每个单词的向量之间的余弦相似度,然后选择最接近的那个?

谢谢。

0 投票
1 回答
705 浏览

java - DeepLearning4J NoSuchMethodError

我是神经网络和 NLP 的新手。我找到了这个库:DeepLearning4J。我试图让它工作,但每当我执行这个指令时:

如果我正在搜索的单词被映射到网络中,我会得到以下异常:

我知道 NoSuchMethodError 可能是由于库版本不同。在这种特定情况下,这可能是由 nd4j 引起的。我已经检查了很多版本,这就是我目前正在导入的内容:

  • akka-actor_2.11-2.4-M3.jar
  • akka-cluster_2.11-2.4-M3.jar
  • akka-remote_2.11-2.4-M3.jar
  • akka-slf4j_2.11-2.4-M3.jar
  • byte-buddy-0.6.15.jar
  • config-1.3.0.jar
  • deeplearning4j-core-0.0.3.3.4.alpha2.jar
  • deeplearning4j-nlp-0.0.3.3.4.alpha2.jar
  • deeplearning4j-scaleout-akka-0.0.3.3.4.alpha2.jar
  • deeplearning4j-ui-0.0.3.3.4.alpha2.jar
  • javassist-3.12.1.GA.jar
  • jblas-1.2.4.jar
  • jcublas-6.5.jar
  • lucene-analyzers-common-4.10.3.jar
  • lucene-core-4.10.3.jar
  • nd4j-api-0.4-rc3.4.jar
  • nd4j-bytebuddy-0.4-rc3.4.jar
  • nd4j-jblas-0.4-rc3.4.jar
  • nd4j-jcublas-common-0.4-rc3.4.jar
  • netty-3.10.4.Final.jar
  • protobuf-java-2.6.1.jar
  • 反射-0.9.10.jar
  • scala-library-2.12.0-M2.jar
  • selenium-server-standalone-2.47.1.jar

有人可以向我解释这个问题吗?

0 投票
1 回答
1617 浏览

python - 从未经训练的数据集中为 doc2vec 中的句子构建向量

我有一个doc2vec从我的数据构建的模型,现在我在运行时有一个不属于训练数据集的新句子。

如何从我的模型中构建或预测这句话的向量?

我应该如何处理这句话中的生词?

0 投票
0 回答
106 浏览

python - Spark 使用广播变量的结果差异

我有 word2vec 模型和 pyspark 工作,我在其中总结每个文档的单个词向量。

我在 pyspark 结果和正常结果之间发现了奇怪的差异。

Spark 的结果

火花结果

没有火花的结果 没有火花的结果

它只是给了我强度为 15 个数量级的数组(看上面的第 7 个元素),而在本地计算相同的向量给了我法线向量。在这里使用 Spark 有什么问题?将结果传达给大师时是否会弄乱答案?

0 投票
1 回答
877 浏览

nlp - 是否可以使用 graphdb 实现类似于 word2vec 的功能?

否则说用模式匹配和图遍历替换特征向量并模拟降维?

我的意思是给定英语单词的语义图计算类似于:

king - man = queen

这意味着我可以从一个图中减去一个子图,并在给定指标的情况下对结果子图进行评分。

我不希望这将是单个 neo4j 或 gremlin 查询。我对在图形数据库上同时进行全局和本地推理所涉及的底层机制感兴趣。

0 投票
3 回答
22152 浏览

nlp - 使用 Word2Vec 进行主题建模

我读过主题建模(从文本中提取可能的主题)最常用的技术是潜在狄利克雷分配(LDA)。

但是,我很感兴趣尝试使用 Word2Vec 进行主题建模是否是一个好主意,因为它会在向量空间中对单词进行聚类。因此,集群不能被视为主题吗?

你认为为了一些研究而遵循这种方法有意义吗?最后我感兴趣的是根据主题从文本中提取关键字。

0 投票
1 回答
795 浏览

gensim - 从gensim中word2vec的数组中获取单词

我刚刚开始使用http://rare-technologies.com/word2vec-tutorial/中提供的教程来试验 word2vec 形式的 gensim 。如果我们需要原始输出向量,我们写:

结果是:

我怎样才能得到有数组的词?所以如果我写:

如何使用 f 获得“计算机”一词?