Text Splitter - 텍스트 분할
Last updated
Last updated
LLM은 입력 길이에 제한이 있기 때문에 긴 문서를 한 번에 처리하는 것이 어렵습니다. TextSplitter는 긴 문서의 데이터를 LLM이 처리하기 쉽게 일정한 크기로 문자열을 나누는(Chunking) 역할을 하는 클래스입니다.
문서 구조 파악
split하고자 하는 문서가 pdf인지, html인지 등을 확인합니다.
문서 분할 단위 선정
문서를 페이지 별로, 문단 별로 어떻게 나눌지를 정합니다.
단위 크기 선정
문서를 몇 개의 토큰 단위로 나눌 것인지를 선정합니다.
청크 오버랩
문맥이 이어질 수 있도록 분할된 텍스트의 각 끝 부분에 이전 문맥의 내용을 겹치는 작업입니다.
가장 기본적인 텍스트 분할 도구로, 특정 문자 기준으로 문서를 나눠줍니다.
RecursiveCharacterTextSpliter는 텍스트를 큰 단락으로 나누고, 각 단락 안에서 문장, 단어등을 세분화 하여 텍스트를 세분화 합니다.
즉 1) 단락 분할 2) 단락 내 문장 분할 3) 문장 내 단어 분할 과정을 통해 세분화합니다.
일반적인 텍스트 분할에서 가장 권장됩니다.
GPT와 같이 입력 토큰 길이가 제한되어 있는 경우 LLM이 처리할 수 있는 크기로 텍스트를 분할할 수 있도록 지원하는 클래스입니다.
JSON, HTML, CODE 기준으로 나눠주는 Spliter들도 존재함.
커리큘럼이 길어지면 추가해보도록 하자.