CHUNKING
How it’s built
v1.0 · 2026-10-27
Method
- 정적 HTML·CSS·JavaScript로 구성한다. 입력 변경 계산은 Web Worker에서 실행한다. 기본 입력의 표와 SVG는 같은 엔진으로 미리 계산해 HTML에 넣었다. 언어·테마·글자 크기를 바꿔도 계산 모델은 같다.
- 브라우저 모델 학습 없음. 준비 단계에서 TF-IDF→SVD를 적합했다. NumPy 2.3.5 · scikit-learn 1.8.0 · PyMuPDF 1.26.6 · KaTeX 0.16.11.
- 본문 초안 작성 보조: GPT-6. 실습 실행 중 LLM 호출 없음.
- 1 Length Units — 조문 ID를 바꾸며 각 길이 수치를 비교한다. 한 단위의 개수를 다른 단위의 예산으로 그대로 옮겨 쓰지 않는다.
- 2 Fixed Windows — 청크 길이를 바꾸고 원문 구절이 청크 경계에서 나뉘는지 확인한다. 표의 시작·끝은 끝점을 포함하지 않는 구간이다.
- 3 Structure-aware Chunking — 제619조의2처럼 항이 여러 개인 조문을 선택한다. 최대 길이를 줄이고, 구조 경계와 길이 fallback이 동시에 적용되는 방식을 확인한다.
- 4 Overlap & Redundancy — 겹침을 0에서 늘리며 찾는 구절이 보존되는지와 복사량이 얼마나 증가하는지 함께 본다. 구절 포함은 의미검색의 정답이 아니다.
Data
- 사용자가 첨부한 2026-03-02 시행본 PDF 168쪽에서 712개 레코드를 만들었다. 검색은 조문과 별표·부칙 레코드 단위이며 청킹 탭은 분할 원리를 별도로 실험한다. TF-IDF 어휘 3,000개와 시드 42로 32차원 LSA를 만들었다. 계산 데이터 4.55 MB와 원본 PDF 2.80 MB를 공통 폴더에 둔다.
- 공개 법령 원문 + 작성한 관련성 라벨 12개 + 범위 밖 질의 2개. 문서 접근 등급·공격 문자열·질의 변형은 합성 입력이다.
- 입력은 앱 저장소에 보관하지 않는다. 상태 URL에는 실습 값이 포함되며 테마·글자 크기는 localStorage에 저장한다.
Validation
- 수식은 BM25·RRF·코사인·순위 지표의 정의와 독립 계산값을 대조한다. 시드 재현성·경계 입력·상태 직렬화·인용 추적·로컬 파일 연결은 소스 검증 스크립트로 확인한다. 공개 데이터에 붙인 관련성 라벨과 접근 등급은 작성자가 만든 설명용 예시다.
- 18개 계산·구조 검증 항목과 기본·최소·최대 입력 108개를 통과했다. BM25 수작업 예제, RRF 합산, 순위 지표, SHA-256 일치와 시드 재현을 포함한다.
Scope
- Knowledge Base 구축 기술을 다루며 OSH 안전 규정 해설은 별도 영역이다. 이 구현은 실제 LSA·BM25 계산을 사용한다. OCR, 신경망 임베딩, 생성형 답변, HNSW, 운영 인증 서버는 실행하지 않는다. RAG 탭은 근거 선택·컨텍스트 조립·인용·보류 기준을 다룬다.
- Length Units: 조문 ID ≤300 characters
- Fixed Windows: 조문 ID ≤300 characters, 청크 길이 50–1000 , 찾는 구절 ≤300 characters
- Structure-aware Chunking: 조문 ID ≤300 characters, 최대 청크 길이 100–1000 , 찾는 구절 ≤300 characters
- Overlap & Redundancy: 조문 ID ≤300 characters, 청크 길이 100–600 , 겹침 길이 0–300 , 찾는 구절 ≤300 characters
Sources
- Unicode · UAX #15: Unicode Normalization Forms
- scikit-learn · Feature extraction
- Lewis et al. · Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (2020)
- W3C · PROV-DM: The PROV Data Model (2013)
- PyMuPDF · Text extraction recipes
- 실습 코퍼스 · 첨부 PDF와 추출 레코드
- 법령 본문: 대한민국 저작권법 제7조의 보호받지 못하는 저작물. 첨부 시행본을 그대로 보존한다.
- NumPy · BSD-3-Clause; scikit-learn · BSD-3-Clause; PyMuPDF · AGPL-3.0 (preparation only); KaTeX · MIT (CDN)
History
- 2026-10-27 · v1.0 · 공개