270 likes | 341 Views
2011 年 3 月 10 日 @ 豊橋技術科学大学 言語処理学会第 17 回年次大会 (NLP 2011). 変換ログを用いた 仮名漢字変換精度の向上. 山口洋平 森信介 河原達也 京都大学情報学研究科 2011 年 3 月 10 日. 背景. 統計的仮名漢字変換 ひらがな文を仮名漢字 混じり 文に変換して出力 きかんしぜんそく ⇒ 気管支喘息 仮名漢字変換ログ 変換システムの入出力の履歴 気管 / きかん 支 / し 喘息 / ぜんそく ユーザの言語活動の特性を反映 よく変換する単語、表現. 背景(続). 目的:ユーザの特性の自動学習 問題
E N D
2011年3月10日@豊橋技術科学大学 言語処理学会第17回年次大会(NLP 2011) 変換ログを用いた仮名漢字変換精度の向上 山口洋平 森信介 河原達也 京都大学情報学研究科 2011年3月10日
背景 • 統計的仮名漢字変換 • ひらがな文を仮名漢字混じり文に変換して出力 きかんしぜんそく⇒気管支喘息 • 仮名漢字変換ログ • 変換システムの入出力の履歴 気管/きかん 支/し 喘息/ぜんそく • ユーザの言語活動の特性を反映 • よく変換する単語、表現
背景(続) • 目的:ユーザの特性の自動学習 • 問題 • 語彙 (未知語の問題) • 語彙にない単語は出力できない • 言語モデルの傾向 • 同音異義語の選択を誤る 変換ログの活用の提案 • ユーザの特性を反映した語彙と文脈情報の追加
先行研究 • 統計的仮名漢字変換 • [森他, 情処論, 98] [Chen et al., ACL, 00] • テキストの部分文字列を変換候補に挙げる仮名漢字変換 • [Mori et al. Coling, 06] • 未知語であっても変換候補に列挙 • 文脈情報を考慮
統計的仮名漢字変換(単語と読み) • 入力: y出力: w • モデル: P(w|y) • w* = argmaxw P(w|y) = argmaxw P(w, y) • 確率が最大となる単語列を求める • 解探索: Viterbiアルゴリズム • 言語モデル P(w, y) • 単語と読みの組が単位のn-gramモデル • [森他, 情処論, 10] • 単語に読みがついたコーパスからパラメータ推定
テキストの部分文字列の利用(1/2) • テキストすべての部分文字列に対してすべての可能な読みを辞書に追加(単漢字辞書を活用) 文字列表記:関手 可能な読み: かんて、せきて、かんしゅ、かんで、せきしゅ • テキスト中の全ての部分文字列を語彙とする n-gramを構築 • テキストの各文字の間の単語境界確率を推定 • テキストから文脈情報も得ている
テキストの部分文字列の利用(2/2) • 実際は計算量が膨大 • 近似 • 擬似確率的単語分割 テキストを乱数で揺らしながら単語に分割 • 擬似確率的読み付与 乱数で揺らしながら読みを付与 • 乱数の発生回数が多いと、より良い近似に
擬似確率的単語分割 確率的単語分割コーパス+乱数 = 揺れのある単語分割済みコーパス(×倍率) ≒ 確率的単語分割コーパス 各文字間で 単語境界となる確率を推定 0~1の乱数に従って境界かどうかを判定 確率は KyTeaで推定 倍率4
擬似確率的読み付与読み付与誤りに対処 • 単語の可能の読みとその確率を推定 • 乱数に従って、付与する読みを揺らす 乱数(0~1)を発生 x 4 関手/せきて 関手/かんて 関手/せきて 関手 関手/かんしゅ 未知語でも1つでも正しい読みが付与されれば、変換候補に挙がる 確率は KyTeaで推定
変換ログ • 難溶/なんよう/IN 性/せい/IN の/の/IN 製剤/せいざい/SUB • フォーマット • 表記/読み/出典 • IN:内部語彙、SUB:テキストの部分文字列、UNK:未知語 ⇒ テキストの部分文字列が変換ログに出現 ⇒語彙として獲得 エンゲ/えんげ/UNK困難/こんなん/IN、/、/IN
3種類のユーザモデル • 変換出力とユーザの意図が異なる時ユーザはどう振舞うか • system • 1-best出力 • oracle • ユーザの意図通り • simu • 現実のユーザのシミュレーション ユーザの意図 IMEの 変換出力
ユーザモデル1 system • 仮名漢字変換エンジンの出力を選択 • 誤分割や誤変換があってもそのまま確定 • 変換ログは誤変換(ノイズ)も含む 変換ログ 南陽/なんよう 性/せい の/の 製材/せいざい ・・・ ・・・ ユーザの意図: 難溶性の製剤 確定 変換出力: 南陽 性 の 製材 難溶 正 ノ 政財 南洋 聖 野 製剤 ・・・
ユーザモデル2 oracle • 必ずユーザの意図した結果を選択 • 誤分割や誤変換を必ず修正してから確定 • 変換ログは正しく修正された結果のみを含む ⇒未知語なら語彙獲得 変換ログ 難溶/なんよう 性/せい の/の 製剤/せいざい ・・・ ・・・ ユーザの意図: 難溶性の製剤 確定 変換出力: 南陽 性 の 製材 難溶 正 ノ 政財 南洋 聖 野 製剤 ・・・ 13
ユーザモデル3 simu • 現実のユーザのシミュレーション • systemと oracleの中間 • 個人の入力の傾向、状況に依存 • 振る舞い • システムの出力とユーザの意図が異なる時 • 割合 αで誤変換を確定 • 誤確定箇所を消去 • 再入力し正しい変換結果を選択
実験 • 変換ログを用いた仮名漢字変換精度の評価 • 3種類のユーザを想定 • 評価基準 • カバー率 • 語彙 V = V学習コーパス∪ V変換ログがテストコーパスの語彙をどれだけカバーしているか • SUB は語彙ではなく単語候補 • 変換精度 • F値(文単位)
言語資源 • 一般:現代日本語書き言葉均衡コーパス • 医薬:日本医薬情報センター
実験手順 • 学習コーパスから初期言語モデルを構築 • ユーザの入力から300文を変換 • 変換ログを学習コーパスに追加 • 言語モデルを更新 • テストコーパスに対する精度を計算 • ユーザの入力全てに行き渡るまで2~5の 繰り返し(全100回)
ユーザの変換ログの作り方 • system: 1-best を変換ログに追加 • oracle: 正解を変換ログに追加 • simu • 誤変換の割合:α = 13/200 = 0.065 • あるユーザの変換ログから推定 • systemとoracleが同じならsystemの方を追加 • そうでないとき、 • 乱数(0~1)を発生 α以下なら systemの変換ログも追加 • oracle の変換ログを追加
カバー率 追加 回数
変換精度(1/3) 追加 回数
変換精度(2/3) 結果: simu > oracle > system 期待: oracle > simu > system 追加 回数
変換精度(3/3) • 精度が向上 • 理由1:未知語である単語候補が語彙としてとれた • 理由2:言語モデルがよくなった • 100回目のF値: simu > oracle > system • 理由1:simuの変換ログの量は oracleの (1+α) 倍 • 理由2:ユーザの入力とその正解データを自動で分割
まとめと今後の課題 • ユーザの特性を動的に学習 • 変換ログの活用 • 語彙とその文脈情報の言語モデルへの追加 • 3種類のユーザモデルによる実験 • 今後の課題 • 変換ログの活用方法の工夫 • 補間 • ノイズ有りデータからの学習 • 文断片(文節程度)単位での実験
評価基準 • カバレージ • 語彙がテストコーパスをどれだけカバーできてるか • F値 • 仮名漢字変換の第一候補の精度 NLCS 7 F値 = = 1 2 13 (Nref + Nsys)
読み推定[森他, NLP, 10] • Q1: 学習コーパスに出現しているか? • yes • Q2: 読みが唯一か複数か • 複数⇒分類器を用いて読みを選択 • 唯一⇒その読みを選択 • no • Q2’: 辞書に入っているか • yes⇒最初の項目の読みを選択 • no⇒各文字の一般的な読みの連接