标签: word2vec

使用 Word2vec 确定一组单词中哪两个单词最相似

我正在尝试使用 Word2vec 的 python 包装器。我有一个词嵌入或一组词,可以在下面看到,我试图从中确定哪两个词彼此最相似。

我怎样才能做到这一点?

['建筑师'、'护士'、'外科医生'、'祖母'、'爸爸']

python word2vec

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

LDA2Vec Python 实现示例?

大家好,有人可以帮我看一下使用 python 的 LDA2Vec 的工作示例吗?请假设数据框 df 具有包含文本数据的“注释”列

我正在尝试实现“cemoody/lda2vec”github 示例,但遇到多个问题 - 1. 如何安装 spacy 包?2.导入错误:无法从“lda2vec”导入名称“预处理” 3.导入错误:无法从“lda2vec”导入名称“LDA2Vec”

不知道我在这里缺少什么。

任何帮助/链接将非常感激

python lda word2vec word-embedding

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

使用 word2vec 来编码分类特征是个好主意吗?

我面临着一个二元预测任务,并且有一组特征,其中所有特征都是分类的。因此,一个关键的挑战是将这些分类特征编码为数字,我一直在寻找聪明的方法来做到这一点。我偶然发现了 word2vec,它主要用于 NLP,但我想知道是否可以使用它来编码我的变量,即简单地将神经网络的权重作为编码特征。

然而,我不确定这是否是一个好主意,因为在我的例子中,作为 word2vec 中的输入特征的上下文单词或多或少是随机的,这与 word2vec 最初设计的真实句子形成鲜明对比。

对此大家有什么意见、想法、建议吗?

nlp machine-learning categorical-data word2vec feature-engineering

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

AttributeError:“Word2Vec”对象没有属性“most_similar”(Word2Vec)

我正在使用 Word2Vec 并使用 wiki 训练模型来给出最相似的单词。我之前运行过这个并且它有效,但是现在即使在重新运行整个程序后它也会给我这个错误。我尝试起飞 return_path=True,但仍然遇到同样的错误

print(api.load('glove-wiki-gigaword-50', return_path=True))
model.most_similar("glass")
Run Code Online (Sandbox Code Playgroud)

#错误:

/Users/me/gensim-data/glove-wiki-gigaword-50/glove-wiki-gigaword-50.gz
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-153-3bf32168d154> in <module>
      1 print(api.load('glove-wiki-gigaword-50', return_path=True))
----> 2 model.most_similar("glass") 

AttributeError: 'Word2Vec' object has no attribute 'most_similar'
Run Code Online (Sandbox Code Playgroud)

#MODEL这是我用的模型

    print(
        '%s (%d records): %s' % (
            model_name,
            model_data.get('num_records', -1),
            model_data['description'][:40] + '...',
        )
    )
Run Code Online (Sandbox Code Playgroud)

编辑:这是我的 gensim 下载和输出

!python -m pip install -U gensim
Run Code Online (Sandbox Code Playgroud)

输出:

已满足要求:.​​/opt/anaconda3/lib/python3.8/site-packages (4.0.1) 中的 gensim

已满足要求: ./opt/anaconda3/lib/python3.8/site-packages 中的 numpy>=1.11.3 (来自 gensim)(1.20.1)

已满足要求:smart-open>=1.8.1 in ./opt/anaconda3/lib/python3.8/site-packages (来自 gensim) (5.1.0)

已满足要求:.​​/opt/anaconda3/lib/python3.8/site-packages 中的 scipy>=0.18.1 …

python nlp gensim word2vec doc2vec

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

Gensim fasttext无法获取最新的训练损失

问题描述

看起来get_latest_training_loss函数fasttext只返回0。gensim 4.1.04.0.0都不起作用。

from gensim.models.callbacks import CallbackAny2Vec
from pprint import pprint as print
from gensim.models.fasttext import FastText
from gensim.test.utils import datapath

class callback(CallbackAny2Vec):
    '''Callback to print loss after each epoch.'''

    def __init__(self):
        self.epoch = 0

    def on_epoch_end(self, model):
        loss = model.get_latest_training_loss()
        print('Loss after epoch {}: {}'.format(self.epoch, loss))
        self.epoch += 1

# Set file names for train and test data
corpus_file = datapath('lee_background.cor')

model = FastText(vector_size=100, callbacks=[callback()])

# build the vocabulary
model.build_vocab(corpus_file=corpus_file)

# train …
Run Code Online (Sandbox Code Playgroud)

python nlp gensim word2vec fasttext

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

如何在 Tensorboard 投影仪中可视化 Gensim Word2vec 嵌入

按照gensim word2vec 嵌入教程,我训练了一个简单的 word2vec 模型:

from gensim.test.utils import common_texts
from gensim.models import Word2Vec
model = Word2Vec(sentences=common_texts, size=100, window=5, min_count=1, workers=4)
model.save("/content/word2vec.model")
Run Code Online (Sandbox Code Playgroud)

我想使用 TensorBoard 中的嵌入投影仪将其可视化。gensim 文档中有另一个简单的教程。我在 Colab 中做了以下操作:

!python3 -m gensim.scripts.word2vec2tensor -i /content/word2vec.model -o /content/my_model

