텍스트 전처리(Text Preprocessing)

•
2026년 10월 09일 발행•2026년 10월 09일 수정
요약

원시 텍스트의 잡음을 제거하고 표기를 통일하며 토큰·형태소 단위로 분할하여 자연어 처리 모델이 다루기 좋은 형태로 변환하는 과정

초급
정규 표현식과 문자열 처리의 기초, 유니코드와 인코딩 개념, 토큰화와 형태소 분석의 역할을 이해해야 하며, 서브워드 토크나이저와 언어 모델 학습 과정을 알면 후반부 내용을 이해하는 데 도움이 된다.

#개념

텍스트 전처리(Text Preprocessing)는 사람이 작성한 원시 텍스트를 자연어 처리(Natural Language Processing) 모델이 다루기 좋은 형태로 정돈하는 일련의 변환 과정이다. 불필요한 기호와 잡음을 제거하고 표기를 통일하며, 문장을 단어나 형태소 같은 단위로 나누고, 분석 목적에 맞게 단어의 형태를 정리하는 작업이 모두 포함된다. 전처리는 모델 학습 전 가장 앞단에 위치하지만 결과물의 품질을 좌우하는 경우가 많아 실무에서 가장 많은 시간이 투입되는 단계이기도 하다.
텍스트는 수치 데이터와 달리 띄어쓰기 오류, 오탈자, 이모지, HTML 태그, 광고 문구처럼 의미와 무관한 변이가 끊임없이 섞여 들어온다. 같은 뜻의 단어가 대소문자·전각 반각·표기법 차이로 서로 다른 토큰이 되면 어휘가 불필요하게 커지고 희소성이 높아져 학습이 비효율적으로 이루어진다. 따라서 전처리의 목표는 의미 정보는 보존하면서 모델 입장에서 "같은 것은 같게" 보이도록 입력의 변이를 줄이는 데 있으며, 어떤 작업을 얼마나 적용할지는 과제의 성격과 사용하는 모델에 따라 달라진다.
첫 단계는 정제(Cleaning)와 정규화(Normalization)다. 정제는 분석에 쓸모없는 요소를 제거하는 작업이고, 정규화는 같은 의미의 서로 다른 표기를 하나의 형태로 통일하는 작업으로, 보통 정규 표현식과 규칙 기반 치환으로 구현된다. 대표적인 작업은 다음과 같다.
정제·정규화의 주요 작업
  • 마크업·URL 제거: 웹에서 수집한 텍스트의 HTML 태그, 스크립트, URL, 이메일 주소, 멘션(@)과 해시태그 기호를 제거하거나 특수 토큰으로 치환한다.
  • 공백과 구두점 정리: 연속된 공백·줄바꿈을 하나로 합치고, 과제에 따라 구두점을 제거하거나 단어와 분리하여 독립 토큰으로 남긴다.
  • 반복 문자 축약: "ㅋㅋㅋㅋㅋ", "goooood"처럼 강조를 위해 늘어난 문자를 일정 길이로 줄여 어휘 폭발을 막는다.
  • 대소문자 통일: 영문은 소문자로 통일하는 것이 일반적이지만, "US"와 "us", 고유명사와 일반 명사가 구분되지 않게 되므로 개체명 인식 같은 과제에서는 대소문자를 보존한다.
  • 숫자 처리: 날짜·금액·전화번호를 그대로 둘지, 자릿수만 남길지, [NUM] 같은 특수 토큰으로 치환할지 결정하며, 수치 자체가 의미를 가지는 과제에서는 보존한다.
  • 이모지와 특수 기호 처리: 이모지는 감성 분석에서 강한 신호가 되므로 제거하는 대신 유지하거나 ":smile:"처럼 텍스트 설명으로 변환하는 방식이 쓰인다.
