[딥러닝을 이용한 자연어 처리] 02 감정 분석 서비스
02 감정 분석 서비스
1. 감정 분석 서비스
- 텍스트 데이터 종류
- 객관적인 정보: 뉴스, 백과사전 등
- 주관적인 평가나 감정: 리뷰, 소설 등
- 비슷한 감정을 표현하는 문서는 유사한 단어 구성 및 언어적 특징을 보일 것으로 가정
- 감정 분석(Sentiment Analysis): 텍스트 내에 표현되는 감정 및 평가를 식별하는 자연어 처리의 한 분야
- 방법
- (분류 vs 예측)
- 분류 모델: 텍스트 내 감정 분류
- 예측 모델: 텍스트 내 감정 (긍정/부정)의 정도를 점수화
- 지도학습 ⇒ 학습된 머신러닝 모델을 통해 신규 텍스트의 감정을 예측
- (분류 vs 예측)
2. 나이브 베이즈: 감정 분석의 가장 기본이 되는 알고리즘
나이브 베이즈 기반 감정 분석
- 주어진 텍스트가 특정 감정을 나타낼 확률을 예측하는 문제
- 텍스트의 감정별 확률값 중 최대 확률값을 나타내는 감정을 해당 문서의 감정으로 예측
- 분자에 해당하는 내용만 예측하면 됨
- 감정의 발생 확률과 텍스트를 구성하는 단어들의 가능도로 텍스트의 감정을 예측한다.
3. 나이브 베이즈 기반 감정 예측
스무딩
-
학습 데이터 내 재미있었어요의 빈도 = 0 이라면,
⇒스무딩을 통해 학습 데이터 내 존재하지 않은 단어의 빈도수를 보정
재밌었어요 단어를 존재한다고 취급
소수
-
문제: 문장이 길어질 수록 숫자가 매우 작아진다.
⇒ 컴퓨터가 처리할 수 있는 소수점의 범위보다 작아질 수 있음, 0으로 처리할 수도 있음
-
해결: 로그 확률값의 합으로 텍스트의 감정을 예측
4. scikit-learn을 통한 나이브 베이즈 구현
첫번째 문장은 happy, 두번째 문장은 excited
1. 텍스트 데이터를 수치형 데이터로 바꿔야한다.
-
CountVectorizer 객체로 문장을 수치형 데이터로 바꿔준다.
2. 나이브 베이즈 학습하기
- fit(학습데이터, 레이블(답))
3. 테스트 데이터도 수치화 해주고 예측해야한다.
5. 기타 감정 분석 기법
- 감정분석은 지도 학습 기반의 분류 및 예측의 문제
- 감정 분석 + 머신러닝
- 학습데이터에 레이블된 감정만 존재하면 머신러닝 알고리즘 학습이 가능하다.
-
임베딩 벡터를 이용하면 텍스트를 수치화할 수 있다.
### 평균 임베딩 벡터: 단어, 문자 임베딩 벡터의 평균
-
문자에 대한 임베딩도 가능하다
### CNN
- 단어 또는 문자 임베팅 벡터에 필터를 적용하여 CNN 기반으로 감정 분류
### RNN기반 (LSTM, GRU) 분류 및 예측
-
댓글남기기