Google日本語入力がやっているデータ収集方法まとめ

Web上の膨大な情報を使ってかな漢字変換を行なうGoogle日本語入力(のベータ版)がリリースされた. Web上の膨大な情報を機械的に取り扱うのはGoogleお家芸だけれど, それだけでは変換された後の文字列しか用意できない. どうやって変換前の文字列を集めるのか, それをどうやって変換後の文字列と結びつけるのかという点については疑問が残る.

この点に関して, 以下のような指摘がある.

どこから集めたのか考えてみたんですが、たぶん(たぶん、ですよ。あくまで私の憶測・邪推ね)、Google サジェストを提供する中で、ユーザーがかな漢字変換をしている途中の読みデータと、かな漢字変換を確定した後の漢字データを集めてきたのではないかと思います。

ぶっこ抜き? [Google日本語入力の功罪]

Googleサジェストが変換途中の文字列からも候補を提示できるようにするために, 毎秒100回入力エリアのテキストを読み取っているというのは http://d.hatena.ne.jp/tkng/20090930/1254273378 でも指摘されている. この毎秒100回というのは, 現実的に考えて単に候補を表示するための方法としてはいくらなんでも多すぎる.

もしもこれが実は, 文字を入力し終わって変換キーを押す直前の文字列, つまり漢字に変わる直前の, その漢字の読み全体を取得するためだとしたら, 納得がいく.

実際に検証用ページを作って試してみた:
http://test.orezdnu.org/js/input/

入力エリアに文字を打って普通に変換すると, 文字列に変更があったかどうかを毎秒100回確認して, 変更があった場合に記録していく様子を確認できる. 何度か試してみたけれど, 0.01秒以内に複数のキーを押すのは非常に難しく, 入力途中の状態がほぼすべて記録される. 当然, 漢字になる直前の状態も記録される.

わざと毎秒5回に遅くしたもの(2列目)では, あまり早く入力すると途中の状態を取り逃がす様子を確認できる.