ことばとコンピュータ

ことばとコンピュータ
2007年度1学期
第3回
本日の内容
• 前回のおさらい
– 文を単語に区切って品詞を決める
• 日本語編
• 文を単語に区切って品詞を決める
– 英語編
2
前回のおさらい(1)
• 文を単語に区切って,品詞を決める
– 日本語編
• 「このひとことで元気になった」
→この/ひとこと/で/元気/に/なっ/た
連体詞
名詞 助詞 名詞 助詞 動詞 助動詞
3
おさらい(2)
• 日本語は一般に,語の区切り,空白がない
→単語を切り出す ※最も重要で難しい
語形変化したものを基本形にする
単語に品詞を付与
4
おさらい(3)
コンピュータには文字以上のことはわからない
少なくとも
「単語」を知る必要がある
無理のない単語の並びを知る必要がある
5
おさらい(4)
単語辞書と連接規則
• 単語辞書
– 単語の基本形,読み,品詞,活用の型など
を記述したもの
• 連接規則
– 連接(連続して接する)可能な2つの単語の
タイプ(主に,品詞とその活用の型)を
記述したもの
6
おさらい(5)
道具と手続き
• 単語を知る道具
• 単語の連接を確かめる規則
は揃ったとして,
次は,どうやって,それらを使って実際に
文を単語に区切って,品詞の付与を行うか?
→アルゴリズム(手続き)
7
おさらい(6)
コスト最小法による形態素解析
• 実際にやりながら学習
0
こ1の2 ひ3 と4 こ5 と6 で7 元8 気9 に10な11 っ12 た13
最初はどこでも切れる可能性がある!
0の場所からスタート
8
おさらい(7)
• コスト最小法による形態素解析
0
こ1の2 ひ3 と4 こ5 と6 で7 元8 気9 に10な11 っ12 た13
最初はどこでも切れる可能性がある!
0の場所からスタート
「こ」から始まる
単語を単語辞書
で調べる
9
おさらい(8)
• コスト最小法による形態素解析
0
こ1の2 ひ3 と4 こ5 と6 で7 元8 気9 に10な11 っ12 た13
最初はどこでも切れる可能性がある!
0の場所からスタート
「こ」から始まる
単語を単語辞書
で調べる
「こ」(接尾辞),「こ」(名詞),「この」(連体詞)
の3つを発見!
10
おさらい(8)
• コスト最小法による形態素解析
0
こ1の2 ひ3 と4 こ5 と6 で7 元8 気9 に10な11 っ12 た13
最初はどこでも切れる可能性がある!
0の場所からスタート
文頭との接続が
許されるかどうか
連接規則を見る
「こ」(接尾辞),「こ」(名詞),「この」(連体詞)
の3つを発見!
11
おさらい(9)
• コスト最小法による形態素解析
0
こ1の2 ひ3 と4 こ5 と6 で7 元8 気9 に10な11 っ12 た13
最初はどこでも切れる可能性がある!
0の場所からスタート
文頭との接続が
許されるかどうか
連接規則を見る
「こ」(接尾辞),「こ」(名詞),「この」(連体詞)
の3つを発見!
12
おさらい(10)
50
名詞40
0
こ
10
10
文
頭 10
10
こ の
ラティスを
作っていく
連体詞10
20
13
おさらい(11)
30+40=70
名詞40
50
名詞40
こ
10
0
70
助詞10
60
の
ひ
80
10
10
80
10
文 10
頭
10
10
こ の
連体詞10
20
30
10
30
10
30+40=70
名詞40
ひと
文
末
80 30+40=70
10 名詞40
30
10
ひとこと
14
おさらい(12)
30+40=70
名詞40
50
名詞40
こ
10
0
70
助詞10
60
の
ひ
80
10
10
80
10
文 10
頭
10
10
こ の
連体詞10
20
30
10
30
10
30+40=70
名詞40
ひと
ここを完成
さた!
文
末
80 30+40=70
10 名詞40
30
10
ひとこと
15
この/ひとこと/で/元気/に/なっ/た
連体詞
名詞
助詞 名詞 助詞 動詞 助動詞
16
文を単語に区切って品詞を決める
英語編
• 文を単語単位に分ける
→単語の区切りとして空白があるので,あまり問
題にならない. 略記はやや問題
• 語形変化したものを,原形に戻す.
• 品詞を分析(POS tagging)
– 品詞の曖昧性が多く存在するので難しい.
– 中心的な部分
17
文を単語に区切って品詞を決める(2)
• 実は「形態素解析」と呼ぶ分析
• 形態素は,語基(radical) と 接辞(affix)
– 接辞は,接頭辞(prefix)と接尾辞(suffix)
• 語は,形態素1つか,複数形態素から成る
– 1形態素:
play, small, kind
語基だけ
– 複数形態素:playing → play-ing
smaller → small –er 語基と接尾辞
unkind → un- kind 接頭辞と語基
18
文を単語に区切って品詞を決める(3)
• 実は「形態素解析」と呼ぶ分析
• 形態素は,語基(radical)
と 接辞(affix)
•規則変化は,変化規則を作成
– 接辞は,接頭辞(prefix)と接尾辞(suffix)
•不規則変化は,対応表を作成
• 語は,形態素1つか,複数形態素から成る
– 1形態素:
play, small, kind
語基だけ
表を元に形態素は取り出せる
– 複数形態素:playing → play-ing
smaller → small –er 語基と接尾辞
unkind → un- kind 接頭辞と語基
19
文を単語に区切って品詞を決める(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
20
文を単語に区切って品詞を決める(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
• トキバエは矢を好む.
トキバエ→
21
文を単語に区切って品詞を決める(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やlikesの品詞が
トキバエ→
複数候補あるせい
22
品詞をどうやって決めか(1)
• 品詞タグ付け:
– 入力単語の列に対して尤もらしい品詞列を与え
る問題と考える
• 尤もらしさの尺度
– 各語について,複数の品詞がありうる場合,どの
品詞が尤もらしいか
– 品詞の並びによる優先度
• 例:「The」 の後に来る語が動詞にも名詞にもなりうる
語である場合 → 名詞が優先される
23
品詞をどうやって決めか(2)
既に品詞付けをしてあるコーパスを元
• 品詞タグ付け:
にして,この尤もらしさを自動的に計算
– 入力単語の列に対して尤もらしい品詞列を与え
る問題と考える
• 尤もらしさの尺度
– 各語について,複数の品詞がありうる場合,どの
品詞が尤もらしいか
– 品詞の並びによる優先度
• 例:「The」 の後に来る語が動詞にも名詞にもなりうる
語である場合 → 名詞が優先される
24
品詞をどうやって決めか(3)
既に品詞付けをしてあるコーパスを元
• 品詞タグ付け:
にして,この尤もらしさを自動的に計算
– 入力単語の列に対して尤もらしい品詞列を与え
る問題と考える
確率的モデルを利用
• 尤もらしさの尺度 したPOS tagging
– 各語について,複数の品詞がありうる場合,どの
品詞が尤もらしいか
– 品詞の並びによる優先度
• 例:「The」 の後に来る語が動詞にも名詞にもなりうる
語である場合 → 名詞が優先される
25
品詞をどうやって決めるか(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)
という条件付確率が最大になる品詞の並び(が求めたい品
詞の並び)
26
品詞をどうやって決めるか(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)である確率
(事後確率)
27
品詞をどうやって決めるか(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 品詞列
…
「確率的に一番高いものを選ぶ」ということ
28
品詞をどうやって決めるか(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)
29
品詞をどうやって決めるか(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)と無関係≒結果に影響を与えな
いので考えない
30
品詞をどうやって決めるか(9)
• 計算の仕方
P(C1, C2, C3, C4, … , Cn )
×
P( W1, W2, W3, W4, …,Wn| C1, C2, C3, C4, … , Cn )
を最大にする品詞列だとして計算する
31
品詞をどうやって決めるか(10)
• 計算の仕方(実際)
– 第1項:P(C1, C2, C3, C4, … , Cn)の部分から
• こういう品詞列が出現する確率 を計算するのだが..
• こんな長い品詞列を直接扱うのは困難
(十分なデータがない)
→bigram で 近似
32
品詞をどうやって決めるか(11)
第1項:P(C1, C2, C3, C4, … , Cn)の部分
→bigram で 近似
Time
flies
C1,
C2 ,
like
C3,
an
C4,
arrow
C5
33
品詞をどうやって決めるか(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
34
品詞をどうやって決めるか(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)
35
品詞をどうやって決めるか(14)
• 全体として
ΠP(Ci | Ci-1) × P(Wi | Ci) とする
i=1~n
– この計算は,品詞付きのコーパスがあればできる
36
品詞をどうやって決めるか(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
...なんて計算する
37
品詞をどうやって決めるか(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
...なんて計算ができる
38
確率の計算
• あらかじめ計算可能
– Webで
– この表から,
英語文の単語と品詞の隠れマルコフモデル
(HMM,Hidden Markov Model)が作成される
39
状態遷移図
• HMMの
状態遷移図例
ここまでは
予め
用意可能
40
品詞を決める-実践(1)
• 各品詞の並びと,その並び安さを示した確率
を計算した
→ 状態遷移図も手に入った
• いよいよ
– Time flies like an arrow の品詞を決める
41
品詞を決める-実践(2)
• まず,開始の○にΦを書く
Φ
42
品詞を決める-実践(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
43
品詞を決める-実践(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
44
品詞を決める-実践(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
45
品詞を決める-実践(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
46
品詞を決める-実践(7)
47