Your SlideShare is downloading. ×
スペル訂正エンジンについてのサーベイ #TokyoNLP
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

スペル訂正エンジンについてのサーベイ #TokyoNLP

3,343
views

Published on

第5回自然言語処理勉強会で発表した資料です。

第5回自然言語処理勉強会で発表した資料です。


0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,343
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
40
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. スペル訂正エンジンに ついてのサーベイ #tokyonlp @nokuno
  • 2. 自己紹介• @nokuno / id:nokuno• #TokyoNLP主催• Social IME / StaKK開発者• Web系ソフトウェアエンジニア
  • 3. 近況報告
  • 4. 近況報告その1言語処理学会で 発表しました
  • 5. 近況報告その2シリコンバレーに 行ってきました
  • 6. 近況報告その3 情報処理学会誌にTokyoNLPが載りました
  • 7. 近況報告その4 IJCNLP2011でプログラム委員やります
  • 8. 今日の内容1.Noisy Channel Model2.Improved Error Model3.EM-based Error Model4.Discriminative Model5.Phrase-based Error Model
  • 9. スペル訂正とは• タイプミスや思い違いを修正• 例:SHCOOL→SCHOOL
  • 10. 例:Googleもしかし て
  • 11. 1. Noisy Channel Model A Spelling Correction Program Based on aNoisy Channel Model, M. Kernighan+. 1990.
  • 12. 基本原理• 訂正候補のスコアを確率モデル化• c: 出力の訂正候補• t: 入力のタイポ• スコアが最大or大きい順に候補を選ぶ
  • 13. Noisy Channel Model• P(c): 言語モデル • 使われやすさを表す• P(t|c):エラーモデル • 間違えやすさを表す Kernighan+. 1990
  • 14. 言語モデル• 単語N-gramモデル • @machyさんが説明してくれたはず • スペル訂正では単語unigramも可
  • 15. エラーモデル• エラーモデル=間違えやすさ• 間違えやすさってなに? • 文字列として似ているかどうか • キーボード上で近いかどうか • 発音や読みが近いかどうか • 意味が近いかどうか
  • 16. 編集距離4種類の編集操作の回数を数える 単語 → 誤り• 挿入: 東京都 → 東京t都• 削除: 東京都 → 東都• 置換: 東京都 → 東京群• 転置: 東京都 → 東都京
  • 17. 重み付き編集距離• 編集操作と文字の頻度で重み付け• 挿入と削除の1文字前を考慮
  • 18. 置換操作の表
  • 19. 2. Improved Error Model An Improved Error Model for NoisyChannel Spelling Correction, E. Brill+. 2000.
  • 20. Improved Error Model• エラーモデルに2つの拡張を加えた• 編集操作を複数文字に拡張• 誤りの出現位置を考慮 • 単語の先頭は誤りにくい • 先頭、中間、最後の3値 E.Brill+. 2000.
  • 21. 拡張1:編集操作の拡張 例:physical→fisikleの誤り確率 ph y s i c al P(f|ph) f y s i c al × P(i|y) f i s i c al × P(k|c) f i s i k al × P(le|al) f i s i k le
  • 22. ちゃんと書くと• 分割と結合で2つの周辺化が必要• 同じ文字への置換にも確率を与えるめんどいので確率最大の分割で近似
  • 23. 過程や…方法など…
  • 24. 拡張2: 誤りの出現位置を考慮• 編集確率を条件付きにするだけ • P(α→β|Position) • Position={start, middle, end}• 単語の先頭は間違えにくい • antler→entler • reluctant→reluctent
  • 25. そんなにモデルをリッチにして、スパースになら ないの?
  • 26. 訓練フェーズ• (誤り,正解)ペアの集合から学習する• 以下の3ステップ 1.アライメントをとる 2.複数文字に拡張する 3.カウントして確率を求める
  • 27. 1. アライメント• 誤りの文字と正解の文字を対応付ける• 編集距離が最小となる対応を選ぶ• 1文字の編集ならDPで一意に定まる• 例: (akgsual, actual)
  • 28. 2. 複数文字に拡張• 1文字の編集操作を抜き出す 隣接文字を加える ※増えてる
  • 29. 3. カウントする• 最尤推定(?)• count(α)の推定には元コーパスが必要 • 誤らない回数も含める必要がある • 元コーパスがないとややトリッキー
  • 30. EMアルゴリズムとの関係 • 「本質的にはEMアルゴリズムの1イ テレーションを行っている」? • コーパス中の分割は隠れ変数 • すべての分割を等確率に初期化 • 編集確率を推定 • 分割方法の期待値を再推定
  • 31. 実験結果1
  • 32. 実験結果2
  • 33. 3. EM-based Error Model Learning a Spelling Error Model fromSearch Query Logs, F. Ahmad+. 2005.
  • 34. 問題設定• クエリログからクエリの訂正を行なう• 誤りと正解のペアデータは必要ない• クエリログは10〜15%のスペルミスを 含むので、ここから学習したい
  • 35. EM-Algorithm1.初期化:編集距離テーブルを等確率に2.E-Step: • クエリログにスペル訂正を適用する3.M-Step: • 編集距離テーブルを更新する • Eステップの候補と確率を使う
  • 36. EMアルゴリズム
  • 37. 誤り確率の例
  • 38. よくある置換
  • 39. 精度正解データを使った場合よりは悪い
  • 40. 4. Discriminative ModelImproving Query Spelling Correction Using Web Search Results, Q.Chen+. 2007.
  • 41. 最大エントロピー法• @sleepy_yohsiさんが説明(ry• 以下の式を最大化する識別モデル• 素性としてWeb検索結果を突っ込む
  • 42. 素性素性ベースライン(生成モデル)の出力検索ヒット数URL文字列に訂正候補を含むか訂正候補のタイトル・スニペット中の頻度入力クエリのタイトル・スニペット中の頻度略語かどうか
  • 43. モデルの拡張• 入力クエリだけでなく訂正候補で検索 しなおす
  • 44. 実験結果• M0→M1→M2と精度が向上
  • 45. 5. Phrase-based Error ModelA Large Scale Ranker-Based System for Search Query Spelling Correction, J.Gao+. 2010.
  • 46. 3つの特徴• 識別的な手法としてランク学習を利用• Webスケールの言語モデルを利用• フレーズベースのエラーモデルを提案
  • 47. 1. ランク学習の利用 • 以下のような種類の素性を利用素性文字列の表層的な類似度発音記号に基づく類似度固有表現抽出に基づく素性辞書(Wiki/MSDN/ODP)に基づく素性頻度に基づく素性(クエリログやウェブ検索) 学習はニューラルネットor平均パーセプトロン
  • 48. 2. Webスケール 言語モデル• 合計13TBにも及ぶN-gramを利用• Absolute Discountでスムージング• SQLライクなMS製言語SCOPEを使用• 検索も分散KVSで行なう
  • 49. SQLライク…?
  • 50. どうみてもMapReduceです(ry
  • 51. 3. Phrase-based Error Model• 単語より長い単位の誤りを扱いたい• 例:theme park → theme part• 以下の手順に従って生成1.クエリをフレーズに分割2.各フレーズごとに編集操作を加える3.各フレーズを並び替え
  • 52. 誤りプロセス
  • 53. 近似と式変形 sumをmaxで近似 MはA*で一意にアライメントS:分割、T:スペル誤り、M:並び替え
  • 54. 学習にはブラウザの検索ログを使います(キリッ
  • 55. 実験結果
  • 56. おまけNoisy Channel Modelによるスペル訂正を実 装してみた
  • 57. AOLのクエリログ• 2006年にAOLが誤って(?)公開して しまった検索ログデータ• 3ヶ月分のクエリログ(英語)• 圧縮状態400MB、36Mクエリhttp://www.gregsadetsky.com/aol-data/
  • 58. 頻出クエリの抽出 頻度 クエリ 480780 - 172358 google 83006 ebay 70258 yahoo 65946 mapquest 59388 yahoo.com 49696 google.com myspace.co 46089 m 35649 myspace 31185 internet
  • 59. Trieであいまい検索 t • 頻出クエリで trieを作る r • 編集操作を許i e y しながらたど るe e
  • 60. 訂正候補の例• shcool→school• gooogle→google• nokuno→pokeno
  • 61. ブートストラップ• クエリログ自体にスペル訂正を適用 スペルミス 訂正候補 goggle google e-bay ebay mysapce.com myspace.com e bay ebay myspace myspace.com google google.com wwww.google.com www.google.com yahoo yahoo.com goggle.com google.com google.co google.com
  • 62. 参考文献1. A Spelling Correction Program Based on a Noisy Channel Model, M. Kernighan+. 1990.2. An Improved Error Model for Noisy Channel Spelling Correction, E. Brill+. 2000.3. Learning a Spelling Error Model from Search Query Logs, F. Ahmad+. 2005.4. Improving Query Spelling Correction Using Web Search Results, Q.Chen+. 2007.5. A Large Scale Ranker-Based System for Search Query Spelling Correction, J.Gao+. 2010.
  • 63. 発表者を募集し ております
  • 64. ご清聴ありがとうございました

×