赞
踩
当处理长篇文本时,将文本分割成较小的块可以更好地处理和分析。下面详细介绍这个过程的工作原理和步骤:
分割文本为小块:
合并小块:
确定块大小:
创建重叠块:
下面是一个使用 RecursiveCharacterTextSplitter
进行文本分割的示例代码:
from langchain_text_splitters.character import RecursiveCharacterTextSplitter # 清理文本以确保没有非 UTF-8 字符 def clean_text(text): return text.encode("utf-8", errors="ignore").decode("utf-8") # 示例文本 text = "This is a long document\n\nthat we can split up.\nHere is another line." cleaned_text = clean_text(text) # 创建一个递归字符文本分割器对象 text_splitter = RecursiveCharacterTextSplitter( separators=["\n\n", "\n", " ", ""], # 按这些分隔符递归分割文本 chunk_size=20, # 块大小限制为 20 个字符 chunk_overlap=5, # 块之间重叠 5 个字符 length_function=len, # 使用 len 函数来测量块的大小 is_separator_regex=False, # 不使用正则表达式作为分隔符 ) # 分割文本 split_texts = text_splitter.split_text(cleaned_text) # 打印分割后的文本 for i, split_text in enumerate(split_texts): print(f"Part {i + 1}: {split_text}")
按分隔符分割文本:
检查块大小并进一步分割:
处理重叠:
Part 1: This is a long
Part 2: is a long document
Part 3: that we can split
Part 4: can split up.
Part 5: Here is another line.
通过这种方式,文本被分割成较小的、语义相关的块,同时通过重叠保持块之间的上下文连贯性。这种方法特别适用于需要处理长文本但又希望保持文本语义完整性的应用场景。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。