표기 통일에서 자주 간과되는 것이 유니코드 정규화(Unicode Normalization)다. 한글 "한"은 완성형 코드 포인트 하나로도, 초성·중성·종성을 결합한 자모 열로도 표현될 수 있으며 화면에는 똑같이 보이지만 바이트 열은 다르다. macOS에서 생성된 파일명이나 일부 입력기에서 분해형(NFD)이 섞여 들어오면 같은 단어가 서로 다른 토큰으로 처리되므로, 결합형으로 합치는 NFC 정규화를 기본으로 적용한다.
NFKC는 여기에 호환 분해를 더해 전각 영문자·숫자(ABC, 123), 원문자(①), 합자(fi), 위 첨자 등을 표준 문자로 바꾸어 주며, 다국어 웹 데이터와 사용자 입력 검색어처럼 표기 변이가 심한 데이터에서 유용하다. 다만 NFKC는 "²"를 "2"로 바꾸는 것처럼 정보가 손실되는 변환을 포함하므로 수식이나 코드가 포함된 텍스트에는 신중히 적용해야 한다.
정제된 텍스트는 토큰화(Tokenization)를 통해 모델이 다룰 단위로 분할된다. 문장 토큰화는 마침표·물음표를 기준으로 문장을 나누되 "3.14"나 "Dr."처럼 마침표가 문장 끝이 아닌 경우를 예외 처리해야 하고, 단어 토큰화는 영어처럼 공백으로 단어가 구분되는 언어에서는 비교적 단순하지만 "don't", "New York"과 같은 축약형과 복합어 처리 규칙이 필요하다. 한국어·일본어·중국어처럼 공백만으로 의미 단위가 나뉘지 않는 언어에서는 뒤에서 설명할 형태소 분석이 토큰화의 역할을 겸한다.
불용어(Stopword)는 "the", "is", "은/는", "그리고"처럼 매우 자주 등장하지만 문서의 주제를 구분하는 데 기여가 적은 단어다. 단어 빈도 기반의 문서 분류나 검색 색인에서는 불용어를 제거하면 차원이 줄고 잡음이 감소하지만, "not good"에서 "not"을 제거하면 의미가 반전되듯 감성 분석(Sentiment Analysis)이나 문장 생성처럼 문법 구조가 중요한 과제에서는 오히려 해롭다. 불용어 목록은 언어와 도메인마다 다르므로 범용 목록을 그대로 쓰기보다 자신의 말뭉치에서 문서 빈도를 분석해 조정하는 것이 바람직하다.
영어처럼 굴절이 있는 언어에서는 "run", "runs", "running", "ran"을 하나의 단어로 묶기 위해 단어의 형태를 환원하는 과정이 필요하며, 두 가지 접근이 있다.
단어 형태 환원 방법
  • 어간 추출(Stemming): 접미사를 규칙에 따라 잘라내어 어간만 남기는 방법으로, Porter 스테머가 대표적이다. 사전 없이 빠르게 동작하지만 "university"와 "universe"가 같은 어간 "univers"로 합쳐지는 과대 추출이나, 불규칙 변화를 놓치는 과소 추출이 발생하며 결과가 실제 단어가 아닐 수 있다.
  • 표제어 추출(Lemmatization): 사전과 형태 규칙을 참고하여 "ran"을 "run", "better"를 "good"처럼 사전에 실린 기본형으로 되돌리는 방법이다. 정확하지만 품사 정보가 있어야 "meeting"이 명사인지 동사의 활용형인지 구분할 수 있어 품사 태깅(Part-of-Speech Tagging)과 함께 수행되며 처리 비용이 더 크다.
