감성 분석을 위한 텍스트 정리 가이드
감성 분석(Sentiment Analysis) 모델의 정확도를 높이기 위한 한국어 텍스트 전처리 방법과 부정 표현·이모지 처리 전략을 설명합니다.
Q.감성 분석을 위한 한국어 텍스트 전처리는 어떻게 하나요?
감성 분석 전처리의 핵심은 부정 표현 처리입니다. '좋지 않다', '별로다' 같은 부정 구조를 일반 불용어 제거 방식으로 처리하면 '좋다'만 남아 감성이 반전됩니다. 부정어(않다, 못하다, 별로)를 바로 뒤 형용사와 결합하여 '좋지않다' 형태로 보존해야 합니다. 또한 이모지는 제거하지 말고 텍스트 감성어로 변환하는 것이 정확도를 높입니다.
"이 제품 진짜 별로 아니라고는 못하겠네요"라는 문장을 단순 키워드 방식으로 분석하면 '진짜', '아니라고'의 감성 신호가 충돌한다. 한국어 감성 분석에서 이중 부정과 완곡 표현은 영어보다 훨씬 복잡하다.
한국어 감성 분석의 3대 난제
KNU 감성 사전(14,843개 어휘 수록, 군산대학교)을 기반으로 연구한 결과에 따르면, 한국어 감성 분석의 정확도를 낮추는 주요 요인은 다음과 같다.
- 부정 표현 구조: "안", "못", "않다", "없다" 등 부정어가 앞 형용사와 분리되어 등장
- 경어체 감성 모호성: "최고세요~"(긍정)와 "최고시겠어요..."(빈정거림)의 구분
- 신조어·이모티콘: 사전에 없는 감성 표현 지속 생성
부정 표현 보존 전처리
python
import re
def preserve_negation(text):
# "좋지 않다" → "좋지않다" 결합
neg_patterns = [
(r'([가-힣]+)지\s*(않|못)', r'\1지\2'),
(r'([가-힣]+)\s*(안|못)\s*([가-힣]+다)', r'\1\2\3'),
]
for pattern, replacement in neg_patterns:
text = re.sub(pattern, replacement, text)
return text
이모지 감성 변환
이모지를 단순 제거하면 중요한 감성 신호를 잃는다. 대신 감성 레이블로 변환한다.
python
emoji_sentiment = {
'😊': '기쁨_긍정',
'😢': '슬픔_부정',
'😡': '분노_부정',
'👍': '추천_긍정',
'💔': '실망_부정',
}
신조어 사전 구축
정기적으로 업데이트되는 사용자 정의 사전을 유지한다. 소셜 미디어에서 새로운 감성 표현은 약 3-6개월 주기로 등장한다. "ㄹㅇ", "존맛", "레전드" 같은 긍정 신조어를 사전에 추가하지 않으면 중립으로 분류된다.
도메인 특화 전처리
쇼핑몰 리뷰, 영화 리뷰, 뉴스 댓글 등 도메인마다 자주 등장하는 감성 패턴이 다르다. 같은 "빠르다"가 배송 리뷰에서는 긍정이지만, 음식 리뷰에서는 중립이거나 부정일 수 있다. 도메인 별 감성 사전을 별도 관리하는 것이 정확도를 높인다.
---
이 글은 AI가 공개 자료를 기반으로 작성했습니다. 감성 분석 모델의 정확도는 학습 데이터 품질에 따라 크게 달라집니다.