ことばとコンピュータ

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