6. 初歩の言語モデル
内山将夫@NICT
mutiyama@nict.go.jp

1

言語モデルの紹介
言語モデルというのは，任意の文字列について，それが日本語文等である確率を付与する確率モデルである．
n-gram 言 語 モ デ ル と は ，単 語 列 w1, w2, . . . , wi が
与 え ら れ た と き に ，そ の 後 に 単 語 x が く る 確 率
P (x|w1, w2, . . . , wi) を，すぐ前の n − 1 個の単語を条件とした確率として計算する．つまりP (x|w1, w2, . . . , wi) = P (x|wi−n+2, w2, . . . , wi)
以下では，単純な• 1-gram 言語モデル• 2-gram 言語モデル
について説明する．

2

1-gram 言語モデル• 言語モデルの役割は，与えられたテキストに確率を割当ることである．
• 良くでるテキストには高い確率を割当て，そうでないものには低い確率を割当てたい．

P (テキスト) = P (単語 1, 単語 2, . . . , 単語 m)(1)= P (単語 1)P (単語 2)P (単語 3) · · · (2)mY=
P (単語 i)
(3)
i=1

ただし，

• m はテキスト中の単語数• 単語 i はテキストに i 番目に出現した単語
1-gram 言語モデルは，単語の確率を計算するときに文脈を考慮しない．

3

1-gram 言語モデルの確率推定• 「坊っちゃん」(夏目漱石) を例に 1-gram 言語モデルを利用した確率推定の例を示す．
• 原文は ChaSen で単語に分ける．
• 全部で 2711 文あるので，先頭の 2611 文を訓練に利用して，残りの 100 文のうち 50 文をパラメタ調整，残りの 50 文をテストに使用する• 訓練とは確率を推定することであり，テストとは推定結果を評価することである．
(原文) 親譲り の 無鉄砲 で 小 供 の 時 から 損 ばかり し て いる 。小学校 に 居る 時分 学校 の 二階 から 飛び降り て 一 週間 ほど 腰 を 抜かし た
事 が ある 。なぜ そんな 無闇 を し た と 聞く
人 が ある かも 知れ ぬ 。別段 深い 理由 で もない 。新築 の 二 階 から 首 を 出し て い たら
、 同級生 の 一 人 が 冗談 に 、 いくら 威張っ ても 、 そこ から 飛び降りる 事 は 出来 まい 。弱虫 や ー い 。と 囃し た から で ある 。小使 に負ぶさっ て 帰っ て 来 た 時 、 おやじ が 大きな
眼 を し て 二 階 ぐらい か ら 飛び降り て 腰 を抜かす 奴 が ある か と 云っ た から 、 この 次は 抜かさ ず に 飛ん で 見せ ます と 答え た 。
4

頻度上位の単語 100 語• 延べ語数 = 55161、 2742 。 2362 て 2092 の 2074 は 1643 が 1630 た 1599 を 1586 に 1535 と1503 だ 1035 で 929 ない 770 から 670 し 643 も 631 な 519 おれ 451 へ
439 か 419 う 350 ん 326 」 309 「 309 ある 279 事 277 いる 245 もの 214
云う 210 人 199 する 196 たら 190 君 182 です 175 赤 172 来 171 云っ
168 い 168 よう 166 なら 166 シャツ 164 じゃ 163 そう 158 一 147 山
嵐 142 お 140 思っ 136 何 134 この 130 ば 119 てる 119 それ 119 方
114 なっ 114 いい 114 出 113 だろ 113 時 100 なる 98 まで 97 その 93
これ 92 れ 91 学校 90 ばかり 88 清 85 見 84 なり 84 や 83 聞い 81
野 78 ら 78 生徒 77 ね 77 ます 76 顔 75 さ 75 でも 74 … 74 って
73 所 72 気 70 こんな 70 校長 69 み 68 上 67 出し 67 より 67 ――
66 二 65 行っ 65 奴 62 もし 62 うち 62 中 60 今 60 ませ 59 もん 58
なかっ 58 ちゃ 575確率推定：最尤推定法「、」や「。」の確率 P (、) や P (。) を知りたい．そうする
とき，最尤推定法では，P (テキスト) =
=

