我想在自定義語料庫上實作 Elasticsearch。我已經安裝了 elasticsearch 版本,7.5.1并且我python使用官方客戶端完成了所有作業。
這里我有幾個問題:
- 如何自定義預處理管道?例如,我想使用 BertTokenizer 將字串轉換為令牌而不是 ngrams
- 如何自定義查詢每個檔案的評分功能?例如,我想比較
tf-idfwith 的效果bm25,甚至使用一些神經模型進行評分。
如果有很棒的 python教程,請與我分享。提前致謝。
uj5u.com熱心網友回復:
創建索引時可以自定義相似度函式。請參閱檔案的相似性模塊部分。您可以在OpenSource Connections 站點上找到一篇比較經典 TF_IDF 與 BM25 的好文章。
通常,Elasticsearch 使用倒排索引來查找包含特定單詞或標記的所有檔案。
聽起來您想使用向量場進行評分,彈性博客上有一篇很好的文章解釋了如何實作這一目標。請注意,目前Elasticsearch 不使用矢量欄位進行檢索,僅用于評分,如果您想使用矢量欄位進行檢索,則必須使用插件或OpenSearch fork,或等待版本 8。
在我看來,在搜索程序中實時使用 ANN 太慢而且成本太高,而且我還沒有看到與正常搜索請求的相關性的改進。
在編制索引之前,我會在您自己的 Python 環境中對您的檔案進行預處理,并且不使用任何 Elasticsearch 管道或插件。在 Elasticsearch 之外進行除錯和迭代更容易。
你也可以看看Haystack Project,它可能有很多你正在尋找的功能,已經內置了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/352734.html
