第2章 演習問題解答例

 

演習1  演習2  演習3  演習4  演習5  演習6  演習7  演習8

 

演習1 

(1-1) 「彼だけに話した」

(1-2) 「彼にだけ話した」

(2-1) 「その病気は、この薬だけで治せる」

(2-2) 「その病気は、この薬でだけ治せる」

のように,「だけに」と「にだけ」,「だけで」と「でだけ」はどちらも正しい表現である.したがって,2単語間の連接可能性を使って文節の文法を記述すると次のように繰り返しを行った表現も正しい文節として認めることになる.

              「彼にだけにだけにだけに」

              「この薬だけでだけでだけで」

 

演習2 (下の線が1行に収まるようにウィンドウを広げてください)

--------------------------------------------------------------------------------------------------------------------------------------------

              agenda                                            open                                                                            result

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

step.1                                                             [(0,0,δ)]                                                                      []

step.2                                                             []                                                                                  [(0,0,δ)]

step.4     []                                                      []                                                                                  [(0,0,δ)]

step.5     [(0,1,),(0,2,怪我)]                         []                                                                                  [(0,0,δ)]

step.7     []                                                      [(0,2,怪我),( 0,1,)]                                                    [(0,0,δ)]

step.2     []                                                      [( 0,1,)]                                                                     [(0,0,δ),( 0,2,怪我)]

step.4     []                                                      [( 0,1,)]                                                                     [(0,0,δ),( 0,2,怪我)]

step.5     [(2,2,δ),(2,3,)]                             [( 0,1,)]                                                                     [(0,0,δ),( 0,2,怪我)]

step.7     []                                                      [(2,3,), (2,2,δ),(0,1,)]                                           [(0,0,δ),( 0,2,怪我)]

step.2     []                                                      [(2,2,δ),(0,1,)]                                                         [(0,0,δ),(0,2,怪我) ,(2,3,)]

step.4     []                                                      [(2,2,δ),(0,1,)]                                                         [(0,0,δ),(0,2,怪我) ,(2,3,)]

step.5  [(3,3,δ)]                                          [(2,2,δ),(0,1,)]                                                         [(0,0,δ),(0,2,怪我) ,(2,3,)]

step.7     []                                                      [(3,3,δ),(2,2,δ),(0,1,)]                                            [(0,0,δ),(0,2,怪我) ,(2,3,)]

step.2     []                                                      [(2,2,δ),(0,1,)]                                                         [(0,0,δ),(0,2,怪我) ,(2,3,),(3,3,δ)]

step.4     []                                                      [(2,2,δ),(0,1,)]                                                         [(0,0,δ),(0,2,怪我) ,(2,3,),(3,3,δ)]

step.5  [(3,6,治す),(3,5,なお),( 3,4)]        [(2,2,δ) ,(0,1,)]                                                        [(0,0,δ),(0,2,怪我) ,(2,3,),(3,3,δ)]

step.7     []                                                      [(3,4),(3,5,なお),( 3,6,治す),(2,2,δ),(0,1,)]          [(0,0,δ),(0,2,怪我) ,(2,3,),(3,3,δ)]

step.2     []                                                      [(3,5,なお),( 3,6,治す),(2,2,δ),(0,1,)]                       [(0,0,δ),(0,2,怪我) ,(2,3,),(3,3,δ), (3,4)]

step.4     []                                                      [(3,5,なお),( 3,6,治す),(2,2,δ),(0,1,)]                       [(0,0,δ),(0,2,怪我) ,(2,3,),(3,3,δ),(3,4)]

step.5     [(4,4,δ)]                                          [(3,5,なお),( 3,6,治す),(2,2,δ),(0,1,)]                       [(0,0,δ),(0,2,怪我) ,(2,3,),(3,3,δ),(3,4)]

step.7     []                                                      [(4,4,δ),(3,5,なお),( 3,6,治す),(2,2,δ),(0,1,)]          [(0,0,δ),(0,2,怪我) ,(2,3,),(3,3,δ),(3,4)]

step.2     []                                                      [(3,5,なお),( 3,6,治す),(2,2,δ),(0,1,)]                       [(0,0,δ),(0,2,怪我) ,(2,3,),(3,3,δ),(3,4),(4,4,δ)]

step.4     []                                                      [(3,5,なお),( 3,6,治す),(2,2,δ),(0,1,)]                       [(0,0,δ),(0,2,怪我) ,(2,3,),(3,3,δ),(3,4),(4,4,δ)]

