87 lines
7.9 KiB
Markdown
87 lines
7.9 KiB
Markdown
---
|
|
id: 텍스트-정규화
|
|
title: "텍스트 정규화"
|
|
category: "AI_and_ML"
|
|
status: "draft"
|
|
verification_status: "conceptual"
|
|
canonical_id: ""
|
|
aliases: ["Text Normalization", "데이터 정제", "전처리 정규화", "Data Cleaning", "의미적 일관성 확보", "텍스트 클렌징"]
|
|
duplicate_of: ""
|
|
source_trust_level: "A"
|
|
confidence_score: 0.92
|
|
created_at: 2026-06-08
|
|
updated_at: 2026-06-08
|
|
review_reason: ""
|
|
merge_history: []
|
|
tags: ["research", "RAG 아키텍처 및 파이프라인 기초", "Preprocessing", "Data-Cleaning"]
|
|
raw_sources: ["[Tech Series] kt cloud AI 검색 증강 생성(RAG) #2 : 데이터 파싱과 전처리 최적화", "1. RAG 파이프라인 기초 아키텍처", "RAG 솔루션 디자인 및 개발 - Azure Architecture Center - Microsoft Learn", "기업용 RAG 시스템 보안 설계 방법, 핵심은 '외부 지식 통제' - 알체라"]
|
|
applied_in: ["01_RAG_파이프라인_기초_아키텍처.ipynb", "OCR 결과 정제 파이프라인", "kt cloud AI Foundry RAG Suite"]
|
|
github_commit: ""
|
|
---
|
|
|
|
# [[텍스트 정규화]]
|
|
|
|
## 🎯 한 줄 통찰 (One-line insight)
|
|
텍스트 정규화는 파싱된 비정형 데이터에서 노이즈를 제거하고 형식적 일관성을 부여하여, 임베딩 벡터의 선명도를 높이고 검색 및 생성 단계의 품질을 보장하는 데이터 전처리의 최종 관문이다 [S344, S396].
|
|
|
|
## 🧠 핵심 개념 (Core concepts)
|
|
- **노이즈 필터링 (Noise Filtering):** 대체문자(), 제어문자(\x0c), 의미 없는 placeholder(Lorem ipsum) 등 임베딩 품질을 저하시키는 불필요한 토큰 요소를 제거하는 과정이다 [S320, S324, S371, S375].
|
|
- **텍스트 균일화 (Uniformity):** 대소문자 통일, 유니코드 정규화, 연속 공백 축약 등을 통해 동일한 의미가 서로 다른 수치로 벡터화되지 않도록 형식을 맞추는 작업이다 [S313, S316, S364, S367].
|
|
- **단어 및 문장 복원 (Restoration):** PDF나 OCR 추출 시 발생하는 하이픈 기반 단어 단절(infor- mation)이나 의도치 않은 줄바꿈을 문맥에 맞게 다시 이어 붙이는 기술이다 [S316, S321, S367, S372].
|
|
- **특수 패턴 보호 (Pattern Protection):** 코드 블록(```)이나 수식($) 등 문법 구조 자체가 의미인 데이터는 정규화 과정에서 깨지지 않도록 마크다운이나 LaTeX 형태로 원형을 보존한다 [S317, S318, S368, S369].
|
|
|
|
## 🧩 추출된 패턴 (Extracted patterns)
|
|
- **Noise-Information Balance Pattern:** 페이지 푸터나 번호처럼 반복되는 노이즈는 과감히 삭제하되, 문서 제목이나 작성일처럼 검색 품질에 기여하는 메타데이터 정보는 선별적으로 보존하여 본문과 분리 관리하는 패턴이다 [S321, S322, S372, S373].
|
|
- **Structure-Aware Normalization:** HTML 태그를 무조건 제거하는 대신 마크다운(Markdown)의 계층 구조(#, ##)로 변환하여 문서의 논리적 맥락을 유지하며 정제하는 구조 인식 패턴이다 [S308, S359].
|
|
- **Whitelist-based Filtering:** 도메인에서 중요한 특수 기호(수학 기호 등)만 남기고 나머지 잔여 노이즈는 자동 필터링하는 정책 기반 정제 패턴을 사용한다 [S320, S371].
|
|
|
|
## 📖 세부 내용 (Details)
|
|
|
|
### 1. 주요 정규화 대상 및 처리 기법 [S316, S321, S367, S372]
|
|
* **공백 및 개행 정리:** 연속된 공백은 하나로 축약하고, 탭은 공백으로 치환한다. 문장 중간의 개행은 제거하여 이어 붙이되, 문단 구분은 `\n\n` 등 이중 개행으로 보존하여 일관성을 유지한다.
|
|
* **문자 단위 정제:** 대체문자 `(U+FFFD)`, 제어문자 `\x0c`, HTML 파싱 후 남은 엔티티(`&`, ` `) 등을 필터링한다.
|
|
* **단어 단절 복원:** "infor- \n mation"과 같이 줄바꿈으로 인해 쪼개진 단어를 "information"으로 복구하여 토큰이 불필요하게 나뉘는 것을 방지한다.
|
|
|
|
### 2. 구조적 요소 보존 전략 [S317, S318, S368, S369]
|
|
* **표(Table) 보존:** 행·열 구조를 무시한 텍스트 나열은 맥락을 붕괴시키므로 HTML이나 Markdown 형태로 보존하여 파싱했을 때 검색 성능이 가장 우수하게 나타난다.
|
|
* **수식(Math) 보존:** LaTeX($...$)이나 MathML 형식을 채택하여 원형을 유지해야 사용자가 기호 그대로 질의했을 때 정확한 매칭이 가능하다.
|
|
* **코드 블록(Code Block):** 들여쓰기, 괄호, 문법 구조가 깨지지 않도록 Markdown 코드 펜스(```)를 유지하며, AST(추상 구문 트리)를 메타데이터로 활용하는 것이 권장된다 [S313, S364].
|
|
|
|
### 3. 품질 관리 및 운영 [S322, S344, S373, S396]
|
|
정제되지 않은 데이터를 투입(Garbage In)하면 검색 단계의 의미적 유사성이 왜곡되어 LLM의 환각(Hallucination) 가능성이 높아진다. 따라서 전처리 파이프라인에 중복 제거(dedup) 모듈과 정규화 노드를 자동화하여 배치 또는 스트리밍 방식으로 지식 베이스의 청정도를 유지해야 한다 [S324, S333, S375, S384].
|
|
|
|
## ⚖️ 모순 및 업데이트 (Contradictions & updates)
|
|
* **불용어(Stopword) 처리의 변화:** 전통적인 검색(IR)에서는 불용어 제거가 필수였으나, 벡터 기반 RAG에서는 맥락 보존을 위해 "shall", "whereas" 같은 법률적 의미를 담은 단어는 오히려 유지하는 것이 검색 정밀도 향상에 유리하다 [S316, S367].
|
|
* **자동화의 한계:** LLM 기반 파싱 제안(AI-assisted parsing) 기술이 발전하고 있으나, 현재까지는 정확한 정규화 규칙과 전용 임베딩 모델의 조합이 가장 안정적인 성능을 보인다는 실무적 견해가 우세하다 [S314, S342, S365, S393].
|
|
|
|
## 🛠️ 적용 사례 (Applied in summary)
|
|
* **01_RAG_파이프라인_기초_아키텍처.ipynb:** `RecursiveCharacterTextSplitter` 적용 전 텍스트 정제 및 인코딩 일치를 위한 실습 코드가 포함되어 있다 [S8, S26, S52, S71].
|
|
* **OCR 결과 정제:** `bounding box` 정보를 활용해 텍스트의 읽기 순서를 복원하고, 불필요한 아티팩트를 제거한 뒤 벡터화하는 파이프라인이 제시되었다 [S312, S313, S363, S364].
|
|
* **kt cloud AI Foundry RAG Suite:** 다양한 문서 유형(PDF, PPT, Word)에 대해 레이아웃을 보존하며 노이즈를 자동 제거하는 API 서비스로 운영되고 있다 [S342, S393].
|
|
|
|
## ✅ 검증 상태 및 신뢰도
|
|
- **상태:** draft
|
|
- **검증 단계:** conceptual (실제 구현 사례 및 기술 블로그 가이드 기반)
|
|
- **출처 신뢰도:** A (kt cloud, Microsoft Azure, 알체라 등 공식 기술 블로그 및 아키텍처 센터 기반)
|
|
- **신뢰 점수:** 0.92
|
|
- **중복 검사 결과:** 신규 생성 (New discovery)
|
|
|
|
|
|
## 🔗 지식 그래프 (Knowledge Graph)
|
|
- **상위/루트:** [[RAG 아키텍처 및 파이프라인 기초]]
|
|
- **관련 개념:** [[데이터 인덱싱 및 오케스트레이션]], [[문서 청킹 전략]], [[텍스트 토크나이저]], [[임베딩 품질]]
|
|
- **참조 맥락:** 비정형 지식 자산을 검색 가능한 데이터로 변환하는 파이프라인의 '데이터 정제' 단계에서 필수적으로 참조됨.
|
|
|
|
## 📚 출처 (Sources)
|
|
- [S308] HTML DOM 구조 보존 및 마크다운 변환 기법 (kt cloud)
|
|
- [S316] 텍스트 추출 및 정규화, 불용어 처리 전략 (kt cloud)
|
|
- [S317] 표, 수식, 코드 블록 보존의 중요성 (kt cloud)
|
|
- [S321] 줄바꿈 정리 및 메타데이터 필드 구조화 (kt cloud)
|
|
- [S322] 노이즈 제거와 정보 보존의 균형 전략 (kt cloud)
|
|
- [S344] GIGO 원칙에 따른 파싱과 전처리의 영향력 분석 (kt cloud)
|
|
- [S359] HTML 구조 보존 시 Q&A 매칭 정확도 향상 연구 (kt cloud 복사본)
|
|
- [S367] 언어별 최적 토큰화 및 정규화 고려사항 (kt cloud 복사본)
|
|
- [S406] 쿼리 정제 및 입력 검증을 통한 보안 강화 (알체라)
|
|
|
|
## 📝 변경 이력 (Change history)
|
|
- 2026-06-08: Initial draft generated via Datacollector_MAC P-Reinforce engine. |