33

실습: 제조 문서 로드와 전처리

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 클래스를 작성해줘.
이 팁이 도움이 됐나요?
용어