Your SlideShare is downloading. ×
日本語形態素解析入門  ver.0.3 updated 2009-01-27
はじめに <ul><li>本資料の作成に辺り以下のサイト ( アーティクル ) を参考にさせていただきました。 </li></ul><ul><ul><li>日本語形態素解析入門 [ 山下達雄 ] </li></ul></ul><ul><ul><...
目次 <ul><li>形態素解析とは </li></ul><ul><li>形態素解析の仕組み </li></ul><ul><ul><li>形態素辞書探索 </li></ul></ul><ul><ul><li>形態素間の接続可能性の確認 </li...
形態素解析とは <ul><li>入力 </li></ul><ul><ul><li>文字列 </li></ul></ul><ul><li>出力 </li></ul><ul><ul><li>形態素の列 </li></ul></ul><ul><li>...
形態素解析の必要性 <ul><li>情報検索 </li></ul><ul><ul><li>日本語分ち書き </li></ul></ul><ul><ul><ul><li>N-gram  </li></ul></ul></ul><ul><ul><u...
目次 <ul><li>形態素解析とは </li></ul><ul><li>形態素解析の仕組み </li></ul><ul><ul><li>形態素辞書探索 </li></ul></ul><ul><ul><li>形態素間の接続可能性の確認 </li...
形態素解析の仕組み <ul><li>形態素解析は以下の3つに分けられる </li></ul><ul><ul><li>形態素辞書探索 </li></ul></ul><ul><ul><ul><li>“涼宮ハルヒ”が辞書に存在するか? </li></...
目次 <ul><li>形態素解析とは </li></ul><ul><li>形態素解析の仕組み </li></ul><ul><ul><li>形態素辞書探索 </li></ul></ul><ul><ul><li>形態素間の接続可能性の確認 </li...
形態素辞書探索 <ul><li>辞書探索の必要性 </li></ul><ul><ul><li>分割候補は文字列長の2のべき乗通り </li></ul></ul><ul><ul><li>辞書を使用することで候補数を抑える </li></ul></...
形態素辞書探索 <ul><li>辞書探索には以下のような文字列探索アルゴリズムが用いられる </li></ul><ul><ul><li>Common Prefix Search </li></ul></ul><ul><ul><ul><li>Do...
Double Array Trie <ul><li>Trie 概要 </li></ul><ul><li>Trie のデータ構造 </li></ul><ul><li>Double Array 概要 </li></ul><ul><li>Double...
Trie 概要 <ul><li>Trie とは文字列探索 (reTRIEval) のためのデータ構造 (DFA の一種 ) </li></ul><ul><li>“ bird”, “bison”, “cat”, “birdie” を格納する Tr...
Trie のデータ構造 <ul><li>Trie は抽象的なデータ構造なので実装のためにはより具体的なデータ構造を考える </li></ul><ul><ul><li>リスト実装 ( 速度:遅 ,  領域:小 ) </li></ul></ul><...
Double Array概要 <ul><li>Double Arrayは小さい領域で高速な実装 </li></ul><ul><li>2つの配列BASEとCHECKを用いてデータを格納する </li></ul>節 x から節 y に至る文字 c ...
Double Array Trie による文字列探索 <ul><li>“bird”を検索 </li></ul><ul><ul><li>BASE[1]+CODE[‘b’] = 4, CHECK[4]=1 </li></ul></ul><ul><u...
目次 <ul><li>形態素解析とは </li></ul><ul><li>形態素解析の仕組み </li></ul><ul><ul><li>形態素辞書探索 </li></ul></ul><ul><ul><li>形態素間の接続可能性の確認 </li...
接続可能性の確認 <ul><li>連続する形態素が接続するか、どれだけ接続しやすいか </li></ul><ul><ul><li>mecab では 2 次元のテーブル (matrix) を用意して連接コスト探索を行う </li></ul></ul>
目次 <ul><li>形態素解析とは </li></ul><ul><li>形態素解析の仕組み </li></ul><ul><ul><li>形態素辞書探索 </li></ul></ul><ul><ul><li>形態素間の接続可能性の確認 </li...
最適解探索 <ul><li>最適解探索の方法は以下のようなものが存在 </li></ul><ul><ul><li>左最長一致法 </li></ul></ul><ul><ul><li>形態素数最小法 </li></ul></ul><ul><ul>...
コスト最小法 <ul><li>文字列”さかなだよ”に対する辞書探索結果 </li></ul><ul><ul><li>さ - かな - だ - よ </li></ul></ul><ul><ul><li>さか - なだ - よ </li></ul>...
コストの定義 <ul><li>生起コスト, 連接コストを定義する </li></ul><ul><ul><li>人手による定義 </li></ul></ul><ul><ul><li>コーパスを利用して, 統計的に推定 </li></ul></ul>
確立モデルを用いたコスト計算 <ul><li>形態素解析は以下の関数を最小化する W={w1,...,wn}, T={t1,....,tn} を求めること </li></ul><ul><li>また事後確立は出現確立と同時確立を用いて計算すること...
<ul><li>コーパス中で名詞が100回, 名詞の直後に動詞が30回, “さかな”が5回出現した場合 </li></ul><ul><ul><li>さ (0.02)-(0.1) かな (0.01)-(0.1) だ (0.5)-(0.5) よ (...
<ul><li>式 (2) が最小であるとき式 (1) は最大である。 </li></ul>確立が最大となる組を求めることはコストが最小となる組をみつけることに等しい!! =>人手によるコストとコーパスでの確立をマージできる 生起コスト 連接コスト
Viterbi のアルゴリズム start end a b c e d g f 20 10 30 20 30 10 10 40 10 20 10 startからendまでの最もコストの低いパスを見つける startからendまでの最も確立の高い...
Viterbi のアルゴリズム <ul><li>このアルゴリズムが解く問題 </li></ul><ul><ul><li>観測された系列に対し ,  最適な状態系列を求める </li></ul></ul><ul><ul><ul><li>既に以下の...
Viterbi のアルゴリズム <ul><li>次のようなオートマトンを考える. </li></ul>s1 s2 s3 0.2 a:0 b:1.0 0.3 a:0.8 b:0.2 0.5 a:1.0 b:0 0.4 a:0.3 b:0.7 0....
<ul><li>前述のオートマトンが” abb” を出力する確率 </li></ul><ul><li>“ aab” を出力する各状態系列の確率の総和 </li></ul><ul><ul><li>s1->s1->s1->s3  ((0.3*0.8...
Viterbi のアルゴリズム <ul><li>“ aab” が出力されていたとき ,  一番尤もらしい状態系列を見つけるアルゴリズム </li></ul>
<ul><li>モデル λ において観測系列 </li></ul><ul><li>に対する最 適な状態系列 </li></ul><ul><li>を求めるために、時刻 t で状態 i に至るまでの </li></ul><ul><li>最適状態確率...
<ul><li>最適状態確率の定義から次の時刻 t+1 における最適状態確率が導出される </li></ul>
 
<ul><li>“ aab” が出力されたとき , 一番尤もらしい状態系列を Viterbi のアルゴリズムを使って導出してみる </li></ul>s1 s2 s3 0.2 a:0 b:1.0 0.3 a:0.8 b:0.2 0.5 a:1....
時刻t=0 1.0 0.0 0.0 s1 s2 s3
時刻t=1 1.0 0.0 0.0 s1 s2 s3 0.24 0.5 0.0 a 0.3*0.8 0.5*1.0 0.2*0.0 0.6*0.5 0.4*0.3
時刻t=2 1.0 0.0 0.0 s1 s2 s3 0.24 0.5 0.0 a 0.3*0.8 0.5*1.0 0.2*0.0 0.6*0.5 0.4*0.3 0.057 0.12 0.15 a 0.3*0.8 0.5*1.0 0.4*0....
時刻t=3 1.0 0.0 0.0 s1 s2 s3 0.24 0.5 0.0 a 0.3*0.8 0.5*1.0 0.2*0.0 0.6*0.5 0.4*0.3 0.057 0.12 0.15 a 0.3*0.8 0.5*1.0 0.4*0....
バックトラック 1.0 0.0 0.0 s1 s2 s3 0.24 0.5 0.0 a 0.3*0.8 0.5*1.0 0.2*0.0 0.6*0.5 0.4*0.3 0.057 0.12 0.15 a 0.3*0.8 0.5*1.0 0.4*...
Viterbi のアルゴリズムの 形態素解析への利用 <ul><li>“ 東京都”が出現したときに ,” 東京都”が出力される系列中で尤もらしいものを探す . </li></ul><ul><ul><li>開始 ->“ 東”  -> “ 京都” ...
Upcoming SlideShare
Loading in...5
×

日本語形態素解析

6,044

Published on

日本語形態素解析入門

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

No Downloads
Views
Total Views
6,044
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Transcript of "日本語形態素解析"

  1. 1. 日本語形態素解析入門 ver.0.3 updated 2009-01-27
  2. 2. はじめに <ul><li>本資料の作成に辺り以下のサイト ( アーティクル ) を参考にさせていただきました。 </li></ul><ul><ul><li>日本語形態素解析入門 [ 山下達雄 ] </li></ul></ul><ul><ul><ul><li>http://nais.to/~yto/doc/tech/jma/jma19990514.pdf </li></ul></ul></ul><ul><ul><li>Double-Array Articles [ 矢田 晋 ] </li></ul></ul><ul><ul><ul><li>http:// nanika.osonae.com/DArray / </li></ul></ul></ul><ul><ul><li>確率的言語モデルによる自由発話認識に関する研究 [ 村上仁一 ] </li></ul></ul><ul><ul><ul><li>http://unicorn.ike.tottori-u.ac.jp/murakami/doctor/ </li></ul></ul></ul>
  3. 3. 目次 <ul><li>形態素解析とは </li></ul><ul><li>形態素解析の仕組み </li></ul><ul><ul><li>形態素辞書探索 </li></ul></ul><ul><ul><li>形態素間の接続可能性の確認 </li></ul></ul><ul><ul><li>最適解探索 </li></ul></ul>
  4. 4. 形態素解析とは <ul><li>入力 </li></ul><ul><ul><li>文字列 </li></ul></ul><ul><li>出力 </li></ul><ul><ul><li>形態素の列 </li></ul></ul><ul><li>形態素解析をざっくり説明 </li></ul><ul><ul><li>与えられた文字列を形態素に分解(複数候補) </li></ul></ul><ul><ul><li>上の候補から一番もっともらしいものを出力 </li></ul></ul>入力:東京都 候補:東京都(名詞), 東京(名詞)-都(名詞), 東(名詞)-京都(名詞) 出力:東京都(名詞)
  5. 5. 形態素解析の必要性 <ul><li>情報検索 </li></ul><ul><ul><li>日本語分ち書き </li></ul></ul><ul><ul><ul><li>N-gram </li></ul></ul></ul><ul><ul><ul><li>形態素解析 </li></ul></ul></ul><ul><ul><li>なぜ形態素解析を利用するか </li></ul></ul><ul><ul><ul><li>N-gram に比べて precision( 正答率 ) が高い </li></ul></ul></ul><ul><ul><ul><ul><li>2-gram の例 ( 東京都 => 東京 , 京都 ) </li></ul></ul></ul></ul><ul><ul><li>でもめんどくさい (‘A`) </li></ul></ul><ul><ul><ul><li>言語依存性 </li></ul></ul></ul><ul><ul><ul><ul><li>日本語形態素解析システムは中国語に利用できない </li></ul></ul></ul></ul><ul><ul><ul><li>新語に弱い </li></ul></ul></ul>
  6. 6. 目次 <ul><li>形態素解析とは </li></ul><ul><li>形態素解析の仕組み </li></ul><ul><ul><li>形態素辞書探索 </li></ul></ul><ul><ul><li>形態素間の接続可能性の確認 </li></ul></ul><ul><ul><li>最適解探索 </li></ul></ul>
  7. 7. 形態素解析の仕組み <ul><li>形態素解析は以下の3つに分けられる </li></ul><ul><ul><li>形態素辞書探索 </li></ul></ul><ul><ul><ul><li>“涼宮ハルヒ”が辞書に存在するか? </li></ul></ul></ul><ul><ul><li>形態素間の接続可能性の確認 </li></ul></ul><ul><ul><ul><li>名詞の直後に動詞が出現するか? </li></ul></ul></ul><ul><ul><li>最適解探索 </li></ul></ul><ul><ul><ul><li>一番尤もらしい形態素の列はなにか? </li></ul></ul></ul>
  8. 8. 目次 <ul><li>形態素解析とは </li></ul><ul><li>形態素解析の仕組み </li></ul><ul><ul><li>形態素辞書探索 </li></ul></ul><ul><ul><li>形態素間の接続可能性の確認 </li></ul></ul><ul><ul><li>最適解探索 </li></ul></ul>
  9. 9. 形態素辞書探索 <ul><li>辞書探索の必要性 </li></ul><ul><ul><li>分割候補は文字列長の2のべき乗通り </li></ul></ul><ul><ul><li>辞書を使用することで候補数を抑える </li></ul></ul>涼宮ハルヒ => {(涼,宮,ハ,ル,ヒ), (涼,宮,ハ,ルヒ), (涼,宮,ハル,ヒ),(涼,宮,ハルヒ), (涼,宮ハ,ル,ヒ),(涼,宮ハ,ルヒ), (涼,宮ハル,ヒ), (涼,宮ハルヒ) , (涼宮,ハ,ル,ヒ), (涼宮,ハ,ルヒ), (涼宮,ハル,ヒ), (涼宮,ハルヒ), (涼宮ハ,ル,ヒ), (涼宮ハ,ルヒ), (涼宮ハル,ヒ), (涼宮ハルヒ)} 合計2^4通り!
  10. 10. 形態素辞書探索 <ul><li>辞書探索には以下のような文字列探索アルゴリズムが用いられる </li></ul><ul><ul><li>Common Prefix Search </li></ul></ul><ul><ul><ul><li>Double Array Trie </li></ul></ul></ul><ul><ul><ul><li>PAT 木 </li></ul></ul></ul><ul><ul><ul><li>Suffix Array </li></ul></ul></ul><ul><ul><ul><li>Trie + NDBM </li></ul></ul></ul><ul><ul><li>AC 法 (Aho-Corasick 法 ) </li></ul></ul>Trie を用いた CommonPrefixSearch
  11. 11. Double Array Trie <ul><li>Trie 概要 </li></ul><ul><li>Trie のデータ構造 </li></ul><ul><li>Double Array 概要 </li></ul><ul><li>Double Array Trie による文字列探索 </li></ul>
  12. 12. Trie 概要 <ul><li>Trie とは文字列探索 (reTRIEval) のためのデータ構造 (DFA の一種 ) </li></ul><ul><li>“ bird”, “bison”, “cat”, “birdie” を格納する Trie </li></ul>
  13. 13. Trie のデータ構造 <ul><li>Trie は抽象的なデータ構造なので実装のためにはより具体的なデータ構造を考える </li></ul><ul><ul><li>リスト実装 ( 速度:遅 , 領域:小 ) </li></ul></ul><ul><ul><li>配列実装 ( 速度:速 , 領域 : 大 ) </li></ul></ul><ul><ul><li>Double 配列実装 ( 速度:速 , 領域:小 ) </li></ul></ul>
  14. 14. Double Array概要 <ul><li>Double Arrayは小さい領域で高速な実装 </li></ul><ul><li>2つの配列BASEとCHECKを用いてデータを格納する </li></ul>節 x から節 y に至る文字 c に対応する枝が存在するとき BASE[x]+CODE[c]=y x = CHECK[y] が成り立つ。 また , x が葉  BASE[x] < 0
  15. 15. Double Array Trie による文字列探索 <ul><li>“bird”を検索 </li></ul><ul><ul><li>BASE[1]+CODE[‘b’] = 4, CHECK[4]=1 </li></ul></ul><ul><ul><li>BASE[4]+CODE[‘i’] = 7, CHECK[7]=4 </li></ul></ul><ul><ul><li>BASE[7]+CODE[‘r’] = 10, CHECK[10] = 7 </li></ul></ul><ul><ul><li>BASE[10]+CODE[‘d’] = 6, CHECK[6] = 10 </li></ul></ul><ul><ul><li>BASE[6] + CODE[‘#’] = 2, CHECK[2]=6 </li></ul></ul><ul><ul><li>BASE[2] < 0 “bird” が見つかった!! </li></ul></ul>
  16. 16. 目次 <ul><li>形態素解析とは </li></ul><ul><li>形態素解析の仕組み </li></ul><ul><ul><li>形態素辞書探索 </li></ul></ul><ul><ul><li>形態素間の接続可能性の確認 </li></ul></ul><ul><ul><li>最適解探索 </li></ul></ul>
  17. 17. 接続可能性の確認 <ul><li>連続する形態素が接続するか、どれだけ接続しやすいか </li></ul><ul><ul><li>mecab では 2 次元のテーブル (matrix) を用意して連接コスト探索を行う </li></ul></ul>
  18. 18. 目次 <ul><li>形態素解析とは </li></ul><ul><li>形態素解析の仕組み </li></ul><ul><ul><li>形態素辞書探索 </li></ul></ul><ul><ul><li>形態素間の接続可能性の確認 </li></ul></ul><ul><ul><li>最適解探索 </li></ul></ul>
  19. 19. 最適解探索 <ul><li>最適解探索の方法は以下のようなものが存在 </li></ul><ul><ul><li>左最長一致法 </li></ul></ul><ul><ul><li>形態素数最小法 </li></ul></ul><ul><ul><li>2文節最長一致法 </li></ul></ul><ul><ul><li>コスト最小法 </li></ul></ul><ul><ul><li>確立モデル </li></ul></ul>
  20. 20. コスト最小法 <ul><li>文字列”さかなだよ”に対する辞書探索結果 </li></ul><ul><ul><li>さ - かな - だ - よ </li></ul></ul><ul><ul><li>さか - なだ - よ </li></ul></ul><ul><ul><li>さかな - だ - よ </li></ul></ul><ul><li>上記各候補に生起コスト , 連接コストを付与 </li></ul><ul><ul><li>さ (100)-(30) かな (200)-(30) だ (10)-(30) よ (10) </li></ul></ul><ul><ul><li>さか (200)-(30) なだ (200)-(45) よ (10) </li></ul></ul><ul><ul><li>さかな (200)-(30) だ (10)- よ (10) </li></ul></ul>
  21. 21. コストの定義 <ul><li>生起コスト, 連接コストを定義する </li></ul><ul><ul><li>人手による定義 </li></ul></ul><ul><ul><li>コーパスを利用して, 統計的に推定 </li></ul></ul>
  22. 22. 確立モデルを用いたコスト計算 <ul><li>形態素解析は以下の関数を最小化する W={w1,...,wn}, T={t1,....,tn} を求めること </li></ul><ul><li>また事後確立は出現確立と同時確立を用いて計算することができる。 </li></ul>wi:i 番目の単語 ti:i 番目の単語の品詞
  23. 23. <ul><li>コーパス中で名詞が100回, 名詞の直後に動詞が30回, “さかな”が5回出現した場合 </li></ul><ul><ul><li>さ (0.02)-(0.1) かな (0.01)-(0.1) だ (0.5)-(0.5) よ (0.5) </li></ul></ul><ul><ul><li>さか (0.04)-(0.1) なだ (0.01)-(0.15) よ (0.5) </li></ul></ul><ul><ul><li>さかな (0.04)-(0.1) だ (0.5)- よ (0.5) </li></ul></ul>
  24. 24. <ul><li>式 (2) が最小であるとき式 (1) は最大である。 </li></ul>確立が最大となる組を求めることはコストが最小となる組をみつけることに等しい!! =>人手によるコストとコーパスでの確立をマージできる 生起コスト 連接コスト
  25. 25. Viterbi のアルゴリズム start end a b c e d g f 20 10 30 20 30 10 10 40 10 20 10 startからendまでの最もコストの低いパスを見つける startからendまでの最も確立の高いパスを見つける
  26. 26. Viterbi のアルゴリズム <ul><li>このアルゴリズムが解く問題 </li></ul><ul><ul><li>観測された系列に対し , 最適な状態系列を求める </li></ul></ul><ul><ul><ul><li>既に以下のことがわかっている </li></ul></ul></ul><ul><ul><ul><ul><li>“ 晴れ” => 秋葉原でメイド喫茶に行く (70%) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>“ 晴れ” => 家でニコニコ動画を見る (30%) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>“ 雨” => 秋葉原でメイド喫茶に行く (40%) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>“ 雨” => 家でニコニコ動画を見る (60%) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>晴れの確率 (70%) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>前日が晴れのとき , 次の日が晴れの確率 (80%) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>前日が雨のとき , 次の日が晴れの確率 (40%) </li></ul></ul></ul></ul><ul><ul><ul><li>土曜日は家でニコニコ動画を見 , 日曜日は秋葉原のメイド喫茶に行った ( ということが観測された ) </li></ul></ul></ul><ul><ul><ul><li>土曜日 , 日曜日の天気は? ( 尤もらしい状態の系列は? ) </li></ul></ul></ul>
  27. 27. Viterbi のアルゴリズム <ul><li>次のようなオートマトンを考える. </li></ul>s1 s2 s3 0.2 a:0 b:1.0 0.3 a:0.8 b:0.2 0.5 a:1.0 b:0 0.4 a:0.3 b:0.7 0.6 a:0.5 b:0.5 状態 s1 から s2 に遷移する確率は 0.2 でこのとき、 a を出力する確率は 0, b は 1.
  28. 28. <ul><li>前述のオートマトンが” abb” を出力する確率 </li></ul><ul><li>“ aab” を出力する各状態系列の確率の総和 </li></ul><ul><ul><li>s1->s1->s1->s3 ((0.3*0.8)*(0.3*0.8)*(0.2*0.1) = 0.01152) </li></ul></ul><ul><ul><li>s1->s1->s2->s3 ((0.3*0.8)*(0.5*1.0)*(0.6*0.5) = 0.036) </li></ul></ul><ul><ul><li>s1->s2->s2->s3 ((0.5*1.0)*(0.4*0.3)*(0.6*0.5) = 0.018) </li></ul></ul><ul><li>“ aab” が出力されていたとき , 一番尤もらしい状態系列 </li></ul><ul><ul><li>s1->s1->s2->s3 ((0.3*0.8)*(0.5*1.0)*(0.6*0.5) = 0.036) </li></ul></ul>Viterbi のアルゴリズム
  29. 29. Viterbi のアルゴリズム <ul><li>“ aab” が出力されていたとき , 一番尤もらしい状態系列を見つけるアルゴリズム </li></ul>
  30. 30. <ul><li>モデル λ において観測系列 </li></ul><ul><li>に対する最 適な状態系列 </li></ul><ul><li>を求めるために、時刻 t で状態 i に至るまでの </li></ul><ul><li>最適状態確率 を定義する。 </li></ul>
  31. 31. <ul><li>最適状態確率の定義から次の時刻 t+1 における最適状態確率が導出される </li></ul>
  32. 33. <ul><li>“ aab” が出力されたとき , 一番尤もらしい状態系列を Viterbi のアルゴリズムを使って導出してみる </li></ul>s1 s2 s3 0.2 a:0 b:1.0 0.3 a:0.8 b:0.2 0.5 a:1.0 b:0 0.4 a:0.3 b:0.7 0.6 a:0.5 b:0.5
  33. 34. 時刻t=0 1.0 0.0 0.0 s1 s2 s3
  34. 35. 時刻t=1 1.0 0.0 0.0 s1 s2 s3 0.24 0.5 0.0 a 0.3*0.8 0.5*1.0 0.2*0.0 0.6*0.5 0.4*0.3
  35. 36. 時刻t=2 1.0 0.0 0.0 s1 s2 s3 0.24 0.5 0.0 a 0.3*0.8 0.5*1.0 0.2*0.0 0.6*0.5 0.4*0.3 0.057 0.12 0.15 a 0.3*0.8 0.5*1.0 0.4*0.3 0.4*0.3 0.6*0.5
  36. 37. 時刻t=3 1.0 0.0 0.0 s1 s2 s3 0.24 0.5 0.0 a 0.3*0.8 0.5*1.0 0.2*0.0 0.6*0.5 0.4*0.3 0.057 0.12 0.15 a 0.3*0.8 0.5*1.0 0.4*0.3 0.4*0.3 0.6*0.5 0.003 0.033 0.036 b 0.3*0.8 0.5*1.0 0.4*0.3 0.4*0.3 0.6*0.5 一番尤もらしい終了状態がわかった!
  37. 38. バックトラック 1.0 0.0 0.0 s1 s2 s3 0.24 0.5 0.0 a 0.3*0.8 0.5*1.0 0.2*0.0 0.6*0.5 0.4*0.3 0.057 0.12 0.15 a 0.3*0.8 0.5*1.0 0.4*0.3 0.4*0.3 0.6*0.5 0.003 0.033 0.036 b 0.3*0.8 0.5*1.0 0.4*0.3 0.4*0.3 0.6*0.5 s1=>s1=>s2=>s3 が一番尤もらしい経路
  38. 39. Viterbi のアルゴリズムの 形態素解析への利用 <ul><li>“ 東京都”が出現したときに ,” 東京都”が出力される系列中で尤もらしいものを探す . </li></ul><ul><ul><li>開始 ->“ 東” -> “ 京都” </li></ul></ul><ul><ul><li>開始 ->“ 東京” ->” 都” </li></ul></ul><ul><ul><li>開始 ->“ 東京都” </li></ul></ul><ul><ul><ul><li>品詞連接確率が遷移確率 </li></ul></ul></ul><ul><ul><ul><li>単語の出現確率が出力する確率 </li></ul></ul></ul><ul><ul><ul><li>として Viterbi のアルゴリズムを適用 </li></ul></ul></ul>

×