Technological Deep Dive

How to Get into the Tech

Data Science Deep Dive/Sentiment Analysis

[SA] #1 감성 분석 개요(Introduction to sentiment analysis)

mju-bilab 2024. 12. 8. 19:04

 

 

들어가며

감성분석(sentiment analysis)은 '텍스트 데이터에서 사람들의 감정이나 의견, 평가, 태도 등을 자동으로 추출하고 분석하는 자연어 처리(Natural Language Processing, NLP)의 한 분야'입니다.

 

주로 텍스트에 담긴 감정(긍정, 부정, 중립)을 분류하거나, 더 세분화된 감정(예: 기쁨, 슬픔, 분노 등)을 식별하는 데 사용됩니다. 감성분석은 약 20년 전 처음 과제로 제시된 이후, 큰 발전을 이루어왔음에도, 언어가 본질적으로 가지고 있는 모호성문화적 차이에 의해 난이도가 어려운 과제인 것은 사실입니다. 아래의 사례를 통해 어떤 어려움이 존재하는지 알아보도록 하겠습니다. 

[언어적 모호성]
(1) 같은 단어라도 문맥에 따라 다른 의미를 가질 수 있습니다. 
"이 제품은 정말 무겁다."
내구성 측면에서는 긍정적인 의미이지만, 휴대성 측면에서는 부정적인 의미에 해당합니다. 

(2) 텍스트에서 직접적인 의미와 실제 의도가 다를 수 있습니다.
"이건 정말 최고야. 돈 낭비의 최고!"
겉으로 보기에는 긍정적이지만, 내포하고 있는 실제 의미는 부정적인 의도입니다. 

(3) 하나의 텍스트에 복합적인 감정이 담길 수 있습니다. 
"배송은 느렸지만 품질은 훌륭합니다."
여러 속성에 대한 평가가 상반될 수 있으며, 하나의 문장에는 긍정적/부정적 감정이 혼재할 수 있습니다. 
[문화적 차이]
(1) 언어마다 감정 표현 방식과 늬앙스가 다릅니다. 
한국어의 "별로다"는 부정적 의미지만, 영어의 "It's not bad"는 긍정적 늬앙스를 내포합니다.

(2) 속어, 방언, 신조어 등으로 인해 기계가 제대로 이해하기 어렵습니다. 
"디토합니다", "오우예시몬", "KIJUL" 

(3) 텍스트 외적인 이모지와 비언어적 표현도 감정 표현에 영향을 미칩니다. 
"좋아👍"는 긍정적 의미이지만, "좋아😒"는 비꼬는 부정적 의미입니다. 

 

따라서 감성분석은 언어와 문화를 정확히 이해하고, 텍스트의 복잡성을 효과적으로 다룰 수 있는 기술적 도구를 필요로 합니다. 이를 위해서는 고품질의 데이터셋, 정교한 언어 모델, 그리고 특정 도메인에 최적화된 접근법이 함께 고려되어야 합니다. 난이도가 높은 영역임에도 불구하고 지속적으로 감성분석에 대한 연구가 진행되고 있는 이유는 다양한 분야에서 의사결정을 도와주는 중요한 도구로 활용되고 있기 때문입니다. 오늘은 감성분석이 얼마나 중요한지, 그리고 어디에 활용되는지를 실제 사례를 통해 알아보도록 하겠습니다. 

마케팅과 브랜딩: 고객의 마음 읽기

기업의 성공에는 고객의 목소리를 제대로 이해하는 것이 중요합니다. 감성분석은 고객의 리뷰, 소셜 미디어 게시물, 설문 결과 등을 분석하여 고객이 어떤 감정을 느끼는지 파악하는 데 사용됩니다. 

  • 사례: 글로벌 스포츠 브랜드 A사는 트위터 데이터를 분석해 제품에 대한 부정적 언급이 증가하는 시점을 파악했습니다. "불편하다"는 피드백이 많았던 특정 신발 라인의 문제를 개선하여, 새 버전 출시 후 긍정적 반응이 급증했습니다. 
  • 활용 효과: 고객의 불만 사항을 조기에 감지하여 제품 개선 방향을 제시할 수 있으며 브랜드 이미지를 유지 및 강화할 수 있습니다. 

서비스 영역에서는 고객의 감정 상태를 파악하여 맞춤형 대응을 가능하게 합니다. 

  • 사례: 한 통신사는 고객 문의 메일과 콜센터 녹취를 감성분석해 부정적인 표현(예: "짜증난다", "실망했다")이 포함된 고객을 우선적으로 처리하는 시스템을 도입했습니다. 
  • 활용 효과: 불만족 고객을 식별하여 신속하게 대응할 수 있으며, 나아가 고객 만족도를 실시간으로 모니터링할 수 있습니다. 

정치와 여론 분석: 대중의 목소리를 이해하기

정치 캠페인이나 정책 결정 과정에서도 감성분석은 활용되곤 합니다. 대중의 의견을 실시간으로 분석해 효과적인 전략을 수립할 수 있습니다. 

  • 사례: 선거 기간 중 한 정치 캠프는 유권자의 트윗 데이터를 분석해 정책별 긍정과 부정 반응을 비교했습니다. 특히 부정적 의견이 많은 정책은 커뮤니케이션 방식을 개선하거나, 새로운 이슈로 전환하는 전략을 취했습니다. 
  • 활용 효과: 사회적 이슈와 여론 흐름을 실시간으로 파악하여 전략적인 정책을 결정할 수 있으며, 대중의 신뢰를 구축할 수 있는 도구로 활용할 수 있습니다. 

