텍스트의 통계학: (1) 구글신의 새 마음텍스트의 통계학: (2) 셰익스피어의 영혼은 몇 그램?지난 번에는 간단하게 단어의 순서, 즉 문법을 통계적으로 분석하는 방법을 알아보았다. 제대로 문법을 분석하려면 일단 문법 이론부터 설명해야하니까 그건 과감하게 넘어가겠다. 원래 이 연재가 좀 수박 겉핥기다.
이번에는 텍스트의 '주제'를 통계적으로 파악하는 방법을 다뤄보도록 하겠다. 일단 시작은 지난 번과 마찬가지로 유니그램(unigram) 모형이다.
지난번에는 까만 동그라미를 여러 개 그려놓았는데 이번에는 까만 동그라미 주변에 네모를 쳐놨다. 그래프 모형에서 네모는 그 안에 있는 기호들이 반복된다는 의미다. 즉, 하나의 텍스트에는 여러 개의 단어가 반복되고, 이것이 인터넷 전체에 반복된다는 뜻이다. 원래는 텍스트, 인터넷 자리에 반복되는 횟수, N이 들어가지만 편의상 표기법을 바꿨다.
유니그램 모형에서 모든 단어는 무작위적으로 나타난다. 그런데 그건 사실이 아니다. 이걸 좀 더 그럴 듯하게 바꿔보자. 모든 텍스트에는 주제가 있다. 그리고 주제가 같은 글에는 단어들이 나타나는 패턴이 비슷하다. 예를 들어 정치에 관련된 글이라면 '국회'나 '선거' 같은 단어가 많이 나올 것이고, 경제에 관련된 글이라면 '고용'이나 '금융' 같은 단어가 많이 나올 것이다. 즉, 유니그램은 유니그램이지만 주제에 따라서 유니그램의 단어 분포가 달라지는 것이다. 이것이 유니그램 혼합 모형(Mixture of unigrams model)이다.
그런데 사실 우리는 어떤 글의 주제를 직접적으로 관찰할 수가 없다. 그래서 유니그램 혼합 모형에서 모든 텍스트는 여러 가지 주제가 확률적으로 중첩된 상태가 된다. 예를 들어 정치 관련 글에서 '국회'라는 단어가 나타날 확률이 1%, 경제 관련 글에서는 0.5%라고 해보자. 어떤 글이 정치 관련 글일 확률이 80%고, 경제 관련 글일 확률이 20%면 이 글에서 '국회'라는 단어가 나타날 확률은 80% × 1% + 20% × 0.5% = 0.9%가 된다.
이걸 두 가지로 생각할 수 있는데, 한 가지는 이 글은 경제 관련 글이거나 아니면 정치 관련 글인데 다만 우리가(정확히 말하면 컴퓨터가) 모를 뿐이다. 또 하나는 이 글의 주제 자체가 80%는 정치고 20%는 경제다. 사실 똑부러지게 어떤 주제에 속하는 글이란 없으므로 후자의 해석이 좀 더 마음에 든다. 그러면 아예 작심하고 이걸로 확장해보자.
마지막으로 소개할 모형은 그렇게 '작심하고 확장한' 모형으로, 잠재 디리클레 할당 모형(Latent Dirichlet Allocation model: 이하 LDA 모형)이라는 외계어로 된 이름을 가지고 있다. 재미로 덧붙이자면 LDA 모형을 만든 사람 중에 하나의 이름은 '마이클 조던(Michael I. Jordan)'이다.
LDA 모형에서 하나의 문서에는 여러 가지 주제가 혼합되어 있다. 그리고 단어 하나 하나는 이런 주제들 중에 하나를 반영한다. 예를 들어 "국회는 금융 관련 법안을.."이라는 문장이 있다면 '국회'와 '법안'은 정치적 주제를 반영하고, '금융'은 경제적 주제를 반영하는 식이다.
그림에서 α,β가 뭘 뜻하는지는 알 거 없고, '문서'라고 표시된 하얀 동그라미는 그렇게 혼합된 주제를 뜻하며 '주제'라고 표시된 하얀 동그라미는 문서가 가진 주제들 중에 각 단어가 반영하는 주제를 뜻한다. 유니그램 혼합 모형과 마찬가지로 문서의 혼합된 주제나 단어가 반영하는 주제나 모두 관찰되지 않기는 마찬가지이므로 이것들도 전부 중첩되어 있다. 독자들의 혼란을 막기 위해 자세한 설명은 생략한다.
아래 그림은 AP 말뭉치(corpus: 전산언어학 연구를 위해 실제 사용되는 말과 글을 대량으로 수집한 데이터베이스)에서 뽑아낸 한 문단을 LDA모형으로 분석한 것이다. 빨간색은 '예술', 초록색은 '예산', 파란색은 '아동', 자주색은 '교육'이라는 주제를 반영할 확률이 가장 높은 단어들이다.
잘보면 '오페라(opera)'나 '음악(music)' 같은 단어들은 '예술'을 반영할 확률이 가장 높고, '재단(foundation)'이나 '이사회(board)'는 예산, '젊은(young)'이나 '기회(opportunity)'는 아동, '학교(school)'이나 '가르치다(taught)'는 교육을 반영할 확률이 가장 높다고 분석된 것을 알 수 있다. 이것은 LDA 모형이 이 단어가 실제로 무슨 뜻인지도 전혀 모른채 오로지 통계적으로만 분석한 것이다.
LDA 모형의 재밌는 점은 동음이의어도 문맥에 따라 어떤 주제에 속하는지 지능적으로 분류한다는 것이다. 예를 들어 '은행'이라는 단어는 금융기관을 뜻하기도 하고, 나무 열매를 뜻하기도 한다. 글에 따라 LDA모형은 '은행'이라는 단어가 금융기관을 말하는 건지 나무 열매를 말하는 건지 자동적으로 분류할 수 있다.
완벽하진 않지만 텍스트의 주제를 통계적으로 처리할 수 있기 때문에 LDA 모형을 이용하면 재미있는 실험들을 할 수 있다. 그리피스와 스타이버는 PNAS라는 과학 잡지에 실린 논문 28,154편의 초록을 LDA 모형으로 분석해서 시간의 흐름에 따라 뜨는 주제와 가라앉는 주제를 찾아냈다.
그림 하단은 각 주제의 번호와 그 주제에서 특징적인 단어의 목록이다. 그림 상단의 그래프는 이 주제들의 논문들에서 차지하는 비중의 시간에 따른 변화를 나타낸 것이다. 대부분 생물학과 관련된 주제라서 뭔지는 정확히 모르겠는데 가라앉는 주제들 중에 37번 주제는 클로닝, 289는 분자생물학의 주제 중에 하나, 75번은 면역학의 주제 중에 하나인 것 같다. 그리고 뜨고 있는 주제 중에 2번은 지구 온난화, 134번은 유전자 녹아웃, 179번은 세포 사멸에 관한 것 같다.
나도 똑같은 기법을 이용해 이글루스 뉴스밸리의 글들을 LDA 모형으로 분석한 적이 있는데 그 결과는
이글루스 5월의 떡밥들에 정리되어 있다. 관련 대목만 다시 가져와보면 아래와 같다.
5월동안 이글루스 뉴스밸리에서 논의의 흐름을 위의 그래프만으로 정리해보자. 뉴스밸리는 5월초 주제49(경찰, 시위..)에 대한 이야기로 뜨거웠고 5월 중순에 들어서면서 주제26(북한, 미국..), 주제38(시장, 대우..), 주제44(황우석, 돼지..), 주제40(덕후위원회..), 주제17(서울, 한국, 전교조..) 등이 수면 위로 떠올랐다. 그리고 하순에는 주제8,9(교육, 감사, 한예종..), 주제34(집회, 노동..), 주제50(사건, 헌법..)에 대해 이야기가 쏟아져 나왔다. 그리고 23일. 노무현 전 대통령 서거로 애도의 글들이 쏟아져 나왔고(주제 4, 7, 19, 20, 32) 며칠 지나자 서거 당시 상황에 대한 의혹을 두고 여러 가지 글들이 올라왔다(주제 41, 48).
이런 방법론을 인문학이나 사회과학에서도 활용할 수 있을 것이다. 인문학이나 사회과학에서 텍스트를 분석하는 것은 대체로 질적 방법론에 속하는데, 사람마다 해석이 다른 건 둘째치고라도 방대한 문헌에서 나타나는 경향성을 일일이 사람이 살펴보는 것 자체가 상당한 노가다다.
그런데 LDA 모형 같은 것을 이용하면 조선왕조실록에 어떤 주제들이 있고, 시대에 따라 실록에 나타나는 기록의 주제들이 어떻게 변화하는지 살펴볼 수도 있겠고, 어떤 사건이 벌어졌을 때 언론사마다 다른 보도의 초점이나 시간에 따라 보도 방식의 변화같은 것을 알아볼 수도 있을 것이다. 이런 정량적 방법을 기존의 질적 방법론과 결합한다면 상당히 재미있는 연구가 여럿 가능할 것 같기도 하다.
(계속)