왜 소수의 단어만 자주 쓰일까
"the", "of", "and" 같은 소수의 단어가 글의 상당 부분을 차지하고, 대부분의 단어는 거의 나오지 않습니다. 이 쏠림을 단어의 뜻이 아니라 "이미 쓴 글에서 베껴 쓰는 습관"만으로 만들 수 있을까요?
모델은 이렇게 움직입니다
- 글을 한 단어씩 이어 씁니다. 매번 작은 확률(새 단어 확률)로 지금까지 없던 새 단어를 만들고, 아니면 이미 나온 단어를 다시 씁니다. 단어는 의미 없는 가짜 단어(
kia,marthiro등)입니다. - 복사 모드: 지금까지 쓴 글에서 무작위 위치의 단어를 그대로 베낍니다. 많이 쓴 단어는 글에 많이 흩어져 있으니 더 자주 베껴집니다(부익부).
- 균등 선택 모드(대조군): 지금까지 나온 서로 다른 단어 중 하나를 똑같은 확률로 고릅니다. 얼마나 자주 썼는지는 상관없습니다.
- 결과는 "순위-빈도" 그래프로 봅니다. 가장 자주 쓰인 단어를 1위로 세워 순위를 가로, 쓰인 횟수를 세로로 놓고 로그 눈금으로 그리면, 지프의 법칙은 기울기 -1 근처의 직선이 됩니다.
직접 돌려보기
① 글이 쓰이는 모습
방금 쓴 단어들이 흘러갑니다. 파란 배경은 이번에 처음 만든 새 단어이고, 진한 글자는 지금까지 가장 자주 쓰인 상위 10개 단어예요.
② 순위와 쓰인 횟수 (로그-로그)
점 하나가 단어 하나입니다. 금색 점선은 기울기 -1(지프의 법칙)을 순위 3의 점에 맞춰 그린 것이고, 붉은 선은 순위 3~200 구간에서 구한 실제 기울기예요. 두 선이 나란하고 점이 선 위에 모여 있으면 지프의 법칙에 가깝습니다. 1위 단어는 맨 처음 생겨 가장 오래 베껴진 탓에 선보다 훨씬 위에 따로 떨어져 있어요(그래서 기울기는 3위부터 잽니다).
③ 가장 자주 쓰인 20개 단어
막대 길이는 쓰인 횟수이고, 오른쪽 숫자는 글 전체에서 차지하는 비율입니다. 1위와 20위의 차이가 얼마나 큰지 보세요.
④ 새 단어 확률을 바꾸면
가로는 새 단어 확률, 세로는 순위-빈도 기울기의 크기(절댓값)입니다. 파란 점과 선은 복사 모드, 회색은 균등 선택이고 점은 서로 다른 글 4편의 결과예요.
이 결과가 말하는 것, 말하지 않는 것
말하는 것:
- 이미 쓴 말을 더 베끼면 소수의 단어가 글을 거의 다 채우고, 모든 단어를 똑같이 고르면 그런 쏠림이 훨씬 약해요. 순위-빈도 기울기가 베끼기는 1 근처, 균등 선택은 0.18~0.47이었어요.
- 자주 쓴 단어는 글 곳곳에 흩어져 베껴질 기회가 많고 그러면 더 늘어요. 새 단어 확률 3%에선 상위 10개 단어가 글의 약 85%를 차지했어요.
- 그렇다면 쏠린 분포는 어떻게 보면 될까요? 먼저 '많이 쓴 게 더 많이 쓰이는' 되먹임이 있는지 보면 돼요. 이 모델에선 그 되먹임이 있을 때 상위 10개 단어가 글의 85%, 모두 똑같이 고를 땐 2%였어요.
상세 설명
말하는 것: 새 단어가 가끔만 생기고 나머지는 "이미 쓴 글에서 베끼기"만 해도, 소수의 단어가 글의 대부분을 차지하고 순위-빈도 그래프가 로그-로그에서 기울기 약 -1의 직선이 됩니다. 새 단어 확률이 같아도 모든 단어를 똑같은 확률로 고르면 이런 쏠림이 거의 없어요. 단어의 뜻이나 문법 없이도 "자주 쓰인 것이 더 자주 쓰인다"는 규칙 하나가 지프의 법칙 모양을 만들 수 있습니다.
말하지 않는 것:
- '부익부 베끼기로 쏠림이 생긴다'는 이 모델이 보여 준 쪽이에요. 실제 언어가 이렇게 만들어진다는 건 보여 준 게 아니에요. 같은 모양을 만드는 설명이 여러 가지예요.
- 이 모델은 1위 단어 하나가 글의 약 77%를 차지해, 실제 언어(영어 'the'는 약 6%)보다 훨씬 쏠려요. 문법과 의미도 없어요.
- 실제 글에서 단어가 늘어나는 과정을 관찰하고 다른 설명이 만드는 모양과 견주어 봐야 어느 쪽인지 알 수 있어요.
상세 설명
말하지 않는 것: 실제 언어가 이렇게 만들어진다는 뜻이 아닙니다. 실제 언어도 지프의 법칙을 근사적으로만 따르고, 같은 모양을 만드는 설명은 여러 가지입니다(예: 말하는 노력을 줄이려는 원리, 무작위로 글자를 쳐도 비슷한 분포가 나온다는 연구). 이 실험은 "부익부 규칙 하나로도 같은 모양이 나올 수 있다"는 것만 보여줍니다. 가짜 단어는 아무 뜻이 없고, 문법과 의미는 모델에 없습니다.
이론적 근거와 구현 메모
- 모델의 뿌리: Zipf (1949), 『Human Behavior and the Principle of Least Effort』(Addison-Wesley)가 단어 빈도가 순위에 반비례하는 규칙성을 알렸고, Simon (1955), "On a class of skew distribution functions", Biometrika는 "새 것은 가끔 생기고 나머지는 기존 것을 빈도에 비례해 따라 한다"는 모델로 같은 모양이 나옴을 보였습니다(Yule 과정과 같은 계열).
- 핵심 가정과 수식: 새 단어가 확률 α로 생기고, 아니면 이미 쓴 글의 무작위 위치를 베끼니 단어를 고를 확률이 그 단어의 빈도에 비례합니다(부익부). 이 모델의 순위-빈도 곡선은
빈도 ∝ 순위−(1−α)이고, α가 작으면 기울기는 −1에 가깝습니다. 슬라이더 "새 단어 확률"이 α입니다. - 이 프로젝트의 단순화: 단어는 뜻 없는 가짜 단어이고 문법·의미·주제는 없으며, 새 단어 확률 α도 글 내내 일정하다고 둔 것은 이 프로젝트의 단순화입니다. 논문의 그림이나 수치를 재현한 것은 아닙니다. 또 실제 언어가 지프의 법칙을 따르게 되는 원인은 여러 설명이 맞서 있어, 이 모델은 "이런 규칙으로 가능하다"는 것만 보여 줍니다.
- 이론값과 시뮬레이션: 이론 기울기 1−α와 실측(순위 3~200, 10만 단어, 6편 평균)을 비교하면 α = 3%에서 0.97 대 1.01, 5%에서 0.95 대 0.99, 10%에서 0.90 대 0.97이었고, α = 0.5%에서는 0.995 대 1.12로 가장 크게 벌어졌습니다. 가까우나 정확히 같지는 않으며 적합 구간과 글 길이에 따라 값이 달라집니다. 균등 선택(대조)은 기울기 0.18~0.47로 훨씬 완만했습니다.
- 더 읽을거리: Simon (1955), "On a class of skew distribution functions", Biometrika. Newman (2005), "Power laws, Pareto distributions and Zipf’s law", Contemporary Physics. Piantadosi (2014), "Zipf’s word frequency law in natural language: A critical review and future directions", Psychonomic Bulletin & Review.
- 글은 최대 10만 단어이고, 기울기는 순위 3~200 구간에서 로그-로그 최소제곱으로 구했습니다. 기본 설정(새 단어 3%)에서 10만 단어를 쓰면 어휘는 약 3,000개이고 상위 10개 단어가 글의 약 85%, 상위 100개가 약 91%를 차지했습니다(6편 평균). 그중 대부분은 맨 처음 생긴 1위 단어 하나(약 77%)인데, 사이먼 모델에서 가장 먼저 생긴 단어가 오래 베껴지며 생기는 현상이고 실제 언어(영어 "the"는 약 6%)보다 훨씬 큽니다.
- 복사 모드의 기울기는 새 단어 확률 0.5~10%에서 크기 0.97~1.12로 -1 근처였고(6편 평균), 균등 선택은 0.18~0.47로 훨씬 완만했습니다. 같은 복사 모드라도 적합 구간이나 글 길이에 따라 값이 조금 달라집니다(순위 1~50은 1.26, 5천 단어 글은 1.09, 10만 단어 글은 1.01).
- ④번 그래프는 새 단어 확률마다 10만 단어 글을 4편씩 만든 결과입니다. 검증은
node tools/validate-zipf.js로 할 수 있습니다.