PreProcessors
PreProcessors
파일을 문서로 변환한 뒤에는 그대로 쓰기보다 다듬어야 하는 경우가 많아요. PreProcessors는 문서 안의 공백을 정규화하고, 머리글·바닥글을 제거하고, 빈 줄을 정리하고, 긴 문서를 더 작은 조각으로 나누는 데 쓰는 컴포넌트 묶음입니다. 인덱싱 파이프라인에서 파일을 검색 가능한 상태로 준비하는 역할을 하죠.
출처: 공식문서
어떤 전처리기가 있나
| PreProcessor | 설명 |
|---|---|
| ChineseDocumentSplitter | HanLP를 사용한 정확한 중국어 단어 분리와 문장 토큰화로 중국어 텍스트 문서를 더 작은 청크로 나눕니다. |
| ChonkieRecursiveDocumentSplitter | Chonkie의 RecursiveChunker로 규칙 계층을 재귀적으로 적용해, 모든 청크가 크기 제약을 만족할 때까지 점점 더 세밀하게 분할합니다. |
| ChonkieSemanticDocumentSplitter | Chonkie의 SemanticChunker로 임베딩 유사도를 이용해 의미 주제 경계에서 문서를 분할해, 관련 문장을 함께 유지합니다. |
| ChonkieSentenceDocumentSplitter | Chonkie의 SentenceChunker로 문장 경계를 존중하며 분할해, 문장 중간에 잘리지 않게 합니다. |
| ChonkieTokenDocumentSplitter | Chonkie의 TokenChunker로 고정 크기 토큰 기반 청크로 분할하며, 여러 토크나이저를 지원합니다. |
| CSVDocumentCleaner | 특정 무시할 행·열을 보존하면서 빈 행과 열을 제거해 CSV 문서를 정리합니다. |
| CSVDocumentSplitter | 빈 행과 열을 기준으로 CSV 문서를 더 작은 하위 테이블로 나눕니다. |
| DocumentCleaner | 문서에서 여분의 공백, 빈 줄, 지정된 부분 문자열, 정규식, 페이지 머리글과 바닥글을 제거합니다. |
| DocumentPreprocessor | 텍스트 문서 목록을 더 짧은 텍스트 문서 목록으로 나눈 뒤 정리해서 더 읽기 좋게 만듭니다. |
| DocumentSplitter | 텍스트 문서 목록을 텍스트가 더 짧은 문서 목록으로 분할합니다. |
| EmbeddingBasedDocumentSplitter | 연속된 문장 그룹 사이의 코사인 거리를 사용해 임베딩 유사도를 기준으로 문서를 분할합니다. |
| HierarchicalDocumentSplitter | 텍스트 세그먼트 간 부모-자식 관계를 기반으로 다단계 문서 구조를 만듭니다. |
| MarkdownHeaderSplitter | ATX 스타일 Markdown 헤더(#)에서 문서를 분할하고 선택적으로 2차 분할합니다. 헤더 계층을 메타데이터로 보존합니다. |
| PresidioDocumentCleaner | Microsoft Presidio를 사용해 문서 텍스트의 PII를 엔티티 유형 자리표시자로 바꿉니다. |
| PresidioTextCleaner | 일반 문자열의 PII를 대체합니다. LLM에 도달하기 전에 사용자 질의를 정화하는 데 유용합니다. |
| PythonCodeSplitter | import, 함수, 클래스 헤더, 메서드, 문장 같은 AST 단위를 사용해 Python 소스 문서를 구문 인식 청크로 분할합니다. |
| RecursiveSplitter | 구분자 목록을 주어진 순서대로 텍스트에 재귀적으로 적용해 더 작은 청크로 분할합니다. |
| TextCleaner | 정규식, 구두점, 숫자를 제거하고 텍스트를 소문자로 변환합니다. 평가 전 텍스트 데이터를 정리하는 데 유용합니다. |
실제로는 어떻게 쓰나
PreProcessors는 보통 변환기(Converter) 뒤, 검색기(Retriever)와 Write 컴포넌트 앞에 놓여요. 먼저 변환기로 파일을 문서로 바꾸고, DocumentCleaner로 노이즈를 제거한 뒤, DocumentSplitter 같은 분할기로 긴 문서를 검색·생성에 알맞은 크기로 쪼개는 식이죠. 어떤 파일 형식을 다루느냐에 따라 CSV 전용이나 Python 코드 전용 분할기를 골라 쓰면 됩니다.
더 알아보기
- DocumentSplitter — 문서를 더 작은 조각으로 나누는 방법
- Converters — 파일을 문서로 변환하는 단계