Professional Field

SQL(ORACLE) | AI | BI | 통계분석

Scientist/ML.DL

[LangChain] PDF Loader 종류

K_CY 2024. 8. 9. 14:03

1. fitz 

- 매우 빠르다.

- 복잡한 글을 잘 읽어오지 못한다.

- 메타데이터중 페이지번호는 제공하지만 그 외 메타 데이터 제공은 하지 않는다. 

# Fitz (PyMuPDF)
!pip install pymupdf

import fitz

doc = fitz.open('example.pdf')
page = doc.load_page(0)
text = page.get_text()

 

2. PyPDFLoader 

- 메타데이터의 source 파일명과 page 단위로 읽기가 가능하다.

- 한글이 제일 인코딩이 잘 된다.

- 속도가 평범하다.

# PyDPFLoader (LangChain)
!pip install langchain pypdf

from langchain.document_loaders import PyPDFLoader

# PyPDFLoader를 사용하여 PDF를 로드합니다.
loader = PyPDFLoader("example.pdf")

documents = loader.load()
split_docs = loader.load_and_split()
print(f"문서의 수 : {len(split_docs)}")

 

3. UnstructuredPDFLoader 

- 페이지 안의 세부 요소를 로드가 가능하다. (다양한 메타정보)

- 속도가 느리다. 

- mode='elements' 메타 정보가 필요 없다면 사용X

# UnstructuredPDFLoader (LangChain)
!pip install langchain unstructured

from langchain.document_loaders import UnstructuredPDFLoader

# UnstructuredPDFLoader를 사용하여 PDF를 로드합니다.
loader = UnstructuredPDFLoader("example.pdf")
documents = loader.load()

 

4. PDFPlumber (강추)

- 한글 인코딩 처리 능력이 우수하다.

- 다양한 메타데이터를 제공한다. 

- 속도가 느리다.

# PDFPlumber
from langchain_community.document_loaders import PDFPlumberLoader

# PDFPlumberLoader를 사용하여 PDF를 로드합니다.
loader = PDFPlumberLoader("example.pdf")
documents = loader.load()

 

'Scientist > ML.DL' 카테고리의 다른 글

[LangChain] OpenAI 모델을 이용한 URL 챗봇 개발  (2) 2024.11.20
[LangChain] Text Splitter 종류  (0) 2024.08.09
[ML/DL] LangChain이란?  (0) 2024.07.18
[ML/DL] NLP TF-IDF / Word2Vec  (0) 2024.07.18
[ML/DL] NLP 토크나이저 종류  (0) 2024.07.17