m
Y
i=1

P (単語 i)Y

単語 ∈ 語彙P (単語)n(単語)

(4)
(5)

が最大となるように P (単語) を定める

• 4 式では，i は 1 から m (テキスト長) まで動くので，
単語 i は，i 番目の単語という意味である．
• 5 式では，テキスト中の同一単語の数を n(単語) と数
えて，同じ単語はひとまとめにしたものである．

6

最尤推定つづき• 語彙における i 番目の単語の確率を pi，頻度を ni とし• 語彙の大きさを l とする．
max Qli=1 pni i なる pi は，テキストの確率を最尤にする．こP
れは，L = li=1 ni log(pi) としたときに，max L とすれば良い．
課題 (20 分)

max L となるときにおける pi の値を ni を利用して表現すること．

7

ラグランジェの未定乗数法を使わない回答例
まず， li=1 pi = 1 より pl = 1 −
P

L=

l−1
X
i=1

Pl−1

i=1 pi ．よって

ni log pi + nl log(1 −

l−1
X
i=1

よって，i = 1, 2, ..., l − 1 について
∂L ni
nl
= −
=0
∂pi pi 1 − Pl−1
i=1 pi

pi)

(6)

(7)

つまり

nl
ni
nl
=
(8)
=
Pl−1
pi 1 − i=1 pi pl
よって，K = np l (定数) とすると，i = 1, ..., l について，
l
ni
=K
(9)
pi
ni
次に，pi = K
だから，

ni
=1
i=1
i=1 K
P
よって，K = li=1 ni．したがって，
ni
ni
pi =
=
K Pli=1 ni
l
X

pi =

l
X

(10)

(11)

要するに，普通に出現頻度の割合を求めると，それが最尤推定確率となるということである．

8

ラグランジェの未定乗数法を使う回答例
M=

l
X
i=1

ni log pi − λ(

l
X
i=1

pi − 1)とする．i = 1, 2, ..., l について，∂M ni= −λ=0
∂pi
pi

(12)

(13)

より，pi = nλi ．また，制約として，

より，

l
∂M
X
= −( pi − 1) = 0
i=1
∂λ

(14)

ni
pi =
=1
i=1
i=1 λ

(15)

l
X

l
X

よって，

λ=

l
X
i=1

よって，

ni

(16)

ni
ni
(17)
= Pl
λ
i=1 ni
この場合には，二つの回答例であまり複雑さはかわらないが，一般には，ラグランジェの未定乗数法を利用した方が簡単である．
pi =9問題 (10 分)
テキスト中の全単語の出現頻度の和 ( li ni) が 55161 で，
P

単語
頻度
おれ
451
は
1643
蕎麦
15
が
1630
大好き 2
で
929
ある
279
という出現頻度のときにP (おれ，は，蕎麦，が，大好き，で，ある)の確率を 1-gram 言語モデルにより計算すること．

10

(18)

回答
単語
頻度 確率
おれ
451 451/55161 = 0.00817606642374141
は1643 1643/55161 = 0.0297855368829427
蕎麦15
15/55161 = 0.000271931255778539
が1630 1630/55161 = 0.0295498631279346
大好き 2
2/55161 = 3.62575007704719e-05
で929 929/55161 = 0.0168416091078842
ある
279 279/55161 = 0.00505792135748083
より，確率を全て掛けて，

6.04390968739961e − 1811

最尤推定法の問題点• 訓練テキスト中に出現しなかった単語の確率が 0 となる
たとえば，「坊っちゃん」で確率推定したときには P (三四郎) = 0 となってしまう．そのため，

P (三四郎，は，蕎麦，が，大好き，で，ある) = 0 (19)となる．これは困る．
なぜ困るかというと，言語モデルの役割は，• ある文 A と B について，A と B のうちで，よく出現しそうな文に高い確率をつけること，つまり• P (A) > P (B) か P (A) < P (B) か P (A) = P (B) かを推定することだが• 最尤推定だと，A と B に未知語 (訓練データにない語)があると，• P (A) = P (B) = 0 となり，
• 未知語以外がどんなに違っていても同じ確率となっ
てしまう．

