标签: word2vec

如何在Java中实现Word2Vec?

我在Ubuntu笔记本电脑上使用本教程安装了word2Vec .是否完全有必要安装DL4J以便在Java中实现word2Vec向量?我很乐意在Eclipse工作,我不确定我是否想要DL4J希望我安装的所有其他先决条件.

理想情况下,我将有一个非常简单的方法来使用我已经编写的Java代码(在Eclipse中)并更改几行 - 这样我正在进行的单词查找将检索word2Vec向量而不是我正在使用的当前检索过程.


另外,我已经研究过使用GloVe,但是,我没有MatLab.没有MatLab可以使用GloVe吗?(因为这个原因,我在安装时出错了).如果是这样,与上面相同的问题就是......我不知道如何在Java中实现它.

java nlp artificial-intelligence machine-learning word2vec

5
推荐指数
2
解决办法
7571
查看次数

了解Word2Vec的Skip-Gram结构和输出

我的问题是双重的,但希望不要太复杂.这两个部分都特别适用于Word2Vec中的Skip-Gram模型:

  • 第一部分是关于结构:据我所知,Skip-Gram模型基于一个神经网络,一个输入权重矩阵W,一个大小为N的隐藏层,以及每个用于生成的C输出权重矩阵W' C输出向量之一.它是否正确?

  • 第二部分是关于输出向量:据我所知,每个输出向量的大小为V,是Softmax函数的结果.每个输出向量节点对应于词汇表中单词的索引,并且每个节点的值是对应单词出现在该上下文位置(对于给定输入单词)的概率.然而,即使训练实例是,目标输出矢量也不是单热编码的.它是否正确?

我想象的方式是以下几行(构成示例):

假设词汇['quick','fox','jumped','lazy','dog']和C = 1的上下文,并假设对于输入词'jumped',我看到两个输出向量看起来像这个:

[0.2 0.6 0.01 0.1 0.09]

[0.2 0.2 0.01 0.16 0.43 ]

我会将此解释为"狐狸"是最有可能在"跳跃"之前出现的词(p = 0.6),而"狗"最有可能出现在它之后(p = 0.43).

我有这个权利吗?还是我完全脱了?任何帮助表示赞赏.

nlp vector machine-learning word2vec

5
推荐指数
1
解决办法
2047
查看次数

如何在gensim 0.11.1中从Doc2Vec获取文档向量?

有没有办法在gensim 0.11.1版本中从Doc2Vec获取看不见的文档向量?

  • 例如,假设我训练了模型1000万 - 我可以获得1000个文档的doc向量吗?

  • 有没有办法获取由
    相同词汇表组成的看不见的文档的文档向量?

python gensim word2vec doc2vec

5
推荐指数
1
解决办法
4015
查看次数

Getting an error to install pyemd even though I just installed it

Here is the code:

from pyemd import emd

print("sentence 1:")
print(input_document_lower[0])
print("sentence 2:")
print(input_document_lower[1])
print("similarity:")
model_w2v.wmdistance(input_document_lower[0], input_document_lower[1])
Run Code Online (Sandbox Code Playgroud)

Here's the error:

sentence 1:
incorrect batch number printed primary label pbn
sentence 2:
unconfirmed oos met vial washing qualification sample per 
similarity:

ImportErrorTraceback (most recent call last)
<ipython-input-201-50af089a2354> in <module>()
      4 print(input_document_lower[1])
      5 print("similarity:")
----> 6 model_w2v.wmdistance(input_document_lower[0], input_document_lower[1])

