본문 바로가기

ML & DM/Sentiment Analysis

Sentiment Analysis

감성분석이란  텍스트의 정보(information)을 추출하는 텍스트 마이닝과는 다르게 어떤 주제에 대한 주관적인 인상, 감정, 태도, 개인의 의견들을 텍스트로부터 뽑아내는 분석을 말한다. 일반적으로 찬성/반대, 좋음/싫음 같이 2진형식으로 나타낸다. 이렇게 감성분석의 주된일은 주어진 텍스트에서 긍정, 부정 혹은 중립을 파악하는것을 기본으로 하고 이를 텍스트의 polarity를 알아낸다고 한다. 이러한 기본작업에서 더 나아가 (beyond polarity) 분노, 슬픔, 기쁨 같은 감정의 상태도 분석을 할 수 있다.


1. 종류


초기 감성분석은 문서단계에서 이루어 졌다. 즉 제품리뷰와 영화리뷰들의 극단성(polarity)을 찾는것에 집중되었다. 이러한 극단성을 찾는 문제에서 점수가 글쓴이의 감정을 대변할 수 있다는 생각에서 별점이나 평점같은 스코어들을 예측하는 방향으로 확장되었다. 이러한 분석에서 더 나아가 제품의 다양한 특성들에 대한 평점들을 예측하였다. 하나의 예로 레스토랑의 음식과 분위기에 대한 5성단위의 평점을 들 수 있다. 헌데 극단성을 찾는데에서 하나 논란이 있어왔는데, 비록 대부분의 통계적 분류방법들에서, 중립은 이진 분류기의 경계근처에 위치한다는 가정하에 무시를 하였음에도, 몇몇 연구자들은 모든 극단성 문제들에서, 3개의 카테고리(긍정, 부정, 중립)가 다루어져야 한다고 주장한다. Max Entropy 와SVM 같은 분류기들은 중립클래스의 도입이 정확도를 높이는데 도움이 될 것이다. 


또 다른 방법은 -10 에서 10까지의 범위로 긍정, 부정, 중립을 스케일링하여 사용하는 것이다. 여태까지의 이야기는 text가 구조가 잡힌 structured text를 가정했다 그러나 실제로는 구조가 잡히지 않은 (즉 전처리가 되어있지 않고, 많은 불용어들이 있는) text들을 자연어처리를 사용하여 말속의 어떠한 연속적인 개념들을 이해하고 이러한 개념들은 감성어(sentiment word)와 얼마나 연관이 있느냐에 따라 점수가 매겨진다. 이렇게 매겨진 점수로 지금 작가가 어떠한 감정(기쁨, 슬픔 등)인지를 결정할 수 있다. 


여태까지의 분석이 polarity나 감정(sentiment)를 찾아내는 분석이었다면, subjectivity/objectivity identification이라는 분석 방법은 단지 주어진 텍스트를 주관적이냐 객관적이냐로 분류하는 분석방법이다. 이러한 분석은 주관성의 정의에 따라 그리고 문맥에 따라 결론이 많이 달라질 수 있으나 polarity를 분류하기 전에 한 문서의 객관적인 문장들을 제거하는것이 성능향상에 도움이 된다고 한다.


마지막으로 Feature/aspect-based sentiment analysis는 한 개체(예를 들어 핸드폰, 카메라, 은행 등)의 다양한 특징, 특성들에 대한 의견 혹은 감성들을 예측하는 것이다.  개체의 한 특징 혹은 한 측면은 카메라의 화질이라던지, 레스토랑의 섭비스 같은 특징이나 요소를 말한다. 이러한 분석의 장점은 관심 주제에 대한 뉘앙스를 잡아내는 것이다. 다양한 특성들은 다양한 감성반응들을 나타낼 수 있다. 이러한 문제는 관련 개체를 알아내고, 이 개체의 특성들을 추출하고, 각 특성에 대한 의견이 긍정인지 부정인지 혹은 중립인지를 결정하는 모든 과정과 관련이 있다. 


2. 방법과 특징들


방법은 크게 3가지로 나뉜다. knowledge-based techniques, statistical methods 그리고 hybrid approaches 가 있다. knowledge-based techniques는 텍스트를 기쁨, 슬픔, 두려움, 지루함 같은 확실한 효과단어(affect word)의 존재에 기반한 affect categories로 분류한다. 물론 특정 감정들과 관련성 있음직한 임시적 단어(arbitrary word)들을 할당 할수도 있다. statistical methods는 latent semantic analysis, support vector machines, bag of words 그리고 semantic orientation 같은 기계학습을 사용하는 방법이다. 더 세련된 방법들은 해당효과감성을 가진 사람, 혹은 타겟을 찾는것이다. 문맥상 혹은 특징의 의견을 얻기위해, 단어들의 문법적 관계들도 사용된다.  hybrid approach는 앞선 2가지 방법을 둘다 쓴다. 예로 미묘한 방식으로 표현된 의미들을 감지하기 위해 ontologies 와 semantic networks같은 것들이 있다. 예를들어 우리가 관련 정보들을 명시적으로 전달하지는 않지만 암묵적으로 전달하는 연결된 다른 개념들에 대한 분석이다.


3. 평가


감성분석의 정확도는 본래 인간의 판단과 얼마나 일치 하느냐로 결정된다. 이것은 보통 정밀도와 재현율에 의해 측정된다. 실제로 실험에 따르면, 80%정도가 일반적으로 동의를 한다고 한다. 그러므로 70% 정확도의 프로그램은 거의 인간과 가깝다고 보면 된다. 100%의 정확도는 20%의 사람들은 여전히 동의하지 않을 것이다. 감성분석에서 2진형태의 판단보다 스케일형식의 반환이 정밀도 보다더 좋은 측정이다 왜냐하면 타켓 값과 예측값이 얼마나 가까운지를 설명하기 때문이다.



참고문헌 : http://lct-master.org/files/MullenSentimentCourseSlides.pdf

             https://en.wikipedia.org/wiki/Sentiment_analysis