Google IMEのAndroid対応は困難

| コメント(0) | トラックバック(0)
Google IME(MOZC)の開発者小松さんが、「MOZCのAndroid対応は困難」だと言っていました。
理由は2つ
(1)サイズ
MOZCのサイズ50M。50MのAndroidアプリを喜んで使ってくれる人がどれだけいるかが問題。
(2)機能
携帯ではMOZCにない予測変換などの携帯ならでは機能がある。
50Mのほとんどが辞書だそうですので、削るのは簡単ではなさそうです。
しかし、小松さんが「Android IMEには、どんな機能が欲しいですか?」と問いかけていましたので、Android版を作ることを真剣に検討中なのかもしれません。

以上は『Google 日本語入力 Tech Talk 2010』での話でした。
『Google 日本語入力 Tech Talk 2010』

IME開発者を増やすこと、MOZC開発者募集を目的として、Googleが開催した半日のセミナー+懇親会です。


MOZCのすごいところ


Tech Talkで mozcってすごいと思ったこと

(1)脱DLLで、独立したプロセスに機能分散をしている
mozcは、機能別に
 ・ IM DLL
 ・ レンダラー
 ・ コンバーター
に分解。さらに、処理ごとに別のプロセスで処理している。
  • 効果:クラッシュしても良いアプリになった
    従来のIMEは、全部の機能をDLLで表現していた。
    この構成だと、IMEがクラッシュするとIMEを利用しているアプリを道連れにして全体がクラッシュする。

    IM DLLは、ほとんど何もしていないので、ほぼクラッシュフリー
    IM DLLは
     ・ 入力を変換エンジンに送る
     ・ レンダラーからの指示に基づいて、描画する
    だけしか処理していない。ローマ字変換もDLL側ではしていない。
    候補ウィンドウなども別プロセスにするなどOSの制約上これ以上小さくできないところまで削っている。
    プレイバック機能もあり、レンダラーやコンバーターなどのプロセスは4秒に1回の割合でクラッシュしてもユーザーは気付かないレベルに到達。
    クラッシュしないIMEではなく、クラッシュしても問題無いIMEになっている。
    クラッシュしていアプリからクラッシュしても問題ないアプリにしようとういう発想の転換
  • 効果:バージョンアップの際にOS再起動が不要になった
    アプリに寄生するDLL型ではないので、IMEを利用する各種アプリをOSごと再起動しなくても、当該プロセスだけ再起動してやれば更新完了 
  • セキュリティが向上
    従来型のDLLでは、OSのログイン画面での日本語入力時は、DLLが特権モードで動作するのでハイリスク。
    DLL型を止めたので、特権モードで動作するリスクがミニマイズされた。
  • 辞書が壊れない
    IMEを使うアプリがクラッシュすると、IMEもクラッシュして辞書が壊れることは、従来型のIMEの課題。
    MOZCは独立プロセスになっているので、IME(MOZC)を使うアプリがクラッシュしても、MOZCはクラッシュしない。
(2)辞書をバイナリーに組み込んだ
辞書ファイルを別ファイルとせず、バイナリーに組み込んだ

  • 効果:バージョンアップ時に、辞書ファイルのフォーマットを自由に変えられる。
      外部辞書ファイルにすると、旧版の辞書ファイルとの後方互換性などが制約になるが、mozcではそれがない。
  • 効果:MOZOCでは、辞書が壊れていて変換時に誤動作/クラッシュすることが無い。
    •  バイナリーの一部なので辞書が壊れていると起動しない(使用中にクラッシュしない)。
      ファイルIOのエラーが起きない
(3)セキュリティを考慮してる
  • 特権モードで動かすものは削る

  • プロセス間はソケットでなくIPCを利用
    アプリレベルで通信相手の認証が必要なソケットより相手をPID, usernameで認証できるIPCが確実。下記のIPCを利用。
    Linux - Unix domain socket
    Windows - Named Pipe
    Mac - Mach IPC
  • ユーザーデータは暗号化
     特に、入力履歴ないどはPC毎に固有鍵で暗号化しているの他のPCに持っていっても使えない

(4)けっこう人手作業
  • 辞書の仕上げは人手で
    辞書は、
    • クローラーがネットから拾ってきた情報でクローラーでWEB INDEX作成し
    • WEB INDEからMECABを使って生成した形態素解析済みデータと、indexから生成したWeb辞書を使って辞書作成
    という手順で自動作成。
    しかし辞書の語彙が多いと精度が下がることがあるので、人手でチューニング。
    精度が下がるのは、候補に特殊な表現が増え、一般的な表現が出にくくなることが原因。
    例:「アイマス(アイドルマスター)」と「会います」
    そこで、一般的表現が上にくるようランキングをチューニング
    単漢字辞書だと、読みと漢字が、1対1対応してない
     例
     百舌鳥(どこがモで、どこがズ?)
      超電磁砲(レールガンのレはどこ?)
      強敵(トモ)
    これも人手で対応。
    あたり前の変換を間違えることのほうがNG。
    1000個の固有名詞が変換できても、「明日」が出てこないとユーザーは使わないので、絶対に変換できないといけないとまずい例をたくさん作っているそうです。
  • 顔文字辞書も人手
    現在500個強ありますが、1000個くらいまでなら人手対応できますと言ってました。と言ってました。


