"""문장 분할 (Phase 3.5a — regex 기반). Phase 3.5b 에서 KSS 라이브러리 기반으로 업그레이드 예정. """ import re MIN_SENTENCE_CHARS = 15 def split_sentences(text: str) -> list[str]: """한국어/영어 혼합 텍스트를 문장 단위로 분할. 규칙: - 마침표/느낌표/물음표 + 공백/줄바꿈 - 한국어 종결 어미 (다. 함. 음. 됨.) 패턴 - MIN_SENTENCE_CHARS 미만은 이전 문장에 병합 """ # 1차 분할: punctuation + whitespace raw = re.split(r'(?<=[.!?。])\s+|(?<=[다됨음함]\.)\s+|\n{2,}', text) # 2차: 너무 짧은 것 병합 merged: list[str] = [] for part in raw: part = part.strip() if not part: continue if merged and len(part) < MIN_SENTENCE_CHARS: merged[-1] = merged[-1] + " " + part else: merged.append(part) return merged if merged else [text.strip()] if text.strip() else []