根据Gensim Word2Vec,我可以使用gensim包中的word2vec模型来计算2个单词之间的相似度.
例如
trained_model.similarity('woman', 'man')
0.73723527
Run Code Online (Sandbox Code Playgroud)
但是,word2vec模型无法预测句子相似性.我发现在gensim中具有句子相似性的LSI模型,但是,似乎不能与word2vec模型结合.我所拥有的每个句子的语料库长度不是很长(短于10个单词).那么,有没有简单的方法来实现目标?
从word2vec网站我可以下载GoogleNews-vectors-negative300.bin.gz..bin文件(大约3.4GB)是一种对我没用的二进制格式.Tomas Mikolov 向我们保证:"将二进制格式转换为文本格式应该相当简单(尽管这需要更多的磁盘空间).检查距离工具中的代码,读取二进制文件相当简单." 不幸的是,我不太了解C http://word2vec.googlecode.com/svn/trunk/distance.c.
据说gensim也可以做到这一点,但我发现的所有教程似乎都是关于从文本转换而不是其他方式.
有人可以建议修改C代码或gensim发出文本的说明吗?
如何使用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'
每当我跑这个.
我正在尝试比较我的Doc2Vec(通过tf)和gensims实现的实现.从视觉上看,gensim的表现更好.
我运行以下代码来训练gensim模型和下面的那个用于tensorflow模型.我的问题如下:
window=5gensim中的参数是否意味着我在两边使用两个词来预测中间的一个?或者两边都是5.事情是有相当多的文件小于长度10.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)
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) 从创建R中的语料库中的单词子集,应答者可以轻松地将term-document matrix词汇转换为词云.
python库是否有一个类似的功能,它将原始文本文件或NLTK语料库或GensimMmcorpus带入词云?
结果看起来有点像这样:

我最近遇到了Gensim的doc2vec.如何使用doc2vec预训练的单词向量(例如在word2vec原始网站中找到)?
或者是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) 为了预处理语料库,我计划从语料库中提取常用短语,为此我尝试在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) 我想gensim通过安装 python 包pip install gensim
但是发生了这个错误,我不知道应该做什么来解决它。
\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.\nRun Code Online (Sandbox Code Playgroud)\n 在使用python gensim训练word2vec模型后,你如何找到模型词汇中的单词数量?