1 분 소요

02 감정 분석 서비스

1. 감정 분석 서비스

  • 텍스트 데이터 종류
    • 객관적인 정보: 뉴스, 백과사전 등
    • 주관적인 평가나 감정: 리뷰, 소설 등
  • 비슷한 감정을 표현하는 문서는 유사한 단어 구성 및 언어적 특징을 보일 것으로 가정
  • 감정 분석(Sentiment Analysis): 텍스트 내에 표현되는 감정 및 평가를 식별하는 자연어 처리의 한 분야
  • 방법
    • (분류 vs 예측)
      • 분류 모델: 텍스트 내 감정 분류
      • 예측 모델: 텍스트 내 감정 (긍정/부정)의 정도를 점수화
    • 지도학습 ⇒ 학습된 머신러닝 모델을 통해 신규 텍스트의 감정을 예측

2. 나이브 베이즈: 감정 분석의 가장 기본이 되는 알고리즘

나이브 베이즈 기반 감정 분석

  • 주어진 텍스트가 특정 감정을 나타낼 확률을 예측하는 문제
  • 텍스트의 감정별 확률값 중 최대 확률값을 나타내는 감정을 해당 문서의 감정으로 예측
  • 분자에 해당하는 내용만 예측하면 됨
  • 감정의 발생 확률과 텍스트를 구성하는 단어들의 가능도로 텍스트의 감정을 예측한다.

image

3. 나이브 베이즈 기반 감정 예측

스무딩

  • 학습 데이터 내 재미있었어요의 빈도 = 0 이라면,

    image

    ⇒스무딩을 통해 학습 데이터 내 존재하지 않은 단어의 빈도수를 보정

    재밌었어요 단어를 존재한다고 취급

소수

  • 문제: 문장이 길어질 수록 숫자가 매우 작아진다.

    ⇒ 컴퓨터가 처리할 수 있는 소수점의 범위보다 작아질 수 있음, 0으로 처리할 수도 있음

    image

  • 해결: 로그 확률값의 합으로 텍스트의 감정을 예측

    image

4. scikit-learn을 통한 나이브 베이즈 구현

image

첫번째 문장은 happy, 두번째 문장은 excited

1. 텍스트 데이터를 수치형 데이터로 바꿔야한다.

  • CountVectorizer 객체로 문장을 수치형 데이터로 바꿔준다.

    image

2. 나이브 베이즈 학습하기

image

  • fit(학습데이터, 레이블(답))

3. 테스트 데이터도 수치화 해주고 예측해야한다.

image

5. 기타 감정 분석 기법

  • 감정분석은 지도 학습 기반의 분류 및 예측의 문제
  • 감정 분석 + 머신러닝
    • 학습데이터에 레이블된 감정만 존재하면 머신러닝 알고리즘 학습이 가능하다.
    • 임베딩 벡터를 이용하면 텍스트를 수치화할 수 있다.

      ### 평균 임베딩 벡터: 단어, 문자 임베딩 벡터의 평균

      image

      • 문자에 대한 임베딩도 가능하다

        image

      ### CNN

      image

      • 단어 또는 문자 임베팅 벡터에 필터를 적용하여 CNN 기반으로 감정 분류

      ### RNN기반 (LSTM, GRU) 분류 및 예측 image

댓글남기기