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 |