标签: word2vec

Bigram到矢量

我想使用word2vec工具为文档构建单词嵌入.我知道如何找到对应于单个单词(unigram)的向量嵌入.现在,我想找到一个二元组的向量.是否可以使用word2vec?如果有,怎么样?

nlp word2vec word-embedding

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

在skip-gram和CBOW模型之间进行选择,以便在gensim中训练word2Vec

在训练Word2Vec模型时,是否可以在Gensim中选择模型Skip-gram和模型?CBOW

谢谢.

nlp gensim word2vec

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

有没有办法从doc2vec模型中获取词汇量?

我正在使用gensim doc2vec.我想知道是否有任何有效的方法来从doc2vec了解词汇量.一种粗略的方法是计算单词的总数,但如果数据很大(1GB或更多),那么这将不是一种有效的方法.

gensim word2vec doc2vec

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

在word2vec gensim模型中添加单词嵌入

我正在寻找一种方法来将预训练的单词向量添加到word2vec gensim模型中.

我在txt(单词及其嵌入)中有一个预先训练过的word2vec模型,我需要在特定语料库和新文档中的文档之间获取Word Mover的距离(例如通过gensim.models.Word2Vec.wmdistance).

为了防止需要加载整个词汇表,我想只加载在语料库中找到的预训练模型的单词的子集.但是,如果新文档具有在语料库中找不到但在原始模型中的词汇,则将它们添加到模型中,以便在计算中考虑它们.

我想要的是节省内存,所以有可能帮助我的事情:

  • 有没有办法将单词向量直接添加到模型中?
  • 有没有办法从矩阵或其他对象加载到gensim?我可以在RAM中使用该对象,并在将它们加载到模型中之前将其添加到新单词中
  • 我不需要它在gensim上,所以如果你知道一个不同的WMD实现,它将向量作为输入可以工作(虽然我确实需要它在Python中)

提前致谢.

python nlp word2vec

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

为什么我在Gensim word2vec中获得单字母词汇?

我正在建立一个word2vec模型,如下所示。

from gensim.models import word2vec, Phrases
documents = ["the mayor of new york was there", "human computer interaction and machine learning has now become a trending research area","human computer interaction is interesting","human computer interaction is a pretty interesting subject", "human computer interaction is a great and new subject", "machine learning can be useful sometimes","new york mayor was present", "I love machine learning because it is a new subject area", "human computer interaction helps people to get user friendly applications"]
sentence_stream …
Run Code Online (Sandbox Code Playgroud)

python gensim word2vec

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

在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
查看次数

退出代码为134的过程结束(被信号6:SIGABRT中断)

我正在研究node2vec。当我使用小型数据集时,代码运行良好。但是,一旦我尝试在大型数据集上运行相同的代码,代码就会崩溃。

错误:进程结束,退出代码为134(被信号6:SIGABRT中断)。

给出错误的行是

model = Word2Vec(walks, size=args.dimensions, window=args.window_size, min_count=0, sg=1, workers=args.workers,
                 iter=args.iter)
Run Code Online (Sandbox Code Playgroud)

我正在使用pycharm和python 3.5。

知道发生了什么吗?我找不到任何可以解决我问题的帖子。

python pycharm gensim word2vec

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

gensim-Word2vec继续对现有模型进行训练-AttributeError:'Word2Vec'对象没有属性'compute_loss'

我正在尝试继续在现有模型上进行训练,

model = gensim.models.Word2Vec.load('model/corpus.zhwiki.word.model')
more_sentences = [['Advanced', 'users', 'can', 'load', 'a', 'model', 'and', 'continue', 'training', 'it', 'with', 'more', 'sentences']]    
model.build_vocab(more_sentences, update=True)
model.train(more_sentences, total_examples=model.corpus_count, epochs=model.iter)
Run Code Online (Sandbox Code Playgroud)

但最后一行出现错误:

AttributeError:'Word2Vec'对象没有属性'compute_loss'

一些帖子说,这是由于使用了较早版本的gensim引起的,我尝试在加载现有模型之后且在train()之前添加它。

model.compute_loss = False
Run Code Online (Sandbox Code Playgroud)

之后,它没有给我AttributeError,但是model.train()的输出为0,并且模型没有使用新的句子进行训练。

在此处输入图片说明

如何解决这个问题呢?

python nlp gensim word2vec

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

在 Keras 上合并层(点积)

我一直在关注 Towards Data Science 关于 word2vec 和 skip-gram 模型的教程,但我偶然发现了一个我无法解决的问题,尽管搜索了几个小时并尝试了很多不成功的解决方案。

https://towardsdatascience.com/understanding-feature-engineering-part-4-deep-learning-methods-for-text-data-96c44370bbfa

由于使用了 keras.layers 中的 Merge 层,它向您展示了如何构建 skip-gram 模型架构的步骤似乎已被弃用。

我似乎对此进行了很多讨论,大多数答案是您现在需要使用 Keras 的功能 API 来合并层。但问题是,我是 Keras 的初学者,不知道如何将我的代码从 Sequential 转换为 Functional,这是作者使用的代码(我复制了):

from keras.layers import Merge
from keras.layers.core import Dense, Reshape
from keras.layers.embeddings import Embedding
from keras.models import Sequential

# build skip-gram architecture
word_model = Sequential()
word_model.add(Embedding(vocab_size, embed_size,
                         embeddings_initializer="glorot_uniform",
                         input_length=1))
word_model.add(Reshape((embed_size, )))

context_model = Sequential()
context_model.add(Embedding(vocab_size, embed_size,
                  embeddings_initializer="glorot_uniform",
                  input_length=1))
context_model.add(Reshape((embed_size,)))

model = Sequential()
model.add(Merge([word_model, context_model], mode="dot"))
model.add(Dense(1, kernel_initializer="glorot_uniform", activation="sigmoid"))
model.compile(loss="mean_squared_error", optimizer="rmsprop")

# view model summary …
Run Code Online (Sandbox Code Playgroud)

python word2vec keras tensorflow word-embedding

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

无法在 <module 'gensim.models.keyedvectors' > 上获取属性 'Word2VecKeyedVectors'

我训练并保存了一个 gensim word2vec 模型:

W2V_MODEL_FN = r"C:\Users\models\w2v.model"

model = Word2Vec(X, size=150, window=3, min_count=2, workers=10)
model.train(X, total_examples=len(X), epochs=50)
model.save(W2V_MODEL_FN)
Run Code Online (Sandbox Code Playgroud)

进而:

w2v_model = Word2Vec.load(W2V_MODEL_FN)
Run Code Online (Sandbox Code Playgroud)

在一种环境中它可以完美运行,但在另一种环境中我得到错误:

{AttributeError}无法从“C:\Users\Anaconda3_New\envs\ISP_env\lib\site-packages\gensim\models\keyedvectors.py”中获取模块“gensim.models.keyedvectors”上的属性“Word2VecKeyedVectors”

所以我想这可能是一个包版本问题?

但我无法弄清楚它是什么。有任何想法吗?

谢谢!

python nlp gensim word2vec

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