标签: gensim

如何使用gensim的word2vec模型和python计算句子相似度

根据Gensim Word2Vec,我可以使用gensim包中的word2vec模型来计算2个单词之间的相似度.

例如

trained_model.similarity('woman', 'man') 
0.73723527
Run Code Online (Sandbox Code Playgroud)

但是,word2vec模型无法预测句子相似性.我发现在gensim中具有句子相似性的LSI模型,但是,似乎不能与word2vec模型结合.我所拥有的每个句子的语料库长度不是很长(短于10个单词).那么,有没有简单的方法来实现目标?

python gensim word2vec

113
推荐指数
10
解决办法
8万
查看次数

将word2vec bin文件转换为文本

word2vec网站我可以下载GoogleNews-vectors-negative300.bin.gz..bin文件(大约3.4GB)是一种对我没用的二进制格式.Tomas Mikolov 向我们保证:"将二进制格式转换为文本格式应该相当简单(尽管这需要更多的磁盘空间).检查距离工具中的代码,读取二进制文件相当简单." 不幸的是,我不太了解C http://word2vec.googlecode.com/svn/trunk/distance.c.

据说gensim也可以做到这一点,但我发现的所有教程似乎都是关于文本转换不是其他方式.

有人可以建议修改C代码或gensim发出文本的说明吗?

c python gensim word2vec

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

Doc2vec:如何获取文档向量

如何使用Doc2vec获取两个文本文档的文档向量?我是新手,所以如果有人能指出我正确的方向/帮助我一些教程会很有帮助

我正在使用gensim.

doc1=["This is a sentence","This is another sentence"]
documents1=[doc.strip().split(" ") for doc in doc1 ]
model = doc2vec.Doc2Vec(documents1, size = 100, window = 300, min_count = 10, workers=4)
Run Code Online (Sandbox Code Playgroud)

我明白了

AttributeError:'list'对象没有属性'words'

每当我跑这个.

python gensim word2vec

51
推荐指数
3
解决办法
6万
查看次数

gensim Doc2Vec vs tensorflow Doc2Vec

我正在尝试比较我的Doc2Vec(通过tf)和gensims实现的实现.从视觉上看,gensim的表现更好.

我运行以下代码来训练gensim模型和下面的那个用于tensorflow模型.我的问题如下:

  1. 我的Doc2Vec实现是否正确.基本上它应该是连接单词向量和文档向量来预测某个上下文中的中间单词吗?
  2. window=5gensim中的参数是否意味着我在两边使用两个词来预测中间的一个?或者两边都是5.事情是有相当多的文件小于长度10.
  3. 关于为什么Gensim表现更好的任何见解?我的模型与他们如何实现它有什么不同吗?
  4. 考虑到这实际上是一个矩阵分解问题,为什么TF模型甚至得到答案?由于它是一个排名不足的问题,因此有无限的解决方案.< - 最后一个问题只是奖金.

Gensim

model = Doc2Vec(dm=1, dm_concat=1, size=100, window=5, negative=10, hs=0, min_count=2, workers=cores)
model.build_vocab(corpus)
epochs = 100
for i in range(epochs):
    model.train(corpus)
Run Code Online (Sandbox Code Playgroud)

TF

batch_size = 512
embedding_size = 100 # Dimension of the embedding vector.
num_sampled = 10 # Number of negative examples to sample.


graph = tf.Graph()

with graph.as_default(), tf.device('/cpu:0'):
    # Input data.
    train_word_dataset = tf.placeholder(tf.int32, shape=[batch_size])
    train_doc_dataset = tf.placeholder(tf.int32, shape=[batch_size/context_window])
    train_labels = tf.placeholder(tf.int32, shape=[batch_size/context_window, 1])

    # The variables   
    word_embeddings =  tf.Variable(tf.random_uniform([vocabulary_size,embedding_size],-1.0,1.0)) …
Run Code Online (Sandbox Code Playgroud)

python nlp gensim tensorflow doc2vec

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

如何在Python中从语料库创建一个词云?

创建R中的语料库中的单词子集,应答者可以轻松地将term-document matrix词汇转换为词云.

python库是否有一个类似的功能,它将原始文本文件或NLTK语料库或GensimMmcorpus带入词云?

结果看起来有点像这样: 在此输入图像描述

