brunch

You can make anything
by writing

C.S.Lewis

by cojette Mar 03. 2016

데이터로 살펴보는 SF 영화 속 로봇 (3)

키워드로 만들어보는 로봇 족보

1편2편에 걸쳐 SF(혹은 Sci-Fi) 영화 속에 나오는 로봇들에 대해서 살펴보기로 했다는 말을 길게 풀고, 실제로 로봇들이 등장하는 추이까지도 같이 서툴게나마 살펴보았다. 사실 저기까지 하는 데에 시간이 많이 소비되기는 했지만(그래서 말도 길었다) 저기서 끝을 내면 웬지 나도 억울하고 글을 보시는 분들도 허무할 것 같으니, 되도 않는 이야기를 더 짜내 보도록 하자. (그리고 다 읽으신 분들은 더 허무하다며 돌을 던질지도...)


자동 분류

이른바 '빅데이터를 이용한 무엇..'.이라고 언론에서 나오는 것들의 상당수의 말단은 데이터 분석에서 나온다. 흔히 '고급 분석'이라는 어색하기 그지 없는 단어로도 사용되는 이 단어는, 데이터를 활용한 요약, 자동화(분류, 추천), 예측 등에 사용된다.


그래서 데이터를 사용하는 김에, 나도 여기서 '자동 분류'를 한 번 해보고 이 것이 과연 얼마나 잘 되는 지에 대한 인사이트를 얻을 수 있지 않을까 시도를 해 보기로 했다. 사실 이 걸 처음 시작하게 된 것도 로봇을 자동으로 분류할 수 없을까, 그 많은 로봇들을 하나하나 찾아내서 족보를 그릴 수는 없는지라, 어떻게 자동으로 족보가 나오게 할 수는 없을까 하는 것이었으니 말이다.


여기서 내가 분류에 사용할 수 있는 데이터는, 1장에서 말했던 로봇에 대한 설명 데이터 뿐이다. 그래서 이를 위해 흔히 '텍스트 마이닝'이란 데에서 많이 사용하는, 각각의 텍스트를 읽고 단어를 쪼개는 작업을 수행했다.


그럼 이 단어로 무엇을 할 수 있을까?








키워드로 살펴보는 로봇


키워드별 구분


어떤 정답이 있지 않을 때 할 수 있는 건 기본 통계의 대표값을 이용한 분석과 unsupervised learning 부류가 있다. 우선 간단히 어떤 단어들이 주로 사용되는 지를 확인해 보자.


늘 그렇듯, 아무리 쓸데없는 단어(예: / , 's 등 ) 필터링을 해도, 텍스트 마이닝은 기본적으로 끝없는 데이터 클렌징과의 싸움이다. 특히 '세상의 대부분의 데이터는 깔끔하지 않다'는 명제에 많은 기여를 하는 데이터 중 하나가 텍스트 데이터 아니던가.


지금도 몇 번의 수정에 수정을 거쳐서 필터링을 했지만, 이 단어들까지 손대기는 애매하다. 분명 멀쩡한 단어지만 로봇 분류에는 아무런 도움이 되지 않는 'film'같은 단어가 1위로 사용되지 않는가.


그래도 여기서 주요 키워드를 뽑아낸 후 (아마도 상당수가 겹치지 싶지만) 그 분류대로 로봇을 뽑아본 후 연대순으로 나열해 보면 어떨까 하는 생각이 들었다.

결과는 다음과 같다.

전반적인 추이는 전체 추이와 유사한 것을 볼 수 있다.


이를 표로 확인해 보면 다음과 같다. (이 표에는 로봇의 이름을 사용했다.)

(left join으로 사용하다보니 중복값이 좀 있고, 단어 포함된 것으로 뽑다보니 여러 항목에 들어가는 경우도 발생한다.)


이런 식으로 생긴 것도 대충 분류할 수 있지 않을까? 그림을 직접 추리지는 못한다고 하더라도 생김새에 대한 묘사가 최소한으로 들어갔다고 생각하면 흔히 생각할 수 있는 유형은 크기 및 voice, humanoid(인간형 로봇, 안드로이드와 유사하게 사용됨) ,  metal 등의 항목도 있을 것이다. 그래서 이를 기준으로 위와 유사하게 만들었다.


그 결과는 다음과 같다.


Prince Planet의 Dynamo Dan

이렇게 분류된 내용을 바탕으로 연대별로 로봇의 형태별 조상(?)을 찾을 수도 있을 것이다. 물론 아주 정확한 것은 아니나 (예: 헤비메탈을 듣는 로봇 -> 강철 로봇으로 분류되는 등...) 일일이 수작업으로 분류해서 로봇의 족보를 그리기에는 이 모든 영화를 다 보고 내용을 다 기억하는 사람들이 얼마나 되겠는가. 어느 정도의 오차를 감안하고 보면서 '박사가 만든 로봇이 나오는 영화 류에는  'Dynamo Dan'이 조상이구나.' 하고 생각해 볼 수 있겠다.



이런 식으로, 간단하게 분류를 해서 로봇의 족보(?) 정리 작업을 할 수 있다. 나름 쉽고도 재밌는 일 아닌가.

다음 장에서는 이를 좀 더 고난이도(?)로 분류해 보고 마무리를 할 예정이다. IPython notebook은 github을 통해 마지막 장에서 같이 공유할 예정이다. (코드는 다 짜놓고 글쓰기 싫어서 계속 미적미적... )


(다음 4장에서 계속됩니다.)

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari