狠狠撸

狠狠撸Share a Scribd company logo
Foundations of Statistical Natural
Language Processing
5 Collocations
宮澤 彬
総合研究大学院大学 博士前期
miyazawa-a@nii.ac.jp
March 2, 2015
(modi?ed: August 29, 2015)
コロケーションとは
“Collocations of a given word are statements of the habitual or customary
places of that word.” by John Rupert Firth
「ある語のコロケーションとは(個人の)習慣的あるいは(文化の)慣
例的なその語の(置かれる)場所である.」
コロケーションとは
母語話者でないとなかなか分からない微妙な使い分け
「ご飯を炊く」と言うが「ほうれん草を炊く」とは言わない
「抹茶を点てる」や「風呂を点てる」などとは言うが
「インスタントコーヒーを点てる」とは言わない
コロケーションは構成的でない.表現が構成的であるとは部分の意味か
ら全体の意味を推測できること.
不正確な表現ではあるが · を『意味』とすれば
sunny and warm = sunny ∧ warm
のようなものは構成的で
腹を立てる = 立てる ( 腹 )
のようなものは構成的でない.
5.1 Frequency
コロケーションを見つけるためにはコーパス中の N グラムで発生頻度
が高いものを集めればよい.しかし N グラムの頻度を単純に数えると
上位がほとんど of the, in the のような機能語の組み合わせで占められ
てしまい,有用な情報が得られない.
これを解決する 1 つの方法は,特定の品詞の組み合わせのみを抽出する
ことである.
Tag Pattern Example
A N commutative ring
N N Banach space
A A N stochastic di?erential equation
A N N normed vector space
N A N Jordan measurable set
N N N probability density function
N P N convergence in probability
New York や United States のような複合語が抽出されやすい.
5.1 Frequency
バイグラムの最初の単語を strong に限定したものと powerful に限定し
たものとを比較することでこれら2つの語の使い分けについて知ること
ができる.
w C(strong, w) w C(powerful, w)
support 50 force 13
safty 22 computers 10
sales 21 position 8
opposition 19 men 8
showing 18 computer 8
sense 18 man 7
英作文で使いたい動詞と一緒に使うべき前置詞が分からないとき,いく
つかの適当な前置詞と組み合わせたものを Google で検索して,その
ヒット件数で正解を決めることと似ている.
5.2 Mean and Variance
語の共起は連続しているとは限らず,N グラムの頻度をただ数えるだけ
では不十分である.
(a) she knocked on his door
(b) they knocked at the door
(c) 100 women knocked on Donaldson's door
(d) a man knocked on the metal front door
しかし,規則性がないわけではない.実際このような文脈で knocked の
代わりに hit や beat は普通使わない.
5.2 Mean and Variance
離れた位置にあるコロケーションを扱うために,各単語の前後の N 個
(通常 N = 3 または N = 4)の単語で組を作る.こうして得られたすべ
てのバイグラムを通常バイグラムと同様に扱えばよい.
Sentence: Stocks crash as rescue plan teeters
stocks crash stocks as stocks rescue
crash as crash rescue crash plan
as rescue as plan as teeters
rescue plan plan teeters
5.2 Mean and Variance
knocked と door の関係を知る方法として,2 語の符号付き距離の平均
と分散を求める方法がある.前頁の例文 (a)-(d) で knocked から door
までの符号付き距離(door が knocked の後ろにあるときを正,前にあ
るときを負とする)の標本平均を計算すると
1
4
(3 + 3 + 5 + 5) = 4
である.また標本分散は
s2
=
1
N ? 1
N
i=1
di ? d
2
=
1
3
(3 ? 4)2
+ (3 ? 4)2
+ (5 ? 4)2
+ (5 ? 4)2
=
4
3
であるが,コロケーションに関する評価では慣例的に標準偏差を用いる
ので,これを計算して次を得る.
s =
2
√
3
≈ 1.15.
5.2 Mean and Variance
こうして得られた平均と標準偏差をどのように解釈するか?
平均が 1 に近く,標準偏差が 0 に近い
連続した 2 語として現れやすい
New, York d = 0.97, s = 0.43
平均が 1 よりもずっと大きく,標準偏差が 0 に近い
間隔を空けて使われる表現が定型化している
previous, games d = 1.83, s = 0.48 → privious N games
平均が 0 に近く,標準偏差が大きい
あまり関連がない
editorial, Atlanta d = 0.44, s = 4.03
5.2 Mean and Variance
度数分布図を描くと直感的に分かりやすい.
?4?3?2?1 0 1 2 3 4
20
50
Position of strong with respect to support d = ?1.45, s = 1.07
frequencyofstrong
?4?3?2?1 0 1 2 3 4
20
50
Position of strong with respect to support d = ?1.12, s = 2.15
frequencyofstrong
5.3 Hypothesis Testing
頻度が多い単語 2 語の組み合わせを多く見つけた場合,他の組み合わせ
と比較して多いかどうかが知りたい.そこでコロケーションについて検
定を行うことにする.
検定のため簡単なモデルを考える.トークン 1 つを 1 回の試行とし,
特定の語 w の出現を成功と捉える Bernoulli 試行とみなす.N 個の
トークン(つまり N 回の試行)のうちに w が n 回出現するとする.
Bernoulli 分布のパラメータ p の最尤推定量 P(w) は
arg max
?∈(0,1)
log ?n
(1 ? ?)N?n
=
n
N
で求められるから,例えば p. 166 にデータが示されている unsalted
と butter の出現する確率は
P(unsalted) =
20
14307668
, P(butter) =
320
14307668
であると考えられる.
5.3 Hypothesis Testing
興味があるのはこれらが共起する場合である.そこで N 個のトークン
の列を N 個のバイグラムの並び(文頭または文末のどちらか一方だけ
に特殊な記号を追加?)と捉えて,各バイグラムを 1 回の試行とし,特
定のバイグラムの出現を成功とする Bernoulli 試行とみなす.これらの
出現が独立であるという帰無仮説を立てて検定を行う.
H0 : P(unsalted butter) = P(unsalted)P(butter)
H0 が正しいならば,i 回目の結果を表す確率変数を Xi : ? → {0, 1}
としたとき
X1, . . . , XN
i.i.d.
~ Bern (p := P(unsalted)P(butter))
である.N が大きいので de Moivre Laplace の定理により
Z :=
N
i=1 Xi ? Np
Np(1 ? p)
approx.
~ N(0, 1)
が成り立つから,以下では Z ~ N(0, 1) として検定を行う.
5.3.1 The t test
p が 0 に近いので p(1 ? p) p が成り立つ.ゆえに観測値を
x1, . . . , xn とすると
Z
N
i=1 xi ? Np
√
Np
=
20 ? 24 · 320/14307668
24 · 320/14307668
≈ 863
となる.以下の計算により H0 は有意水準 1%で棄却される.したがっ
て unsalted butter はコロケーションであるといえる.
>>> import scipy.stats
>>> scipy.stats.norm.cdf(863)
1.0
scipy.stats.norm.cdf(x)
=
x
?∞
1
√
2π
e? t2
2 dt
O x
t
5.3.1 The t test
教科書では t 値を用いて検定を行なっているが,
X1, . . . , XN がそれぞれ独立に同一の正規分布に従う.
母分散 σ2
が未知である.
が成立していないので t 値を使うのは不適当である.
しかし
When the expected cooccurrence frequency E11
(under H0) is small, z-score values can become very
large, leading to highly in?ated scores for
low-frequency pair types. The cause of this problem
can be traced back to the denominator of the z-score
equation, where E11 is the (approximate) variance of
X11 under the point null hypothesis of independence.
http://www.collocations.de/AM/section4.html
5.3.1 The t test
さらに
The t test and other statistical tests are most useful
as a method for ranking collocations. The level of
signi?cance itself is less useful. In fact, in most
publications that we cite in this chapter, the level of
signi?cance is never looked at. All that is used is the
scores and the resulting ranking.
Foundations of Statistical Natural Language
Processing p. 166
5.3.2 Hypothesis testing of di?erences
母集団の平均の差に関する検定(量)により,似たような意味を持つ2
つの語の使い分けについて知ることができる.N(?x, σ2
x) に従う母集団
からの大きさ Nx の標本平均を X,N(?y, σ2
y) に従う母集団からの大き
さ Ny の標本平均を Y とする.正規分布の重ね合わせの性質より,
Z :=
X ? Y ? (?x ? ?y)
σ2
x
Nx
+
σ2
y
Ny
~ N(0, 1)
が成り立つ.帰無仮説を H0 : ?x = ?y として検定を行いたいところで
あるが,前頁で見たように検定にはあまり興味がない.知りたいのは
?x = ?y のときの Z である.今回の設定では,比較したい(似ている)
単語を v1
, v2
とし,それ以外の各単語 w について
Z
P v1
w ? P v2
w
P (v1w)
Nx
+
P (v2w)
Ny
=
C v1
w ? C v2
w
C (v1w) + C (v2w)
を計算する.ここでは Nx = Ny であることを使った.
5.3.2 Hypothesis testing of di?erences
Z C(w) C(strong w) C(powerful w) w
?3.1622 933 0 10 :::::::::
computers
?2.8284 2337 0 8 computer
?2.4494 289 0 6 symbol
?2.4494 588 0 6 machines
?2.2360 2266 0 5 Germany
...
4.0249 1093 19 1 opposition
4.5825 3741 21 0 sales
4.6904 986 22 0 safety
6.3257 3616 58 7 enough
7.0710 3685 50 0 :::::::
support
このランキングから powerful が computer のような実体のあるものの強
さを表し,strong が support のような内面的な強さを表している傾向を
つかむことができる.
5.3.3 Pearson?s chi-square test
t 検定が使えるのは母集団が正規分布していると仮定できる場合のみで
ある.しかし実際のところ,普通はそのように仮定することができな
い.代替手段として分割表を用いた独立性の検定をコロケーションかど
うかの判定に使うことを考える.
X ?X
Y a b a + b
?Y c d c + d
a + c b + d a + b + c + d
5.3.3 Pearson?s chi-square test
χ2
:=
a ?
(a + b)(a + c)
a + b + c + d
2
(a + b)(a + c)
a + b + c + d
+
b ?
(a + b)(b + d)
a + b + c + d
2
(a + b)(b + d)
a + b + c + d
+
c ?
(c + d)(a + c)
a + b + c + d
2
(c + d)(a + c)
a + b + c + d
+
d ?
(c + d)(b + d)
a + b + c + d
2
(b + d)(a + c)
a + b + c + d
=
(ad ? bc)2
(a + b + c + d)2
(a + b)(a + c)
a + b + c + d
+
(ad ? bc)2
(a + b + c + d)2
(a + b)(b + d)
a + b + c + d
+
(ad ? bc)2
(a + b + c + d)2
(c + d)(a + c)
a + b + c + d
+
(ad ? bc)2
(a + b + c + d)2
(b + d)(a + c)
a + b + c + d
5.3.3 Pearson?s chi-square test
χ2
=
1
(a + b + c + d)(a + b)(c + d)(a + c)(b + d)
((ad ? bc)2
((c + d)(b + d) + (c + d)(a + c)+
(a + b)(b + d) + (a + b)(c + d)))
=
(a + b + c + d)(ad ? bc)2
(a + b)(c + d)(a + c)(b + d)
5.3.3 Pearson?s chi-square test
帰無仮説として
H0 : unsalted と butter の出現は独立である.
を設定する.
unsalted ?unsalted
butter 20 300 320
?butter 4 14307344 14307348
24 14307644 14307668
χ2
=
14307668(20 · 14307344 ? 300 · 4)2
320 · 14307348 · 14307644 · 24
≈ 745169
χ2
が df = (2 ? 1)(2 ? 1) = 1 の χ2
分布における片側 1%点 6.63 より
も大きいので,H0 は棄却される.つまり unsalted と butter の出現は独
立とはいえず,したがって unsalted butter はコロケーションであるとい
える.
5.3.3 Pearson?s chi-square test
>>> import numpy as np
>>> import scipy.stats
>>> chi2, p, dof, expected = 
scipy.stats.chi2_contingency(np.array(
[[20,300],[4,14307344]]),correction=False)
>>> chi2, p, dof
(745168.95831120119, 0.0, 1)
scipy.stats.chi2.cdf(x, k)
=
x
0
t(k/2?1)
e(?t/2)
2(k/2)Γ(k/2)
dt
O
x
カイ二乗検定(量)のコロケーション以外の応用として,コーパスの類
似度の計測や,対訳コーパスの中の訳語の発見などがある.
5.3.4 Likelihood ratios
疎なデータに対してはカイ二乗検定より,尤度比を使ったほうがよい
(Dunning 1993).
w2 ?w2
w1 c12 c1 ? c12 c1
?w1 c2 ? c12 (N ? c1) ? (c2 ? c12) N ? c1
c2 c2 N
p1 := P(w2|w1),p2 := P(w2|?w1) とするとき,
H1 : p1 = p2 , H2 : p1 = p2
という仮説を立てる.
5.3.4 Likelihood ratios
H2 が正しいと仮定するとすると最尤推定量は以下のようになる.
L(H2) :=
c1
c12
pc12
1 (1 ? p1)c1?c12
N ? c1
c2 ? c12
pc2?c12
2 (1 ? p2)(N?c1)?(c2?c12)
=
c1
c12
c12
c1
c12
1 ?
c12
c1
c1?c12
N ? c1
c2 ? c12
c2 ? c12
N ? c1
c2?c12
1 ?
c2 ? c12
N ? c1
(N?c1)?(c2?c12)
.
5.3.4 Likelihood ratios
一方 H1 が正しいと仮定したとき最尤推定量は
L(H1) :=
c1
c12
pc12
(1 ? p)c1?c12
N ? c1
c2 ? c12
pc2?c12
(1 ? p)(N?c1)?(c2?c12)
=
c1
c12
c2
N
c12
1 ?
c2
N
c1?c12
N ? c1
c2 ? c12
c2
N
c2?c12
1 ?
c2
N
(N?c1)?(c2?c12)
である.
H1 と H2 の尤度比を λ := L(H1)/L(H2) とすると,?2 log λ は漸近的
に自由度 1 のカイ二乗分布に従うことが知られている.?2 log λ は H2
が尤もらしいとき大きい値をとる.
5.3.4 Likelihood ratios
?2 log λ C(w1
) C(w2
) C(w1
w1
) w1
w2
?3.1622 933 0 10 :::::::::
computers
?2.8284 2337 0 8 computer
?2.4494 289 0 6 symbol
?2.4494 588 0 6 machines
?2.2360 2266 0 5 Germany
尤度比と似たような概念に相対頻度比がある.2 つのコーパスの N グラ
ムにおいて相対頻度比が 1 から大きく離れたものは、主題を特徴付ける
N グラムであると考えられる.
Ratio 1990 1989 w1
w2
0.0372 2 68 East Berliners
0.0482 2 34 EAST GERMANS
5.4 Mutual Information
情報理論において相互情報量 Mutual Infomation (MI) は確率変数(の
分布)に対して定義される.しかしここでは特定の事象についての情報
量 Pointwise Mutual Information (PMI) を用いる.
I(x, y) := log2
P(xy)
P(x)P(y)
(5.11)
= log2
P(x|y)
P(x)
(5.12)
= log2
P(y|x)
P(y)
(5.13)
5.4 Mutual Information
事象 x の情報量 I(x) は
I(x) := log
1
P(x)
で定義されるのだった.これは x が稀な事象であれば大きな値をとる.
I(x, y) を (5.12) に従って解釈すると,事象 y が起こると教えられれ
ば,x が起こることについて持っている情報量が I(x, y) だけ増えると
いうことである.
I(x, y) = log
1
P(x)
? log
1
P(x|y)
= I(x) ? I(x|y)
5.4 Mutual Information
PMI は対応関係の指標として使えるのか?(その1)
フランス語において
chambre /?ɑ? mbr/ 部屋,議会
あることに注意すれば,英語?フランス語の aligned corpus において
英文中で house という語が出てくると知れば,仏文中で chambre が出
てきそうだと予想がつく.よって I(chambre|house) は大きいと考えら
れる.しかし Hansard corpus(カナダの議会の議事録から作られた
コーパス)において
P(house|chambre) < P(house|communes)
すなわち
I(chambre, house) < I(communes, house)
となってしまう.こうなってしまうのは Hansard corpus において
house の最もよく使われる用法が House of Commons(英国の下院)であ
り,それに対応するフランス語が chambre des communes だからである.
5.4 Mutual Information
PMI は対応関係の指標として使えるのか?(その2)
1. x と y が独立なとき
I(x, y) = log
P(x, y)
P(x)P(y)
= log
P(x)P(y)
P(x)P(y)
= log 1 = 0
よさそう.
2. x の出現が y の出現と一致するとき
I(x, y) = log
P(x, y)
P(x)P(y)
= log
P(y)
P(x)P(y)
= log
1
P(x)
I(x, y) は極めて頻度の低い事象で構成されているときに大きい値
になってしまう.ある程度の出現する単語でないと判断材料が足り
ない.
あまりにも低い頻度の単語については除外する方法が考えられるが,頻
度の低い語で構成されているに大きな値をとる根本的な問題が解決でき
ていない.C(w1
w2
)I(w1
w2
) のように補正をかける方法などが提案さ
れている.
5.5 The Notion of Collocation
コロケーションの定義をどう定めるか.
Non-compositionarity
white wine が「白いワイン」と言われれば違う気がする.
Non-substitutability
?「腹」と「お
なか
腹」は同じ意味だと考えられるが,「お腹を立て
る」とは言わない.
Non-modi?ability
「口を開く」(話し始める)を「口を大きく開く」などとは言
わない.
doctor - nurse のように 関連する語の組も含めることがある.固有名詞
の組合わせ(姓名など)は,語彙的なコロケーションではないが,NLP
の文脈では含めることが多い.