12

未知語への対処法• 訓練データ中にでない単語は UNK という 1 つの仮想的な単語と考え• P (UNK) を推定する．
つまり，P (三四郎) = P (明暗) = P (UNK)(20)のように，でてこない単語は，1 つのクラス UNK でまとめる• この P (U N K) をどう推定するかが問題である．
最尤推定だと P (UNK) = 0 となってしまうので，別の方法を使う必要がある．

13

未知語を含むテキストにも確率 > 0 を割当てる
方法
これにはとてもたくさんの方法がある．これらの方法
は，一般に，• スムージングと呼ばれている．
ここでは，スムージング法の中でも比較的簡単な• 補間法
について述べる．
ngram 言語モデルを実際に利用するには，• SRILM
等のツールキットを使うと良い．

14

補間法
• 複数の確率分布の重み付き平均を確率とする方法
この場合には，最尤推定による単語 w の確率を PM L(w)とすると，これに PM L よりも滑らかな確率を組合せる．
そのような分布として，「坊っちゃん」に出現した 5507の異なり単語に UNK を加えた 5508 単語 (K=5508 とする) が一様に出現する一様分布を考えると
1
1
PU =
=
= 0.000182(21)
K 5508
これらを足してP (w) = λPM L(w) + (1 − λ)PU

(22)とする．ただし，λ(0 ≤ λ ≤ 1) は，重み調整用のパラメタである．

15

P (UNK) がどうなるか
P (UNK) = λPM L(UNK) + (1 − λ)PU(23)
= λ × 0 + (1 − λ)PU(24)
= (1 − λ)PU
(25)
1−λ
=
(26)
K
これよりテキストに出現しない単語 (UNK) についても確率 > 0 が割当てられるようになった．なお，λ = 1 のときには，P (UNK) = 0 である．
問題 (5 分)このように定義した確率が，確率の定義を満すことを確かめること

16

回答例
確率の定義は, V が UNK を含む語彙として
Xw∈V

P (w) = 1(27)が成立して，かつ，全ての単語 w について

0 ≤ P (w) ≤ 1(28)が成立することである．
Xw∈V

P (w) =

X

w∈V

= λ

{λPM L(w) + (1 − λ)PU }Xw∈VPM L(w) + (1 − λ)PU1
= λ · 1 + (1 − λ) K
K
= 1

X

w∈V

(29)
1 (30)(31)(32)

また，0 ≤ λ ≤ 1 よりλ ≥ 0
1−λ ≥ 0(33)
(34)

PM L(w) ≥ 0
PU > 0(35)(36)

P (w) = λPM L(w) + (1 − λ)PU ≥ 0

(37)

かつ

より，

17

λ をどう推定するか
重要な点

λ を調整するコーパスは，PM L を推定したコーパスとは別のコーパスとすること．
理由

λ の推定は最尤推定によるので，もし，PM L を推定した
コーパスを使うと，そこには UNK がないので，λ は 1となってしまう．

18

λ の推定法 (単語の生成モデル)

P(ML)

P(U)

ML

U

PML(W)PUW

2 つの状態 ML と U を考え，ある単語 w は，ML もしく
は U のどちらかからでるとすると，
P (w) = PM L(w)P (M L) + PU P (U )(38)

P (M L) + P (U ) = 1(39)

ところで，テキストにおける i 番目の単語 ti は ML か Uのどちらかからでるので，n(M L) により，ML からでた
単語の総頻度を表し，n(U ) により，U から出た単語の総頻度を表すとすると，n(M L)P (M L) =(40)n(M L) + n(U )n(U )P (U ) =(41)n(M L) + n(U )と推定できる．P (M L) が λ に相当する．
19

ところが n(M L) や n(U ) を直接数えることはできない．
なぜなら，単語 w について，それが ML からでたか U からでたかはわからないからである．
そこで n(M L) や n(U ) のかわりに，その期待値を使う．
n(M L) の期待値はE(M L) =Xw∈Vn(w)P (M L|w)

