토픽 모델링과 워드 클라우드

2024. 2. 21. 15:58TIL

토픽 모델링

 토픽 모델링이란 대규모 텍스트 데이터에 존재하는 다양한 주제를 자동으로 식별하고 분류하는 과정이다. 이를 통해 데이터 안에 숨겨진 주제 구조를 발견하고 이해나는 것이 목적이다. 토픽 모델링의 주제는 일반적으로 단어의 집합으로 표현되며 텍스트 내의 특정 패턴이나 빈도를 기반으로 선택된다. 선택된 주제는 특정 주제와 비슷한 텍스트만 추려내거나 분석 결과를 해석하는 과정에서 토픽과 관련된 부분만을 취하는 방향으로 사용될 수 있다. 

 

 토픽 모델링의 사례로 Dell 회사는 직원들의 고민과 생각을 알기 위해 직원 만족도 설문 조사를 분석하였다. 텍스트 설문 조사 과정에서 토픽 모델링을 활용하여 직원들의 의견을 빠르고 직관적으로 파악 가능했고 운영 효율이 증가하였다. 다른 사례로는 NAVER의 인기 검색어를 통해 사람들의 관심도와 전반적인 트렌드를 확인하여 사업 인사이트, 마케팅 아이디어를 얻을 수 있다. 

 

토픽 모델링 대표 모델

 LDA란 문서에 내재되어 있는 토픽을 찾아가는 알고리즘이다. LDA는 전체 문서는 여러 개별적인 문서들의 집합으로 구성되며, 하나의 개별 문서는 여러개의 주제로 구성되고, 하나의 주제는 여러 단어들로 구성된다고 가정한다. LDA(Latent Dirichlet Allocation)는 문서 표면에 드러나지 않은 숨어있는 토픽의 확률 분포(Latent Dirichlet)를 가정하고 각 단어를 토픽에 할당(Allocation)하는 분석 방법이다. 

 

  LDA 알고리즘을 결정짓는 중요한 두 확률값이 존재한다. 첫번째는 문서에 어떤 토픽이 들어있는가: P(토픽 t | 문서 d), 두 번째는 각 토픽에 어떤 단어가 들어있는가: P(단어 w | 토픽 t)이다.

  • P(토픽 t | 문서 d)
    • 특정 문서 d에서 토픽 t가 차지하는 비율
    • 문서에서 각 토픽이 얼마나 중요한지를 나타냄
  • P(단어 w | 토픽 t)
    • 특정 토픽 t에서 단어 w가 차지하는 비율
    • 토픽에 특정 단어가 나타낼 확률
  • P(토픽 t | 문서 d, 단어 w)
    • 특정 단어가 어떤 문서의 주제에 속할 확률
    • 어떤 단어가 문서의 주제와 얼마나 잘 맞는지를 나타냄
    • 이 값이 크면, 특정 단어가 그 문서의 주제와 매우 밀접한 관련이 있음
    • LDA에서 최종적으로 유추해야하는 값이지만 직접적으로 구하기 어려움

 LDA의 알고리즘 적용 과정은 다음과 같다.

  1. 토픽 개수 K 설정
  2. 문서 내 모든 단어에 무작위로 K 토픽 중 하나를 할당
  3. 단어 w의 토픽 할당을 결정하기 위해 나머지 단어들의 할당 결과를 활용: P(토픽 t | 문서 d) X P(단어 w | 토픽 t)
    • 이 값이 제일 커지는 t를 w에 재할당
    • 전체 문서의 모든 단어들을 대상으로 연산 진행
    • 종료 시점에 도달할 때까지 반복 진행
  4. 최종 결과 분석
    • 토픽에 존재하는 단어를 보고 토픽이 의미하는 주제를 사용자가 정의
    • 할당된 토픽을 기준으로 문서에 존재하는 토픽을 분석
토픽 모델링 실습

 실습 데이터는 이전 감정 분석 실습해서 사용했던 Yelp 데이터이다. 풀어야 하는 문제는 Yelp 데이터셋에 잠재하는 주제를 찾는 것이고 입력값은 전체 텍스트 문서 집합과 토픽의 수, 출력값은 문서별 토픽 분포와 토픽별 단어 분포이다. LDA의 결과 분석에 단어 해석이 사용되므로 단어의 레벨로 Token을 설정하였다. 기본적인 텍스트 데이터 전처리로 띄어쓰기 단위Tokenize, Stop Words 제거, Stemming(많이 사용하는 PorterStemmer 사용), 소문자화(정규화), 비 단어적 요소 제거를 하였다. 

 

 전처리된 데이터에서 각 단어의 빈도를 나타내는 행렬을 생성한다. 행의 방향으로 문서를 나타내며, 열의 방향으로 단어를 나타내는데 이를 문서-단어 행렬 (Document-Term Matrix, DTM)이라고 한다. 먼저 Gensim 패키지의 Dictionary Class 이용하여 어떤 열 번호(index)에 어떤 단어(term)가 들어갈지 정한다. 다음으로 만들어진 단어(term)-번호(index) 객체를 활용하여 (단어 ID, 빈도수)의 형태를 갖는 DTM을 생성한다. 전체 텍스트 집합(corpus), 선정할 토픽의 수, 단어와 인덱스 데이터(dictionary), 학습 횟수를 입력하여 Gensim에서 제공하는 LDA 모델 학습을 진행하였다. 학습된 모델을 활용해 문서 별 토픽 분포와 토픽 별 단어 분포를 확인할 수 있다. 

LDA의 결과로 생성된 토픽의 의미는 사용자가 선정해야 한다. 사용자는 토픽을 구성하는 단어를 보고 토픽의 의미를 선정한다. 이 과정은 데이터 친숙도, 분야의 전문성이 큰 힘을 발휘한다. 

 

워드 클라우드

 워드 클라우드란 텍스트 데이터를 시각적으로 표현한 것으로 문서나 데이터에서 가장 빈번하게 등장하는 단어들을 시각적으로 돋보이게 하는 방법이다. 자주 등장하는 단어는 더 크고 두드러지게 표시되며 대량의 텍스트 데이터에서 중요한 키워드의 빠르고 직관적 이해가 가능하다. 

 

 워드 클라우드 실습을 위해 보고자 하는 목적에 맞춰 데이터를 전처리 해야 한다. 보통 뉴스, 소셜 미디어, 학술 논문 등은 ʻ명사’를 기반으로 활용하고 리뷰, 고객 피드백과 같은 감정의 통찰을 얻고자 한다면 ʻ형용사’ 혹은 ʻ동사’ 활용한다. 전체 맥락을 파악하기 위해 전체 데이터를 활용하기도 한다.  

'TIL' 카테고리의 다른 글

데이터 마이닝  (1) 2024.02.22
자연어 처리 프레임워크와 실습  (0) 2024.02.21
감정 분석  (0) 2024.02.20
단어 임베딩과 문장 임베딩  (1) 2024.02.20
텍스트 마이닝 개요  (0) 2024.02.19