赞
踩
rag系统在构建向量库时,调用embedding模型之前需要考虑如何将原始文本做分块,好的分块策略可以帮助我们优化从向量库被召回的内容的准确性。
分块的方法:
我们只需决定块中的tokens的数量,以及它们之间是否应该有任何重叠。一般来说,我们会在块之间保持一些重叠,以确保语义上下文不会在块之间丢失。在大多数情况下,固定大小的分块将是最佳方式。与其他形式的分块相比,固定大小的分块在计算上更加经济且易于使用,因为它在分块过程中不需要使用任何NLP库。
- text = "..." # your text
- from langchain.text_splitter import CharacterTextSplitter
- text_splitter = CharacterTextSplitter(
- separator = "\n\n",
- chunk_size = 256,
- chunk_overlap = 20
- )
- docs = text_splitter.create_documents([text])
正如我们之前提到的,许多模型都针对Embedding句子级内容进行了优化。当然,我们会使用句子分块,有几种方法和工具可以做到这一点,包括:
- text = "..." # your text
- from langchain.text_splitter import NLTKTextSplitter
- text_splitter = NLTKTextSplitter()
- docs = text_splitter.split_text(text)
- text = "..." # 你的文本
- from langchain.text_splitter import SpacyTextSplitter
- text_splitter = SpaCyTextSplitter()
- docs = text_splitter.split_text(text)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。