您应该使用什么块大小和块重叠?

2025-06-10

您应该使用什么块大小和块重叠?

如果您尝试过任何需要文本分析、自然语言处理和机器学习的重要工作,您很快就会发现,文本拆分要么会使您的分析非常有效,要么比您从未走过这条路更糟糕。

此任务有许多不同的应用程序和用例,但您会遇到的一个更常见的障碍是如何执行文本拆分的过程,大多数库都有块大小和块重叠参数来帮助完成此过程,这是本文的主题。

块大小是指一个块可以包含的最大字符数。
块重叠是指两个相邻块之间应重叠的字符数。

大小块重叠参数可用于控制文本拆分的粒度。较小的块大小会导致更多的块,而较大的块大小会导致更少的块。较大的块重叠会导致更多包含相同字符的块,而较小的块重叠会导致更少包含相同字符的块。

文本分割的方法有很多种。一些常用的方法包括:
基于字符的分割:此方法根据单个字符将文本分成多个块。
基于单词的分割:此方法根据单词将文本分成多个块。
基于句子的分割:此方法根据句子将文本分成多个块。

递归文本分割器

递归文本分割器模块是 LangChain 库中的一个模块,可用于递归地分割文本。这意味着该模块将尝试将文本分割成不同的字符,直到块足够小为止。

from langchain.text_splitter import RecursiveCharacterTextSplitter

text = "This is a piece of text."

splitter = RecursiveCharacterTextSplitter()

chunks = splitter.split_text(text)

for chunk in chunks:
    print(chunk)

Enter fullscreen mode Exit fullscreen mode

输出

This
is
a
piece
of
text.

Enter fullscreen mode Exit fullscreen mode

选择块大小和块重叠参数的最佳方法取决于您要解决的具体问题。但是,一般来说,对于需要细粒度文本视图的任务,建议使用较小的块大小;对于需要更全面文本视图的任务,建议使用较大的块大小

细粒度视图

识别单个单词或字符对于拼写检查、语法检查和文本分析等任务非常有用。
查找文本中的模式对于识别垃圾邮件、识别抄袭以及在文本中发现情感等任务非常有用。
提取关键词对于搜索引擎优化 (SEO)、主题建模和机器翻译等任务非常有用。

例子

# Fine-grained view
chunk_size = 1
chunk_overlap = 0

text = "This is a piece of text."

chunks = splitter.split_text(text, chunk_size, chunk_overlap)

for chunk in chunks:
    print(chunk)

Enter fullscreen mode Exit fullscreen mode

输出

This
is
a
piece
of
text.

Enter fullscreen mode Exit fullscreen mode

整体观点

理解文本的整体含义:这对于机器翻译、文本摘要和问答等任务非常有用。
识别文本不同部分之间的关​​系:这对于自然语言推理、问答和机器翻译等任务非常有用。
生成新文本:这对于机器翻译、文本摘要和创意写作等任务非常有用。

例子

# Holistic view
chunk_size = 10
chunk_overlap = 5

text = "This is a piece of text."

chunks = splitter.split_text(text, chunk_size, chunk_overlap)

for chunk in chunks:
    print(chunk)

Enter fullscreen mode Exit fullscreen mode

输出

This is a
piece of text.

Enter fullscreen mode Exit fullscreen mode

以下是使用递归文本分割器模块的一些额外提示:

在整个代码中使用一致的块大小和块重叠。这将有助于确保结果一致。
考虑要拆分的文本的性质。
如果文本结构性很强,例如代码或 HTML,则可能需要使用较大的块大小。如果文本结构性较差,例如小说或新闻文章,则可能需要使用较小的块大小。
尝试不同的块大小和块重叠,
这将帮助您找到最适合您特定问题的方法。

编码很好!

鏂囩珷鏉ユ簮锛�https://dev.to/peterabel/what-c​​hunk-size-and-chunk-overlap-should-you-use-4338
PREV
使用 Git 别名更快地工作 Git Aliases
NEXT
在家办公,一天结束后如何放松身心?AWS 安全直播!