파이썬 라이브러리 unstructured

IT 위키

unstructured는 다양한 형식의 비정형 문서(PDF, DOCX, HTML, 이메일 등)에서 텍스트 데이터를 추출하고 구조화하는 데 사용되는 파이썬 오픈소스 라이브러리이다. 특히 RAG(Retrieval-Augmented Generation) 시스템 구축 시 문서 전처리 단계에서 유용하게 사용된다.

1 개요[편집 | 원본 편집]

unstructured는 문서 파일에서 텍스트를 블록 단위로 추출하며, 각 블록에는 텍스트 외에도 메타데이터(페이지 번호, 좌표, 헤더 여부 등)가 포함된다. 이를 통해 추출된 데이터를 벡터화하거나 질문 응답 시스템의 입력으로 활용할 수 있다.

2 주요 특징[편집 | 원본 편집]

  • 다양한 포맷 지원
    • PDF, DOCX, PPTX, HTML, EML, MSG, TXT 등 광범위한 문서 형식 처리
  • 텍스트 블록 추출
    • 문서 내 문단, 표, 제목, 이미지 캡션 등을 구분하여 추출
  • 구조화된 출력
    • 텍스트와 함께 메타데이터(JSON-like 형태)를 포함한 구조적 정보 제공
  • 클래스 기반 파이프라인
    • Element 객체를 중심으로 처리 단계를 유연하게 구성 가능
  • LangChain 및 LlamaIndex와 호환

3 설치[편집 | 원본 편집]

기본 설치:

pip install unstructured

PDF 등 특정 포맷 처리를 위한 추가 의존성 설치:

pip install "unstructured[pdf,pptx,docx,html]"

4 예제 코드[편집 | 원본 편집]

PDF 파일에서 텍스트 블록 추출 예제:

from unstructured.partition.pdf import partition_pdf

elements = partition_pdf(filename="example.pdf")

for el in elements:
    print("타입:", el.category)
    print("텍스트:", el.text)

텍스트 파일 처리 예제:

from unstructured.partition.text import partition_text

elements = partition_text(filename="example.txt")

for el in elements:
    print(el.to_dict())  # 구조화된 블록 출력

5 주요 클래스[편집 | 원본 편집]

  • Element — 추출된 텍스트 블록의 기본 객체
  • partition_pdf / partition_docx / partition_html — 문서 형식별 파서 함수
  • Chunking 기능 — 길이가 긴 텍스트를 블록 단위로 나누는 기능도 지원

6 활용[편집 | 원본 편집]

  • RAG 파이프라인에서 문서 임베딩 전 사전 처리
  • 이메일, 보고서, 계약서 등에서 구조화된 데이터 추출
  • 문서 분류, 요약, 검색 시스템의 전처리 단계
  • 기업 내부 문서 자동 인덱싱 및 질의응답 시스템

7 같이 보기[편집 | 원본 편집]

8 참고 문헌[편집 | 원본 편집]