3. 誤り訂正ローマ字仮名変換 10
4.4 誤り傾向を反映した格助詞訂正手法
接続助詞 接続助詞には「と,や,も,に,か」などが含まれるが,英語での“and”
や“or”に相当し,話の流れを理解することなく文中の情報だけで訂正すること は困難だと判断し対象には含めなかった.
終助詞 終助詞は文末に現れる助詞で格助詞とは使われ方が大きく異なっており,
訂正先における割合が0.71%であるため,学習者にとってそれほど重要度ではな いと考え,対象には含めなかった.
10種類の格助詞と取り立て助詞の「は」に加え,格助詞と「は」の組み合わせ である,「には,からは,とは,では,へは,までは,よりは」も含めた,合計18 の助詞を訂正タスクの対象とした23.
本論文で紹介する手法では,
kakujoshiList=
(が,を,の,に,から,と,で,へ,まで,より,は,には,からは,とは,では,へは,までは,よりは) (1)
を使用する.
をNグラムモデルと呼び,ある時点での単語の生起は直前のN−1単語のみに依 存すると考えている.したがってNグラムモデルでは,
P(w1|wn1−1) = P(wn|wnn−−N1+1)
となる.N = 1,2,3の場合は特にユニグラム,バイグラム,トライグラムと呼ば れる.ここでトライグラムによる単語列w1nの生成確率を考えると式2のように なる.
P(w1n) =
Yn
i−2
P(wi|wi−1, wi−2) (2) 本研究では,1-3グラムを使用することとし,言語モデルはウェブデータを元に構 築されたコーパスである,Web日本語Nグラム第一版24を用いて作成した.我々 が行った一番単純なベースラインでは,もっとも頻度が高かったものが訂正語と して選択される.
ˆ
w2 = arg max
w2
P(w2|w1, w3) = arg max
w2
C(w1, w2, w3)
ここで,P(w2|w1, w3)は単語列w1, w2, w3の出現確率であり,C(w1, w2, w3)は頻 度である.ただし,w2はkakujoshiList(式1)の要素である.
Backoff 一般的に言語モデルのNが大きくなるほど,各トークンの出現頻度が
少なくなり,テストセットに登場したトークンが言語モデルに存在しない場合も ある.これはゼロ頻度問題として知られており,ゼロ頻度のトークンにも何らか の頻度を与えるため,様々な平滑化手法が提案されてきた.また,言語モデルの 構築に用いるコーパスが大きくなるにつれこの問題は軽減される.本論文では研 究用途で公開されているものの中で2011年現在最大だと考えられる日本語コーパ スのWeb日本語Nグラムを用いているが,ゼロ頻度問題を無視することはでき ない.本論文では,一般に用いられている言語モデルに対するBackoffを行わな かったが,代わりに,最尤推定時にすべての格助詞に対してNグラムの頻度が0 だった場合,N-1グラムの頻度で最尤推定をするという方法でデコーダのBackoff を行った.手順をアルゴリズム1に示す.
24http://www.gsk.or.jp/catalog/GSK2007-C/catalog.html
Algorithm 1Backoff correct←arg max
w2
P(w2|w1, w3) if correct== N ON E then
correct←arg max
w2
(P(w2|w1)P(w2|w3)) end if
if correct== N ON E then correct←arg max
w2
P(w2) end if
4.4.2 手法2:Noisy Channel Modelによる格助詞推定
学習者の誤りやすさの傾向を反映するため,Noisy channel modelを用いた.こ れは機械翻訳などで用いられてきた手法であるが,日本語の学習者の作文誤り訂 正で使用された前例は筆者の知る限り存在しない.学習者の誤りを訂正するとき,
どの単語がどの単語と間違えやすいか,という確率が分かると有効である.
ˆ
wC = arg max
wC
P(wC|wE)
ここで,wE を学習者の書いた単語,wC を訂正された単語とすると,P(wC|wE) は学習者の書いた単語がどの単語に直されたか,P(wE|wC)はある単語をどの単 語と間違えたか,P(wC)は正しい文の中である単語がどのくらいの割合で登場 したか,P(wE)は学習者の文の中である単語がどのくらいの割合で登場したか,
を表す確率である.本タスクではwEはkakujoshiList(式1)の要素であるとす る.訂正誤りを最小化するためには,事後確率P(wC|wE)を最大化する単語wˆC を求めればよい.しかし,P(wC|wE)から信頼できる推測をするために十分な量 のデータを学習者の作文から集めることは容易ではない.ここでベイズの定理を 用いると以下のように式変形することができる.
P(wC|wE) = P(wE|wC)P(wC) P(wE)
このとき,訂正先の格助詞を選択するためには,尤もらしいもの,すなわち一番 大きな確率値になる格助詞を一つ選べばいいので,格助詞によらず不変である分
母は考慮する必要がない.
arg max
wC
P(wC|wE) = arg max
wC
P(wE|wC)P(wC)
この式では,求める確率をP(wE|wC)とP(wC)のふたつの要素に分けて考えるこ とができる.これらをそれぞれ誤りモデルと言語モデルと本論文で呼ぶ.なお誤 りモデルという言葉は便宜上用いた名称であり,一般的ではない点に留意してい ただきたい.これら誤りモデルと言語モデルの精度をそれぞれ改善することによ り,誤り訂正の精度を改善することができる.言語モデルは手法1で使用したも のと同じものを使用し,デコーダのBackoffによりゼロ頻度問題を解消している.
4.4.3 手法3:重み付きNoisy Channel Model
arg max
wC
P(wC|wE) = arg max
wC
(P(wE|wC)P(wC)) は対数を用いると,
arg max
wC
P(wC|wE)
= arg max
wC
(logP(wE|wC) + logP(wC))
と変形できる.
さらに,誤りモデルの重みを表すパラメータλ(0.0≤λ ≤ ∞)を導入すると以 下のような式となる.
arg max
wC
(λlogP(wE|wC) + logP(wC))
λを変化させて誤りモデルの影響を調節することにより,正解率が向上するかど うかを調べる実験も行った.適切なλを求めるため開発データ25を用いて予備実 験を行った結果を図3に示す.λ= 0の時が言語モデルのみの場合である.誤りモ
25タスクの対象となる要素数は1,486であったが,約半数の700要素をテストデータとして使 用し,残りの786要素を開発データとした.
図 3 予備実験におけるNoisy Channel Modelでの誤りモデルの重みλの変化に 対する正解率
デルの重みを増加させるにつれ正解率が向上し,λ= 1.6のときに最高値に達し,
その後は重みを増加させるにつれ低下している.この結果より,言語モデルのみ だけで誤り訂正を行った場合よりも,誤りモデルを考慮して訂正した方が正解率 が向上するが,適切な重みで組み合わせることが重要であり,誤りモデルを重視 しすぎることも正解率の低下をもたらすことがわかる.この予備実験ではλ= 1.6 としたときが最も正解率が高かったため,この値を用いて実験を行う.