- 감성 분석(Sentiment Analysis) 또는 오피니언 마이닝(Opinion Mining)의 정의와 중요성 이해
- 감성 분석의 다양한 수준(문서, 문장, 속성 수준) 학습
- 감성 분석의 주요 접근 방식 소개:
- 감성 사전을 이용한 방법 (Lexicon-based Approach)
- 머신러닝 기반 방법 (Machine Learning-based Approach)
- 딥러닝 기반 방법 (Deep Learning-based Approach) - 간략 소개
- 감성 사전 기반 감성 분석의 기본 원리 및 장단점 파악
- 텍스트에 나타난 주관적인 의견, 감정, 태도, 평가 등을 식별하고 추출하여 정량화하는 자연어 처리 기술입니다.
- **오피니언 마이닝(Opinion Mining)**이라고도 불립니다.
- 주로 텍스트가 **긍정적(Positive), 부정적(Negative), 또는 중립적(Neutral)**인지 분류합니다. 때로는 더 세분화된 감정(예: 행복, 슬픔, 분노)을 분석하기도 합니다.
- 비즈니스 인텔리전스: 고객 리뷰, 소셜 미디어 반응 등을 분석하여 제품/서비스 개선, 마케팅 전략 수립에 활용.
- 여론 분석: 정치, 사회적 이슈에 대한 대중의 의견 파악.
- 평판 관리: 특정 브랜드나 인물에 대한 온라인 평판 모니터링.
- 고객 지원: 고객 문의의 긴급성이나 불만 정도 파악.
- 전체 문서(예: 영화 리뷰, 제품 설명)가 전반적으로 긍정적인지 부정적인지, 중립적인지를 판단합니다.
- 문서가 단일 주제에 대한 의견을 담고 있다고 가정합니다.
- 각 문장이 표현하는 감성을 분석합니다.
- 하나의 문서 내에서도 여러 감성이 혼재할 수 있기 때문에 더 세밀한 분석이 가능합니다.
- 예: “이 영화의 스토리는 훌륭했지만, 연기는 실망스러웠다.” -> 첫 번째 절은 긍정, 두 번째 절은 부정.
- 텍스트에서 언급된 특정 대상(개체, 속성)에 대한 감성을 분석합니다.
- 가장 세분화된 분석 수준으로, 무엇에 대해 어떤 감정을 느끼는지 구체적으로 파악할 수 있습니다.
- 예: “아이폰의 카메라는 훌륭하지만 배터리는 아쉽다.”
- 카메라 (속성) -> 긍정적
- 배터리 (속성) -> 부정적
- 단어와 그 단어가 가지는 감성 점수(긍정/부정/중립 및 강도)를 담고 있는 **감성 사전(Sentiment Lexicon)**을 사용합니다.
- 텍스트 내 단어들의 감성 점수를 합산하거나 평균내어 전체 텍스트의 감성을 판단합니다.
- 장점:
- 구현이 비교적 간단합니다.
- 별도의 학습 데이터가 필요하지 않을 수 있습니다 (사전만 있다면).
- 특정 도메인에 맞는 사전을 구축하면 해당 도메인에서 좋은 성능을 보일 수 있습니다.
- 단점:
- 문맥 처리의 한계: 단어의 의미는 문맥에 따라 달라지지만, 사전 기반 방식은 이를 고려하기 어렵습니다. (예: “not good“에서 “good“은 긍정이지만 “not“과 함께 부정으로 해석되어야 함)
- 신조어 및 비유적 표현 처리 어려움: 사전에 없는 단어나 새로운 표현에 취약합니다.
- 도메인 의존성: 일반적인 감성 사전은 특정 도메인의 전문 용어나 감성 표현을 반영하지 못할 수 있습니다.
- 감성 강도 조절의 어려움: 미묘한 감정의 차이나 강도를 정교하게 반영하기 어렵습니다.
- 주요 감성 사전:
- SentiWordNet: WordNet의 각 synset에 긍정, 부정, 객관성 점수를 할당.
- VADER (Valence Aware Dictionary and sEntiment Reasoner): 소셜 미디어 텍스트 분석에 특화된 사전 및 규칙 기반 시스템.
- AFINN: 각 단어에 -5(부정)에서 +5(긍정) 사이의 점수를 할당.
- 한국어 감성 사전: KNU 한국어 감성사전 등.
- 텍스트를 토큰화합니다.
- 각 토큰에 대해 감성 사전을 참조하여 감성 점수를 가져옵니다.
- (선택) 부정어(예: “not”, “안”) 처리: 부정어 뒤에 오는 긍정 단어는 부정으로, 부정 단어는 긍정으로 반전시킵니다.
- (선택) 강조어(예: “very”, “너무”) 처리: 감성 점수의 강도를 조절합니다.
- 문서 전체 또는 문장 전체의 감성 점수를 합산하거나 평균냅니다.
- 최종 점수를 기준으로 긍정, 부정, 중립으로 분류합니다.
- 감성 레이블(긍정/부정/중립)이 태깅된 학습 데이터를 사용하여 분류 모델을 학습시킵니다.
- 텍스트로부터 특징(Features)을 추출하고 (예: BoW, TF-IDF, Word Embeddings), 이를 입력으로 사용하여 지도 학습 알고리즘(예: Naive Bayes, Logistic Regression, SVM, Random Forest)을 훈련시킵니다.
- 장점:
- 데이터로부터 패턴을 학습하므로 문맥 정보를 어느 정도 반영할 수 있습니다.
- 특정 도메인의 데이터로 학습하면 해당 도메인에 특화된 모델을 만들 수 있습니다.
- 단점:
- 대량의 레이블링된 학습 데이터가 필요합니다.
- 특징 공학(Feature Engineering)이 모델 성능에 큰 영향을 미칩니다.
- 최근 가장 활발히 연구되고 좋은 성능을 보이는 접근 방식입니다.
- 순환 신경망(RNN, LSTM, GRU)이나 컨볼루션 신경망(CNN), 트랜스포머(Transformer) 기반 모델(예: BERT, GPT)을 사용하여 텍스트의 의미와 문맥을 학습합니다.
- 단어 임베딩을 입력으로 사용하여 텍스트의 연속적인 표현을 학습합니다.
- 장점:
- 특징 공학의 필요성을 줄여줍니다 (End-to-end learning).
- 복잡한 문맥 정보와 미묘한 감정 표현을 더 잘 포착할 수 있습니다.
- 최신 모델들은 매우 높은 정확도를 보입니다.
- 단점:
- 대량의 학습 데이터와 많은 계산 자원(GPU 등)이 필요합니다.
- 모델이 복잡하여 해석하기 어려울 수 있습니다 (Black box).
- 미묘한 표현 및 풍자/비꼬는 말투: “이 영화 정말 ’최고’다.” (실제로는 부정적)
- 중의적 표현: 문맥에 따라 긍/부정이 달라지는 표현.
- 주관성 탐지: 객관적인 사실과 주관적인 의견을 구분하는 것.
- 비교급 표현: “A는 B보다 좋다.”
- 도메인 특화성: 한 도메인에서 긍정인 단어가 다른 도메인에서는 부정일 수 있음.
- Day 66: 간단한 감성 분석기 구축 (Building a simple Sentiment Analyzer)