使用Dask,SBERT SPECTRE和Milvus构建自己的ARXIV论文相似性搜索引擎

通过矢量相似性搜索,可以在〜50ms内响应〜640K论文上的语义搜索查询

Arxiv.org大家一定都不陌生,学习数据科学的最佳方法之一是阅读Arxiv.org上的开源研究论文。但是即使对于经验丰富的研究人员来说,从大量的研究论文中找出想读的内容也是非常不容易的。Connected等论文之类的工具可以提供一些帮助,但是它们根据论文之间共享的引用和参考书目来衡量相似性的,这当然非常的好,并且也很简单,但是文档中文本的语义含义也是一个衡量相似度非常重要的特征。

在这篇文章中,我们将手动构建一个语义相似性搜索引擎,该引擎将单个论文作为“查询”输入,并查找Top-K的最类似论文。我们测试,在单个笔记本电脑中对Arxiv语料库中的640k计算机科学论文进行查询的的延迟<50ms!如果你感兴趣,那么本文的主要内容总结如下:

  • 设置环境并从Kaggle下载ARXIV数据
  • 使用dask将数据加载到Python中
  • 使用MILVUS矢量数据库进行语义相似性搜索

本文中使用的技术不仅仅局限在科学论文,可用作建立任何NLP语义相似性搜索引擎的模板。唯一的区别是使用的预训练模型不同。

这篇文章使用Kaggle的ARXIV数据集是在CC0:公共域许可证下发布的,所以请先阅读其使用授权的要求。

Milvus Vector是一个矢量数据库,我们也可以使用其他矢量数据库,如果使用其他库替换的话,有许多步骤完全相同并且改动并不复杂。

设置环境并从Kaggle下载ARXIV数据。

Cornel University已将整个Arxiv语料库上传到Kaggle,并根据CC0:公共领域许可证获得许可。我们可以使用Kaggle API直接下载数据集。

这里还要使用Conda环境,创建一个称为Semantic_sibilarity的环境。下面的步骤是创建必要的目录和Conda环境,安装所需的Python库,然后从Kaggle下载ARXIV数据集。

 

完整文章:

 

https://avoid.overfit.cn/post/36ad9ebf46ad43f78b84595e793e1a34

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章