大規模日本語 n-gram データの公開
2007年11月1日木曜日
総単語数: 255,198,240,937 (2550億)
総文数: 20,036,793,177 (200億)
異なり 1-gram 数: 2,565,424
異なり 2-gram 数: 80,513,289
異なり 3-gram 数: 394,482,216
異なり 4-gram 数: 707,787,333
異なり 5-gram 数: 776,378,943
異なり 6-gram 数: 688,782,933
異なり 7-gram 数: 570,204,252
以下が 7-gram データの例です。7つの単語の並びのあとに、その並びの出現頻度が記録されています。
グーグル で 検索 し て い た 39
グーグル で 検索 し て い たら 143
グーグル で 検索 し て い て 45
グーグル で 検索 し て いる と 33
グーグル で 検索 し て おく べき 27
グーグル で 検索 し て ください 。 92
グーグル で 検索 し て こちら の 37
グーグル で 検索 し て しまい まし 24
グーグル で 検索 し て たら さぁ 50
グーグル で 検索 し て たら 見つけ 37
グーグル で 検索 し て で て 26
グーグル で 検索 し て み た 639
グーグル で 検索 し て み たら 450
そもそも、今回のデータ公開はある大学の先生との雑談をきっかけとして、工藤と賀沢が﹁20%ルール﹂を使っておこなった成果です。︵Google の﹁20%ルール﹂とは、勤務時間の20%を自分の好きなことに使ってよい、という社内ルールです。︶
実は英語に関しては Googleはn-gramデータを既に公開しています。今回の日本語n-gramデータは、英語データを作成したシステムに次のような日本語独自の処理を加えて構築しています。︵データの作成はGoogleの大規模分散処理システムMapReduceを用いて、数千台規模の計算機クラスタを使って行いました。︶
(一)文字の正規化 : 日本語には半角全角や特殊文字といった文字のバリエーションがあるため、Unicode NFKC に基づいた正規化を行いました。 (二)単語分割: 日本語は英語のようにスペースで単語が分割されていません。そこで、工藤が開発に携わっているオープンソースの形態素解析エンジンMeCabを使用して単語に分割しました。︵余談ですが、個人的に関わっているソフトウェアがWeb全体を解析するのに使われたのは、とてもエキサイティングな経験で、 エンジニア冥利に尽きます。︵工藤︶︶ データ自体はとてもシンプルなものですが、使い方次第で色々と面白いことができると思います。是非お試し下さい。
なお今回の言語資源協会を通じたデータ公開にあたっては、北陸先端科学技術大学院大学の白井清昭先生に多大な御尽力を頂きました。この場を借りて御礼申し上げます。
■変更履歴 n-gram の異なり数に誤りがございました。本文は修正済みです。 [2007/11/03 01:09]