[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
2. 머신러닝을 이용한 감성분석
1) 문서 행렬(DTM, Document Term Matrix)
2) tf-idf
3. 딥러닝을 이용한 감성분석
'🤖 Education > 2020AI BM과정(nipa)' 카테고리의 다른 글
[AI_BM과정] 6일차 : CNN (0) | 2020.05.18 |
---|---|
[AI_BM과정] 5일차 : AI 영상처리 (Tensorflow/Linear Regression) (0) | 2020.05.17 |
[AI_BM과정] 3일차 : 자연어처리 (형태소분석기) (0) | 2020.05.17 |
[AI_BM과정] 2일차 : R 실습(Mtcars 분석/Iris 로지스틱회귀) (0) | 2020.05.17 |
[AI_BM과정] 2일차 : 학술자료 찾기 (0) | 2020.05.17 |