한국어는 체언에 조사가, 용언에 어미가 결합하는 교착어이므로 공백 단위의 어절은 "학교에서는", "먹었던"처럼 여러 형태소가 붙은 형태이며, 어절을 그대로 토큰으로 쓰면 같은 단어가 조사마다 다른 토큰이 되어 어휘가 폭발한다. 따라서 한국어 전처리의 핵심은 어절을 형태소로 분리하고 품사를 부여하는 형태소 분석(Morphological Analysis)이며, 명사·동사 어간만 남기는 작업이 영어의 불용어 제거와 표제어 추출을 대신한다.
파이썬에서는 KoNLPy를 통해 Mecab-ko·Okt·Komoran·꼬꼬마 등 여러 분석기를 같은 인터페이스로 사용할 수 있고, 순수 C++로 구현된 Kiwi는 속도와 신조어 처리에서 좋은 평가를 받는다. 분석기마다 품사 체계와 분리 기준이 다르고 "상품명"처럼 도메인 고유어가 잘못 분리되는 경우가 많아, 사용자 사전에 브랜드명·상품명을 등록하는 작업이 실무에서 중요하다. 또한 "아버지가방에들어가신다"처럼 띄어쓰기 오류와 오탈자가 형태소 분석을 어긋나게 하므로, 띄어쓰기 교정기와 맞춤법 검사기를 분석 앞단에 두거나 분석기의 오류 허용 옵션을 활용한다.
이러한 고전적 파이프라인은 정제 → 토큰화 → 불용어 제거 → 형태 환원을 거친 토큰을 단어 가방(Bag-of-Words)이나 TF-IDF 벡터로 바꾸어 통계 모델에 입력하는 흐름이었다. 그러나 트랜스포머(Transformer) 기반 사전 학습 모델이 보편화되면서 전처리의 원칙이 크게 달라졌다. BPE·WordPiece·SentencePiece 같은 서브워드(Subword) 토크나이저는 자주 쓰이는 문자열을 자동으로 하나의 토큰으로 병합하고 드문 단어는 더 작은 조각으로 쪼개므로, 미등록 단어 문제를 해결하면서 어간과 접사의 관계도 데이터로부터 학습한다.
서브워드 시대에 달라진 전처리 원칙
  • 과도한 정제의 지양: 불용어 제거, 어간 추출, 구두점 삭제는 사전 학습 모델이 학습한 분포에서 입력을 멀어지게 하여 오히려 성능을 떨어뜨리므로 적용하지 않는 것이 원칙이다.
  • 토크나이저와 짝을 이루는 정규화: 소문자 변환이나 NFKC 정규화, 악센트 제거는 토크나이저 안의 정규화기(normalizer)로 정의되어 있으므로, 사전 학습 시 적용된 규칙을 미세 조정과 추론에서도 동일하게 재현해야 한다.
  • 잡음 제거 중심: 마크업·중복 공백·깨진 인코딩처럼 자연어가 아닌 요소를 걷어내는 데 집중하고, 언어 자체의 변이는 모델에 맡긴다.
  • 길이와 자르기 전략: 최대 토큰 길이가 정해져 있으므로 긴 문서를 어디서 자르고 어떻게 겹치게 나눌지가 새로운 전처리 결정 사항이 되었다.
대규모 언어 모델(Large Language Models) 시대에는 전처리의 무게 중심이 개별 문장의 정돈에서 수조 토큰 규모 학습 말뭉치의 선별로 옮겨 갔다. 웹 크롤링 원본에는 탐색 메뉴, 보일러플레이트, 기계 생성 스팸, 성인물이 대량으로 섞여 있어 그대로 학습하면 모델 품질과 안전성이 떨어지며, Lee 등(2022)은 학습 데이터에서 중복 문서와 중복 문단을 제거하는 것만으로 모델이 학습 데이터를 그대로 암기해 출력하는 빈도가 크게 줄고 성능은 유지되거나 향상됨을 보였다. C4, RefinedWeb, FineWeb 같은 공개 말뭉치는 다음과 같은 단계로 정제된다.
LLM 학습 데이터 정제 단계
  • 본문 추출과 언어 식별: HTML에서 본문만 추출하고 fastText 같은 언어 분류기로 목표 언어 문서만 남긴다.
  • 휴리스틱 품질 필터: 문서 길이, 평균 단어 길이, 기호·숫자 비율, 불릿·말줄임표로 끝나는 줄의 비율, 반복 n-gram 비율 등의 규칙으로 저품질 문서를 제거한다.
  • 모델 기반 품질 필터: 참조 언어 모델의 퍼플렉시티나 교육적 가치를 판별하도록 학습한 분류기의 점수로 문서를 선별한다.
  • 중복 제거(Deduplication): 해시로 완전히 같은 문서를 제거하고, MinHash·LSH로 거의 같은 문서를 근사적으로 찾아내며, 접미사 배열로 문서 간 긴 중복 구간을 제거한다.
  • 개인정보·유해 콘텐츠 처리: 이메일·전화번호·주민번호 패턴을 마스킹하고, 유해어 목록과 분류기로 부적절한 문서를 걸러낸다.
  • 벤치마크 오염 제거: 평가 데이터셋과 겹치는 문서를 찾아 제외하여 평가 결과가 부풀려지지 않도록 한다.