python corpus nltk word-cloud gensim

40
推荐指数
4
解决办法
8万
查看次数

如何使用Gensim doc2vec与预先训练的单词向量?

我最近遇到了Gensim的doc2vec.如何使用doc2vec预训练的单词向量(例如在word2vec原始网站中找到)?

或者是doc2vec从用于段落矢量训练的相同句子中获取单词向量?

谢谢.

python nlp gensim word2vec

36
推荐指数
4
解决办法
3万
查看次数

Doc2Vec获取最相似的文档

我正在尝试构建一个文档检索模型,该模型返回按查询或搜索字符串的相关性排序的大多数文档.为此,我使用gensim中的模型训练了一个doc2vec模型Doc2Vec.我的数据集采用pandas数据集的形式,每个文档都将每个文档存储为字符串.这是我到目前为止的代码

import gensim, re
import pandas as pd

# TOKENIZER
def tokenizer(input_string):
    return re.findall(r"[\w']+", input_string)

# IMPORT DATA
data = pd.read_csv('mp_1002_prepd.txt')
data.columns = ['merged']
data.loc[:, 'tokens'] = data.merged.apply(tokenizer)
sentences= []
for item_no, line in enumerate(data['tokens'].values.tolist()):
    sentences.append(LabeledSentence(line,[item_no]))

# MODEL PARAMETERS
dm = 1 # 1 for distributed memory(default); 0 for dbow 
cores = multiprocessing.cpu_count()
size = 300
context_window = 50
seed = 42
min_count = 1
alpha = 0.5
max_iter = 200

# BUILD MODEL
model = gensim.models.doc2vec.Doc2Vec(documents = …
Run Code Online (Sandbox Code Playgroud)

python nlp gensim doc2vec

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

如何使用gensim从语料库中提取短语

为了预处理语料库,我计划从语料库中提取常用短语,为此我尝试在gensim中使用短语模型,我尝试下面的代码,但它没有给我想要的输出.

我的代码

from gensim.models import Phrases
documents = ["the mayor of new york was there", "machine learning can be useful sometimes"]

sentence_stream = [doc.split(" ") for doc in documents]
bigram = Phrases(sentence_stream)
sent = [u'the', u'mayor', u'of', u'new', u'york', u'was', u'there']
print(bigram[sent])
Run Code Online (Sandbox Code Playgroud)

产量

[u'the', u'mayor', u'of', u'new', u'york', u'was', u'there']
Run Code Online (Sandbox Code Playgroud)

但它应该成为

[u'the', u'mayor', u'of', u'new_york', u'was', u'there']
Run Code Online (Sandbox Code Playgroud)

但是当我试图打印火车数据的词汇时,我可以看到二元组,但它不能使用测试数据,我哪里出错了?

print bigram.vocab

defaultdict(<type 'int'>, {'useful': 1, 'was_there': 1, 'learning_can': 1, 'learning': 1, 'of_new': 1, 'can_be': 1, 'mayor': 1, 'there': 1, …
Run Code Online (Sandbox Code Playgroud)

python nlp gensim

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

python pip:“错误:遗留安装失败”

我想gensim通过安装 python 包pip install gensim

\n

但是发生了这个错误,我不知道应该做什么来解决它。

\n
      running build_ext\n      building 'gensim.models.word2vec_inner' extension\n      error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/\n      [end of output]\n\n  note: This error originates from a subprocess, and is likely not a problem with pip.\nerror: legacy-install-failure\n\n\xc3\x97 Encountered error while trying to install package.\n\xe2\x95\xb0\xe2\x94\x80> gensim\n\nnote: This is an issue with the package mentioned above, not pip.\nhint: See above for output from the failure.\n
Run Code Online (Sandbox Code Playgroud)\n

python pip gensim

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

gensim word2vec:查找词汇表中的单词数量

在使用python gensim训练word2vec模型后,你如何找到模型词汇中的单词数量?

python nlp neural-network gensim word2vec

29
推荐指数
3
解决办法
4万
查看次数

标签 统计

gensim ×10

python ×10

nlp ×5

word2vec ×5

doc2vec ×2

c ×1

corpus ×1

neural-network ×1

nltk ×1

pip ×1

tensorflow ×1

word-cloud ×1