25 lines
1.0 KiB
Python
25 lines
1.0 KiB
Python
# RecursiveCharacterTextSplitter 是 LangChain 中最常用的文本分割器,它实现了基于文本结构的分割策略。对于大多数应用场景,这是推荐的默认选择。
|
||
|
||
# 为什么推荐?
|
||
|
||
# 在保持上下文完整性和管理块大小之间取得了良好的平衡
|
||
# 开箱即用,默认配置就能很好地工作
|
||
# 只有在需要针对特定应用进行微调时才需要调整参数
|
||
|
||
from langchain_text_splitters import RecursiveCharacterTextSplitter
|
||
|
||
# 创建递归文本分割器对象,指定参数
|
||
# chunk_size 表示每块最大允许的字符数100
|
||
# chunk_overlap 表示块与块之间没有重叠(重叠字符数0)
|
||
text_splitters = RecursiveCharacterTextSplitter(chunk_size=100, chunk_overlap=0)
|
||
|
||
|
||
document = f"""{"1"*100}\n{"2"*99}\n\n{"3"*99}\n{"4"*99}"""
|
||
|
||
# 使用文本分割器的split_text 方法将document进行分割成多个字符串的块
|
||
texts = text_splitters.split_text(document)
|
||
print(f"共分割出{len(texts)}个块")
|
||
|
||
for i, text in enumerate(texts):
|
||
print(f"\n块{i}({len(text)}字符):{repr(text)}")
|