字符串相似度 TF-IDF Bag of words 或 Word2vec

String similarity TF-IDF Bag of words or Word2vec

我正在尝试创建一个应用程序来计算 2 个字符串之间的相似度。 琴弦不长。最多3个句子。 我做了一些研究,发现了一些可能的解决方案。

第一个使用词袋:计算词数并比较 2 个生成的向量(余弦相似度)

第二次使用 TF-IDF 并比较生成的向量。

第三种是使用word2vec并比较向量。

现在开始提问。

对于短句,word2vec 的性能是否优于 TF-IDF?

训练 word2vec 模型的最佳方法是什么?我应该使用大量文本(例如维基百科转储)还是仅使用正在比较的句子来训练它。

如何从word2vec中获取句子相似度。我应该平均每个句子中的单词还是有更好的解决方案?

  • 有了好的train数据,word2vec肯定有更好的表现。 (我从中得到了很好的结果)

  • 好的模型必须有大量的数据。如果您正在使用英语,最好的方法是使用预训练数据。 this link 中有很好的模型可以使用。 Google 据我所知,新闻预训练模型运行完美。

  • 在句子等部分文本中常用词的平均值。更好的方法可以是像 tf-idf 加权平均那样的加权平均。还有一个关于语义文本相似性的热门研究你可以从它的Wiki Page