Foundations of Statistical Natural Language Processing (通称サイコロ本)の勉強会で使った資料です。第5章の Collocations の内容です。
1 of 31
Download to read offline
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 であることを使った.
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)