精度改善のキモはログ解析 その重要度とは?――続・「Simeji」の日本語入力システム入門“いれたてのおちゃ”で分かることって?(3/4 ページ)

» 2015年06月22日 10時00分 公開
[PR/ITmedia]
PR

サンプルデータにより入力した中身ではなく入力の労力を測っている

加藤氏 変換は、品詞同士の結びつきを点数にして評価します。その点数が悪いために変換に失敗している場合は、言語モデルにおける接続コストをチューニングします。ただそうすると別の評価で悪くなる場合もあるので、基本的にはテストの結果を元に自動的にチューニングしますが、微調整は人力ということもあります。

 こうしたチューニングは、1度やって終わりということではありません。評価用のコーパスをさまざまなジャンルでサンプリングして、継続的に行います。また辞書のメンテナンスも並行します。そうすると、先ほどの著作権処理も欠かせません。こうした取り組みは、すべてコンプライアンスに沿って進めています。

小町氏 変換精度改善のために使うコーパスはサンプル数が決め手になりますから、書き言葉や読み言葉などさまざまなものを購入する場合もあれば、ユーザーがどういった読みを入れて、どの変換候補に確定したのかという情報も極めて重要になります。

photo

 Simejiの場合は、ユーザーが同意して「ログ情報を送る」という機能をオンにすると、「よみ」情報と「表記」情報を統計的にどう変換する傾向が高いかという尺度を計算することができます。購入したコーパスは漢字かな交じりの文章になっていますから、どんな読みで入力したのかという情報はありません。しかし、日本語入力システムから一部サンプルデータとして取得する統計ログがあれば、どんな読みを入力したのか、表示した変換候補の内どれが選ばれる傾向が高いのか、間違った入力をどう修正するケースが多いのかのかも分かります。精度向上のためにはかけがえのないものだと思います。

加藤氏 “ログを取る”というと、入力文字をすべて収集していると誤解されがちですが、ログで判断するのは、統計的なサンプルデータとしてユーザーが日本語入力にどれだけ労力をかけているかの尺度を見ているだけです。目的は、入力の手間はできるだけ省くことですから。

 文字入力の操作回数が多ければ、予測変換の精度が低いということになります。同じく、変換候補に目的のものがなければ、それだけ変換操作の回数が増えますから、精度を改善する必要があります。文字の削除など、入力を修正するような操作が多いようなら、誤入力を防ぐような仕組みや、ユーザーインタフェースの工夫が必要になります。どんな文字を入力しているのか、どんな文章を書こうとしているのかは、ログで取る必要がないのです。

小町氏 検索エンジンの検索結果と同様ですね。あるキーワードを検索して、1ページ目の何番目に表示されたページのクリック数が多いのか/少ないのかを記録して、順位を調整します。ユーザーが何を求めているのか、まず候補を出して、それに対する反応で最適化していくわけですね。

加藤氏 そうすると、日本語入力システムもリアルタイムで変換候補を変えることができます。例えば同じ読みでも、季節や時間ごとに順位を変えています。

 ただログの情報は、精度を改善するための選択肢の1つで、かならずしもそれだけで変換候補の順位を変えるというものではありません。ログ情報のサンプリングは本来なら無作為抽出で行うべきですが、ログはユーザーの許諾がないと送信されません。その時点で偏りがあり、またその数は全体の15%です。

小町氏 統計処理で言うサンプルサイズですね。サンプル数が少なくても大きな差があるときは分かりますが、微妙な差であればサンプル数がたくさん必要になります。無作為抽出するサンプルをどれくらいにするのかは、何を問題とするかで変わるのが難しいですね。

 自然言語処理の評価をする場合、一般的には数千から数万の文をサンプルに用います。問題の難しさによって異なるので一概には言えませんが、数百のレベルでは有意差は出せないと思います。

 またログをどれくらいのスパンで見るかも重要です。もし季節要因を見たいなら、最低1年間はログを取らないといけませんよね。2月はバレンタインがあるからチョコレートに関係する言葉が多く使われるとして、もう1度2月が来ないと本当に有意なのかは確認できません。

加藤氏 Simejiのログはデータ保持期間が1カ月から最大60日ですから、日次や週次、月次、曜日による動向を分析できます。1年間は追えませんが、2月にチョコに関する入力が増えた――という解析結果は残りますので、季節要因には対応できます。

小町氏 1日間だけのログ中でも、時間要因は取れますよね。「お」と入力した場合、朝なら「おはようございます」、夕方なら「お疲れ様です」と予測変換の候補を変えることができます。

photo 「Simeji」は設定画面からログの送信をオン/オフできる

加藤氏 辞書のクラウド化には、変換精度向上のためのメンテナンスがしやすいというメリットがあります。先ほど説明したみんなの辞書のように、早ければ半日くらいで新語が登録されますから。

 一方で、ユーザー1人1人が日本語入力システムを使いやすくするために、そのスマホだけで有効な学習機能(ローカル学習)もあります。これはログ情報の取得とはまったく別で、ユーザーがよく使う言葉や漢字を覚えたり、またユーザーが直接単語を登録できたりするもので、変換候補はこのローカル学習の結果が最優先されるようになっています。

 ちなみに無料版のSimejiが収録しているローカル辞書は約20万語で、容量は50Mバイトくらい。有料のプロ版(iOS向けのみ)は約230万語で、容量は約80Mバイト。テキストですから辞書が増えても容量が一気に増えることはありませんが、アプリをアップデートしないと辞書は更新されません。もちろんプロ版でもクラウド辞書が利用できます。

小町氏 思ったより(容量が)小さいですね。頑張って実装しないと、その容量にはならないと思います。

加藤氏 私ではありませんが、担当者が頑張ってくれています(笑)

Copyright © ITmedia, Inc. All Rights Reserved.


提供:バイドゥ株式会社
アイティメディア営業企画/制作:ITmedia Mobile 編集部/掲載内容有効期限:2015年7月21日