이 글에서는 이 번에 제가 오픈한 사이트를 소개합니다.
구글에서 만든 'Google Books Ngram Viewer'라는 웹 사이이트가 있다. 어떤 영단어를 치면 1800년부터 2022년까지의 빈도율을 보여준다.
빈도율은 전 세계에서 출판된 'English'로 된 책에서, 해당 단어가 얼마나 나왔는지에 대한 비율이다.
2014년인가 2015년 즈음에 들었던 '빅데이터 분석'이란 과목이 있었는데, 여기서 알게 된 사이트였다. 이 사이트가 만들어진 스토리는 대략 다음과 같다.
구글 창업자인 래리 페이지가 대학원 시절에, 도서관에 있는 책 들간의 링크를 고민하면서 만든 알고리즘이 페이지 랭크 알고리즘이고 이게 구글 검색 엔진의 시초였다. 이 당시 래리 페이지는 미국에 있는 도서관의 모든 책을 스캔하는 게 꿈이었든데, 구글을 창업하고 돈을 벌게되면서, 이 꿈을 이루고자 실제로 도서관에 있는 모든 책을 스캔하는 프로젝트를 진행했다.
이를 통해 구글은 막대한 디지털 자료를 확보하게되었는데, 막상 이 디지털화된 책을 사용하려니 '저작권'에 걸려 있는 게 많아서 책 내용을 가지고 서비스할 수 있는 게 별로 없었다. 이 때 하버드대의 젊은 연구원인 에이든과 미셀이 책에 있는 단어들에 대한 ngram을 보여주는 프로젝트를 구글에 제안했고, 이는 책 내용에 대한 저작권에 관계없이 서비스할 수 있는 것이여서 진행했다하고, 이 프로젝트의 결과물로 나온 것이 Google Books Ngram Viewer다.
Ngram Viewer로 활용할 수 있는 분야는 매우 많다.
Ngram Viewer로 알아볼 수 있는 재미있는 것들은 이 블로그에 잘 소개되어 있다.
미국이 언제 진정한 '연방 국가'로 되었는지를 알아내는 것은 유명한 사례다. "United States is"와 "United States are"를 비교해서, 단수형인 "United States is"란 것이 남북전쟁 이후인 1860년 부터 더 많이 쓰이기 시작한 것으로, 이 때부터 미국이 진정한 연방국가가 되었다고 추정하는 것이다.

안타깝게도 한글 단어로는 Ngram Viewer를 볼 수 없다. 구글에서 한글로 된 책은 스캔을 하지 않았기 때문이다. 물론 1900년 대 이전까지는 한글로 된 책이 그리 많지 않기에, 스캔을 안한 게 아니라 못했을 수도 있다.
여튼, 구글 Ngram Viewer에서는 한글로 된 단어에 대한 그래프를 볼 수 없다. 그리고, 아직 아무 곳에서도 한글 단어에 대한 빈도율을 보여주는 사이트가 없다.
한글 Ngram으로 검색을 해 보면, 2020년도에 '한국문집총간 엔그램 분석 프로그램 개발연구'라는 논문은 나온 게 있다. 한문으로 된 고전들에 대해 엔그램 분석을 해보자는 논문이다. 완성되지는 않았다고 한다. (필자도 한자로 된 우리나라 고전에 대해서 엔그램 분석이 되도록 해보고 싶은 생각이 있다. 몇 가지 급한 프로젝트 몇 개 끝내고 시작해볼까 하고 있다.)
한글형 Ngram Viewer를 만들기로 맘 먹었다. 2015년 얘기다.
그러나, 쉽지 않았다. 실제 사이트로 오픈해야 여러 사람이 쓸 수 있는데, 나는 데이터를 모으고, 분석하고, 데이터화 하는 것에는 자신이 있지만, 웹 기반 프로그램이 약하다. 사이트로 만들어서 서비스를 할 수 없었다.
그러다가, 요즘 다시 맘 먹었다. 이제는 진짜로 만들어 보기로. 2024년 12월 얘기다.
데이터는 책이 아니라 신문 기사로.
내가 책을 전부 스캔할 수도 없기에, 이미 디지털 데이터로 되어 있는 신문 기사를 이용하면 될 것이라는 아이디어다. 신문 기사는 1920년 정도부터 구할 수 있다. 어차피 우리나라 한글이 보편적으로 활자화되어 사용된 것은 1900년 이후다. 그 이전에도 훈민정음 창제 이후에 한글로 된 문헌들이 있다고는 들었는데, 이게 빈도율을 뽑아낼 정도의 분량이 될 지는 잘 모르겠다.
그렇다면, 신문 기사만으로도 그 당시의 시대상을 엿볼 수 있는 단어들을 뽑아낼 수 있는 훌륭한 소스일 것이다.
먼저 데이터를 모으는 게 가장 큰 난관이다. 누가 디지털화된 신문 기사를 떡하니 내게 주는 것도 아니니, 일일이 웹 사이트에서 찾아야 한다. 그리고, 웹 사이트에 있는 것은 HTML 태그들이 붙어져 있고, 해당 사이트에 다른 정보도 섞여 있어서, 순수하게 '기사만을 텍스트로' 뽑아내는 게 곤욕이다.
어쨓든 꾸역꾸역 프로그램을 짜고, 신문 기사에서 텍스트만 뽑아내고, 해당 텍스트에서 명사/대명사로 된 단어만을 뽑아내서 빈도율을 구했다.
1996년부터의 신문에서 나온 한글 단어에 대한 빈도율을 볼 수 있다.
기사 수 약 200만건, 단어(명사/대명사) 수 약30만개에 대한 데이터를 대상으로 그래프를 보여준다.
사용료 없고, 광고도 없다. 이 사이트를 유지하는 데는 연간 20만원 정도 들고, 나머지는 나의 노동 뿐이다. 건강하기만 하면 내 생전에는 계속 운영될 수 있을 것이다.

무려 5개월 정도 걸렸다.
데이터를 모으는데 시간이 걸리고, 빈도율을 보여주는 데 0.2초 정도의 응답시간이 되도록 하기 위해서 데이터 구조 설계를 하는 데 시간이 좀 걸렸다. 그리고, 내가 계속 자료를 모으고 빈도율 데이터를 생성하고 하는 것이 힘들기에(원래 유지보수가 더 힘들다.) 이것을 배치 작업으로 자동 수행되게 하였고 이렇게 하는 것에 좀 시간이 걸렸다.
만들고, 사이트를 오픈하고 나니, 뭔가 좀 뿌듯하다. 커다란 숙제를 끝낸 기분이다. 무려 10년간 생각만 했던 프로젝트를 마쳤다.