如何在 python 中获取 gensim 中单词的最近文档
How to get the nearest documents for a word in gensim in python
我正在使用如下的 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
模式将co-traindoc-vectors和word-vectors在"same space"中。然后,如果您有一个 word-vector 对应 'deep_learning'
,您可以在该向量附近请求文档,结果可能对您有用。例如:
similar_docs = d2v_model.docvecs.most_similar(
positive=[d2v_model.wv['deep_learning']]
)
但是:
这只会与您的模型学到的一样好 'deep_learning'
作为一个词来表示您对它的看法
known-good 个符合类别 'deep_learning'
(和其他类别)的文档的训练集可能会更好 - 无论您 hand-curate 那些,还是尝试 bootstrap 来自其他来源(例如维基百科类别“Deep Learning”或您信任的其他 curated/search-result 集)。
将类别缩减为单个摘要点(一个向量)可能不如拥有各种示例(很多点)都适合该类别。 (相关文档可能不是围绕摘要点的整洁球体,而是填充 doc-vector high-dimensional space 的 exotically-shaped 区域。)如果你有很多很好的例子对于每个类别,您可以训练一个分类器,然后标记或 rank-in-relation-to-trained-categories 任何进一步未分类的文档。
我正在使用如下的 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
模式将co-traindoc-vectors和word-vectors在"same space"中。然后,如果您有一个 word-vector 对应 'deep_learning'
,您可以在该向量附近请求文档,结果可能对您有用。例如:
similar_docs = d2v_model.docvecs.most_similar(
positive=[d2v_model.wv['deep_learning']]
)
但是:
这只会与您的模型学到的一样好
'deep_learning'
作为一个词来表示您对它的看法known-good 个符合类别
'deep_learning'
(和其他类别)的文档的训练集可能会更好 - 无论您 hand-curate 那些,还是尝试 bootstrap 来自其他来源(例如维基百科类别“Deep Learning”或您信任的其他 curated/search-result 集)。将类别缩减为单个摘要点(一个向量)可能不如拥有各种示例(很多点)都适合该类别。 (相关文档可能不是围绕摘要点的整洁球体,而是填充 doc-vector high-dimensional space 的 exotically-shaped 区域。)如果你有很多很好的例子对于每个类别,您可以训练一个分类器,然后标记或 rank-in-relation-to-trained-categories 任何进一步未分类的文档。