33분
실습: 제조 문서 로드와 전처리
Day 1: RAG 개요 & 제조 문서 이해
실습: 제조 문서 로드와 전처리
RAG 기초 > Day 1: RAG 개요 & 제조 문서 이해
학습 목표
- Python으로 PDF, TXT 문서를 로드할 수 있다
- 인코딩이 다른 한글 파일을 같은 내용으로 읽어 낼 수 있다
- 제조 문서에 적합한 로더를 선택할 수 있다
- 표를 구조가 남는 형태로 바꿀 수 있다
제조 문서 로드 실습
지금부터 실제 제조 문서를 다루는 코드를 작성한다. "이론은 알겠고 코드를 보여달라"는 요청에 답하는 시간이다.
환경 설정
pip install langchain langchain-core langchain-community langchain-text-splitters pypdf pdfplumber chardet
pip install python-docx openpyxl # Word, Excel 지원
Step 1: 실습 파일 만들기
읽을 파일이 없으면 로더를 시험할 수 없다. 코드가 먼저 같은 내용을 UTF-8과 CP949로 각각 저장한다. 현장에서 받는 텍스트 파일은 대개 이 둘 중 하나다.
Step 2: 한글 인코딩 처리
두 파일을 인코딩 자동 감지로 읽는다.
읽어 낸 글자가 서로 같아야 성공이다.
chardet이 추정에 실패하는 경우가 있으므로 후보를 차례로 시도하고,
깨진 글자(�)가 섞이면 다음 후보로 넘어간다.
Step 3: 문서 유형별 로더 선택
PDF에 표가 있는지는 파일 앞부분의 바이트를 훑어서 알 수 없다.
PDF의 글자는 압축된 스트림 안에 있어 평문으로 보이지 않기 때문이다.
pdfplumber로 실제로 열어 표를 찾은 뒤 로더를 고른다.
Step 4: 표를 표인 채로 남기기
table_to_markdown을 실행해 표가 마크다운으로 남는 것을 확인한다.
표를 줄글로 풀면 "최대 가압력"과 "500 ton"의 짝이 끊기고,
그 상태로 색인하면 옆 행의 값이 답으로 나온다.
실행 후
sample_docs/폴더를 열어 두 파일을 직접 확인하라. Day 1 챌린지에서 이 파일들을 다시 쓴다.
에디터 로딩 중...
힌트 보기
- • chardet는 파일 앞부분만 보고 인코딩을 추정한다. 신뢰도가 낮게 나오는 일이 흔하므로 후보를 차례로 시도하는 대비책이 필요하다.
- • 인코딩이 틀려도 예외가 나지 않고 깨진 글자로 읽히는 경우가 있다. 결과에 \ufffd 가 있는지 확인하면 조용한 실패를 잡을 수 있다.
- • PDFPlumberLoader는 표 구조를 살리지만 PyPDFLoader보다 느리다. 표가 있는 문서에만 쓴다.
- • 제조 현장 문서에는 CP949(한글 윈도우) 인코딩이 아직 많다. UTF-8만 시도하면 실패한다.
- • 설치할 때 langchain-community 유지보수 종료 안내가 뜰 수 있다. 지금 동작에는 문제가 없으나, 새 프로젝트라면 개별 통합 패키지 쪽을 확인해 두는 편이 좋다.
정답 보기
에디터 로딩 중...
AI로 학습하기 — 꿀팁
제조 문서 로더 코드 생성AI 학습 팁
AI에게 PDF·TXT·한글 문서를 처리하는 제조 문서 로더를 스캐폴딩하도록 요청하세요. 한글 인코딩 감지(chardet)와 파일 유형별 파서 분기를 포함한 완성형 클래스를 받으세요.
제조 공장에서 사용하는 PDF 설비 매뉴얼, EUC-KR 인코딩 TXT 작업지시서, HWP 품질 기록을 처리하는 Python 문서 로더를 구현해줘. chardet으로 인코딩을 자동 감지하고, 파일 확장자별로 파서를 분기하는 DocumentLoader 클래스를 작성해줘.
이 팁이 도움이 됐나요?