(42)

である．ここで，n(w) は単語 w の出現頻度であり，P (M L|w) は，w が与えられたときに，それが ML からでた確率である．上式は，各 w について，それが M L からどれくらいの頻度ででたかを求めて，足している．
同様にX
E(U ) =
n(w)P (U |w)
(43)
w∈V

なお，

P (M L|w) + P (U |w) = 1

(44)

より

E(M L) + E(U ) =Xw∈Vn(w) = 全単語の頻度の和 (45)

このとき，E(M L)
E(M L) + E(U )である．なお，P (U ) = 1 − P (M L) である．
P (M L) =

20

(46)

よって，P (M L|w) を求めれば良い．ベイズの定理より

P (w|M L)P (M L)
P (M L|w) =
P (w)

(47)

さて，

P (w|M L) = PM L(w) = 既に訓練コーパスより得られた定数(48)
一方
P (M L) = λ
P (w) = λPM L(w) + (1 − λ)PU

(49)
(50)

は，今求めたい未知数 λ を含む．しかし，それにもかかわらず式を書くとλPM L(w)
P (M L|w) =(51)
λPM L(w) + (1 − λ)PU

E(M L) =Xw∈Vn(w)P (M L|w)

21

(52)

繰り返しによる λ の推定
1. λ = 0.5 とする
2.

λPM L(w)λPM L(w) + (1 − λ)PUX
E(M L) =n(w)P (M L|w)

P (M L|w) =

w∈V

(53)
(54)

を計算する

3.

E(M L)
λ = P (M L) =全単語の頻度の和4. λ が収束したら終了(55)

この方法は，とりあえず λ がわかっているものとしてE(M L) を計算し，その結果を利用して，λ を再推定するというように，少しずつ λ を改善する方法である．
これは EM 法の簡単な例である．

22

課題• EM 法について調べること
EM 法は，確率統計的手法を使うときには，必須の方法
ですが，EM 法自体は一般的な方法であり，それを個々の事柄に適用するためには，ここでしたように，個別の事柄にあわせて解法を開発する必要があります．
ここでは，EM 法を利用すると，未知パラメタを推定できるということを覚えておいて下さい．

23例：「坊っちゃん」について λ を求める
• 2611 文で PM L を推定する• 50 文で λ を推定する
繰り返し計算による

λ, E(M L), E(U ), Lの推移をみる．

L =Xn(w) log P (w) = 対数尤度

(56)n(w) = 単語 w の開発データでの頻度
P (w) = λPM L(w) + (1 − λ)Pu

(57)
(58)

w∈V

24