정부나 공공기관도 감성분석을 활용해 대중의 의견을 파악하고, 신뢰를 유지하기 위한 전략을 세울 수 있습니다. 

  • 사례: 판데믹 동안, 한 정부 기관은 소셜 미디어에서 국민의 불안과 우려를 분석해 부족한 정보를 보완하고, 정책 발표 내용을 수정했습니다. 
  • 활용 효과: 위기 상황에서 신속한 대응을 통해 사회적 안정을 유지할 수 있습니다. 

금융 및 리스크 관리: 시장의 감정을 읽기

금융 시장에서 투자와 리스크 관리는 대중의 신뢰와 시장의 감정에 큰 영향을 받습니다. 감성분석은 이를 실시간으로 모니터링하고, 빠르게 대응할 수 있는 도구로 활용되고 있습니다. 

  • 사례: 한 금융사는 특정 주식에 대한 소셜 미디어 데이터를 분석해 투자 위험 신호를 조기에 감지했습니다. 부정적 언급이 급증한 주식에 대한 투자를 줄이고, 긍정적 반응이 많은 주식에 집중한 결과, 투자 포트폴리오의 수익률이 증가했습니다. 
  • 활용 효과: 금융 위기를 조기에 예측함으로써 투자 및 리스크 관리를 효율화 할 수 있습니다. 

감성분석의 기본 Architecture

감성분석은 크게 두 가지 단계로 이루어져 있습니다. 첫 번째 단계로 문서(문장)의 어떤 부분에 의견이 담겨있는 지를 정의(Opinion definition)합니다. 그 다음으로는 첫 번째 단계를 통해 모아진 의견을 요약(Opinion summarization)하게 됩니다. 각 단계에서 활용할 수 있는 방법론은 추후 포스팅을 통해 자세히 다루게될 예정입니다. 

감성분석의 기본 아키텍쳐 (source: Megagon Labs)

Opinion Definition

첫 번째 단계는 텍스트 문서로부터 의견을 찾아내야 합니다. 문서는 여러 문장으로 구성되며, 어떤 대상에 대한 의견은 특정한 문장에 담겨지는 경우가 많습니다. 이러한 이유로 의견이 존재하는 영역을 찾기 위해서는 문서를 여러 문장으로 분리해야합니다. 다음으로 분리된 각 문장이 의견을 포함하고 있는지를 확인하는 단계에서 4가지 요소를 찾아야 합니다. 4가지 요소란 ① 분석 대상이 되는 개체(Entity)나 개체의 특성(Aspect/Feature), ② 개체에 대한 의견이 담겨있는 감성(Sentiment), ③ 의견을 표현하는 주체(Opinion holders), 그리고 ④ 발화 시점(Time)입니다. 

감성분석 Flow Chart (source: 네이버 클로바)

 

우리가 찾고자 하는 의견은 일반 의견(Regular opinions)비교 의견(Comparative opinions)의 2가지 유형으로 분류할 수 있습니다. 전자는 단일한 개체(혹은 개체의 특성)에 대한 의견을 담고있습니다. 이는 다시 두 가지로 분류할 수 있습니다. "이 제품은 좋다"와 같은 직접적인 의견(Direct opinions)과 "이 제품은 잘 작동한다"와 같은 간접적인 의견(Indirect opinions)이 존재합니다. 비교 의견은 2개 이상의 대상을 언급하며 서로에 대한 비교 우위를 나타냅니다. 비교 의견은 2개 이상의 대상이 언급되므로 분석의 난이도가 상당히 높아집니다. 따라서 본 포스팅에서는 일반 의견에 한정하여 감성분석에 필요한 요소를 표현하는 방식에 대해 알아보도록 하겠습니다.

일반 의견은 대상이 하나이므로
위에서 살펴본 4가지 요소(대상, 감성, 발화주체, 발화시점)를 다음과 같이 나타낼 수 있습니다.
(gi,soijk,hj,tk) 

위 표현에서 gi 는 분석 대상, hj 는 발화 주체, tk 는 발화 시점을 나타냅니다. 그럼 soijk 는 어떻게 해석할 수 있을까요? 분석 대상 i 에 대하여 k 발화 시점에 j 라는 발화 주체가 표현한 감성입니다. 분석 대상이 하나인 경우라도 개체에 관한 서술인지, 개체의 특성에 대한 서술인지를 구분하기 위해 ge(entity)a(aspect/feature) 로 구분하여 나타내기도 합니다. 이런 경우, 문장에서 의견을 정의할 때 기존 4가지 요소에서 5가지 요소로 확장하여 표현합니다. aili 번째 entityl 번째 aspect/feature 를 의미합니다. 

(ei,ail,soijkl,hj,tk)

Opinion Summarization

우리는 위와 같은 Opinion Definition을 통해 비정형 데이터를 구조화된 Quintuples로 변환할 수 있었습니다. 모아진 Quintuples 를 모두 활용할 수도 있으며, 일정한 기준에 따라 필터링된 Quintuples set을 활용할 수도 있습니다. Opinion Summarization 단계에서는 일반적으로 Aspect 혹은 Feature를 기준으로 하여, 감성을 파악할 수 있습니다. 자세한 절차는 추후에 다루어보도록 하겠습니다. 

Aspect-Based Opinion Summarization 예시 (source: Benlahbib et al., 2022)

Approach & Method

감성분석의 방법론은 아래와 같이 분류할 수 있습니다. 크게는 어휘 기반(Lexicon-based) 접근머신러닝 기반(Machine learning-based) 접근으로 나눌 수 있습니다. 각각의 접근은 더욱 세부적인 방법들로 구성되며, 최근에는 트랜스포머 계열 신경망 모델이 많이 사용되고 있습니다. 

Sentiment Analysis Methods (source: aimtechnologies)

 

다음 포스팅부터는 감성분석 방법론에 대해 하나씩 차례대로 살펴보도록 하겠습니다. 

 

728x90
반응형