【发布时间】:2021-11-02 16:02:51
【问题描述】:
我目前正在使用 gensim 4.0.1 版来生成词向量。我的最终目标是计算所有成对组合词向量之间的余弦距离,并使用获得的距离矩阵对词向量进行聚类。到目前为止,我一直在使用以下代码生成距离矩阵:
print('Setting up Word2Vec model')
model = gensim.models.Word2Vec (genome_tokens, vector_size=100, window=args.window_size, min_count=args.min_cluster_size, workers=args.threads, sg=1)
print('Training Word2Vec model')
model.train(genome_tokens,total_examples=len(genome_tokens),epochs=10)
words = sorted(model.wv.index_to_key)
scaled_data = [model.wv[w] for w in words]
print('Calculating distribution distance among clusters')
cluster_distrib_distance = pairwise_distances(scaled_data, metric=args.metric)
我想知道是否有一个特定的函数可以直接从模型对象中获取距离矩阵,而不必创建单词和缩放数据对象。
通过 gensim 文档,我主要找到了有关计算相似性而不是距离的方法的信息,并且通常是在文档之间而不是单个单词之间。在github repository 上似乎确实对此主题进行了一些讨论,但那里描述的方法似乎特定于旧版本,就像here 提出的解决方案一样
【问题讨论】:
标签: python nlp gensim word2vec