# lambda=λ# E(ML)=Pml からでた回数の期待値# E(UNI) = Puni からでた期待値# N=開発データの延べ単語数# LL=対数尤度#
ruby src/lambda.rb -n 20 botchanj/train.wfreq botchanj/test-develop.wfreq botchanj/pro
延べ単語数 = 55161
異なり単語数 = 5507
Puni = 0.000181554103122731
1: lambda=0.7703, E(ML)=825.7380, E(UNI)=246.2620, N=1072, LL=-6693.4745
2: lambda=0.8454, E(ML)=906.2771, E(UNI)=165.7229, N=1072, LL=-6477.1231
3: lambda=0.8693, E(ML)=931.8799, E(UNI)=140.1201, N=1072, LL=-6451.9807
4: lambda=0.8777, E(ML)=940.9064, E(UNI)=131.0936, N=1072, LL=-6448.6396
5: lambda=0.8808, E(ML)=944.2322, E(UNI)=127.7678, N=1072, LL=-6448.1713
6: lambda=0.8820, E(ML)=945.4790, E(UNI)=126.5210, N=1072, LL=-6448.1047
7: lambda=0.8824, E(ML)=945.9495, E(UNI)=126.0505, N=1072, LL=-6448.0951
8: lambda=0.8826, E(ML)=946.1275, E(UNI)=125.8725, N=1072, LL=-6448.0937
9: lambda=0.8826, E(ML)=946.1949, E(UNI)=125.8051, N=1072, LL=-6448.0936
10: lambda=0.8827, E(ML)=946.2205, E(UNI)=125.7795, N=1072, LL=-6448.0935
11: lambda=0.8827, E(ML)=946.2301, E(UNI)=125.7699, N=1072, LL=-6448.0935
12: lambda=0.8827, E(ML)=946.2338, E(UNI)=125.7662, N=1072, LL=-6448.0935
13: lambda=0.8827, E(ML)=946.2352, E(UNI)=125.7648, N=1072, LL=-6448.0935
14: lambda=0.8827, E(ML)=946.2357, E(UNI)=125.7643, N=1072, LL=-6448.0935
15: lambda=0.8827, E(ML)=946.2359, E(UNI)=125.7641, N=1072, LL=-6448.0935
16: lambda=0.8827, E(ML)=946.2360, E(UNI)=125.7640, N=1072, LL=-6448.0935
17: lambda=0.8827, E(ML)=946.2360, E(UNI)=125.7640, N=1072, LL=-6448.0935
18: lambda=0.8827, E(ML)=946.2360, E(UNI)=125.7640, N=1072, LL=-6448.0935
19: lambda=0.8827, E(ML)=946.2360, E(UNI)=125.7640, N=1072, LL=-6448.0935
20: lambda=0.8827, E(ML)=946.2360, E(UNI)=125.7640, N=1072, LL=-6448.0935

25

確率の値
最尤推定値
一様分布との補間
おれ
0.00817606642374141 0.00723817319206339
は0.0297855368829427 0.0263124826219221
蕎麦0.000271931255778539 0.000261328467719085
が0.0295498631279346 0.0261044574351871
大好き 3.62575007704719e-05 5.33032809840486e-05
で0.0168416091078842 0.0148870992889363
ある
0.00505792135748083 0.00448583995218444
全積6.04390968739961e-18 4.62487491745199e-18
UNK に確率を与えた分だけ，一様分布との補間の方が，少しずつ確率が少なくなっている．しかし，重みつき平均の結果として，「大好き」については，少し増えている．なお，P (UNK) = 2.12994061017353e − 05 である．

26

2-gram 言語モデルの導入
1-gram 言語モデルでは，単語の順番と確率が無関係なので，言語のモデル化には不十分である．
P (おれ, は, 蕎麦, が, 大好き, で, ある)= P (おれ)P (は)P (蕎麦)P (が)P (大好き)P (で)P (ある)= P (蕎麦)P (は)P (大好き)P (が)P (で)P (ある)P (おれ)= P (蕎麦, は, 大好き, が, で, ある, おれ)27

2-gram 言語モデルでは，一つ前の単語を見ることにより，並び順を少し考慮する．
P (おれ, は, 蕎麦, が, 大好き, で, ある)= P (おれ)P (は | おれ)P (蕎麦 | は)P (が | 蕎麦)P (大好き | が)P (で | 大好き)P (ある | で)
6= P (蕎麦, は, 大好き, が, で, ある, おれ)= P (蕎麦)P (は | 蕎麦)P (大好き | は)P (が | 大好き)
P (で | が)P (ある | で)P (おれ | ある)28

2-gram 言語モデルの求め方の例
PM L(単語 2| 単語 1) =単語 1 の後に単語 2 が続く頻度
単語 1 の頻度(59)

例「蕎麦」の頻度が 15 のとき
単語 1 単語 2 頻度 P (単語 2| 単語 1)
蕎麦 屋
5
0.33
を
4
0.27
と
2
0.13
粉
1
0.067
も
1
0.067
の
1
0.067
が
1
0.067

29

最尤推定における数値例
コーパス全体での頻度 = 55161
w
v n(w)PM L(w) n(v) n(vw) PM L(w|v)
おれ* 451 0.00817607
はおれ 1643 0.02978554 451
164 0.36363636
蕎麦は15 0.00027193 1643
1 0.00060864
が蕎麦 1630 0.02954986
15
1 0.06666667
大好きが
2 0.00003626 1630
1 0.00061350
で 大好き 929 0.01684161
2
1 0.50000000
あるで 279 0.00505792 929
78 0.08396125

