감성 사전/지도 학습
사람의 주관적인 감정을 계량화

[월드투데이 김새민 기자] 우리가 흔히 작성하는 리뷰나 SNS 게시물에서 감정을 추출할 수 있다. 감성 분석은 비정형 데이터인 텍스트에 내재한 사람들의 주관적 태도나 감성을 읽어낸다. 

감성 분석은 opinion mining이라고도 부른다. 사람들이 글에 담은 의견이나 감정을 자연어처리와 컴퓨터 기술을 활용해  추출하는 것이다. 

[사진 = pixabay]
[사진 = pixabay]

사람들은 상품평이나 영화 리뷰, SNS에 자신의 감정을 담아 글을 적는다. 기사에 댓글을 남기거나 게시판에 게시물을 적어 의견을 표출하기도 한다. 사람들이 다양한 형태로 표현한 의견을 분석하면 사람들이 자발적으로 표현하는 진짜 감정을 알 수 있다.

텍스트에 담긴 감정을 파악해내는 감성 분석은 사람들의 반응을 반영하여 개선책을 마련하려는 의도로 쓰인다. 특정 기업에 대한 평판이나, 신제품에 대한 반응, 정치인의 평판을 감성 분석으로 알아내어 부정적인 의견은 줄이고 호응을 얻기 위해 어떤 시도를 해야 하는지 고민할 수 있다.

그렇다면 어떻게 텍스트에 담긴 감정을 파악할 수 있을까? 감성 분석은 크게 감성 사전을 이용하는 방법과 모델 학습을 이용하는 방법으로 나뉜다.

감성 사전 

텍스트에 담긴 주관적 태도를 파악하기 위해 미리 구축해 놓은 감성 사전을 이용하는 방법이다. 감성 사전에 포함된 단어와 분석할 텍스트 내의 단어를 연결 지어 점수를 정량화해 감성을 분석한다. 

감성 사전은 감성어와 해당 감성어의 긍ㆍ부정 여부, 감성 점수로 구성한다.  예를 들어 '재미없어'라는 말에는 부정을 뜻하는 '0', '즐겁다'는 단어에는 긍정을 뜻하는 '1'을 부여하여 긍정 단어와 부정 단어를 분류한다. 

혹은 단어 별로 점수를 다르게 부여하여 감정의 정도를 표현하는 것이 감성 점수이다. 'good'과 'excellent'는 감성 정도가 다르다. 'excellent'에 더 높은 긍정 점수를 부여하여 긍정적인 특성을 부각하는 것이다.

감성 분석 시 분석 사전을 직접 구축해 활용하기도 한다. 다만, 감성 사전의 품질이 분석 결과를 좌우하기에 구축 시 유의해야 한다.

[사진 = pixabay]
[사진 = pixabay]

◆ 감성 사전 구축

감성 사전에 등록돼 있지 않은 단어는 감정을 나타내도 측정 시 배제될 수밖에 없다. 특정 도메인의 텍스트를 분석할 때는, 해당 분야에서 사용되는 감성어를 많이 포함하고 있어야 분석이 정교해진다.

또한, 사전 구축에서 감성 점수를 부여하는 방식은 주관적이다. '웃기다'와 '재미있다'라는 단어에 대해 감성점수를 똑같이 매길 수도 있겠지만, 누군가는 '웃기다'는 웃음을 유발해서 더 긍정적이라고 말할 수도 있다. 따라서  여러 사람의 의견을 반영해 감정의 정도를 점수화해야 객관성을 확보할 수 있다. 

감성 사전은 맥락을 반영하기 어렵다는 것이 단점이다. '웃기다'는 비웃음의 맥락에서 사용될 수도 있다. 그렇지만 감성사전의 점수를 그대로 사용하다 보면, 맥락은 놓친 채 단어 하나하나의 의미에만 집중하게 된다. 

그럼에도 감성사전을 이용하면 감성 사전 하나만으로 분석에 쉽게 적용할 수 있는 것이 강점이다. 한국어 감성사전으로는 KNU 감성사전과, KOSAC이 있고, 영어에는 TextBlob 어휘사전, AFINN 어휘사전, VADER 어휘사전 등이 있다.

지도학습

지도학습은 머신 러닝에서 모델에게 어떤 내용이 긍정적인지, 어떤 내용이 부정적인지 학습을 시키는 것을 의미한다. 미리 정답을 알려준다고 해서 '지도' 학습이라고 한다. 학습 데이터가 최종 예측 데이터의 도메인을 반영할수록 모델 정확도가 높아진다. 

긍ㆍ부정 라벨링을 거친 데이터를 기계에 학습 시켜 새로운 텍스트를 입력하면 학습했던 내용을 바탕으로 감정을 예측한다. 나이브 베이즈 분류기나 결정 트리 분류기, 로지스틱 회귀분석 등을 이용한다. 

대체로 감성 사전 기반 분석보다 정확도가 높은 것으로 알려져 있지만, 라벨링 데이터가 준비되어야 가능한 방법이다. 학습 데이터의 크기도 어느 정도 확보되어야 모델의 성능을 보장할 수 있다. 

라벨링 과정에서도 감성 점수를 판단할 때처럼 사람이 개입되기도 한다. 따라서 라벨러(라벨링을 하는 사람)가 객관성을 유지할 수 있도록 라벨링 기준을 명확히 정립하고, 여러 라벨러의 의견을 종합해 학습 데이터의 질을 확보해야 한다. 

리뷰 데이터에서는 평점 자체를 라벨링으로 간주하고 학습을 진행하기도 한다. 평점 척도를 그대로 이용하거나 범주화하여 1~2점은 '부정', 4~5점은 '긍정', 3점대는 '중립'으로 나타내기도 한다.

나아가 딥러닝 분야에서도 BERT나 RNN 모델을 활용하여 감성 분석을 할 수 있다.

[사진 = pixabay]
[사진 = pixabay]

감성 분석은 사람의 '진짜 의견'을 판단할 수 있다는 점에서 의미가 있지만, 텍스트만으로 사람의 감정을 추출한다는 것은 생각해보면 말이 되지 않는다. 컴퓨터 기술을 도입해봐도 방법에 한계가 존재한다는 것을 알 수 있었다.

그런데도 감성 분석에 주목하는 이유는 사람들의 지극히 개인적인 감정을 대략적으로 수치화하여 보여준다는 점이다. 감성 분석은 사람의 마음을 읽으려는 시도에서 그치지 않고, 마음을 얻으려는 시도로 발전해간다. 사람들의 감정 데이터를 반영한 의사결정으로 사람들의 마음을 움직이고자 하는 것이다. 

저작권자 © 월드투데이 무단전재 및 재배포 금지