텍스트 마이닝 삽질기
이번에도 삽질의 역사에 관한 기록이다.
데이터 분석과 관련해서 나는 주로 '시각화'에 관심이 많은 편이었는데, 일반적으로 사람들이 '데이터 저널리즘'이라고 하면 먼저 떠오르는 이미지도 워드 클라우드, 즉 단어구름이 아닐까 싶다.
나 역시도 텍스트 마이닝의 시작은 가장 간단한 '단어 숫자 세기'로 시작했는데, 그 결과물 중 하나가 스승의 날을 기념해서 했던 서울 시내 교훈 분석이었다. 사실 어떻게 보면 결과물이 뻔할 수도 있는데, 기사가 나간 뒤 나름대로 재미있다는 평가들이 많았다. 서울 시내 고등학교가 300여 곳밖에 되지 않는 데다 교훈이 엄청나게 길지도 않으니 엑셀과 프리웨어인 '말셈 41' 형태소 분석기 정도로도 할 수 있는 작업이었다.
워드 클라우드를 조금 더 괜찮게 그리려면 'R'이라는 도구를 쓸 수 있다는 걸 이때 알게 되었다. 그래서 R을 배워야겠구나 생각한 것도 이때 즈음이었다. (물론 본격적으로 실행에 옮기기까지는 오랜 시간이 걸렸다...)
언어, 즉 '말'을 데이터로 분석한다는 건 항상 흥미롭다. 정치인을 비롯한 사회 주요 인사들의 '말'을 기록하고 다루는 것이 기자라는 직업의 할 일 중의 하나이기 때문일 수도 있다. 반기문 당시 유엔 사무총장이 지난해 한국을 방문했을 때, 반 총장의 당시 말들을 분석했던 아이템도 기억에 남는다. 사실 유엔 사무총장이라는 자리가 국내에서는 어떤 정치적인 해석의 여지를 둘 수 있는 행위자가 아닐 수도 있지만 당시 반 총장은 차기 대선 후보군에 속해 있었고, 누가 보더라도 정치적인 행보를 하고 있었다. 이런 해석들이 실린 여러 기사가 나오자 반 총장은 '기자들이 과잉 해석했다'라고 반발했는데, 과연 그랬을까?
왼쪽과 오른쪽을 비교하면, 반 총장이 지난해 방한했을 때 유엔 사무총장 자격으로 직무에 관한 말을 하기보다는 자신에 관한 이야기를 가장 많이 했다는 걸 알 수 있다.
이후 R에 관한 책을 한 권 참고하고, 텍스트 분석을 조금 더 자세히 하고 싶어서 '마인드스케일'이라는 곳의 온라인 강의를 들었다. (책과 강의에 대한 소개는 더 자세히 할 계획이다)
그리고 올해 보궐선거로 진행된 대통령 선거방송 준비단에서 근무하게 되면서, 훨씬 많은 양의 텍스트 데이터를 분석하게 되었다. 오랜 시간 '트위터 잉여'로 살아오면서 비록 트위터가 통계적으로 완벽한 표본이라고는 전혀 말할 수 없지만 트위터에서 화제가 되는 주제, 특히 정치적인 주제들은 반드시 어떤 의미로건 '찻잔 밖의 바람'이 된다는 걸 여러 차례 체험했었다. 선거 당일에 나갈 아이템 중 두 꼭지를 트위터와 포털 기사, 그리고 댓글 분석 아이템으로 잡아 제작하기로 목표를 세웠다. (포털과 포털 댓글 분석은 전문 업체인 '오픈 한글'에서 도와주셨다. 이 자리를 빌려 감사드린다.)
단순히 단어의 빈도수를 따져서 워드 클라우드를 만드는 이상을 하고 싶어서 열심히 온라인 강의를 들으며 노력했지만 결과적으로 내가 만든 결과물은 그다지 신통치는 않았다. 그나마 어떤 단어와 단어가 함께 많이 등장했는지 '동시 출현 빈도' 정도를 분석한 게 다행이었다.
'토픽 클러스터링'과 'LDA', 그리고 '딥러닝' 방법으로도 분석했지만, 결과를 놓고도 내가 풀어서 설명할 수가 없어서 기사로 쓸 수가 없었다. 한마디로 해석이 안 되는 상황이었다. 단순히 R에서 패키지를 돌린다고 해결되는 게 아니라, 어느 정도는 이해를 해야만 된다는 걸 깨달았다. (그리고 이 '어느 정도의 이해' 때문에 지금 수학 포기자인 내가 미치고 팔짝 뛰는 상황이 반복되고 있다...)
당시 트위터 분석 건수는 한 달치 160만 건 정도가 되었는데, 분량이 많은 건 둘째치고 정말 온갖 잡다한 스팸이 들어가 있어서 분석 이전에 데이터 정제를 하느라고 죽어날 지경이었다. ( 텍스트와 같은 '비정형 데이터'의 대표적인 특징이다) 노가다로 죽어라 정제를 하고 나서야 간신히 R에다 때려 넣고 돌릴 수 있는 수준이 되었다. 물론 내가 코딩을 할 줄 알았더라면 더 쉽게 할 수 있는 부분도 있었을 거다. (지금 와보니 그렇다. 머리가 나쁘면 손발이 고생하는 법....)
어쨌거나 이때의 경험은 이후에 텍스트 마이닝 수업을 들으면서도 큰 도움이 되었다. 삽질은 어떻겐가 그래도 보답을 해 주기는 한다. (?)