「Zipf則はなぜ成り立つのかの理論的裏付け」の続き。おもしろいことになってきました。
FSNLPに書いてあった「ランダムにアルファベット+空白を生成、それを空白区切りの「単語」の列と考えると、それらの単語の頻度分布が Zipf に従う」を試したところ、アルファベットの生成率に実際の分布を用いると確かにベキ分布になったよ、というのが前回確かめたこと。
では、その性質は文字の分布によるのか、というあたりは気になっていて、光成さんにも同じ事を指摘されたので、他の分布でも確かめてみた。
用意したのは以下の4つの分布。
- 実際の使用頻度分布
- 一様分布(分布図が横一直線)。
- 等差な多項分布(分布図が斜め直線)
- ベキ分布(Zipf)
ただし、一様分布では空白の生成確率を少し上げて 0.2 に、残りの文字の確率を 0.8/26 にしている。そうしないと単語の長さが長くなりすぎて、他の分布の場合との比較がやりにくかったため。
また、等差とベキでは空白の生成率が一番が高くなるようにしている(実際のアルファベットの分布と同様)。
コードはこちら。
実行結果を両対数グラフにするとこうなる。
黒が実際の分布を元にしたもの、青が一様分布、緑が等差な多項分布、そして赤がベキ分布だ。
赤はほぼ一直線、最も Zipf 則に従っていることがわかるだろう。
ちなみに、アルファベットの分布と、残りの3つの分布それぞれとの KL ダイバージェンスを計算するとこうなる。
KL( original || 一様 ) = 0.300
KL( original || 等差 ) = 0.125
KL( original || ベキ ) = 0.076
つまりアルファベットの分布はベキ分布に近かったわけだ。
整理すると、文字の生成確率がベキ分布に近いとき、ランダム単語の分布がベキ分布に従う。
これはがんばれば証明できそうな雰囲気。
そして、残る問題は「そもそも、アルファベットの分布はどうしてベキ分布に従うのか」。
これは Least Effort とかで説明できることにしちゃうのか? って、Least effort がどういうことなのか多分まだ理解できてないんだけど。
シャノンは英単語が Zipf 則に従うことからアルファベットのエントロピーを計算してたけど、単語が Zipf 則に従うのがアルファベットが Zipf 則に従うから、だとしたらなんかトートロジーめいてくるような。
なんかおもしろくなってきたでしょう? 誰か論文書いてくれません? あるいはこういうことが書いてある論文すでにある? Zipf の原論文嫁?
【追記】
コメント欄にて n-yo さんに教えていただいた論文 "The distribution of n-grams" [Egghe 2000] を斜め読みしてみた。
ありがとうございます!
symbols (各言語の文字) がベキ分布に従うとき、N-grams もベキ分布に従うことが示されている。ちなみに、アルファベット、ギリシャ文字、中国語の文字についてはベキ分布に従っており、その他の言語についても同様だろうと推測づけられている。
また、「任意の長さの単語を取り扱う定理は今後の課題」とのことなので、まだチャンスは残っているかもしれないw。
【/追記】