텍스트 마이닝 입문 - 대용량 문서에서 인사이트 추출
텍스트 마이닝의 핵심 개념부터 TF-IDF, LDA 토픽 모델링, 감성 분석까지 비전문가도 이해할 수 있게 단계별로 설명합니다.
Q.텍스트 마이닝이란 무엇이며 어떻게 시작하나요?
텍스트 마이닝은 대량의 비정형 텍스트 데이터에서 유의미한 패턴과 인사이트를 추출하는 기법입니다. 주요 기법으로는 단어 빈도 분석(TF-IDF), 토픽 모델링(LDA), 감성 분석이 있습니다. Python에서 KoNLPy 라이브러리를 사용하면 한국어 텍스트 마이닝을 시작할 수 있으며, 형태소 분석 → 불용어 제거 → 빈도 분석 순서로 진행합니다.
기업 고객 리뷰 10만 건이 쌓여 있다. 담당자가 모두 읽을 수는 없다. 텍스트 마이닝은 이 10만 건에서 "배송 지연"이 가장 자주 언급된 불만이고, 긍정 리뷰에서는 "포장"과 "친절함"이 핵심이라는 결론을 자동으로 도출한다. 단어를 세는 수준에서 끝내지 않고, 반복되는 주제와 감정 흐름을 찾아 의사결정에 쓰는 것이 목적이다.
핵심 답변
텍스트 마이닝은 대량의 비정형 텍스트 데이터에서 유의미한 패턴을 추출하는 기법이다. 주요 기법은 단어 중요도 분석(TF-IDF), 토픽 모델링(LDA), 감성 분석이다. 한국어 데이터에는 KoNLPy 라이브러리로 형태소 분석 → 불용어 제거 → 분석 순서로 파이프라인을 구성한다. 알고리즘보다 전처리 설계와 질문 설정이 결과 품질에 더 큰 영향을 미친다.
텍스트 마이닝이 필요한 상황
텍스트 마이닝은 데이터가 많고, 사람이 읽기에는 느리며, 같은 표현이 반복될 때 효과적이다. 고객 리뷰, 콜센터 상담 기록, 설문 주관식 응답, 뉴스 기사, 커뮤니티 게시글이 대표적인 대상이다. 반대로 문서가 100건 미만이거나 표현이 매우 짧은 데이터라면 수동 태깅이 더 빠를 수 있다.
텍스트 마이닝 핵심 기법 3가지
1. TF-IDF (단어 중요도 분석)
TF(단어 빈도) × IDF(역문서 빈도)로 문서 내 중요 단어를 추출한다. 모든 문서에 자주 등장하는 "이다", "있다" 같은 단어는 IDF 값이 낮아 자동으로 걸러진다.
python
from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer()
tfidf_matrix = vectorizer.fit_transform(documents)
2. LDA 토픽 모델링
리뷰나 기사에서 자동으로 주제 그룹을 추출한다. "배송", "박스", "도착"이 함께 등장하는 패턴은 배송 토픽으로, "가격", "할인", "가성비"가 함께 등장하면 가격 토픽으로 묶인다. 결과를 그대로 믿기보다 사람이 토픽 이름을 붙이는 후처리가 필요하다.
3. 감성 분석
텍스트를 긍정/부정/중립으로 분류한다. 한국어는 KNU 감성사전(한국어 감성 어휘집, 약 14,843개 단어 수록)을 활용하는 방식이 가장 보편적이다.
| 기법 | 얻을 수 있는 결과 | 적합한 질문 |
|---|---|---|
| 빈도 분석 | 많이 언급된 단어 | 고객이 무엇을 자주 말하는가 |
| TF-IDF | 문서별 핵심 단어 | 특정 상품군에서만 중요한 키워드는 무엇인가 |
| 토픽 모델링 | 반복 주제 묶음 | 리뷰가 어떤 주제로 나뉘는가 |
| 감성 분석 | 긍정/부정 경향 | 불만이 증가하는 지점은 어디인가 |
한국어 텍스트 마이닝 파이프라인
원본 텍스트
↓ 형태소 분석 (KoNLPy: Kkma/Komoran/Okt)
명사·동사·형용사 추출
↓ 불용어 제거
핵심 단어만 남김
↓ TF-IDF 또는 LDA
인사이트 추출
KoNLPy의 Okt(Open Korean Text) 형태소 분석기는 설치가 간단하고 속도가 빠르다. Kkma는 분석 정확도가 높지만 처리 속도가 느리다.
실무 적용 예시: 쇼핑몰 리뷰 분석
쇼핑몰 리뷰를 분석한다면 바로 모델을 돌리기보다 다음 순서가 안정적이다.
- 별점, 상품명, 작성일, 리뷰 본문을 같은 테이블에 모은다.
- 광고성 문구, 이모지, 반복 문자를 제거한다.
- 명사·동사·형용사 중심으로 형태소를 추출한다.
- 배송, 품질, 가격, 고객응대처럼 업무에서 의미 있는 카테고리를 만든다.
- 카테고리별 긍정/부정 비율과 월별 변화량을 본다.
예를 들어 "배송" 토픽의 부정 리뷰 비율이 3월 12%에서 4월 27%로 올랐다면, 전체 별점 평균보다 빠르게 물류 문제를 발견할 수 있다.
자주 하는 실수
- 단어 빈도만 보고 결론을 내린다. 많이 나온 단어가 반드시 중요한 원인은 아니다.
- 불용어 사전을 한 번 만들고 끝낸다. 브랜드명, 이벤트명, 상품 옵션명은 계속 추가해야 한다.
- 형태소 분석 결과를 검수하지 않는다. 한국어는 띄어쓰기와 신조어 때문에 분석 오류가 자주 생긴다.
- 토픽 모델링 결과에 사람이 이름을 붙이지 않는다. 모델은 군집을 만들 뿐, 비즈니스 의미를 해석하지 않는다.
실무 적용 사례
- 브랜드 리뷰 분석: 경쟁사 대비 자사 브랜드 언급 키워드 비교
- 고객 불만 분류: CS 문의 자동 카테고리 분류
- 뉴스 트렌드 모니터링: 특정 키워드 관련 뉴스 토픽 변화 추적
마무리
텍스트 마이닝의 성패는 알고리즘보다 전처리와 질문 설계에 달려 있다. "무엇이 많이 언급되는가"에서 시작해 "어떤 주제가 늘고 줄었는가", "그 변화가 매출·환불·문의량과 연결되는가"까지 이어질 때 데이터가 실제 의사결정에 쓰인다.