如何在 python 中获取 gensim 中单词的最近文档



我正在使用 doc2vec 模型来构建我的文档向量,如下所示。

from gensim.models import doc2vec
from collections import namedtuple
dataset = json.load(open(input_file))
docs = []
analyzedDocument = namedtuple('AnalyzedDocument', 'words tags')
for description in dataset:
tags = [description[0]]
words = description[1]
docs.append(analyzedDocument(words, tags))
model = doc2vec.Doc2Vec(docs, vector_size = 100, window = 10, min_count = 1, workers = 4, epochs = 20)

我已经看到gensim doc2vec还包括词向量。假设我为单词deep learning创建了一个词向量。我的问题是;是否可以在 Python 中的 Gensim 中获取最接近deep learning词向量documents

如果需要,我很乐意提供更多细节。

一些Doc2Vec模式将在"同一空间"中共同训练文档向量和词向量。然后,如果你有一个'deep_learning'词向量,你可以要求该向量附近的文档,结果可能对你有用。例如:

similar_docs = d2v_model.docvecs.most_similar(
positive=[d2v_model.wv['deep_learning']]
)

但:

  • 这只会和你的模型学到的一样好,'deep_learning'作为一个词来表示你认为它的意思。

  • 符合类别'deep_learning'(和其他类别)的已知良好文档的训练集可能会更好 - 无论您是手动策划这些文档,还是尝试从其他来源引导(例如维基百科类别"深度学习"或您信任的其他精选/搜索结果集)。

  • 将一个类别简化为单个汇总点(一个向量)可能不如拥有各种示例(许多点)都适合该类别。(相关文档可能不是围绕摘要点的整齐球体,而是填充文档向量高维空间的外向形状区域。如果你有很多每个类别的好例子,你可以训练一个分类器,然后标记或对训练类别进行排名,任何进一步的未分类文档。

最新更新