재귀적 분할 - 텍스트 스플리터 통합 가이드
재귀적 분할 - 텍스트 스플리터 통합 가이드
이 텍스트 스플리터는 일반 텍스트에 권장되는 것입니다. 문자 목록으로 파라미터화됩니다. 청크가 충분히 작아질 때까지 그 문자들로 순서대로 분할하려고 시도합니다. 기본 목록은 ["\n\n", "\n", " ", ""]입니다. 이는 가능한 한 오래 모든 단락(그리고 문장, 단어)을 함께 유지하려고 하는 효과가 있는데, 그것들이 일반적으로 가장 강하게 의미적으로 관련된 텍스트 조각이기 때문입니다.
- 텍스트 분할 방법: 문자 목록으로 분할.
- 청크 크기 측정 방법: 문자 수로 측정.
아래는 사용 예시를 보여줍니다.
npm install @langchain/textsplitters
pnpm install @langchain/textsplitters
yarn add @langchain/textsplitters
bun add @langchain/textsplitters
문자열 콘텐츠를 직접 얻으려면 .splitText를 사용하세요. LangChain Document 객체를 만들려면(예: 다운스트림 작업에서 사용하기 위해) .createDocuments를 사용하세요.
import { RecursiveCharacterTextSplitter } from "@langchain/textsplitters";
const splitter = new RecursiveCharacterTextSplitter({ chunkSize: 100, chunkOverlap: 0 })
const texts = splitter.createDocuments([{ pageContent: "..." }])
[
{ pageContent: "...", metadata: {} },
]
RecursiveCharacterTextSplitter에 대해 위에서 설정한 파라미터를 살펴보겠습니다:
chunkSize: 청크의 최대 크기, 크기는lengthFunction에 의해 결정됨.chunkOverlap: 청크 간 목표 중첩. 중첩 청크는 컨텍스트가 청크 사이에 분할될 때 정보 손실을 완화하는 데 도움을 줍니다.
단어 경계가 없는 언어의 텍스트 분할
일부 문자 체계에는 단어 경계가 없습니다(예: 중국어, 일본어, 태국어). 기본 구분자 목록 ["\n\n", "\n", " ", ""]로 텍스트를 분할하면 단어가 청크 사이에서 분할될 수 있습니다. 단어를 함께 유지하려면 추가 구두점을 포함하도록 구분자 목록을 재정의할 수 있습니다:
- ASCII 마침표 "
.", Unicode 전각 마침표 "."(중국어 텍스트에서 사용), 표의 문자 마침표 "。"(일본어와 중국어에서 사용) 추가 - 태국어, 미얀마어, 크메르어, 일본어에서 사용되는 Zero-width space 추가
- ASCII 쉼표 "
,", Unicode 전각 쉼표 ",", Unicode 표의 문자 쉼표 "、" 추가
const splitter = new RecursiveCharacterTextSplitter({
separators: [
"\n\n",
"\n",
" ",
".",
",",
"\u200b", // Zero-width space
"\uff0c", // Fullwidth comma
"\u3001", // Ideographic comma
"\uff0e", // Fullwidth full stop
"\u3002", // Ideographic stop
"",
],
});
출처: 문서
더 알아보기 (Learn more)
- 이 문서를 MCP로 연결하면 Claude, VSCode 등에서 실시간 답변을 받을 수 있어요.
- GitHub에서 이 페이지 편집하기 또는 이슈 제출하기.