如果我给出一个句子如何将所有相似的句子归还给它?
例如:
面试需要多长时间?
类似的句子应该是
1.面试持续多久。
2.面试时间。
怎么做?
我想到的一种方法是抓取30到40个公司职业网站的常见问题解答页面并使用doc2vec嵌入问题,我会将所有类似的向量保存在一个集群中。
有比这更好的方法吗?
答案 0 :(得分:0)
我认为那里的输出是随机的。为什么不在这样的几十个输入上手动训练它。结果可能很快就会很好。
答案 1 :(得分:0)
一旦你有了单词向量 - 从其他地方重用的通用单词,或者(更好)有些人训练我们你的文本域 - 你也可以使用" Word Mover的距离" (WMD)评估句子(或其他短文本)的相似性。一些演示表明,即使使用非常不同的单词,它也可以通过类似的含义对句子进行排序。
然而,请注意,与简单的向量距离方法相比,WMD的计算成本相对较高,这些方法为每个文本提供了单个向量,如Doc2Vec
。因此,它可能仅适用于较小的文本集,或者如果可以专用大量计算能力,或者额外的首次通过优化限制了成对WMD计算的数量。
(还有另一个可能更便宜地接近WMD性能的指标,称为“软余弦相似性”。在最近的Python gensim版本中可以使用WMD和软余弦相似度计算包装,但它们尚未完全优化,也没有明确描述的最佳实践。)