fix: preserve spaces during recursive text splitting (#39498)

This commit is contained in:
CYJ1226 2026-07-27 12:21:26 +09:00 committed by GitHub
parent 34e6e5a049
commit e4e99d198b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 2 deletions

View File

@ -91,8 +91,8 @@ class FixedRecursiveCharacterTextSplitter(EnhanceRecursiveCharacterTextSplitter)
splits = re.split(r" +", text)
else:
splits = text.split(separator)
if self._keep_separator:
splits = [s + separator for s in splits[:-1]] + splits[-1:]
if self._keep_separator:
splits = [s + separator for s in splits[:-1]] + splits[-1:]
else:
splits = list(text)
if separator == "\n":

View File

@ -952,6 +952,21 @@ class TestFixedRecursiveCharacterTextSplitter:
assert "word1" in combined
assert "word2" in combined
def test_preserves_spaces_when_recursively_splitting_long_paragraph(self):
"""Ensure recursive space splitting preserves word boundaries."""
text = "여름철에는 항상 기상상황에 주목하며 주변 사람들과 함께 정보를 공유합니다."
splitter = FixedRecursiveCharacterTextSplitter(
fixed_separator="\n\n",
chunk_size=20,
chunk_overlap=0,
keep_separator=True,
)
result = splitter.split_text(text)
assert len(result) > 1
assert " ".join(result) == text
def test_character_level_splitting(self):
"""Test character-level splitting when no separator works."""
text = "verylongwordwithoutspaces"