我正在使用 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'
(和其他类别)的已知良好文档的训练集可能会更好 - 无论您是手动策划这些文档,还是尝试从其他来源引导(例如维基百科类别"深度学习"或您信任的其他精选/搜索结果集)。将一个类别简化为单个汇总点(一个向量)可能不如拥有各种示例(许多点)都适合该类别。(相关文档可能不是围绕摘要点的整齐球体,而是填充文档向量高维空间的外向形状区域。如果你有很多每个类别的好例子,你可以训练一个分类器,然后标记或对训练类别进行排名,任何进一步的未分类文档。