Googleでの開発

  • 開発者は自分の好きなOS(マシン)で開発している
  • ビルドは、GYP使用。数か月前まで、SConsを使っていた
  • 自由な発想で機能拡張している(遊びがいっぱい)
    • 電卓
        =で終わる文字列(1+2=など)を入力すると変換候補が計算結果になる
       
      (開発版の話で、安定版には実装されていません。以下同じ)
    • おみくじ
        http://code.google.com/p/mozc/source/browse/trunk/src/rewriter/fortune_rewriter_test.cc
    • 1の後にゼロを100個入力すると、Googol(10の100乗を表す単位。Googleの語源)に変換される
    • Googler手作りの顔文字辞書には、ネット用語対応の文字も満載
       わくてか  +(0゚・∀・) +  
       
      もららー  ( ・∀・)
       まんどくせ  ('A`)マンドクセ
       などなど   
    • 電卓やおみくじは、インターンの作品。インターでも自由な発想で機能拡張できる/させている。
    とはいえ開発は、「日本語入力は総合格格闘技」だそう。
    • 自然言語処理
    • 機械学習
    このへんまでは全体の数%に過ぎない
    • システムデザイン
    • データ構造 データベース
    • データ圧縮
    • テスト、
    • UI、評価
    などなどの仕事のほうが多い。


イベントの雰囲気

アルコールあり
会議室入口で、いきなりビールやカクテルを配ってました。
ソフトドリンクもあるけど、14:00のスタートからいきなりお酒です。
さすがグーグル。酒飲みながら話聞いてよって感じです。
懇親会も飲み放題。
たのしす。
ツイートで双方向
前方のスクリーンには、前の2つのスクリーンのが1つにTweet Search streamが流れていて、会場から、勝手にツイートしています。
質問もTwitterです。
Twitterで、#mozc検索  http://twitter.com/#search?q=%23mozc してみてください。
ツイートいっぱいで深いところに埋まってますので、
当日のツイートをツゲットしたhttp://togetter.com/li/62353を見てみてください。

例えば、
「質問:mozcの中に入っているテストコードはunit testのみですか? 」
というtwiterでの質問に
「ストレステストも入ってます」
っていう肉声で回答があったり、

「質問:stringの文字コードは? マルチバイト文字で困ったことは? 」というtwiterでの質問に
「直接ではないですが、濁点うはUNICODEにあるが S-JISにないとか、波ダッシュと全角チルド問題(同じ文字を現わしているのに、文字コードが異なる。波ダッシュは「U+301C」、全角チルドは「U+FF5E」) と肉声で答えがあったり、

「mozcビルドしたことある人」という問いかけに
「ビルドしたことあります」というツイートがあったり、

「こごで使われるスライドは、後で公開されるはあのでしょうか」
というツイートがあると、
「今日のスライドは、非公開です。覚えて帰ってください。」
と説明があり、
「非公開か、よし暗記する(無理)」
とか

「無線LANを検索したらそれらしいIDのアクセスポイントを見付けたんですが、これ使っててもいいのでしょうか。もう使ってますけど...」
という自己完結的なつぶやきや、

「テストコードが、本コードの2、3倍になりました」という説明があると
「テスト2から3倍は普通だよ。」との突っ込みのツイートがあったり、

「入力した文字はGoogleに送られていませんのであんししてください」とあると。、
「"文字は送信でない" しらなかった」というツイートがあったり
けっこう盛り上がってます。

「今日は #mozc の何かがあったのか?」
というおそらく会場外からのツイートが混ざっていたりします。

飛び入り発表会で盛り上がる
一人5分以内での好きなことを発表。

■ ニコ動とのコラボ

ニコ動iPhone関連プロダクトリーダーがでてきて、MOZCにニコニコ大百科用語の辞書作る計画を夢想中とか発言していました。
 みwなwぎwっwてwきwた
 歪みねぇっす
 ゲッダン
などを、全部理解できる人は問題あるんじゃないかとおもいますが、
ニコニ大百科辞書とグーグル日本語入力のユーザー辞書として公開できないか
とか思っていますと言ったました。
ネタでなければ、
ニコニコ日本語入力 powerd by ATOK
のmozc版できるかもしれません。

Anthyが終わる
Anthyの開発者がでてきて、MOZCとAnthyの比較をしてました。
Anthyが、Symbianで動いたそうですが、ホントかよって感じです」という発言があったりしたあげく、「MOZCをよろしく」で締めてました。
「Anthy on Symbian ホントかよって言っていいのか」
とかtweetされたりしていました。

JIS配列 月配列とかの話で、みなさんこんなの使わないですよね自虐ネタみたいのものありました。

禁じてなしユルユルさは、
携帯を公開してしまって大丈夫か?問題なし、というやり取りや、
Wikipedia Twitter Mozoc を主観的に比較して発表とか、
Trieについては日本人で知らない人はいないと思いますので省略します。
mozcを知らない人は、あとで裏に来てください。
という感じの発言にも表れており、
自由な感じ溢れまくりでした。


Googleのオフィスの雰囲気
社内にバーがありビリヤードやアーケードゲームなどが置いてある。
フリークライミング用の壁、ジャグリング、トランポリン、トランプやボードゲームもそここにゴロゴロ。
管理されていない感じ。
バーの奥は食堂

オフィスの席は外資にしてはクリーンデスクが徹底されておらず雑然とした感じ。
社員さんが使っているPCのモニタが20インチ以上ありそうなのが目立つ。


mozcのソースここです。
http://code.google.com/p/mozc/source/browse/#svn/trunk/src

トラックバック(0)

トラックバックURL: http://www.konure.com/mt4/mt-tb.cgi/808

コメントする

最近のブログ記事

SORACOM,HLR持ちeSIM対応
SORACOMが自前のHLRを持ち、自…
準天頂衛星4機体制に
h2{ font-size:12…
Windows 10 mobile終了
Windows 10 mobileの新機…
カスタム検索

月別 アーカイブ