반응형
Python과 LangChain 라이브러리를 활용하여 문서를 원하는 단위로 분리(Splitting)하는 방법을 소개합니다. 이 글에서는 문자 단위로 문서를 쪼개는 실습을 진행합니다.
1. 문서 쪼개는 방식
문서를 나누는 방식에는 여러 가지가 있습니다. 예를 들어:
- 문단 단위: 문단마다 분리
- 문장 단위: 문장마다 분리
- 의미 단위: 의미가 이어지는 구간마다 분리
이 글에서는 문자 단위로 분리하여 특정 크기로 청크(chunk)를 만드는 실습을 진행합니다.
2. 실습 코드
다음은 LangChain의 CharacterTextSplitter를 활용하여 문서를 문자 단위로 쪼개는 코드입니다:
from langchain_community.document_loaders import PyPDFLoader
from langchain.text_splitter import CharacterTextSplitter
# PDF 파일 로드 및 페이지 분리
loader = PyPDFLoader("C:/LLM_project/investment assistant/test.pdf")
pages = loader.load_and_split()
# 첫 번째 페이지의 텍스트 가져오기
text = pages[0].page_content
# 문자 단위로 텍스트 청크 나누기
text_splitter = CharacterTextSplitter(
separator='. ', # 문장 끝 구분자로 사용
chunk_size=500, # 각 청크의 최대 길이
chunk_overlap=100, # 청크 간 중복되는 문자 수
length_function=len # 길이 측정 함수
)
# 텍스트 분리 실행
texts = text_splitter.split_text(text)
# 결과 출력
print(texts[0]) # 첫 번째 청크
print(len(texts[0])) # 첫 번째 청크 길이
print(len(texts)) # 총 청크 개수
요약
LangChain의 CharacterTextSplitter를 활용하면 문서를 손쉽게 쪼개어 처리할 수 있습니다. 이는 대용량 문서를 분석하거나 자연어 처리 작업에 활용할 때 특히 유용합니다.
이제 직접 실습하여 문서를 쪼개는 과정을 경험해보세요! 🚀
반응형
'Investment-Assistant' 카테고리의 다른 글
LangChain으로 BM25와 FAISS를 활용한 검색 알고리즘 비교 실습 [10] (0) | 2024.11.26 |
---|---|
LangChain으로 PDF 기반 검색기 구현하기: OpenAI Embeddings와 FAISS 활용 [9] (0) | 2024.11.22 |
LangChain의 PyPDF로 PDF 텍스트 추출하기: 간단한 실습 가이드 [7] (0) | 2024.11.22 |
OpenAI API를 활용한 RAG 아키텍처와 임베딩 실습 [6] (1) | 2024.11.21 |
LangChain 프레임워크 [5] (0) | 2024.11.20 |