我试图建立一个搜索系统,然后我了解了Okapi bm25,这是一个排序功能,像tf-以色列国防军。您可以对您的语料库进行索引,并在以后检索类似于查询的文档。
我导入了一个python库 rank_bm25并创建了一个搜索系统,结果令人满意。
然后我看到了一个叫非度量空间库的东西。我知道它是一个相似的搜索库,很像kNN算法。
我看到一个例子,一个人试图制造一个智能搜索系统在使用nmslib。他做了以下事情:-
fastText模型以创建单词向量如果上面的链接没有打开文档,只需在匿名模式下打开它。
这是相当快,但结果并不令人满意,我的意思是,即使我是复制粘贴任何确切的查询从文档,它没有返回该文档。但是我用rank_bm25制作的搜索系统取得了很好的效果。所以结论是
bm25 gave好结果和 nmslib <#>gave更快的结果。
我的问题是
发布于 2021-02-16 18:30:44
请注意,我不知道nmslib,而且我对一般的搜索优化也不熟悉。不过,我知道Okapi BM25的权重。
两者(bm25,nmslib)有何不同?
这是两件完全不同的事情:
如何将bm25权重传递给nmslib以创建一个更好、更快的搜索引擎?
由于您提到基于BM25的结果是令人满意的,这意味着质量的损失是由于nmslib搜索优化。没有魔法,唯一能让事情变得更快的方法就是少做比较,有时这意味着错误地抛弃一个潜在的好候选人。因此,问题不在于传递BM25权重,而在于理解和调整nmslib的参数:当然有一些参数允许用户在速度和质量之间选择适当的权衡。
https://datascience.stackexchange.com/questions/89435
复制相似问题