🤖 Education/2020AI BM과정(nipa)

[AI_BM과정] 3일차 : 자연어처리 (빈도분석/감성분석)

데이터분석가SIENNA 2020. 5. 17. 22:59
[2] 빈도분석

 

1. 데이터
네이버 영화 데이터
- 200,000 건의 영화평 데이터
- label : 1은 긍정(9-10점), 0는 부정(1-4점)
→ 네이버 영화평 중 5-8점은 걍 버림. 중립감정이 없어 아쉬운 자료

 

2. 인코딩

  
ksc5601 : 현재 잘 사용x 오래됨 
euc-kr : ksc5601 확장한것 
ANSI : AMERICAN NATIONAL STANDARD INSTITUTE : euc-kr 약간 확장판 
cp949(ms949) : euc-kr과 거의 같다 

3. 그래프로 시각화 하는 이유

- 중요한 것만 알면 되기 때문에  

- 개략적으로 경향성, 주요 패턴을 보기 위해 
- 직관적으로 전체 데이터를 이해하고자 하는 것이 목적! 
- 전체데이터를 다 못 그린다고 어려워할 필요는 없습니다! 

4. 워드클라우드는 중앙에서 바깥쪽으로 나가는 형태 
하지만 전체적인 내용이 긍정인지는 모르는 상태 
ㅋㅋㅋㅋ/진짜 등은 부정의 의미를 담기도 한다 

axis = off 축의 선을 보여주지 않는다는 의미 

 

[3] 감성분석(Sentiment Analysis)

 

1. 사전을 이용한 감성분석

1) 사전을 이용한 감성분석

- 문서에 긍정적 단어가 나타나면 +1, 부정적 단어가 나타나면 -1을 쓰는 것과 같은 방법으로 감성점수를 계산
- 감성점수 > 0 이면 긍정적인 문서,
감성점수 < 0 이면 부정적인 문서,
감성점수 = 0 이면 중립적인 문서로 봄
- Sigmoid 함수를 이용하여 값을 0~1 사이로 정규화 하는 방법도 있음

- 모델을 만들지 않아도 된다. 

(모델에 들어가는 훈련데이터가 필요하지 않다, 많은 데이터가 필요하지 않다)

 

 

2) 감성사전 구축
- 감성 분석 사전의 구축은 쉽지 않음
- 문장 내 어휘의 도메인에 따라 감정 어휘의 극성(긍정, 부정, 중립)이 바뀜

예) [치솟다]
주가가 치솟다 (긍정)
부채가 치솟다 (부정)

 

 

3) 감정어의 종류
- 감정어 : happy / joy / sadness / anger 등

 

 엄격한 의미에서 극성이 잘 바뀌지 않는다 

 수가 매우 적다
한국어의 경우 450개 정도이나, 이보다 훨씬 적은 단어들이 사용된다. 
왜냐하면 대부분의 단어들이 노발대발하다, 분기탱천하다, 노엽다, 성나다 등 잘 쓰지 않는 단어가 많기 때문이다! 

 

예외) surprise 계열 
놀라다 : 왜 놀랐는지 의미가 모호함   
도둑이 들어와서 놀랐다  
군대 간 아들이 집에 있어서 놀랐다

 

- 평가어

냉장고가 깨끗하다  부정적일 수 있음 먹을게 없다는 의미
맥락에 따라 극성이 바뀔 수 있지만, 많은 사람들이 토론을 해서 의견일치를 볼 수있는 정도임. 

합의판정을 하여 긍정인지 부정인지 결정해 태깅을 한다. 

- 감정어를 기본으로 하면서, 도메인별로 평가어를 예외 처리하며 구축해야 한다.
통상적으로는 감정어와 평가어를 모두 긍부정어로 통칭하여 언급한다.  
그러나 분석 이름으로는 “감성분석“이라는 표현을 많이 사용한다.

 

 

4) 가중치 설정

• 실제 사용되는 감정어 및 긍부정어는 적은 수 

• ‘아주, 매우, 조금, 별로와 같은 정도 부사에 의하여 정도성이 설정됨

 

 

 

5) 한국어 감성사전

- 공개된 감정사전이지만, 전적으로 의지하기 어렵다

 

• 김은영(2004), “국어 감정동사 연구”, 전남대학교 박사학위논문

의미영역별로 464개 감정동사가 논문 내에 분류되어 있음

 

• 연세대학교 오픈한글 

http://openhangul.com/restrict

API 방식으로 접근하나, 최근 서비스 중단

 

• 서울대학교 KOSAC (Korean Sentiment Analysis Corpus) 

http://word.snu.ac.kr/kosac/corpus.php

이메일로 요청 후 받아야 한다

 

• 군산대학교 팀의 KNU 한국어 감성사전 

http://dilab.kunsan.ac.kr/knusl.html

SentiWord_Dict.txt가 감성사전 (15,000 목록)

형태소 분석이 잘 되어 있지 않음

 

 

6) 영어 감성사전

Hu and Liu 6789 어휘 감성어휘사전

https://www.cs.uic.edu/~liub/FBS/sentiment-analysis.html

 

Andrea Esuli 팀의 100,000 어휘 SentiWordNet

http://sentiwordnet.isti.cnr.it/

 

Erik Cambria 팀의 100,000 어휘 SenticNet

http://sentic.net/about/

 

 


2. 머신러닝을 이용한 감성분석

 

1) 문서 행렬(DTM, Document Term Matrix)

2) tf-idf

 


3. 딥러닝을 이용한 감성분석