어떤 방식을 택하든 전처리는 재현 가능해야 한다. 학습 때 적용한 규칙과 추론 때 적용하는 규칙이 조금이라도 다르면 학습-서빙 편차가 생겨 성능이 조용히 떨어지므로, 전처리 코드를 모델과 함께 버전 관리하고 토크나이저 설정 파일을 모델 아티팩트에 포함하며, 전처리 전후 샘플을 기록해 변화를 검토하는 습관이 필요하다. 또한 전처리 선택은 다운스트림 지표로 검증해야 하며, 불용어 제거나 형태소 분석기 교체 같은 결정은 특징 공학(Feature Engineering)의 일부로서 실험을 통해 결정하는 것이 바람직하다.
전자상거래에서는 상품명, 검색어, 리뷰가 전처리의 주요 대상이다. 상품명에는 "[무료배송]", "★특가★" 같은 판촉 문구와 사이즈·색상 옵션이 섞여 있어 이를 분리해야 상품 속성 추출과 카테고리 분류의 정확도가 올라가고, 검색어는 오탈자·띄어쓰기 변이·영한 혼용("nike 운동화", "나이키운동화")이 심해 정규화 사전과 교정 모델이 검색 품질을 좌우하며, 리뷰는 이모지와 신조어가 감성 판단의 핵심 단서가 되므로 섣불리 제거하지 않는다.
결론적으로 텍스트 전처리는 정해진 체크리스트가 아니라 데이터의 특성, 언어, 모델 종류, 과제 목표에 따라 선택되는 설계 문제다. 고전적 모델에서는 적극적인 정규화와 형태 환원이, 사전 학습 모델에서는 토크나이저와 일관된 최소한의 정제가, LLM 학습에서는 대규모 품질 필터와 중복 제거가 핵심이며, 공통적으로 "무엇을 버리고 무엇을 남길 것인가"에 대한 결정을 실험으로 뒷받침해야 한다.

#관련 용어

토큰화
텍스트를 단어·서브워드·문자 등 모델이 처리할 단위로 분할하는 과정
형태소 분석
어절을 의미를 가진 최소 단위인 형태소로 분리하고 품사를 부여하는 한국어 전처리의 핵심 과정
불용어
자주 등장하지만 문서의 의미 구분에 기여가 적어 과제에 따라 제거되는 단어
표제어 추출
사전과 품사 정보를 이용하여 활용된 단어를 기본형으로 되돌리는 형태 환원 방법
유니코드 정규화
같은 글자의 서로 다른 코드 포인트 표현을 NFC·NFKC 같은 표준 형식으로 통일하는 처리
대규모 언어 모델
수조 토큰 규모의 정제된 말뭉치로 학습되어 중복 제거와 품질 필터가 전처리의 핵심이 되는 모델

#직무 연관도

DA
Data Analyst
높음
리뷰·검색어·고객 문의 텍스트를 분석하기 전 정제와 형태소 분석을 수행하고 결과의 품질을 해석하는 데 필요하다
DS
Data Scientist
밀접
전처리 선택이 모델 성능과 재현성을 직접 좌우하므로 토크나이저 설계, 말뭉치 정제, 실험 설계의 필수 기반이다
DE
Data Engineer
높음
대규모 말뭉치 정제·중복 제거 파이프라인과 학습-서빙 일관성이 보장되는 전처리 서비스를 구축·운영하는 데 직접 활용된다

#사용 사례

전자상거래인터넷 서비스금융의료통신미디어
개요
텍스트 전처리는 검색어 정규화와 색인, 상품명·속성 추출, 리뷰와 고객 문의의 감성 분석·분류, 챗봇의 입력 정돈, 뉴스·소셜 미디어 텍스트 마이닝, 의료 기록과 금융 공시 문서 분석, 대규모 언어 모델 학습 말뭉치 구축 등 텍스트를 다루는 거의 모든 과제의 첫 단계로 활용된다.
사례
패션 전자상거래의 검색 서비스에서 사용자 검색어를 NFKC 정규화와 띄어쓰기 교정을 거쳐 형태소 분석하고, 브랜드·상품명 사용자 사전과 영한 표기 정규화 사전을 적용하여 "나이키운동화"와 "nike 운동화"가 같은 검색 의도로 처리되도록 한다. 리뷰 텍스트는 이모지와 신조어를 보존한 채 서브워드 토크나이저로 입력하여 감성 분류 모델을 미세 조정한다.

#참고 자료

#추천 포스트

© 2024 diki All rights reserved.