Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Day 65: 감성 분석 - 기본 기법 (Sentiment Analysis - Basic Techniques)

학습 목표

  • 감성 분석(Sentiment Analysis) 또는 오피니언 마이닝(Opinion Mining)의 정의와 중요성 이해
  • 감성 분석의 다양한 수준(문서, 문장, 속성 수준) 학습
  • 감성 분석의 주요 접근 방식 소개:
    • 감성 사전을 이용한 방법 (Lexicon-based Approach)
    • 머신러닝 기반 방법 (Machine Learning-based Approach)
    • 딥러닝 기반 방법 (Deep Learning-based Approach) - 간략 소개
  • 감성 사전 기반 감성 분석의 기본 원리 및 장단점 파악

1. 감성 분석 (Sentiment Analysis)이란?

  • 텍스트에 나타난 주관적인 의견, 감정, 태도, 평가 등을 식별하고 추출하여 정량화하는 자연어 처리 기술입니다.
  • **오피니언 마이닝(Opinion Mining)**이라고도 불립니다.
  • 주로 텍스트가 **긍정적(Positive), 부정적(Negative), 또는 중립적(Neutral)**인지 분류합니다. 때로는 더 세분화된 감정(예: 행복, 슬픔, 분노)을 분석하기도 합니다.

감성 분석의 중요성

  • 비즈니스 인텔리전스: 고객 리뷰, 소셜 미디어 반응 등을 분석하여 제품/서비스 개선, 마케팅 전략 수립에 활용.
  • 여론 분석: 정치, 사회적 이슈에 대한 대중의 의견 파악.
  • 평판 관리: 특정 브랜드나 인물에 대한 온라인 평판 모니터링.
  • 고객 지원: 고객 문의의 긴급성이나 불만 정도 파악.

2. 감성 분석의 수준

가. 문서 수준 (Document-level)

  • 전체 문서(예: 영화 리뷰, 제품 설명)가 전반적으로 긍정적인지 부정적인지, 중립적인지를 판단합니다.
  • 문서가 단일 주제에 대한 의견을 담고 있다고 가정합니다.

나. 문장 수준 (Sentence-level / Aspect-level의 한 형태)

  • 각 문장이 표현하는 감성을 분석합니다.
  • 하나의 문서 내에서도 여러 감성이 혼재할 수 있기 때문에 더 세밀한 분석이 가능합니다.
  • 예: “이 영화의 스토리는 훌륭했지만, 연기는 실망스러웠다.” -> 첫 번째 절은 긍정, 두 번째 절은 부정.

다. 속성 수준 (Aspect-level / Feature-based)

  • 텍스트에서 언급된 특정 대상(개체, 속성)에 대한 감성을 분석합니다.
  • 가장 세분화된 분석 수준으로, 무엇에 대해 어떤 감정을 느끼는지 구체적으로 파악할 수 있습니다.
  • 예: “아이폰의 카메라는 훌륭하지만 배터리는 아쉽다.”
    • 카메라 (속성) -> 긍정적
    • 배터리 (속성) -> 부정적

3. 감성 분석 접근 방식

가. 감성 사전 기반 접근법 (Lexicon-based Approach)

  • 단어와 그 단어가 가지는 감성 점수(긍정/부정/중립 및 강도)를 담고 있는 **감성 사전(Sentiment Lexicon)**을 사용합니다.
  • 텍스트 내 단어들의 감성 점수를 합산하거나 평균내어 전체 텍스트의 감성을 판단합니다.
  • 장점:
    • 구현이 비교적 간단합니다.
    • 별도의 학습 데이터가 필요하지 않을 수 있습니다 (사전만 있다면).
    • 특정 도메인에 맞는 사전을 구축하면 해당 도메인에서 좋은 성능을 보일 수 있습니다.
  • 단점:
    • 문맥 처리의 한계: 단어의 의미는 문맥에 따라 달라지지만, 사전 기반 방식은 이를 고려하기 어렵습니다. (예: “not good“에서 “good“은 긍정이지만 “not“과 함께 부정으로 해석되어야 함)
    • 신조어 및 비유적 표현 처리 어려움: 사전에 없는 단어나 새로운 표현에 취약합니다.
    • 도메인 의존성: 일반적인 감성 사전은 특정 도메인의 전문 용어나 감성 표현을 반영하지 못할 수 있습니다.
    • 감성 강도 조절의 어려움: 미묘한 감정의 차이나 강도를 정교하게 반영하기 어렵습니다.
  • 주요 감성 사전:
    • SentiWordNet: WordNet의 각 synset에 긍정, 부정, 객관성 점수를 할당.
    • VADER (Valence Aware Dictionary and sEntiment Reasoner): 소셜 미디어 텍스트 분석에 특화된 사전 및 규칙 기반 시스템.
    • AFINN: 각 단어에 -5(부정)에서 +5(긍정) 사이의 점수를 할당.
    • 한국어 감성 사전: KNU 한국어 감성사전 등.