w
v n(w)PM L(w) n(v) n(vw) PM L(w|v)
蕎麦*
15 0.00027193
は蕎麦 1643 0.02978554
15
0 0.00000000
大好き
は2 0.00003626 1643
1 0.00060864
が 大好き 1630 0.02954986
20 0.00000000
でが 929 0.01684161 1630
1 0.00061350
あるで 279 0.00505792 929
78 0.08396125
おれある 451 0.00817607 279
0 0.00000000• 文の生成確率は，1-gram モデルでは等確率だが，2gram モデルでは確率が異なる• 確率 0 となる場合があるのは困る．

30

2-gram 言語モデルにおける補間P (w|v) = λ2PM L(w|v) + λ1PM L(w) + λ0PUn(vw)
PM L(w|v) =
n(v)
n(w)
PM L(w) = Pv n(v)1
PU =|V | + 1

(60)

(61)
(62)
(63)

λ2, λ1, λ0 ≥ 0(64)

λ2 + λ1 + λ0 = 1

(65)

31

問題 (15 分)
テキスト w1, w2, . . . , wN が与えられているとする．ただし，wi はテキストの i 番目の単語とする．このとき，λ0,λ1, λ2 の推定法を示すこと．
1-gram 言語モデルのときと同様に，

1. λi の初期値を設定する
2. 各 λi に相当する状態における期待頻度 Ei を求める．
3. Ei を利用して，λi を求める
4. 収束したら終了というようにする．

32

λi の計算法
1-gram 言語モデルのときには，語彙の上で E(M L) や
E(U ) を計算したが，今回は，テキストの上で Ei を計算する．1-gram 言語モデルにおける n(w) は，今回は，テキストの上で単語を動かすので，複数回出現する単語はその回数分だけ重複されてカウントされるので，1-gram
言語モデルで n(w) を掛けるのと同様な効果が得られる．
1. λ2 = λ1 = λ0 = 13 とする
2.
λ2PM L(wi|wi−1)
i=2 λ2 PM L (wi |wi−1 ) + λ1 PM L (wi ) + λ0 PU
N
λ1PM L(wi)XE1 =i=2 λ2 PM L (wi |wi−1 ) + λ1 PM L (wi ) + λ0 PU
N
λ0PU
X
E0 =
i=2 λ2 PM L (wi |wi−1 ) + λ1 PM L (wi ) + λ0 PU

E2 =

N
X

3. λi = E0+EE1i +E2 for (i = 0, 1, 2)
4. goto 2 もしくは収束したら終了• まず初期値を設定する• 各 wi について，それぞれが 3 つの確率分布のどれからでたかの期待度数を求め，その和を各確率分布の期待度数とする．
• 期待度数の比として λi を求める
• 収束するまで繰り返す
33

数値例 1λ0 = λ1 = λ2 = 31 のときの各単語の確率と期待度数
おれ, は, 蕎麦, が, 大好き, で, あるpml(w|v) pml(w)pue(w|v)e(w)e0
は 0.363636 0.029786 0.000182 0.923865 0.075674 0.000461
蕎麦 0.000609 0.000272 0.000182 0.573041 0.256025 0.170934
が 0.066667 0.029550 0.000182 0.691577 0.306540 0.001883
大好き 0.000613 0.000036 0.000182 0.737989 0.043615 0.218396
で 0.500000 0.016842 0.000182 0.967075 0.032574 0.000351
ある 0.083961 0.005058 0.000182 0.941262 0.056703 0.002035------------------------------------------------------------sum
4.834808 0.771131 0.394061
lambda0.805801 0.128522 0.065677

2-gram まで考慮した状態 e(w|v) における期待頻度が他よりも大きいことがわかる．

34

数値例 2「坊っちゃん」のパラメタ調整用データ 50 文を利用して λi を求める．

