BM25检索器:使用BM25方法搜索文档
在本指南中,我们定义了一个使用BM25方法搜索文档的BM25检索器。BM25(最佳匹配25)是一种排名函数,通过考虑词频饱和度和文档长度来扩展TF-IDF。BM25有效地根据查询词的出现和在整个语料库中的稀有性对文档进行排名。
设置
如果你在Colab上打开此笔记本,你可能需要安装LlamaIndex。
%pip install llama-index
%pip install llama-index-retrievers-bm25
设置OpenAI API密钥:
import os
os.environ["OPENAI_API_KEY"] = "sk-proj-..."
导入必要的库并设置模型:
from llama_index.core import Settings
from llama_index.llms.openai import OpenAI
from llama_index.embeddings.openai import OpenAIEmbedding
Settings.llm = OpenAI(model="gpt-3.5-turbo")
Settings.embed_model = OpenAIEmbedding(model_name="text-embedding-3-small")
下载数据
!mkdir -p 'data/paul_graham/'
!wget 'https://raw.githubusercontent.com/run-llama/llama_index/main/docs/docs/examples/data/paul_graham/paul_graham_essay.txt' -O 'data/paul_graham/paul_graham_essay.txt'
加载数据
首先展示如何将文档转换为一组节点,并插入到文档存储中。
from llama_index.core import SimpleDirectoryReader
# 加载文档
documents = SimpleDirectoryReader("./data/paul_graham").load_data()
初始化节点解析器并获取节点:
from llama_index