감정 분석

2024. 2. 20. 19:48TIL

감정 분석이란

 감정 분석(Sentiment Analysis)이란 텍스트에서 작성자의 감정 상태나 태도를 파악하고 분류하는 과정이며 텍스트 마이닝과 자연어 처리 분야에 속한다. 주로 긍정적, 부정적, 중립적과 같은 범주를 갖고 있으며 현업에서는 텍스트를 넘어 다양한 데이터를 활용해 사용자의 감정을 판단한다. 

 

 감정 분석은 다양한 분야에서 광범위하게 적용된다. 

  • 소셜 미디어 감성 모니터링 
    • 소셜 미디어 플랫폼 내 게시글 분석해 대중의 감정과 태도 파악 
    • 특정 사건, 제품, 브랜드, 정치적 이슈 등에 대한 대중의 반응을 모니터링 
    • 마케팅의 효과를 분석 
  • 고객 서비스 분석 및 소비자 인사이트 
    • 고객 서비스 대화, 콜 센터 통화 내용, 이메일 등 분석으로 고객의 만족 파악
    • 고객의 불만을 해결하기 위한 인사이트 제공 
    • 새로운 제품과 서비스 개발 시 시장의 요구와 기대를 분석 
  • 헬스 케어 및 의료 
    • 환자의 감정 상태 분석 
    • 우울증, 불안 장애 등 조기 징후 파악 

 감정 분석의 사례로 호텔 체인은 기존 별점 시스템을 넘어 고객의 세부적인 만족도와 기대를 파악하고자 실제 고객의 경험과 감정을 정확하게 반영할 때 별점을 비롯해 온/오프라인 고객 리뷰를 분석하여 고객의 세부적인 감정과 평가를 파악하고 불만 고객으로부터 조용함, 편리함, 청결함과 같이 세부적인 개선 사항을 확인한다. 콜센터의 경우 실시간으로 고객의 감정을 파악하기 위해 콜센터 대화 내용 데이터와 STT 후 텍스트 기반 감정 분석하여 문제의 긴급성과 중요성을 평가한다. 의류 소매 업체는 업계 트렌드를 파악하고 경쟁 우위를 확보하고 고객의 세부적인 감정과 만족도를 이해할 필요가 있다. TikTok에서 사용자가 생성한 콘텐츠를 통해 주요 트렌드, 고객 선호, 반응 등을 분석하여 고객의 특성과 선호도를 파악하고 연령, 언어, 가격, 소재, 디자인 등의 통찰력을 얻는다. 

 

감성 분석 모델 알고리즘

 텍스트 데이터를 이용하는 분석을 위해서는 분석에 사용할 수 있는 형태로 전처리가 필요하다. 일반적으로 아래의 과정을 사용한다. 

  • Tokenize 
    •  Token이란 분석의 기본 단위가 되는 개체
    • 원문 글을 분석에 사용할 기본 개념 단위인 Token으로 분리하는 과정 
    • 이 단위가 글을 분석하는 과정의 가장 작은 의미 단위가 됨 
  • Stop Words 제거 
    • 빈번히 많이 사용되지만 의미는 없어 분석에 도움이 되지 않는 Token을 제거하는 과정 
    • 데이터의 복잡도를 줄이고 분석 정확도를 올리는 역할을 함 
    • 예를 들어 'The', 'a', 'and', '아', '그리고' 같은 단어를 제거
  • Stemming 
    • 단어 기반의 Token을 사용하는 경우 특정 단어를 그것의 기본 형태(어간)으로 축소하는 과정
    • 접두사나 접미사를 제거하여 단어의 기본 줄기를 찾는 과정
    • 예를 들어 Running → Run, Runner    Run
    • 빠르고 간단하게 처리할 수 있지만, 문맥을 고려하지 않아 잘못된 결과를 반환할 수 있음 
  • Lemmatization 
    • 단어를 그 의미론적 기본 형태 (Lemma)로 변환하는 과정 
    • 특정 단어의 품사와 문맥을 고려해 정확한 기본 형태를 찾아냄 
    • 예를 들어 ʻare’ , ʻis’, ʻam’ 모두 ʻbe’로 변경
    • Stemming에 비해 복잡하고 시간이 오래 걸리지만 정확도가 좋음

 Yelp라는 사용자들이 다양한 로컬 음식점에 대한 리뷰를 공유하는 플랫폼에 있는 음식점과 음식에 대한 텍스트 리뷰와 만족도 데이터셋으로 감정 분석 실습을 진행한다. 사용자의 텍스트 리뷰를 바탕으로 그들의 감정 상태를 예측할 것이다. 진행 과정은 아래와 같다.   

  • 전처리
    • 단어 기반 Tokenize 
    • Stop Words 제거 + 기타 전처리 
    • Stemming은 사용 x (아래 GloVe는 학습 과정에서 Stemming 한 데이터를 사용하지 않음) 
    •  TF-IDF 과정에서도 서로 어간 추출 없이 원본 단어의 중요도를 판단 
  • 모델 적용 및 학습 
    • GloVe를 통해 단어 임베딩 
    • 문장에 존재하는 임베딩 값들 기반으로 문장의 임베딩을 생성 
    • TF-IDF(단어의 중요도, TF 파트와 IDF 파트의 곱) 가중치를 추가한 단어들의 임베딩 값의 평균
    • TF(단어의 빈도, Term Frequency): 특정 단어가 문서 내에 얼마나 자주 등장하는지
    • IDF(역 문서 빈도, Inverse Document Frequency): 특정 단어가 얼마나 여러 문서에서 등장하지 않는지
    • 이진 분류(긍정/부정) 문제로 Logistic Regression 적용 
  • 결과 확인 
    • 예측 결과를 프린트 
    • 머신 러닝 모델을 생성하고 평가로 끝내는 것이 아니라, 실제 고객이 작성할 법한 예시 문장을 활용해 추론 진행 

 

'TIL' 카테고리의 다른 글

자연어 처리 프레임워크와 실습  (0) 2024.02.21
토픽 모델링과 워드 클라우드  (0) 2024.02.21
단어 임베딩과 문장 임베딩  (1) 2024.02.20
텍스트 마이닝 개요  (0) 2024.02.19
SageMaker 사용해보기  (1) 2024.02.11