• 2611 文は，PU , PM L(w), PM L(w|v) の推定に用いる• 50 文は，λi の推定に用いる
λ2

λ1

λ0

E2
E1
E0
尤度
1: 0.5350 0.2985 0.1665 546.77 305.05 170.18 -5217.63371050
2: 0.5749 0.2842 0.1409 587.57 290.48 143.95 -5090.05722072
3: 0.5813 0.2823 0.1364 594.12 288.50 139.38 -5085.40951867
4: 0.5823 0.2823 0.1355 595.06 288.48 138.46 -5085.27277246
5: 0.5824 0.2824 0.1353 595.16 288.61 138.23 -5085.26807026
6: 0.5823 0.2825 0.1352 595.16 288.69 138.15 -5085.26776245
7: 0.5823 0.2825 0.1352 595.15 288.73 138.13 -5085.26772140
8: 0.5823 0.2825 0.1351 595.14 288.74 138.12 -5085.26771436
9: 0.5823 0.2825 0.1351 595.14 288.75 138.11 -5085.26771310
10: 0.5823 0.2825 0.1351 595.14 288.75 138.11 -5085.26771287
11: 0.5823 0.2825 0.1351 595.14 288.75 138.11 -5085.26771283
12: 0.5823 0.2825 0.1351 595.14 288.75 138.11 -5085.26771282
13: 0.5823 0.2825 0.1351 595.14 288.75 138.11 -5085.26771282
14: 0.5823 0.2825 0.1351 595.14 288.75 138.11 -5085.26771282
15: 0.5823 0.2825 0.1351 595.14 288.75 138.11 -5085.26771282
16: 0.5823 0.2825 0.1351 595.14 288.75 138.11 -5085.26771282
17: 0.5823 0.2825 0.1351 595.14 288.75 138.11 -5085.26771282
18: 0.5823 0.2825 0.1351 595.14 288.75 138.11 -5085.26771282
19: 0.5823 0.2825 0.1351 595.14 288.75 138.11 -5085.26771282
20: 0.5823 0.2825 0.1351 595.14 288.75 138.11 -5085.26771282

尤度 = Σi log p(wi|wi−1) が単調に増加していることがわかる．
35

数値例 3
個別の文について各単語の確率を計算し，それを掛けて文の確率を求める．
P (おれは蕎麦が大好きである) = 6.456 × 10−14w
v PM L(w|v) PM L(w)PUP
おれ
* 0.000000 0.008176 0.000182 0.002334
は
おれ 0.363636 0.029786 0.000182 0.220184
蕎麦は 0.000609 0.000272 0.000182 0.000456
が蕎麦 0.066667 0.029550 0.000182 0.047192
大好き
が 0.000613 0.000036 0.000182 0.000392
で 大好き 0.500000 0.016842 0.000182 0.295932
あるで 0.083961 0.005058 0.000182 0.050344「おれ」「は」や「大好き」「で」は，高い確率で出現する．
P (蕎麦は大好きがであるおれ) = 1.683 × 10−18w
v PM L(w|v) PM L(w)PU
P
蕎麦
* 0.000000 0.000272 0.000182 0.000101
は
蕎麦 0.000000 0.029786 0.000182 0.008439
大好き
は 0.000609 0.000036 0.000182 0.000389
が 大好き 0.000000 0.029550 0.000182 0.008372
でが 0.000613 0.016842 0.000182 0.005140
あるで 0.083961 0.005058 0.000182 0.050344
おれある 0.000000 0.008176 0.000182 0.002334• どの単語の確率も低い• PM L(w|v) = 0 でも，P > 0 となっている．

まとめ• n-gram 言語モデルは，任意の文字列についての日本語らしさ (あるいは他の言語のそれらしさ) の確率を求める
• 確率の推定には，最尤推定ではなくスムージングが必要である
もっと複雑な言語モデル• 3-gram, 4-gram, 5-gram, ... 言語モデル• トピックを考慮した言語モデル• 構文を利用した言語モデル
言語モデルの利用例• 機械翻訳• 音声認識• 仮名漢字変換

37