3. Text Categorization
Introduction
classification
NLP における重要な問題 classification あるいは
categorization は任意の object を 2 つ以上の class あるいは
category に割り当てること
上 2 つはもうやった。
Problem Object Categories
tagging context of word the word’s tags
disambiguation context of word the word’s sense
author document authors
language document languages
text categorization document topics
12. Text Categorization
Decision Trees
information gain
splitting criterion としてここでは maximum information gain
を用いる
属性 a について 値 y で分割するときその減少量は
G(a, y) = H(t) − H(t|a) = H(t) − (pLH(tL) + pRH(tR))
で表される
21. Text Categorization
Maximum Entropy Modeling
featureの定義
feature
feature fi とは
fi (⃗xj , c) =
{
1 sij > 0 ∧ c = 1
0 otherwise
sij は前に書いたスコア
c は ⃗xj で記述される document のクラスだけど
注目してるあるクラスならば 1 さもなくば 0 とする
22. Text Categorization
Maximum Entropy Modeling
loglinear models
maximum entropy modeling の 1 つ
loglinear models
p(⃗x, c) =
1
Z
K∏
i=1
α
fi (⃗x,c)
i
αi が feature fi に対する重みで
実際の分類には p(x, 0) <> p(x, 1) の比較を行えばよい
24. Text Categorization
Maximum Entropy Modeling
先の等式
Ep∗ [fi ] = E˜p[fi ]
を満たすために
fK+1 = C −
K∑
i=1
fi
を追加する
ここで C は (定数ならなんでもよさそうだけど)
C := max
(x,c)
K∑
i=1
fi (x, c)
を用いる
26. Text Categorization
Maximum Entropy Modeling
左辺は ∀⃗x として訓練データ中の ⃗x1.. ⃗xN に制限をする近似
を用いて計算する (Lau 1004)
Ep[fi ] =
∑
(x,c)
p(x, c)fi (x, c)
=
N∑
j=1
∑
c
1
N
p(c|xj )fi (xj , c)
27. Text Categorization
Maximum Entropy Modeling
実際には次のようにして αi を学習する
1 p1
= {α1
i }i=1..K+1 ; 何でもいいけど通常は全部 1 にする
2 let n = 1
3 pn+1
← update pn
αn+1
i = αn
i ri
where ri =
(
E˜p[fi ]
En
p [fi ]
)1/C
4 until converged { let n = n + 1; goto 2 }
5 let p∗
= pn
31. Text Categorization
k-nearest neighbor classification
1NN algorithm
訓練データ X によって y を分類する
1 simmax (y) = max
x∈X
sim(x, y)
2 let A = {x ∈ X|sim(x, y) = simmax (y)}
3 decide c = arg max
c
size{class(x)|x ∈ A}
k > 1 ならば similality が k 番目に高いものまでを A に含
める