小町守( NAIST ) 森信介(京大)・徳永拓之( PFI ) 情報処理学会 夏のプログラミング・シンポジウム 2008 年 9 月 7 越後湯沢
奈良先端科学技術大学院大学 ◦ 自然言語処理学講座(松本研) D2 ChaSen, MeCab, CaboCha, Namazu インターン先 : ◦ NTT ( 3 年前 - 今年), Microsoft Research (去年), Yahoo! Japan 研究所(今年 - 来年) (少し前まで) Gentoo Linux 開発者、東大 Fink チーム開発者、(だいぶ前)東大 ECCS 相談員 Id:mamoruk 「生駒日記」 2
相談員先輩の疋田さんからのメール ◦ 「日本語の品格について発表してほしい」 ◦ かな漢字変換についてなら …… 3
Web の拡大 → ユーザ入力文書増大 ◦ 新語や新表現の変換はストレスフル 4 新しくなって本当に使いづら い・・・前に戻してもらいたいで す。慣れれなのかな〜 どぅゃら、風邪をひぃてしまぃまし た。 頭重ぃし、鼻水がズールズル … で も仕事休めなぃしー カラダだるぃしー もぅ嫌ャーッ !!! ねぇよ こどもやばす wwwwww wwww 天丼ww おいおい かあい いww ちょww... 品格?
Web データを処理したいがタグつきデータ・辞書 がない(特にフリーで使えるもの) ◦ NAIST-jdic (旧 IPADic ) ◦ Google 日本語 N グラム 辞書やコーパスに正しく情報(品詞・単語境界) 振るのは(一般の人には)難しい ◦ (できるだけ)品詞情報を用いないで処理したい ◦ 自然言語処理における文節と IME における文節の違い ( eg. 東京特許許可局) 5
大規模コーパスの利用 ◦ できるだけ人手をかけないでメンテナンス ◦ Google 日本語 N グラム ◦ Web コーパス 5 億文 ◦ Wikipedia ・ etc … 統計的な理屈づけ 品詞情報を用いない頑健なかな漢字変換 ◦ Web に出現する全単語を用いる → 凝った未知語処理はし ない 6
ルールによる変換 ◦ Canna ◦ 要言語学(国語学)的知識 ◦ 必ずしも精度よく変換できるとはかぎらない N 文節最長一致法 ◦ (昔の) ATOK, VJE, Wnn など ◦ 要人手によるパラメータチューニング 最小コスト法 ◦ WXG, (少し前までの) MS-IME など ◦ 要人手による辞書チューニング 7
入力 : にわにはにわにわとりがいる。 8 に に 二 二 煮 煮 似 似 庭 庭 ワニ わ わ 羽 羽 輪 輪 に に 二 二 煮 煮 似 似 は は 歯 歯 葉 葉 刃 刃 埴輪 に に 二 二 煮 煮 庭 庭 わ わ 羽 羽 輪 輪 鶏 鶏 庭 庭 に に 二 二 似 似 コストが一番低いパスを選ぶ → コストは辞書に書いてある(人手) コストが一番低いパスを選ぶ → コストは辞書に書いてある(人手)
森ら( 1998 )の提案 P(x|y) の降順に変換可能文字列 (x 1, x 2, … ) を提 示する ◦ x: 文, y: 入力 MS-IME 2007, ATOK 2008 が統計的手法を採用 9 かな漢字モデル 言語モデル × によるランキング
10 かな漢字モデル 言語モデル 最小コスト法の自然な拡張になっている に に 二 二 煮 煮 似 似 庭 庭 ワニ わ わ 羽 羽 輪 輪 に に 二 二 煮 煮 似 似 は は 歯 歯 葉 葉 刃 刃 埴輪 に に 二 二 煮 煮 庭 庭 わ わ 羽 羽 輪 輪 鶏 鶏 庭 庭 に に 二 二 似 似
文を単語列 と見なす ngram 言語モデル( i<1 は文頭、 i=h+1 は文末) Google 日本語 N グラムデータ( 200 億文)から表 記の 1-2 グラムを計算して使用 ◦ 異なり 1 グラム数 :250 万 ◦ 異なり 2 グラム数 :8,000 万 11 我が輩 は は 猫 猫 である 文頭 文末 日本語っぽい単語列の確率は高く、 日本語っぽくない単語列の確率は低く 日本語っぽい単語列の確率は高く、 日本語っぽくない単語列の確率は低く
確率は読みが振られたコーパスから最尤推定 毎日新聞 95 年分 1 年に MeCab で分かち書き・ 読みを付与して使用 12 コーパス 中の頻度 克明 こくめい かつあき 小野克明さん( 43 ) 克明なやりとりが判明 出現する単語の読みは なんだったか推定するモデル 出現する単語の読みは なんだったか推定するモデル
規則ベース ◦ なにをやっているのかはっきり分かる ◦ 柔軟な前処理・後処理 ◦ 問題が簡単なときは規則ベースで書き尽くすこともでき る ◦ アドホックなヒューリスティック(要言語学的直観) ◦ 「必殺パラメータ」 統計的手法 ◦ 数学的モデルに基づいた理論的根拠 ◦ 変換規則や辞書に当たる知識を自動で学習(人手不要) ◦ なにやっているのかよく分からない ◦ コーパスに激しく依存 ◦ 変化の微調整が難しい 13
ChaIME ATOK 2007Anthy 9100cAjaxIME 請求書の支払日時請求書の市は来日 時 請求書の支払い日 時 請求書の支払いに 知事 近く市場調査を行 う。 知覚し冗長さを行 う。 近く市場調査を行 う。 その後サイト内でその五歳都内でその後サイト内でその後再都内で 去年に比べ高い水 準だ。 去年に比べた海水 順だ。 去年に比べたかい 水準だ。 去年に比べ高い水 準だ。 昼イチまでに書類 作っといて。 昼一までに書類津 くっといて。 昼一までに書類 作っといて。 肥留市までに書類 作っといて。 そんな話信じっこ ないよね。 そんな話心十個内 よね。 そんなはな視診 時っこないよね。 そんな話神事っ子 ないよね。 初めっからもって けばいいのに。 恥メッカら持って 毛羽いいのに。 恥メッカ羅持って ケバ飯野に。 始っから持ってけ ば良いのに。 熱々の肉まんにぱ くついた。 熱々の肉まん二泊 着いた。 あつあつの肉まん 2泊付いた。 熱熱の肉まんにぱ くついた。 15
Anthy ◦ HMM → MEMM による識別モデル(の亜種) ◦ 文節分割された読みつきコーパスから学習 ◦ 表記の素性を用いていない ◦ 文法体系が難しい(文節・品詞の判断) Social IME ◦ 複数人による辞書共有機能 ◦ アルゴリズムは Anthy と同じ 16
AjaxIME ◦ MeCab-skkserv による連文節かな漢字変換 ◦ 読みが振られたコーパスから変換コストを推定 ◦ コーパスが小さい・素性がスパース Sumibi ◦ 単語分かち書きによるかな漢字変換 ◦ 生コーパスから連接コストを推定(言語モデル) ◦ 辞書にない単語の変換ができない ◦ 連文節変換ではない 17
統計に基づくかな漢字変換エンジンを開発してい る ◦ Google 日本語 N グラム・新聞記事を用いた実装・デモ を公開中 ◦ ソースコードは Google Code にある(動かすには Google 日本語 N グラムかそれに相当するデータが必 要) 統計的かな漢字変換は、規則ベースに比べ、 ◦ 数学的根拠がある ◦ 大規模なデータから辞書・パラメータを自動推定できる ◦ なにをやっているのかよく分からない ◦ コーパスに依存する(「コーパスの品格」) ◦ 細かい調整ができない 18 悪貨は良貨を駆逐する
1. 単語 2 グラムでクラスタリングし(クラスタ 2 グ ラム)、クラスタ 2 グラムで単語分割・仮名漢字 変換を動かす 1. 精度の向上とモデルサイズの削減 2. 現在は富豪的プログラミング(辞書が 2GB ) 3. 自分の研究につながると嬉しいけど …… 2. 変換ログを用いて「この変換をした人はこんな 変換もしています」 1. 空気を読む IME を目指して〜 19
辞書・コーパス登録サイト・コミュニティ創出 ◦ 気分としては SKK の辞書登録 CGI 。品詞とか気にしな いで登録するのみ(リビューする人がいる) ◦ 人手で単語分割したコーパス用の例文を登録してもらう うまく単語分割できるところとよく分からないところと混 ざっていても大丈夫にする(みんな簡単に単語分割できる とはかぎらない。 Cf. 部分的アノテーションを使った単語分 割タスクにおける CRF 学習 (Tsuboi et al. 2008) ) 20
本プロジェクトの一部は奈良先端科学技術大学院 大学 Creative and International Competitiveness Project (CICP 2007) の支援を 受けています 21