More Related Content

Foundations of Statistical Natural Language Processing (chapter 5)

  • 1. Foundations of Statistical Natural Language Processing 5 Collocations 宮澤 彬 総合研究大学院大学 博士前期 miyazawa-a@nii.ac.jp March 2, 2015 (modi?ed: August 29, 2015)
  • 2. コロケーションとは “Collocations of a given word are statements of the habitual or customary places of that word.” by John Rupert Firth 「ある語のコロケーションとは(個人の)習慣的あるいは(文化の)慣 例的なその語の(置かれる)場所である.」
  • 4. 5.1 Frequency コロケーションを見つけるためにはコーパス中の N グラムで発生頻度 が高いものを集めればよい.しかし N グラムの頻度を単純に数えると 上位がほとんど of the, in the のような機能語の組み合わせで占められ てしまい,有用な情報が得られない. これを解決する 1 つの方法は,特定の品詞の組み合わせのみを抽出する ことである. Tag Pattern Example A N commutative ring N N Banach space A A N stochastic di?erential equation A N N normed vector space N A N Jordan measurable set N N N probability density function N P N convergence in probability New York や United States のような複合語が抽出されやすい.
  • 5. 5.1 Frequency バイグラムの最初の単語を strong に限定したものと powerful に限定し たものとを比較することでこれら2つの語の使い分けについて知ること ができる. w C(strong, w) w C(powerful, w) support 50 force 13 safty 22 computers 10 sales 21 position 8 opposition 19 men 8 showing 18 computer 8 sense 18 man 7 英作文で使いたい動詞と一緒に使うべき前置詞が分からないとき,いく つかの適当な前置詞と組み合わせたものを Google で検索して,その ヒット件数で正解を決めることと似ている.
  • 6. 5.2 Mean and Variance 語の共起は連続しているとは限らず,N グラムの頻度をただ数えるだけ では不十分である. (a) she knocked on his door (b) they knocked at the door (c) 100 women knocked on Donaldson's door (d) a man knocked on the metal front door しかし,規則性がないわけではない.実際このような文脈で knocked の 代わりに hit や beat は普通使わない.
  • 7. 5.2 Mean and Variance 離れた位置にあるコロケーションを扱うために,各単語の前後の N 個 (通常 N = 3 または N = 4)の単語で組を作る.こうして得られたすべ てのバイグラムを通常バイグラムと同様に扱えばよい. Sentence: Stocks crash as rescue plan teeters stocks crash stocks as stocks rescue crash as crash rescue crash plan as rescue as plan as teeters rescue plan plan teeters
  • 8. 5.2 Mean and Variance knocked と door の関係を知る方法として,2 語の符号付き距離の平均 と分散を求める方法がある.前頁の例文 (a)-(d) で knocked から door までの符号付き距離(door が knocked の後ろにあるときを正,前にあ るときを負とする)の標本平均を計算すると 1 4 (3 + 3 + 5 + 5) = 4 である.また標本分散は s2 = 1 N ? 1 N i=1 di ? d 2 = 1 3 (3 ? 4)2 + (3 ? 4)2 + (5 ? 4)2 + (5 ? 4)2 = 4 3 であるが,コロケーションに関する評価では慣例的に標準偏差を用いる ので,これを計算して次を得る. s = 2 √ 3 ≈ 1.15.
  • 9. 5.2 Mean and Variance こうして得られた平均と標準偏差をどのように解釈するか? 平均が 1 に近く,標準偏差が 0 に近い 連続した 2 語として現れやすい New, York d = 0.97, s = 0.43 平均が 1 よりもずっと大きく,標準偏差が 0 に近い 間隔を空けて使われる表現が定型化している previous, games d = 1.83, s = 0.48 → privious N games 平均が 0 に近く,標準偏差が大きい あまり関連がない editorial, Atlanta d = 0.44, s = 4.03
  • 10. 5.2 Mean and Variance 度数分布図を描くと直感的に分かりやすい. ?4?3?2?1 0 1 2 3 4 20 50 Position of strong with respect to support d = ?1.45, s = 1.07 frequencyofstrong ?4?3?2?1 0 1 2 3 4 20 50 Position of strong with respect to support d = ?1.12, s = 2.15 frequencyofstrong
  • 11. 5.3 Hypothesis Testing 頻度が多い単語 2 語の組み合わせを多く見つけた場合,他の組み合わせ と比較して多いかどうかが知りたい.そこでコロケーションについて検 定を行うことにする. 検定のため簡単なモデルを考える.トークン 1 つを 1 回の試行とし, 特定の語 w の出現を成功と捉える Bernoulli 試行とみなす.N 個の トークン(つまり N 回の試行)のうちに w が n 回出現するとする. Bernoulli 分布のパラメータ p の最尤推定量 P(w) は arg max ?∈(0,1) log ?n (1 ? ?)N?n = n N で求められるから,例えば p. 166 にデータが示されている unsalted と butter の出現する確率は P(unsalted) = 20 14307668 , P(butter) = 320 14307668 であると考えられる.
  • 12. 5.3 Hypothesis Testing 興味があるのはこれらが共起する場合である.そこで N 個のトークン の列を N 個のバイグラムの並び(文頭または文末のどちらか一方だけ に特殊な記号を追加?)と捉えて,各バイグラムを 1 回の試行とし,特 定のバイグラムの出現を成功とする Bernoulli 試行とみなす.これらの 出現が独立であるという帰無仮説を立てて検定を行う. H0 : P(unsalted butter) = P(unsalted)P(butter) H0 が正しいならば,i 回目の結果を表す確率変数を Xi : ? → {0, 1} としたとき X1, . . . , XN i.i.d. ~ Bern (p := P(unsalted)P(butter)) である.N が大きいので de Moivre Laplace の定理により Z := N i=1 Xi ? Np Np(1 ? p) approx. ~ N(0, 1) が成り立つから,以下では Z ~ N(0, 1) として検定を行う.
  • 13. 5.3.1 The t test p が 0 に近いので p(1 ? p) p が成り立つ.ゆえに観測値を x1, . . . , xn とすると Z N i=1 xi ? Np √ Np = 20 ? 24 · 320/14307668 24 · 320/14307668 ≈ 863 となる.以下の計算により H0 は有意水準 1%で棄却される.したがっ て unsalted butter はコロケーションであるといえる. >>> import scipy.stats >>> scipy.stats.norm.cdf(863) 1.0 scipy.stats.norm.cdf(x) = x ?∞ 1 √ 2π e? t2 2 dt O x t
  • 14. 5.3.1 The t test 教科書では t 値を用いて検定を行なっているが, X1, . . . , XN がそれぞれ独立に同一の正規分布に従う. 母分散 σ2 が未知である. が成立していないので t 値を使うのは不適当である. しかし When the expected cooccurrence frequency E11 (under H0) is small, z-score values can become very large, leading to highly in?ated scores for low-frequency pair types. The cause of this problem can be traced back to the denominator of the z-score equation, where E11 is the (approximate) variance of X11 under the point null hypothesis of independence. http://www.collocations.de/AM/section4.html
  • 15. 5.3.1 The t test さらに The t test and other statistical tests are most useful as a method for ranking collocations. The level of signi?cance itself is less useful. In fact, in most publications that we cite in this chapter, the level of signi?cance is never looked at. All that is used is the scores and the resulting ranking. Foundations of Statistical Natural Language Processing p. 166
  • 16. 5.3.2 Hypothesis testing of di?erences 母集団の平均の差に関する検定(量)により,似たような意味を持つ2 つの語の使い分けについて知ることができる.N(?x, σ2 x) に従う母集団 からの大きさ Nx の標本平均を X,N(?y, σ2 y) に従う母集団からの大き さ Ny の標本平均を Y とする.正規分布の重ね合わせの性質より, Z := X ? Y ? (?x ? ?y) σ2 x Nx + σ2 y Ny ~ N(0, 1) が成り立つ.帰無仮説を H0 : ?x = ?y として検定を行いたいところで あるが,前頁で見たように検定にはあまり興味がない.知りたいのは ?x = ?y のときの Z である.今回の設定では,比較したい(似ている) 単語を v1 , v2 とし,それ以外の各単語 w について Z P v1 w ? P v2 w P (v1w) Nx + P (v2w) Ny = C v1 w ? C v2 w C (v1w) + C (v2w) を計算する.ここでは Nx = Ny であることを使った.
  • 17. 5.3.2 Hypothesis testing of di?erences Z C(w) C(strong w) C(powerful w) w ?3.1622 933 0 10 ::::::::: computers ?2.8284 2337 0 8 computer ?2.4494 289 0 6 symbol ?2.4494 588 0 6 machines ?2.2360 2266 0 5 Germany ... 4.0249 1093 19 1 opposition 4.5825 3741 21 0 sales 4.6904 986 22 0 safety 6.3257 3616 58 7 enough 7.0710 3685 50 0 ::::::: support このランキングから powerful が computer のような実体のあるものの強 さを表し,strong が support のような内面的な強さを表している傾向を つかむことができる.
  • 18. 5.3.3 Pearson?s chi-square test t 検定が使えるのは母集団が正規分布していると仮定できる場合のみで ある.しかし実際のところ,普通はそのように仮定することができな い.代替手段として分割表を用いた独立性の検定をコロケーションかど うかの判定に使うことを考える. X ?X Y a b a + b ?Y c d c + d a + c b + d a + b + c + d
  • 19. 5.3.3 Pearson?s chi-square test χ2 := a ? (a + b)(a + c) a + b + c + d 2 (a + b)(a + c) a + b + c + d + b ? (a + b)(b + d) a + b + c + d 2 (a + b)(b + d) a + b + c + d + c ? (c + d)(a + c) a + b + c + d 2 (c + d)(a + c) a + b + c + d + d ? (c + d)(b + d) a + b + c + d 2 (b + d)(a + c) a + b + c + d = (ad ? bc)2 (a + b + c + d)2 (a + b)(a + c) a + b + c + d + (ad ? bc)2 (a + b + c + d)2 (a + b)(b + d) a + b + c + d + (ad ? bc)2 (a + b + c + d)2 (c + d)(a + c) a + b + c + d + (ad ? bc)2 (a + b + c + d)2 (b + d)(a + c) a + b + c + d
  • 20. 5.3.3 Pearson?s chi-square test χ2 = 1 (a + b + c + d)(a + b)(c + d)(a + c)(b + d) ((ad ? bc)2 ((c + d)(b + d) + (c + d)(a + c)+ (a + b)(b + d) + (a + b)(c + d))) = (a + b + c + d)(ad ? bc)2 (a + b)(c + d)(a + c)(b + d)
  • 21. 5.3.3 Pearson?s chi-square test 帰無仮説として H0 : unsalted と butter の出現は独立である. を設定する. unsalted ?unsalted butter 20 300 320 ?butter 4 14307344 14307348 24 14307644 14307668 χ2 = 14307668(20 · 14307344 ? 300 · 4)2 320 · 14307348 · 14307644 · 24 ≈ 745169 χ2 が df = (2 ? 1)(2 ? 1) = 1 の χ2 分布における片側 1%点 6.63 より も大きいので,H0 は棄却される.つまり unsalted と butter の出現は独 立とはいえず,したがって unsalted butter はコロケーションであるとい える.
  • 22. 5.3.3 Pearson?s chi-square test >>> import numpy as np >>> import scipy.stats >>> chi2, p, dof, expected = scipy.stats.chi2_contingency(np.array( [[20,300],[4,14307344]]),correction=False) >>> chi2, p, dof (745168.95831120119, 0.0, 1) scipy.stats.chi2.cdf(x, k) = x 0 t(k/2?1) e(?t/2) 2(k/2)Γ(k/2) dt O x カイ二乗検定(量)のコロケーション以外の応用として,コーパスの類 似度の計測や,対訳コーパスの中の訳語の発見などがある.
  • 23. 5.3.4 Likelihood ratios 疎なデータに対してはカイ二乗検定より,尤度比を使ったほうがよい (Dunning 1993). w2 ?w2 w1 c12 c1 ? c12 c1 ?w1 c2 ? c12 (N ? c1) ? (c2 ? c12) N ? c1 c2 c2 N p1 := P(w2|w1),p2 := P(w2|?w1) とするとき, H1 : p1 = p2 , H2 : p1 = p2 という仮説を立てる.
  • 24. 5.3.4 Likelihood ratios H2 が正しいと仮定するとすると最尤推定量は以下のようになる. L(H2) := c1 c12 pc12 1 (1 ? p1)c1?c12 N ? c1 c2 ? c12 pc2?c12 2 (1 ? p2)(N?c1)?(c2?c12) = c1 c12 c12 c1 c12 1 ? c12 c1 c1?c12 N ? c1 c2 ? c12 c2 ? c12 N ? c1 c2?c12 1 ? c2 ? c12 N ? c1 (N?c1)?(c2?c12) .
  • 25. 5.3.4 Likelihood ratios 一方 H1 が正しいと仮定したとき最尤推定量は L(H1) := c1 c12 pc12 (1 ? p)c1?c12 N ? c1 c2 ? c12 pc2?c12 (1 ? p)(N?c1)?(c2?c12) = c1 c12 c2 N c12 1 ? c2 N c1?c12 N ? c1 c2 ? c12 c2 N c2?c12 1 ? c2 N (N?c1)?(c2?c12) である. H1 と H2 の尤度比を λ := L(H1)/L(H2) とすると,?2 log λ は漸近的 に自由度 1 のカイ二乗分布に従うことが知られている.?2 log λ は H2 が尤もらしいとき大きい値をとる.
  • 26. 5.3.4 Likelihood ratios ?2 log λ C(w1 ) C(w2 ) C(w1 w1 ) w1 w2 ?3.1622 933 0 10 ::::::::: computers ?2.8284 2337 0 8 computer ?2.4494 289 0 6 symbol ?2.4494 588 0 6 machines ?2.2360 2266 0 5 Germany 尤度比と似たような概念に相対頻度比がある.2 つのコーパスの N グラ ムにおいて相対頻度比が 1 から大きく離れたものは、主題を特徴付ける N グラムであると考えられる. Ratio 1990 1989 w1 w2 0.0372 2 68 East Berliners 0.0482 2 34 EAST GERMANS
  • 27. 5.4 Mutual Information 情報理論において相互情報量 Mutual Infomation (MI) は確率変数(の 分布)に対して定義される.しかしここでは特定の事象についての情報 量 Pointwise Mutual Information (PMI) を用いる. I(x, y) := log2 P(xy) P(x)P(y) (5.11) = log2 P(x|y) P(x) (5.12) = log2 P(y|x) P(y) (5.13)
  • 28. 5.4 Mutual Information 事象 x の情報量 I(x) は I(x) := log 1 P(x) で定義されるのだった.これは x が稀な事象であれば大きな値をとる. I(x, y) を (5.12) に従って解釈すると,事象 y が起こると教えられれ ば,x が起こることについて持っている情報量が I(x, y) だけ増えると いうことである. I(x, y) = log 1 P(x) ? log 1 P(x|y) = I(x) ? I(x|y)
  • 29. 5.4 Mutual Information PMI は対応関係の指標として使えるのか?(その1) フランス語において chambre /?ɑ? mbr/ 部屋,議会 あることに注意すれば,英語?フランス語の aligned corpus において 英文中で house という語が出てくると知れば,仏文中で chambre が出 てきそうだと予想がつく.よって I(chambre|house) は大きいと考えら れる.しかし Hansard corpus(カナダの議会の議事録から作られた コーパス)において P(house|chambre) < P(house|communes) すなわち I(chambre, house) < I(communes, house) となってしまう.こうなってしまうのは Hansard corpus において house の最もよく使われる用法が House of Commons(英国の下院)であ り,それに対応するフランス語が chambre des communes だからである.
  • 30. 5.4 Mutual Information PMI は対応関係の指標として使えるのか?(その2) 1. x と y が独立なとき I(x, y) = log P(x, y) P(x)P(y) = log P(x)P(y) P(x)P(y) = log 1 = 0 よさそう. 2. x の出現が y の出現と一致するとき I(x, y) = log P(x, y) P(x)P(y) = log P(y) P(x)P(y) = log 1 P(x) I(x, y) は極めて頻度の低い事象で構成されているときに大きい値 になってしまう.ある程度の出現する単語でないと判断材料が足り ない. あまりにも低い頻度の単語については除外する方法が考えられるが,頻 度の低い語で構成されているに大きな値をとる根本的な問題が解決でき ていない.C(w1 w2 )I(w1 w2 ) のように補正をかける方法などが提案さ れている.
  • 31. 5.5 The Notion of Collocation コロケーションの定義をどう定めるか. Non-compositionarity white wine が「白いワイン」と言われれば違う気がする. Non-substitutability ?「腹」と「お なか 腹」は同じ意味だと考えられるが,「お腹を立て る」とは言わない. Non-modi?ability 「口を開く」(話し始める)を「口を大きく開く」などとは言 わない. doctor - nurse のように 関連する語の組も含めることがある.固有名詞 の組合わせ(姓名など)は,語彙的なコロケーションではないが,NLP の文脈では含めることが多い.