티스토리 뷰

728x90

안녕하세요. 은행 IT운영부 이지성과장입니다.

 

오늘은 토픽모델링에 대해서 알아보려 합니다. 토픽모델링 (topic modeling)이란 대량의 텍스트로 이루어진 어떤 문서에서 주제를 컴퓨터가 스스로 알아내는 것입니다.

 

 

토픽모델링을 통해서 대량의 문서가 어떤 주제로 이야기를 하고 있는지 요약할 수 있습니다. 

신문기사, 논문, 상품평 등등 텍스트로 이루어진 데이터 입력하면 해당 주제를 출력하는 것입니다.

 

토픽모델링 기법 중에서 대표적인 기법인 "LDA"에 대해서 조금더 말씀드리면...

LDA (잠재 디리클레 할당이라고도 합니다) 는 확률적 생성모형(Generative model)을 가정합니다. 간단히 말씀드리면, 문서에서 많이 등장하는 단어가 그 문서의 주제가 될 가능성이 크다는 것입니다.

 

 

위 이미지는 LDA를 설명할 때 주로 사용되는 이미지인데, 해당 문서에서 노란색 단어들 (gene, dna 등) 이 자주 등장하므로 이 문서의 주제는 "유전"과 관련된 주제일 가능성이 높다는 모형이 바로 LDA 입니다.

 

이렇게 설명드리면, 감이 안오실 테니 조금더 간단한 예제로 설명을 드리겠습니다.

아래와 같이 3개의 문서가 있다고 가정해 보겠습니다.

 

문서1 : 저는 사과랑 바나나를 먹어요
문서2 : 우리는 귀여운 강아지가 좋아요
문서3 : 저의 깜찍하고 귀여운 강아지가 바나나를 먹어요

 

그리고 주제는 2개가 있다고 가정하고, LDA로 주제 분류를 시키면 아래와 같은 결과를 도출합니다.

(사실 주제의 개수 2는 사용자가 지정해주는 값, 하이퍼 파라미터 라고도 하며, 이 주제의 수에 대한 최적의 수를 찾아내는 과정에 대해서는 별도의 포스팅에서 다루어 보도록 하겠습니다.)

 

<각 문서의 토픽 분포>
문서1 : 토픽 A 100%
문서2 : 토픽 B 100%
문서3 : 토픽 B 60% / 토픽 A 40%

 

<각 토픽의 단어 분포>
토픽A : 사과 20%, 바나나 40%, 먹어요 40%, 귀여운 0%, 강아지 0%, 깜찍하고 0%, 좋아요 0%
토픽B : 사과 0%, 바나나 0%, 먹어요 0%, 귀여운 33%, 강아지 33%, 깜찍하고 16%, 좋아요 16%

 

결과를 해석해보면,

토픽A는 바나나, 사과, 먹다와 같이 과일과 관련된 주제일 가능성이 높습니다.

토픽B는 강아지, 귀여운 등 애완동물과 관련된 주제일 가능성이 높겠죠.

 

흥미로운 사실은 문서 3에서는 토픽A에 대한 확률을 40%, B에 대한 확률을 60%로 반환하였습니다. 이렇게 LDA는 문서의 주제를 어떤 주제가 더 확률이 높을 지 확률적으로도 표현을 해줍니다. 

 

LDA의 이론적인 배경은 통계전공자도 이해하기 힘들 정도로 여러 이론들을 배경이 두고 있습니다.

베이즈 추론, 깁스 샘플링 등 LDA와 관련 이론에 대해서 더 궁금하신 분은 아래 링크를 참고하시기 바랍니다!

 

[LDA참고링크] : https://byeongkijeong.github.io/Latent-dirichlet-allocation-in-R/

 

 

 

날씨가 많이 선선해졌습니다. 다가오는 추석 명절도 뜻깊게 보내시기 바랍니다!

감사합니다.

728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
글 보관함