C:\ProgramData\Anaconda2\lib\site-packages\gensim\models\word2vec.pyc in wmdistance(self, document1, document2)
   1308         Refer to the documentation for `gensim.models.KeyedVectors.wmdistance`
   1309         """
-> 1310         return self.wv.wmdistance(document1, document2)
   1311 
   1312     def most_similar_cosmul(self, positive=None, …
Run Code Online (Sandbox Code Playgroud)

python installation gensim word2vec

5
推荐指数
2
解决办法
3209
查看次数

在Google合作实验室上安装faiss

我尝试遵循有关MUSE项目的说明

他们需要PyTorch和Faiss。PyTorch易于安装。但是我发现安装Faiss存在问题。

关于MUSE的说明告诉我使用

conda install faiss-cpu -c pytorch
Run Code Online (Sandbox Code Playgroud)

但是Google Colab不支持conda(当我尝试过时!pip install conda,它不起作用)

当我!pip install faiss也去的时候,费斯没有工作。

有没有办法安装Faiss或conda?

python pip conda word2vec google-colaboratory

5
推荐指数
3
解决办法
2025
查看次数

为什么Doc2vec为相同的文本给出两个不同的向量

Doc2vec用来从单词中获取向量。请看我下面的代码:

from gensim.models.doc2vec import TaggedDocument
f = open('test.txt','r')

trainings = [TaggedDocument(words = data.strip().split(","),tags = [i]) for i,data in enumerate(f)


model = Doc2Vec(vector_size=5,  epochs=55, seed = 1, dm_concat=1)

model.build_vocab(trainings)
model.train(trainings, total_examples=model.corpus_count, epochs=model.epochs)

model.save("doc2vec.model")

model = Doc2Vec.load('doc2vec.model')
for i in range(len(model.docvecs)):
    print(i,model.docvecs[i])
Run Code Online (Sandbox Code Playgroud)

我有一个test.txt文件,它的内容有2行,并且这2行的内容是相同的(它们是“ a”),我用doc2vec训练并得到了模型,但是问题是尽管2行的内容是相同的,doc2vec给了我两个不同的向量

0 [ 0.02730868  0.00393569 -0.08150548 -0.04009786 -0.01400406]
1 [ 0.03916578 -0.06423566 -0.05350181 -0.00726833 -0.08292392]
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会这样。我认为这些向量将是相同的。你能解释一下吗?如果我想为相同的单词制作相同的向量,在这种情况下该怎么办?

python nlp gensim word2vec doc2vec

5
推荐指数
2
解决办法
826
查看次数

使用gensim加载word2vec时出现内存错误

我正在使用gensim库从GoogleNews数据集中加载经过预训练的单词向量。该数据集包含300万个维度的3000000个词向量。当我想加载GoogleNews数据集时,出现内存错误。我曾经尝试过此代码而没有内存错误,而且我不知道为什么现在会收到此错误。我已经检查了很多网站来解决此问题,但我无法理解。这是我加载GoogleNews的代码:

import gensim.models.keyedvectors as word2vec
model=word2vec.KeyedVectors.load_word2vec_format("GoogleNews-vectors-negative300.bin",binary=True)
Run Code Online (Sandbox Code Playgroud)

这是我收到的错误:

File "/home/mahsa/PycharmProjects/tensor_env_project/word_embedding_DUC2007/inspect_word2vec-master/word_embeddings_GoogleNews.py", line 8, in <module>
    model=word2vec.KeyedVectors.load_word2vec_format("GoogleNews-vectors-negative300.bin",binary=True)
  File "/home/mahsa/anaconda3/envs/tensorflow_env/lib/python3.5/site-packages/gensim/models/keyedvectors.py", line 212, in load_word2vec_format
    result.syn0 = zeros((vocab_size, vector_size), dtype=datatype)
MemoryError
Run Code Online (Sandbox Code Playgroud)

有谁能够帮助我?谢谢。

python gensim google-news word2vec word-embedding

5
推荐指数
1
解决办法
3163
查看次数

在QA系统中训练具有不同长度句子的神经网络

我试图实现以下的说明显示对这样的质量保证体系文件.我已经正确导入了一些数据集,并使用word2vec方法转换了向量中的单词.在嵌入一词之后,需要在CNN中插入问题和答案.考虑到每个问题/答案的长度不同,输入Tensor的大小应该是多少?(每个问题/答案都是一组向量).

论文摘录:

在此输入图像描述

q_emb是单词嵌入后的问题,r_w_k是长度为d的单词向量.

哪个是应该使用的M(Q/A的长度)的正确值?你能告诉我一些方法来解决这个问题或者只是给我一些帮助吗?谢谢

neural-network nlp-question-answering word2vec

5
推荐指数
1
解决办法
147
查看次数

我如何在pyspark应用程序中维护临时字典?

我想在pyspark应用程序中使用预训练嵌入模型(fasttext).

因此,如果我广播文件(.bin),则抛出以下异常:Traceback(最近一次调用last):

cPickle.PicklingError: Could not serialize broadcast: OverflowError: cannot serialize a string larger than 2 GiB
Run Code Online (Sandbox Code Playgroud)

相反,我试图用sc.addFile(modelpath)其中modelpath=path/to/model.bin如下:

我创建了一个名为fasttextSpark.py的文件

import gensim
from gensim.models.fasttext import FastText as FT_gensim
# Load model (loads when this library is being imported)
model = FT_gensim.load_fasttext_format("/project/6008168/bib/wiki.en.bin")

# This is the function we use in UDF to predict the language of a given msg
def get_vector(msg):
    pred = model[msg]
    return pred
Run Code Online (Sandbox Code Playgroud)

和testSubmit.sh:

#!/bin/bash
#SBATCH -N 2
#SBATCH -t 00:10:00
#SBATCH --mem 20000
#SBATCH --ntasks-per-node …
Run Code Online (Sandbox Code Playgroud)

python apache-spark word2vec pyspark fasttext

5
推荐指数
1
解决办法
288
查看次数

如何在Gensim中使用word2vec2tensor?

我正在按照以下gensim教程将word2vec模型转换为张量。链接至教程:https : //radimrehurek.com/gensim/scripts/word2vec2tensor.html

更具体地说,我运行了以下命令

python -m gensim.scripts.word2vec2tensor -i C:\Users\Emi\Desktop\word2vec\model_name -o C:\Users\Emi\Desktop\word2vec
Run Code Online (Sandbox Code Playgroud)

但是,对于以上命令,我收到以下错误。

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
Run Code Online (Sandbox Code Playgroud)

当我model.wv.save_word2vec_format(model_name)用来保存模型时(如以下链接所述:https : //github.com/RaRe-Technologies/gensim/issues/1847),然后使用上述命令,我得到以下错误。

ValueError: invalid vector on line 1 (is this really the text format?)
Run Code Online (Sandbox Code Playgroud)

只是想知道我是否在逗号的语法上犯了任何错误。请让我知道如何解决此问题。

如果需要,我很乐意提供更多详细信息。

python gensim word2vec

5
推荐指数
1
解决办法
213
查看次数