言語体系とコンピュータ 第5回
今回の内容 形態素解析 英語編
文を単語に区切って品詞を決める 英語編 文を単語単位に分ける 語形変化したものを,原形に戻す. 品詞を分析(POS tagging) →単語の区切りとして空白があるので,あまり問題にならない. 略記はやや問題 語形変化したものを,原形に戻す. 品詞を分析(POS tagging) 品詞の曖昧性が多く存在するので難しい. 中心的な部分
文を単語に区切って品詞を決める(2) 実は「形態素解析」と呼ぶ分析 形態素は,語基(radical) と 接辞(affix) 接辞は,接頭辞(prefix)と接尾辞(suffix) 語は,形態素1つか,複数形態素から成る 1形態素: play, small, kind 語基だけ 複数形態素:playing → play-ing smaller → small –er 語基と接尾辞 unkind → un- kind 接頭辞と語基
文を単語に区切って品詞を決める(3) 規則変化は,変化規則を作成 不規則変化は,対応表を作成 表を元に形態素は取り出せる 実は「形態素解析」と呼ぶ分析 形態素は,語基(radical) と 接辞(affix) 接辞は,接頭辞(prefix)と接尾辞(suffix) 語は,形態素1つか,複数形態素から成る 1形態素: play, small, kind 語基だけ 複数形態素:playing → play-ing smaller → small –er 語基と接尾辞 unkind → un- kind 接頭辞と語基 規則変化は,変化規則を作成 不規則変化は,対応表を作成 表を元に形態素は取り出せる
文を単語に区切って品詞を決める(4) それよりも...英語では品詞を決める(POS tagging)が 一番難しくて重要 品詞タグづけの難しさの例: Time flies like an arrow. 光陰矢の如し Time/N flies/V like/Prep an/Det arrow/N Time/N flies/N like/V an/Det arrow/N
文を単語に区切って品詞を決める(5) Time flies like an arrow. Time/N flies/V like/Prep an/Det arrow/N 光陰矢の如し Time/N flies/N like/V an/Det arrow/N トキバエは矢を好む. トキバエ→
文を単語に区切って品詞を決める(6) Time flies like an arrow. fliesやlikeの品詞が 複数候補あるせい Time/N flies/V like/Prep an/Det arrow/N 光陰矢の如し Time/N flies/N like/V an/Det arrow/N トキバエは矢を好む. トキバエ→ fliesやlikeの品詞が 複数候補あるせい
品詞をどうやって決めるか(1) 品詞タグ付け: 尤もらしさの尺度 入力単語の列に対して尤もらしい品詞列を与える問題と考える 各語について,複数の品詞がありうる場合,どの品詞が尤もらしいか 品詞の並びによる優先度 例:「The」 の後に来る語が動詞にも名詞にもなりうる語である場合 → 名詞が優先される
品詞をどうやって決めるか(2) 既に品詞付けをしてあるコーパスを元にして,この尤もらしさを自動的に計算 品詞タグ付け: 尤もらしさの尺度 入力単語の列に対して尤もらしい品詞列を与える問題と考える 尤もらしさの尺度 各語について,複数の品詞がありうる場合,どの品詞が尤もらしいか 品詞の並びによる優先度 例:「The」 の後に来る語が動詞にも名詞にもなりうる語である場合 → 名詞が優先される
品詞をどうやって決めるか(3) 確率的モデルを利用したPOS tagging 既に品詞付けをしてあるコーパスを元にして,この尤もらしさを自動的に計算 品詞タグ付け: 入力単語の列に対して尤もらしい品詞列を与える問題と考える 尤もらしさの尺度 各語について,複数の品詞がありうる場合,どの品詞が尤もらしいか 品詞の並びによる優先度 例:「The」 の後に来る語が動詞にも名詞にもなりうる語である場合 → 名詞が優先される 確率的モデルを利用したPOS tagging
品詞をどうやって決めるか(4) 考え方 入力単語列: W1, W2, W3, W4, …,Wn 例: time, flies, like, an, arrow 求めたい品詞列: C1, C2, C3, C4, … , Cn 例: N, V, Prep, Det, N P(C1, C2, C3, C4, … , Cn | W1, W2, W3, W4, …,Wn) という条件付確率が最大になる品詞の並び(が求めたい品詞の並び)
品詞をどうやって決めるか(5) 考え方 入力単語列: W1, W2, W3, W4, …,Wn 例: time, flies, like, an, arrow 求めたい品詞列: C1, C2, C3, C4, … , Cn 例: N, V, Prep, Det, N P(C1, C2, C3, C4, … , Cn | W1, W2, W3, W4, …,Wn) という条件付確率が最大になる品詞の並び(が求めたい品詞の並び) 単語列が(W1, W2, W3, W4, …,Wn)であるときに 品詞列が(C1, C2, C3, C4, … , Cn)である確率 (事後確率)
品詞をどうやって決めるか(6) 例で考えると... W1, W2, W3, W4, W5 Time flies like an arrow 入力単語列 C1, C2 , C3, C4, C5 Noun Noun Verb Det Noun 可能性の Noun Verb Prep Det Noun ある Noun Noun Adj Det Noun 品詞列 … 「確率的に一番高いものを選ぶ」ということ
品詞をどうやって決めるか(7) 計算の仕方 最初の式を ベイズの定理によって変形 P(C1, C2, C3, C4, … , Cn | W1, W2, W3, W4, …,Wn) ベイズの定理によって変形 P(A|B) = P(A) P(B|A) / P(B) P(C1, C2, C3, C4, … , Cn )×P( W1, W2, W3, W4, …,Wn| C1, C2, C3, C4, … , Cn ) P(W1, W2, W3, W4, …,Wn)
品詞をどうやって決めるか(8) 計算の仕方 最初の式を ベイズの定理によって変形 P(C1, C2, C3, C4, … , Cn | W1, W2, W3, W4, …,Wn) ベイズの定理によって変形 P(A|B) = P(A) P(B|A) / P(B) P(C1, C2, C3, C4, … , Cn )×P( W1, W2, W3, W4, …,Wn| C1, C2, C3, C4, … , Cn ) P(W1, W2, W3, W4, …,Wn) 分母のP(W1..)は品詞(C)と無関係≒結果に影響を与えないので考えない
品詞をどうやって決めるか(9) 計算の仕方 × P(C1, C2, C3, C4, … , Cn ) × P( W1, W2, W3, W4, …,Wn| C1, C2, C3, C4, … , Cn ) を最大にする品詞列だとして計算する
品詞をどうやって決めるか(10) 計算の仕方(実際) 第1項:P(C1, C2, C3, C4, … , Cn)の部分から こういう品詞列が出現する確率 を計算するのだが.. こんな長い品詞列を直接扱うのは困難 (十分なデータがない) →bigram で 近似
品詞をどうやって決めるか(11) 第1項:P(C1, C2, C3, C4, … , Cn)の部分 →bigram で 近似 Time flies like an arrow C1, C2 , C3, C4, C5
品詞をどうやって決めるか(12) 第1項:P(C1, C2, C3, C4, … , Cn)の部分 →bigram で 近似 Time flies like an arrow C1, C2 , C3, C4, C5 P(C1, C2, C3, C4, … , Cn) ~=ΠP(Ci | Ci-1) i=0からnまで C0=φ架空の品詞 で計算
品詞をどうやって決めるか(13) 第2項 P( W1, W2, W3, W4, …,Wn| C1, C2, C3, C4, … , Cn )も近似 time{N, Adj, V} flies{N, V} like{Adj,Prep,Adv,Conj,N} P(time | N) P(flies|N) P(like|Adj) P(time | Adj) P(flies|V) P(like|Prep) P(time | V) P(like|Adv) P(like|Conj) P(like|N) P( W1, W2, W3, W4, …,Wn| C1, C2, C3, C4, … , Cn ) ~=Π P(Wi | Ci) i=0からnまで
品詞をどうやって決めるか(14) 全体として ΠP(Ci | Ci-1) × P(Wi | Ci) とする i=1~n この計算は,品詞付きのコーパスがあればできる
品詞をどうやって決めるか(15) P(Ci | Ci-1) 品詞Ci-1に続いてCiが出る確率 = freq(Ci-1, Ci) / freq(Ci-1) ↑ Ci-1の出現回数 Ci-1, Ciという順番の並びの出現回数 P(N|φ) = f(φ,N) / f(φ) = 392/685 = 0.57 P(N|det) = f(det, N) / f(det) = 1050/1102 = 0.95 ...なんて計算する
品詞をどうやって決めるか(16) WiがCiとして出現する回数 P(Wi | Ci) ある品詞Ciとして単語Wiが出る確率 = freq(Wi as Ci) / freq(Ci) ↑ 品詞Ciの出現回数 WiがCiとして出現する回数 P(time | N) = f(time as N) / f(N) = 13/ 3481 = 0.0037 P(time | prep) = f(time as Prep) / f(Prep) = 7/1405 = 0.0050 ...なんて計算ができる
確率の計算 あらかじめ計算可能 Webで この表から, 英語文の単語と品詞の隠れマルコフモデル (HMM,Hidden Markov Model)が作成される
状態遷移図 HMMの 状態遷移図例 ここまでは 予め 用意可能
品詞を決める-実践(1) 各品詞の並びと,その並び安さを示した確率を計算した いよいよ → 状態遷移図も手に入った → 状態遷移図も手に入った いよいよ Time flies like an arrow の品詞を決める
品詞を決める-実践(2) まず,開始の○にΦを書く Φ
品詞を決める-実践(3) 最初の単語 time の品詞を調べる Φ time/N 0.0037 品詞Nがtimeである確率 0.0037 ここまでの出現確率 0.57×0.0037=0.0021 0.57 × 0.0037 = 0.0021 time/N 0.0037 Φ 0.57
品詞を決める-実践(4) 次の単語 files の品詞を調べる → 今回の例では NとV flies/N Φ time/N 0.0006 0.000000048 0.57 × 0.0037 = 0.0021 flies/N 0.0006 time/N 0.0037 0.00080 Φ 0.57 0.38 flies/V 0.0013 0.31 0.00065 0.00000085
品詞を決める-実践(5) この先に追加!→ 次の単語 likes の品詞を調べる → 今回の例では NとV とPrep flies/N Φ 0.000000048 0.57 × 0.0037 = 0.0021 flies/N 0.0006 time/N 0.0037 0.00080 Φ 0.57 0.38 flies/V 0.0013 0.31 0.00065 この先に追加!→ 0.00000085
品詞を決める-実践(6) 最後の単語 arrow まで続ける → 最終的には可能性のある組み合せが全部出る flies/N Φ time/N → 最終的には可能性のある組み合せが全部出る 0.000000048 0.57 × 0.0037 = 0.0021 flies/N 0.0006 time/N 0.0037 0.00080 Φ 0.57 0.38 flies/V 0.0013 0.31 0.00065 0.00000085
品詞を決める-実践(7)