step.5     [(4,6,押す),(4,6,)]                         [(3,5,なお),( 3,6,治す),(2,2,δ),(0,1,)]                       [(0,0,δ),(0,2,怪我) ,(2,3,),(3,3,δ),(3,4),(4,4,δ)]

step.7     []                                                      [(4,6,),(4,6,押す),(3,5,なお),( 3,6,治す),                   [(0,0,δ),(0,2,怪我) ,(2,3,),(3,3,δ),(3,4),(4,4,δ)]

(2,2,δ),(0,1,)]

step.2     []                                                      [(4,6,押す),(4,4,δ),(3,5,なお),( 3,6,治す),                   [(0,0,δ),(0,2,怪我) ,(2,3,) ,(3,3,δ),(3,4),(4,4,δ),

(2,2,δ),(0,1,)]                                                      (4,6,)]

step.3     終了

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

演習3 

解析を失敗する原因は,入力文中の未登録語(システムの単語辞書に登録されていない単語,未知語ともいう.)である.ただし,入力文字列に未登録語が存在していても解析が失敗するとは限らない.単語の集合{怪我(けが),毛(け),蛾(が),を}と入力文字列「けがを」について考えてみる.

(1)「怪我」が未登録語の場合

              システムの単語辞書には{毛(け),蛾(が),を}が登録されているので「けがを」は「毛 蛾 を」と解析される.

(2)「怪我」と「蛾」が未登録語の場合

              システムの単語辞書には{毛(け),を}しか登録されていないので解析に失敗する.「怪我」と「毛」が未登録語の場合も同様に解析に失敗する.

 

演習4 

例えば,演習2の解答例では,位置3で実行される1回目のstep.52回目のstep.5で同じ位置での辞書検索が行われている.この問題を回避する方法としては次のようなものが考えられる.

(1) 単語辞書を自立語辞書と付属語辞書に分割し,step.5における辞書検索を次のように場合分けする.

              if(Ml = δ)           自立語辞書を検索する

              else                      付属語辞書を検索する

(2) 次のように,文節内の連接可能性関数cを文内の連接可能性関数Cに拡張して,ダミーの形態素δの使用を止める.

              c(w1,w2)=1 または (c(w1,δ)=1 かつ c(δ,w2)=1) ならば C(w1,w2)=1 である

              そうでないならば C(w1,w2)=0 である

 

演習5 

(24) けがながい

(24)を図2.10に示したアルゴリズムで解析すると次のラティス構造が展開される.形態素間の接続コストを1とし,δとの接続コストを0とすると図中の太線で示した「怪我 長い」が最小コスト解になる.

 

 

図中,赤い線はδを介在する接続を示しているが,例えば,

              c(名詞,δ) = 20

              c(助詞,δ) = 0

              c(δ,w) = 0

として,後続するδとの接続コストで文節末らしさを与える(名詞は文節末になりにくいが,助詞は文節末になりやすい)と,最小コスト解は次の図に示すように「毛 が 長い」となる.

 

 

演習6 解析表を作成するアルゴリズムを次に示す.解析表ができたら単純な深さ優先のアルゴリズムですべての文節を取り出すことができる.

 

step.1  T( i ) = φ ( i = j, j+1, , n) ;

step.2  文字列 cj+1cj+2cn の先頭から始まるすべての自立語 M (morph(cj+1cj+2ck,M)) について2項組 ( j, M) を作成して集合 T(k) に追加する.

step.3  i = j+1 から始めて i<n のあいだ i 1ずつ増やしながら,step.3-1を繰り返す.

step.3-1           T( i )≠φならば,文字列 ci+1ci+2ck の先頭から始まるすべての付属語 M (morph(ci+1ci+2ck,M)) について,c(Ml,M)=1となる2項組(m,Ml) が集合T( i )に存在するならば,2項組 ( j, M) を作成して集合 T(k) に追加する.

 

演習7 

を常に満たすためには k+1番目の文字から最後の文字(n番目の文字)までの文字数 nk と形態素の最大長(文字数)L,形態素のとるコストの最小値Cよりとなる.

 

演習8 

 

状態 00, 01, 10, 11である確率をそれぞれ  とする.

             

この連立方程式を解くと

             

となる.これより,

             

したがって,図2.21の遷移確率は次のようになる.

2.22の状態Aは図2.20の状態0011を縮退したもので,状態Bは状態0110を縮退したものである.したがって,

             

ここで,と同じく状態AからBに遷移する確率であるから,

             

したがって,図2.22は次のようになる.