Traceback (most recent call last):
  File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/usr/local/lib/python3.7/dist-packages/gensim/scripts/word2vec2tensor.py", line 94, in <module>
    word2vec2tensor(args.input, args.output, args.binary)
  File "/usr/local/lib/python3.7/dist-packages/gensim/scripts/word2vec2tensor.py", line 68, in word2vec2tensor
    model = gensim.models.KeyedVectors.load_word2vec_format(word2vec_model_path, binary=binary) …
Run Code Online (Sandbox Code Playgroud)

python gensim word2vec tensorflow tensorboard

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

使用 python 和 elasticsearch 进行 knn 搜索查询

我尝试使用 elasticsearch python 客户端执行此查询:

curl -X GET "localhost:9200/articles/_knn_search" -H 'Content-Type: application/json' -d '
{
  "knn": {
    "field": "title_vector",
    "query_vector": [-0.01807806, 0.024579186,...],
    "k": 10,
    "num_candidates": 100
  },
  "_source": ["title", "category"]
}
'
Run Code Online (Sandbox Code Playgroud)

如果有人可以帮助我谢谢。

编辑:对于elasticsearch python客户端> 8.0,有一个名为knn_search的新函数,因此我们可以非常轻松地运行knn_search:

query = {
    "field": "title_vector",
    "query_vector": [-0.01807806, 0.024579186,...],
    "k": 10,
    "num_candidates": 100
}
es = Elasticsearch(request_timeout=600, hosts='http://localhost:9200')
res = es.knn_search(index="index_name", knn=query, source=["filed1", "field2"])
Run Code Online (Sandbox Code Playgroud)

python nlp elasticsearch word2vec elasticsearch-dsl

5
推荐指数
0
解决办法
3316
查看次数

Gensim中的增量Word2Vec模型训练

我试图逐步训练gensim产生的word2vec模型。但是我发现词汇量没有增加,只有word2vec模型的权重被更新。但是我需要同时更新词汇量和模型大小。

#Load data 
sentences = []
....................

#Training 
model = Word2Vec(sentences, size=100)
model.save("modelbygensim.txt")
model.save_word2vec_format("modelbygensim_text.txt")



#Incremental Training 
model = Word2Vec.load('modelbygensim.txt')
model.train(sentences)
model.save("modelbygensim_incremental.txt")
model.save_word2vec_format("modelbygensim_text_incremental.txt")
Run Code Online (Sandbox Code Playgroud)

python gensim word2vec deep-learning

4
推荐指数
1
解决办法
3071
查看次数

wmd(移词器距离)与基于wmd的相似度之间有什么区别?

我正在使用WMD计算句子之间的相似度。例如:

distance = model.wmdistance(sentence_obama, sentence_president)
Run Code Online (Sandbox Code Playgroud)

参考:https : //markroxor.github.io/gensim/static/notebooks/WMD_tutorial.html

但是,也存在基于WMD的相似性方法 (WmdSimilarity).

参考:https : //markroxor.github.io/gensim/static/notebooks/WMD_tutorial.html

两者之间有什么区别,除了明显的一个是距离,另一个是相似性?

更新:两者完全相同,只是表示形式不同。

n_queries = len(query)
result = []
for qidx in range(n_queries):
    # Compute similarity for each query.
    qresult = [self.w2v_model.wmdistance(document, query[qidx]) for document in self.corpus]
    qresult = numpy.array(qresult)
    qresult = 1./(1.+qresult)  # Similarity is the negative of the distance.

    # Append single query result to list of all results.
    result.append(qresult)
Run Code Online (Sandbox Code Playgroud)

https://github.com/RaRe-Technologies/gensim/blob/develop/gensim/similarities/docsim.py

nlp nltk gensim word2vec word-embedding

4
推荐指数
1
解决办法
1392
查看次数

UnpicklingError:无效的加载密钥,'3'

我正在创建一个聊天机器人.所以,我需要二进制格式的word2vec文件.当我加载bin文件时,我得到这种类型的错误.

import gensim

model = gensim.models.Word2Vec.load('GoogleNews-vectors-negative300.bin')

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/surya/anaconda3/lib/python3.6/site-packages/gensim/models/word2vec.py", line 975, in load
return super(Word2Vec, cls).load(*args, **kwargs)
File "/home/surya/anaconda3/lib/python3.6/site-packages/gensim/models/base_any2vec.py", line 629, in load
model = super(BaseWordEmbeddingsModel, cls).load(*args, **kwargs)
File "/home/surya/anaconda3/lib/python3.6/site-packages/gensim/models/base_any2vec.py", line 278, in load
return super(BaseAny2VecModel, cls).load(fname_or_handle, **kwargs)
File "/home/surya/anaconda3/lib/python3.6/site-packages/gensim/utils.py", line 395, in load
obj = unpickle(fname)
File "/home/surya/anaconda3/lib/python3.6/site-packages/gensim/utils.py", line 1302, in unpickle
return _pickle.load(f, encoding='latin1')_pickle.

UnpicklingError: invalid load key, '3'.
Run Code Online (Sandbox Code Playgroud)

python-3.x gensim word2vec

4
推荐指数
1
解决办法
3380
查看次数