对于完全相同的句子,余弦相似度为0.7

时间:2018-03-31 09:24:14

标签: python-3.5 doc2vec

两个相同句子的余弦相似度为0.7。我的doc2vec模型是否正确?我正在使用kaggle中提供的quora问题对数据集。在下面的代码中,train1是第一个问题的列表,train2是第二个问题的列表。

object

1 个答案:

答案 0 :(得分:0)

看起来您可能正在使用gensim Doc2Vec,但开箱即用,它不支持pretrained_emb参数,并且使用预训练的字嵌入并非必然对大多数应用程序有益,特别是如果您有足够的培训文档。此外,您通常无法使用来自其他地方的100维单词向量来帮助种植300维Doc2Vec模型。 (我很惊讶你使用的任何代码都不会因为这种不匹配而产生错误。)

使用此算法的典型已发表作品(' Paragraph Vector')使用了10次,20次或更多次培训,但是(再次假设您正在使用gensim)您已将其留在默认值为5。

min_count降低到非默认值1通常会使结果变得更糟,因为具有如此少发生的单词仅用作噪声,使得其他文档/单词的学习向量不那么一致。

你比较哪两个句子,以及如何?

由于算法本身使用随机初始化,然后在训练期间采用几种形式的随机抽样,然后多线程训练增加了一些文本处理顺序的额外随机化,在精确运行Doc2Vec相同的语料库反复赢得通常获得相同的结果。

在训练集中出现两次相同的文本,使用不同的tags,但必须获得相同的向量 - 尽管它们应该相似。 (他们通常应该通过更多的培训通道变得更相似,但是较小的文档可能会显示更多的文本到文本或运行到运行的差异,因为较少的目标词可以通过模型进行调整更少(对于相同的文本重复推断向量,模型后训练也会出现同样的情况......虽然调整infer_vector()steps的{​​{1}}值可能会使结果更多从一次到另一次运行稳定。)