我在数据库中有大量的句子,我想找到与用户输入的单个句子最相似的句子
看起来我可能可以用annoy and gensim来做这件事,但我看到的所有例子都是使用word2vec,我相信它对查找单个相似的单词很有帮助,但对句子却没有帮助。但是,我注意到hatterIndexer()可以采用word2vec或doc2vec模型
这个过程是相同的,但将word2vec模型与doc2vec模型交换,并使用搜索语句的doc2vec向量,对吗
我是否需要以任何方式使用预先训练好的单词嵌入,或者我只是用数据库中的句子语料库来训练doc2vec模型
谢谢大家!
Doc2Vec
不需要任何预先训练的词向量:您只需在语料库中训练它,它就可以了解它需要什么为了比较句子,你也可以试着计算每个句子的向量,它是所有单词向量的总和或平均值
如果句子不是太长,你也可以考虑“单词搬家者的距离”,可以从^ {CD2>}单词向量作为^ {< CD3>}。(计算这些成对距离比计算两个固定长度向量之间的简单相似性要昂贵得多——但它可以更好地捕捉人类对相似性的感知。)
请注意,HARDE只是一个索引优化,它以精度为代价来提高速度。只有在找到
.most_similar()
的蛮力方法——计算所有相似性,然后排序以找到top-N——太慢的情况下,才有必要这样做。它将使用更多的内存进行索引,并且为了速度,有时可能无法找到准确的最近邻相关问题 更多 >
编程相关推荐