使用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

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