About KWord

한국어 단어에 대한 빈도수를 알려주는 사이트를 기획한 것은 2015년부터였습니다.

구글의 Ngram Viewer(https://books.google.com/ngrams/)를 처음 접하고 나서, 우리나라 단어는 지원되지 않는 것을 보고 만들기로 마음먹었습니다.

그런데, 문제는 데이터를 확보하는 것이었습니다.

구글은 돈이 있으니 전 세계의 책을 스캔하는 것도 가능한 일이었으나, 일개 개인이 우리나라의 책을 모두 스캔할 수는 없으니까요.

구글의 Ngram Viewer가 지원하는 언어는 [English, Chinese, French, German, Hebrew, Italian, Russian, Spanish]로 총 8개입니다.
안타깝게도 한글은 지원하지 않습니다.

Ngram Viewer를 가지고 여러 가지로 활용할 수 있습니다. 시기별로 그 시대의 사회상을 엿볼 수 있는 매우 유용한 도구라고 생각됩니다.
    

Ngram Viewer로 어떤 것을 알 수 있는지는 아래 자료에서 확인할 수 있습니다.


그런데, 생각해 보니 데이터를 책에서만 뽑을 필요는 없다는 생각이 들었습니다. 이미 디지털화되어 있고 접근이 가능한 '신문 기사'가 있었습니다.

그래서, 웹 사이트에서 접근 가능한 신문 기사들을 분석해서 단어들을 파싱하고, 이 단어를 세서 보여주는 프로그램을 만들었습니다. C#으로 만들고 데이터베이스는 PostgreSQL을 사용해서 만들었습니다.

이렇게 만들고 몇몇 지인에게만 이 프로그램을 소개한 후, 그다음에 데이터를 더 추가하지도 않고 유지보수도 하지 않게 되면서, 이 프로그램에 대해서는 잊어버리고 있었습니다. 직장에 매인 몸이라서 바쁜 날들의 연속이었습니다.

그러다, 2024년이 되면서, 오랜만에 마음에 드는 언어인 Rust를 접하게 되면서, 그동안 만들고 싶었던 프로그램들을 생각하던 중, 아직도 우리나라에 구글의 Ngram Viewer와 같은 서비스가 없다는 것을 알게 되었습니다.

왜 아직도 없을까요? 인문학적이나 사회학적으로 유용한 도구일 텐데 말이죠.

제가 못 찾은 것일 수도 있습니다.

여튼, 이 Ngram Viewer 같은 서비스를 하는 웹 사이트를 만들기로 마음먹었습니다. 예전에는 로컬에서 프로그램으로만 돌아가서 많은 이들이 사용할 수 없었는데, 웹 사이트로 만들면 누구나 사용할 수 있을 것이니 좋겠지요.

대략 아래와 같은 구조로 만들기로 했습니다.

처음에는 명사와 대명사만을 Okt를 이용해서 추출했으나, '엄청' '대박' 같은 부사나 감탄사의 사용 추이를 보는 것도 재미있을 것 같고, 무엇보다 '한글운동'과 같은 복합명사에 대해서도 빈도율을 뽑아내기 위해서, 대상되는 토큰의 범위를 넓게 했습니다.

이를 위해 형태소 분석기를 Kiwi를 사용했고, Kiwi에는 복합 명사를 추출하는 기능이 기본으로 제공되지 않아서 약간의 트릭을 사용해서 추출했습니다.

또한, 단어의 범위를 넓히기 위해서 영어 알파벳이 들어간 단어도 포함했습니다. 즉, 'LG', '삼성SDS', 'SK' 등등도 검색됩니다.


시간 간격도 처음에는 월 단위 빈도율 집계만을 생각했으나, 일(Day) 단위의 빈도율을 보는 것도 괜찮을 듯해서 넣었습니다.

일 단위 검색은 2023.1.1일부터의 데이터만 가능합니다.

또한, 일 단위 검색을 한 후, 그래프에서 해당 일의 포인트를 더블클릭하면, 해당 단어가 나온 기사들이 어떤 게 있는지 리스트로 보여주는 기능도 추가했습니다.

기술적인 구조는,

이렇게 해서, 휴가, 설 연휴, 토요일/일요일 등 제가 가용한 짜투리 시간을 모두 활용해서 장장 5개월 만에 사이트를 첫 오픈하게 되었습니다.

* 사이트 오픈: 2025년 4월 1일

사용할 때 유의사항

빈도수 결과에 대한 주의 사항

사이트 이용 방법

검색할 단어는 최대 16개까지 입력할 수 있습니다. 단어는 콤마(,)로 구분합니다.


복합명사를 지원합니다.
기간을 지정해서 검색할 수 있습니다
  • 검색할 기간은 월 단위이고, 시작(YYYYMM)과 종료(YYYYMM)로 지정합니다.
  • 시작과 종료는 199701 ~ 현재까지 가능합니다.
  • 시작과 종료는 반드시 YYYYMM 형식으로 입력해야 합니다. 즉, 2024년 1월은 202401로 입력해야 합니다.
  • 시작과 종료는 반드시 시작이 종료보다 작아야 합니다. 즉, 202401 ~ 202402는 가능하지만, 202402 ~ 202401은 불가능합니다.
  • 기간은 직접 입력할 수도 있고, 박스에 있는 위/아래 버튼을 눌러 기간을 조정할 수 있습니다.
  • 기간을 지정하지 않으면, 기본적으로 199701 ~ 현재까지의 기간으로 검색합니다.
  • 기간을 조정하면 그래프의 기간이 다이나믹하게 자동 조정됩니다.

  • 검색 결과는 그래프로 보여줍니다.
  • 그래프는 x축은 시간(년/월), y축은 빈도율(ppm)입니다.
  • 그래프는 단어별로 다른 색으로 구분됩니다.
  • 그래프의 범위는 자동으로 조정됩니다. 즉, 검색한 단어에 따라 그래프의 범위가 달라집니다.
  • 시작과 종료월을 조정하면, 그래프의 범위가 다이나믹하게 자동 조정됩니다.
  • 라인 위에 있는 점에 마우스를 가져가면, 해당 위치에서의 빈도율 값이 보입니다.
  • 빈도율의 단위는 백만 퍼센트입니다.

  • Raw Data 보기
    만약, 그래프에 그려지는 Raw 데이터가 필요하면, 화면의 오른편 위쪽에 있는 메뉴 버튼 를 클릭하고, 'Raw Data'를 클릭하면 됩니다.
    그러면, 새 탭 페이지에 JSON 형태로 된 데이터가 보일 것입니다.

    질문 혹은 하실 말씀이 있으면,

    p14jeffwest@gmail.com로 해주시면됩니다.