텍스트 분할 (Text Spliter)

2025. 5. 8. 00:11·ML_DL/MUJAKJUNG (무작정 시리즈)
728x90
반응형

한문장 정리

텍스트 데이터를 어떻게 분할해야 활용에 용이한지 확인한다. 

라이브러리 설치

  • LangChain의 text_spliter 활용
  • pdf 파일은 PyMuPDF 활용
  • spacy에서는 'ko_core_news_sm' 모델 활용
pip install pymupdf langchain langchain_community spacy
spacy download ko_core_news_sm

문장 분할

from langchain.document_loaders import PyMuPDFLoader
from langchain.text_splitter import CharacterTextSplitter, RecursiveCharacterTextSplitter, SpacyTextSplitter

# PDF 텍스트 추출
loader = PyMuPDFLoader("./경복궁.pdf")
document = loader.load()

# Spliter 정의
character_text_spliter = CharacterTextSplitter(chunk_size=200, separator=" ", chunk_overlap=50)
spacy_text_splitter = SpacyTextSplitter(chunk_size=200, pipeline="ko_core_news_sm", chunk_overlap=50)
recursive_text_spliter = RecursiveCharacterTextSplitter(chunk_size=200, chunk_overlap=50)

# 텍스트 분할
character_splitted_document = character_text_spliter.split_documents(document)
spacy_splitted_document = spacy_text_splitter.split_documents(document)
recursive_splitted_document = recursive_text_spliter.split_documents(document)

분할 결과 확인

Spliter 종류 결과
CharacterTextSplitter 경복궁은 조선 왕조 제일의 법궁이다. 북으로 북악산을 기대어 자리 잡았고 정문인 광화
문 앞으로는 넓은 육조거리(지금의 세종로)가 펼쳐져, 왕도인 한양(서울) 도시 계획의 중
심이기도 하다. 1395년 태조 이성계가 창건하였고, 1592년 임진 왜란으로 불타 없어졌다
가, 고종 때인 1867년 중건 되었다. 흥선대원군이 주도한 중건 경복궁은 500여 동의
==========================================
고종 때인 1867년 중건 되었다. 흥선대원군이 주도한 중건 경복궁은 500여 동의 건
물들이 미로같이 빼곡히 들어선 웅장한 모습 이었다. 
궁궐 안에는 왕과 관리들의 정무 시설, 왕족들의 생활 공간, 휴식을 위한 후원 공간이 조
성되었다. 또한 왕비의 중궁, 세자의 동궁, 고종이 만든 건청궁 등 궁궐안에 다시 여러 
작은 궁들이 복잡하게 모인 곳이기도
RecursiveCharacterTextSplitter 경복궁은 조선 왕조 제일의 법궁이다. 북으로 북악산을 기대어 자리 잡았고 정문인 광화
문 앞으로는 넓은 육조거리(지금의 세종로)가 펼쳐져, 왕도인 한양(서울) 도시 계획의 중
심이기도 하다. 1395년 태조 이성계가 창건하였고, 1592년 임진 왜란으로 불타 없어졌다
==========================================
가, 고종 때인 1867년 중건 되었다. 흥선대원군이 주도한 중건 경복궁은 500여 동의 건
물들이 미로같이 빼곡히 들어선 웅장한 모습 이었다. 
궁궐 안에는 왕과 관리들의 정무 시설, 왕족들의 생활 공간, 휴식을 위한 후원 공간이 조
성되었다. 또한 왕비의 중궁, 세자의 동궁, 고종이 만든 건청궁 등 궁궐안에 다시 여러
SpacyTextSplitter 경복궁은 조선 왕조 제일의 법궁이다.

북으로 북악산을 기대어 자리 잡았고 정문인 광화
문 앞으로는 넓은 육조거리(지금의 세종로)가 펼쳐져, 왕도인 한양(서울) 도시 계획의 중
심이기도 하다.

1395년 태조 이성계가 창건하였고, 1592년 임진 왜란으로 불타 없어졌다
가, 고종 때인 1867년 중건 되었다.
===========================================
흥선대원군이 주도한 중건 경복궁은 500여 동의 건
물들이 미로같이 빼곡히 들어선 웅장한 모습 이었다. 


궁궐 안에는 왕과 관리들의 정무 시설, 왕족들의 생활 공간, 휴식을 위한 후원 공간이 조
성되었다.

또한 왕비의 중궁, 세자의 동궁, 고종이 만든 건청궁 등 궁궐안에 다시 여러 
작은 궁들이 복잡하게 모인 곳이기도 하다.

결과

  • 위 실험 결과, SpacyTextSplitter를 사용한 문장 분할이 가장 정확한 모습을 보인다.
  • PDF에 포함된 텍스트를 확인하고, 해당 내용의 언어를 기반으로 문장을 분할하여 활용한다.
  • chunk_size와 chunk_overlap은 embedding이나 LLM에 따라 달리 설정하여 활용한다.
저작자표시

'ML_DL > MUJAKJUNG (무작정 시리즈)' 카테고리의 다른 글

[PDF 기반 퀴즈 생성기] 개선하기 (시간 단축)  (0) 2025.05.10
[PDF 기반 퀴즈 생성기] 구현하기 (feat. Streamlit, RAG)  (0) 2025.05.07
[PDF 기반 퀴즈 생성기] 구성하기  (0) 2025.05.02
[LangChain] 모델 파라미터 설정  (0) 2025.04.09
[LangChain] 챗봇 구성하기  (0) 2025.04.03
'ML_DL/MUJAKJUNG (무작정 시리즈)' 카테고리의 다른 글
  • [PDF 기반 퀴즈 생성기] 개선하기 (시간 단축)
  • [PDF 기반 퀴즈 생성기] 구현하기 (feat. Streamlit, RAG)
  • [PDF 기반 퀴즈 생성기] 구성하기
  • [LangChain] 모델 파라미터 설정
swwho
swwho
일상을 데이터화하다
  • swwho
    하루한장
    swwho
  • 전체
    오늘
    어제
    • 분류 전체보기 (188) N
      • ML_DL (39) N
        • MUJAKJUNG (무작정 시리즈) (18) N
        • 딥러닝 공부하기 (21)
      • 데이터사이언스 (1)
        • EDA (1)
        • 데이터과학을 위한 통계 (0)
      • 데이터엔지니어링 (2)
      • 논문리뷰 (2)
        • Computer Vision (2)
      • Python 활용하기 (12)
      • 코딩테스트 (127)
        • Python (109)
        • MySQL (14)
      • Git (3)
      • MySQL 활용하기 (0)
      • 일상 이야기 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
swwho
텍스트 분할 (Text Spliter)
상단으로

티스토리툴바