기본 알고리즘 (감성 사전 기반)

  1. 텍스트를 토큰화합니다.
  2. 각 토큰에 대해 감성 사전을 참조하여 감성 점수를 가져옵니다.
  3. (선택) 부정어(예: “not”, “안”) 처리: 부정어 뒤에 오는 긍정 단어는 부정으로, 부정 단어는 긍정으로 반전시킵니다.
  4. (선택) 강조어(예: “very”, “너무”) 처리: 감성 점수의 강도를 조절합니다.
  5. 문서 전체 또는 문장 전체의 감성 점수를 합산하거나 평균냅니다.
  6. 최종 점수를 기준으로 긍정, 부정, 중립으로 분류합니다.

나. 머신러닝 기반 접근법 (Machine Learning-based Approach)

  • 감성 레이블(긍정/부정/중립)이 태깅된 학습 데이터를 사용하여 분류 모델을 학습시킵니다.
  • 텍스트로부터 특징(Features)을 추출하고 (예: BoW, TF-IDF, Word Embeddings), 이를 입력으로 사용하여 지도 학습 알고리즘(예: Naive Bayes, Logistic Regression, SVM, Random Forest)을 훈련시킵니다.
  • 장점:
    • 데이터로부터 패턴을 학습하므로 문맥 정보를 어느 정도 반영할 수 있습니다.
    • 특정 도메인의 데이터로 학습하면 해당 도메인에 특화된 모델을 만들 수 있습니다.
  • 단점:
    • 대량의 레이블링된 학습 데이터가 필요합니다.
    • 특징 공학(Feature Engineering)이 모델 성능에 큰 영향을 미칩니다.

다. 딥러닝 기반 접근법 (Deep Learning-based Approach)

  • 최근 가장 활발히 연구되고 좋은 성능을 보이는 접근 방식입니다.
  • 순환 신경망(RNN, LSTM, GRU)이나 컨볼루션 신경망(CNN), 트랜스포머(Transformer) 기반 모델(예: BERT, GPT)을 사용하여 텍스트의 의미와 문맥을 학습합니다.
  • 단어 임베딩을 입력으로 사용하여 텍스트의 연속적인 표현을 학습합니다.
  • 장점:
    • 특징 공학의 필요성을 줄여줍니다 (End-to-end learning).
    • 복잡한 문맥 정보와 미묘한 감정 표현을 더 잘 포착할 수 있습니다.
    • 최신 모델들은 매우 높은 정확도를 보입니다.
  • 단점:
    • 대량의 학습 데이터와 많은 계산 자원(GPU 등)이 필요합니다.
    • 모델이 복잡하여 해석하기 어려울 수 있습니다 (Black box).

4. 감성 분석의 도전 과제

  • 미묘한 표현 및 풍자/비꼬는 말투: “이 영화 정말 ’최고’다.” (실제로는 부정적)
  • 중의적 표현: 문맥에 따라 긍/부정이 달라지는 표현.
  • 주관성 탐지: 객관적인 사실과 주관적인 의견을 구분하는 것.
  • 비교급 표현: “A는 B보다 좋다.”
  • 도메인 특화성: 한 도메인에서 긍정인 단어가 다른 도메인에서는 부정일 수 있음.

추가 학습 자료

다음 학습 내용

  • Day 66: 간단한 감성 분석기 구축 (Building a simple Sentiment Analyzer)