我使用Doc2Vec标记作为文档的唯一标识符,每个文档都有不同的标记,没有语义意义。我使用标记来查找特定的文档,以便计算它们之间的相似性。
标签会影响我的模型的结果吗?
在这个教程中,他们讨论一个参数train_lbls=false,当这个参数设置为false时,没有为标签(标记)学习到任何表示。
这个教程有点过时了,我想参数已经不存在了,Doc2Vec是如何处理标记的?
发布于 2017-05-16 05:30:47
对于gensim的Doc2Vec,您的文本示例必须是类似于示例TaggedDocument类的对象:具有words和tags属性。tags属性应该是一个“标记”列表,作为文档向量的键,这些文档向量将从相应的文本中学习。
在经典/原始的情况下,每个文档都有一个标记--本质上是该文档的唯一ID。(标记可以是字符串,但是对于非常大的corpuses,如果您使用普通的Python标记(从0开始,没有跳过的值),Doc2Vec将使用更少的内存。)
这些标签被用来在训练后查找所学的向量。如果您在使用单个标记'mars'进行培训时有一个文档,您可以使用以下方法查找学习到的向量:
model.docvecs['mars']如果您正在执行model.docvecs.most_similar['mars']调用,结果也将由它们的标记键报告。
标记只是文档向量集合的键--它们没有语义意义,即使文本中的单词标记重复字符串,这个标记键和单词之间也没有必要的关系。
也就是说,如果您的文档的单个ID标记是“mars”,那么通过该键(model.docvecs['mars'])访问的学习文档向量与使用相同字符串键(model.wv['mars'])访问的任何学习单词向量(它们来自不同的-向量集合)之间没有本质的关系。
https://stackoverflow.com/questions/43543762
复制相似问题