Python 将doc2vec段落表示映射到训练后的类标记
我已经使用Python的gensim包中的Doc2Vec模块对文本文档上的Doc2Vec段落嵌入进行了培训。通常,每个文档都带有唯一的ID标记,从而产生唯一的输出表示,详细信息请参见以下内容:Python 将doc2vec段落表示映射到训练后的类标记,python,gensim,word2vec,text-classification,doc2vec,Python,Gensim,Word2vec,Text Classification,Doc2vec,我已经使用Python的gensim包中的Doc2Vec模块对文本文档上的Doc2Vec段落嵌入进行了培训。通常,每个文档都带有唯一的ID标记,从而产生唯一的输出表示,详细信息请参见以下内容: def tag_docs(docs, col): tagged = docs.apply(lambda r: TaggedDocument(words=simple_preprocess(r[col]), tags=[r.label]), axis=1) return tagged 但是
def tag_docs(docs, col):
tagged = docs.apply(lambda r: TaggedDocument(words=simple_preprocess(r[col]), tags=[r.label]), axis=1)
return tagged
但是,您也可以使用相同的标记标记一组文档,以便训练类表示,这就是我在这里所做的。可以使用以下命令查询输出表达的数量:
print(model.docvecs.count)
我的问题如下:我训练了n类文档的模型,在model.docvecs中生成了n个文档向量。现在,我想将每个文档向量映射到相应的类标记。如何确定哪个向量与哪个标记关联?如果classA是您在培训期间提供的文档标记之一,则model.docvecs['classA']将返回从培训中为该标记学习的单个文档向量
如果您有另一个新向量,例如通过model.infere\u vectorwords在新文本上推断的向量,那么您可以通过model.docvecs.most\u similarpositive=[new\u vectorwords]获得模型中哪些学习到的文档向量最接近的列表
如果您真正的目标是将新文档分类为一个或多个此类,那么采用最相似的结果是一种粗略的方法
但是,如果将所有类都简化为一个摘要向量(为该标记学习的一个向量),然后只获取一个新文档的最近邻,则可能无法很好地执行。这在一定程度上迫使人们假设类是n维空间中非常简单的形状
对于分类,您可能希望让所有文档获得单个向量,而不是基于它们的已知类,或者除了它们的已知类之外,然后在该文档向量集上训练一个单独的分类器,即标签数据。这可以发现类之间更细粒度、形状奇特的边界