Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将doc2vec段落表示映射到训练后的类标记_Python_Gensim_Word2vec_Text Classification_Doc2vec - Fatal编程技术网

Python 将doc2vec段落表示映射到训练后的类标记

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 但是

我已经使用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
但是,您也可以使用相同的标记标记一组文档,以便训练类表示,这就是我在这里所做的。可以使用以下命令查询输出表达的数量:

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维空间中非常简单的形状

对于分类,您可能希望让所有文档获得单个向量,而不是基于它们的已知类,或者除了它们的已知类之外,然后在该文档向量集上训练一个单独的分类器,即标签数据。这可以发现类之间更细粒度、形状奇特的边界