파이썬 라이브러리 unstructured
IT 위키
Retrospect (토론 | 기여)님의 2025년 3월 25일 (화) 14:30 판 (새 문서: unstructured는 다양한 형식의 비정형 문서(PDF, DOCX, HTML, 이메일 등)에서 텍스트 데이터를 추출하고 구조화하는 데 사용되는 파이썬 오픈소스 라이브러리이다. 특히 RAG(Retrieval-Augmented Generation) 시스템 구축 시 문서 전처리 단계에서 유용하게 사용된다. ==개요== unstructured는 문서 파일에서 텍스트를 블록 단위로 추출하며, 각 블록에는 텍스트 외에도 메타데이터(페이지...)
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 참고 문헌[편집 | 원본 편집]
- https://github.com/Unstructured-IO/unstructured
- https://www.unstructured.io
- Unstructured Documentation, Unstructured.io