8.langchain 入门到放弃(三) Text Splitters 之 RecursiveCharacterTextSplitter
langchain 入门到放弃(三) Text Splitters 之 RecursiveCharacterTextSplitter
对于一般文本,推荐使用此文本分割器。它由字符列表参数化。它尝试按顺序分割它们,直到块足够小。默认列表为 ["\n\n", "\n", " ", ""]。这样做的效果是尝试将所有段落(然后是句子,然后是单词)尽可能长时间地放在一起,因为这些通常看起来是语义相关性最强的文本片段。
pip install -qU langchain-text-splitters
from langchain_community.document_loaders import CSVLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
'''
1、通过csvLoader加载本地csv文件,
2、loader.load获取文档对象,
3、并且按照文本长度进行分段
4、调用模型的总结链进行总结,
5、最后输出总结项
'''
loader = CSVLoader(file_path="../source/error.csv")
documents = loader.load()
'''
chunk_overlap指切割后的每个 document 里包含几个上一个 document 结尾的内容
主要作用是为了增加每个 document 的上下文关联。比如,chunk_overlap=0时, 第一个 document 为 aaaaaa,第二个为 bbbbbb;
当 chunk_overlap=2 时,第一个 document 为 aaaaaa,第二个为 aabbbbbb。
'''
textSplitters = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
split_document = textSplitters.split_documents(documents)
print(f'split_document:{len(split_document)}')