言語処理学会 第24回年次大会 発表論文集 (2018年3月)

誤り文の自動生成による校正エンジンの学習
中島寛人

山田剛

日本経済新聞社{hiroto.nakajima, tk.yamada}@nex.nikkei.com
1.

はじめにRNN による学習モデル

2.

⽂章の校正は、広範な業種・職種に必要とされて本論⽂の提案モデルは、「固定⻑の⽂字列を⼀⽂いる機能であり、特に新聞社を含む出版業にとっ字ずつ続けて⼊⼒し、その⽂字列に誤りが含まれては極めて重要である。⼀⼝に校正と⾔ってもているかどうかを判定する」という⽅法をとる。

様々なレイヤーがあるが、「⽂章に含まれる誤字・例えば、⼊⼒するサンプルとして、本稿の第 1 章脱字などの誤りを検出する」という意味の校正は、から連続する 10 ⽂字を適当に抽出すると、例えば辞書との照合によって実現できる。しかし、「とは容易だが、誤った」

このような意味の校正であっても、以下のようなという「正しい⽂字列」が得られる。これに対して、課題がある。

上記の⽂字列とよく似た(1) 新語（特に固有名詞）の登録「とは容易だむ、誤った」(2) 企業・部⾨・ジャンルに固有の正誤ルールへのは、標準的な⽇本語の⽂章に現れることは恐らく対応（例えば、⽇経新聞のマーケット⾯ではなく、従って「誤った⽂字列」と⾒なすことができ「三菱⾃動⾞」を「三菱⾃」と表記）る。このような⽂字列を⽣成する⽅法については「不適切⽤語」などの「誤りで(3) 「ら抜き⾔葉」はないが、容認できない」表記の検出次章で説明する。
上記のような⽂字列を判別機(RNN)で正誤判定

このような校正を「⽂章（またはその⼀部）の正誤判定」と捉えると、Recurrent Neural Networkする具体的な⼿続きは以下の通りである。
(1) ⽂字を one-hot-vector に置き換える（次元数は⽂字種数と⼀致）(RNN)のような判別機によって判別する、という⽅法が考えられ、実際に⽇本語⽂章の RNN による(2) one-hot-vector を FFNN により embedding し、校正には先⾏事例[1, 2]がある。ここで、判別機を学習させる際に課題となるのは、「正しい⽂を得る次元削減する(3) 2 層以上の RNN (LSTM)に embedding vectorを⼀⽂字ずつ順に⼊⼒することは容易だが、誤った⽂を得ることは容易ではない」ということである。誤り⽂は記事等の作成・(4) ⽂字列をすべて⼊⼒した際の RNN の最終層校正プロセスにしか存在しないため、収集できるの出⼒を単純な FFNN に⼊⼒し、その出⼒を事例は量も少なく、誤り⽅の網羅性も低い。

Soft-max 関数にかけて⼆値判定を⾏う

そこで、これらの課題を効率的に解決する⽅法

ここで、上記(2)(3)(4)はすべて NN により実現さとして、本論⽂では「RNN による校正エンジン」れているため、逆伝播計算により同時に最適化さを「校正済みの⽂章から擬似的に⽣成した誤り⽂」れる。すなわち、特に embedding について、他のを利⽤して学習させる、というアプローチを提案

⽬的に合わせた変換ではなく、この正誤判定に適する。擬似データによる学習には先⾏事例があるした変換が得られる。

[3, 4]が、本論⽂ではこれを校正に適⽤する。この本モデルにおける典型的な NN のサイズは下記

アプローチにより、学習データを任意の⽂書集合の通りである。これを変更した場合の性能変化にから⾃動的に⼤量に⽣成することができるため、ついては、後に議論する。

例えば「先週ある部署で作成した⽂章を元にして、one-hot-vector

約 4000 次元

今⽇その部署で使う校正エンジンを⽣成する」とembedding

約 4000 次元→256 次元

いうような実務的に柔軟な運⽤も可能となる。

LSTM

256 次元→128 次元→64 次元― 1272 ―Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.

3.

誤り⽂の⾃動⽣成4.

データセット前述の通り、本論⽂で提案するアプローチでは、判別機(RNN)にトレーニング⽤サンプルとして正しい⽂字列を元に誤った⽂字列を⾃動⽣成する。

読み込ませる⽂字列は「校正済みの⽂章」から切り

ここでいう「誤った⽂字列」とは、第 1 章で述べた出す必要がある。本論⽂の実験では、⽂章セットと「誤字・脱字などの誤りを含む⽂字列」を意味する。

して「⽇経テレコン」の「⽇本経済新聞電⼦版セクここで、例として先に挙げたション」に登録されている記事を採⽤した。

「とは容易だむ、誤った」

また、新聞記事はジャンルによって語句・表現のは、本稿に実際に現れる⽂字列の⼀⽂字を適当に出現頻度が⼤きく異なることや、特定のジャンル置換しただけであるが、誤った⽂字列のサンプルの記事でのみ使われる略称・略語があること等をとなっている。すなわち、正しい⽂字列に「ノイズ」踏まえて、記事ジャンル別に判別機を学習させる。

を加えると、得られる⽂字列は⾼い確率で誤った

記事ジャンルとしては、下記リンク先の「中分類」⽂字列となる。さらに、ノイズの加え⽅を⼯夫するを採⽤した。

ことにより、現実に起こりやすい誤りに近づける

http://t21help.nikkei.co.jp/reference/cat845/post-

ことができ、結果的に現実の誤りを捕捉する確率563.htmlも⾼まると期待できる。具体的には、以下の五通り

記事からサンプルを抽出する上では、まず指定の⽅法でノイズを加える。

した⽂字数の⽂字列を適当に切り出し、そこに英(1) 置換：⽂字列中の任意の⼀⽂字を、同じ⽂字種数字および記号（句読点を除く）が含まれていれば、（ひらがな／カタカナ／漢字）の別の⼀⽂字サンプルから除外した。これは、に置換する(1) 英数字や記号は出現頻度が低く、⼗分なサン(2) 並び替え：⽂字列中の連続する同じ⽂字種の⼆⽂字を並び替える（並び替えの対象となるプルを得られない(2) 数字はノイズを加えたものが正しい⽂字列と箇所が複数ある場合は、任意の⼀箇所）なる確率が⾼い(3) 追加：⽂字列中の任意の⼀⽂字の直前あるい(3) 英字の誤り検出は他の⼿法でも⽐較的容易には直後に、同じ⽂字種の任意の⼀⽂字を追加する対応できる(4) 英数字や記号は⾃動校正のニーズが⼩さい(4) 重複：⽂字列中の任意の⼀⽂字を重複させるなどの事由を考慮したためである。

(5) 削除：⽂字列中の任意の⼀⽂字を削除する

サンプルの抽出元となる記事の本数は諸条件にそれぞれの⽅法により⽣成される誤りの具体例はより変化するが、典型的には、⻑さ 10 ⽂字のサン下表の通りである。

プル 10 万個を抽出するのに必要な記事の本数は元の⽂

今⽇は最⾼のスキー⽇和（だ）

1000 記事である。実験に利⽤するサンプルを抽出

置換

今⽇る最⾼のスキー⽇和できる最⼩限の本数（1000 本, 1500 本などの概数）並び替え

⽇今は最⾼のスキー⽇和の記事を直近のものから採⽤した。また、トレーニ追加

今⽇は最⼈⾼のスキー⽇

ング⽤とテスト⽤のサンプルは記事の段階で別個

重複

今⽇は最⾼のスキキー⽇のものとした。これは、判別機の性能が過⼤に評価

削除

今⽇は最⾼のスキー和だ

されることを防ぐため、および、より実運⽤に近い「元の⽂」の末尾にある「（だ）」は、削除を⾏った実験環境とするためである。

際に⽂字列の⻑さを保つための予備である。こうして⽣成した五個の⽂字列は、標準的な⽇本語の5.

実験⽂章に現れることは恐らくなく、従って「誤った⽂5.1

評価⽅法および評価指標

学習済み判別機の性能評価には、トレーニング字列」と⾒なすことができる。
上記の⽅法では、ノイズを加えた⽂字列が正し⽤サンプルと同様の⽅法で⾃動⽣成したテスト⽤い⽂字列になる可能性はある。しかし、⽇本語に⽤サンプルを利⽤した。これは、「誤った⽂字列」のいられる⽂字の種類の多さを鑑みると、その確率サンプルを⼤量に収集、あるいは⼈⼿で⽣成するは⼗分に低く、結果として学習結果に重要な影響ことは困難なためである。テスト⽤サンプルの数を与えないと期待できる。

は常にトレーニング⽤（典型的には 10 万個）の 10分の 1 とした。

― 1273 ―Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.

また、評価指標は

5.3

RNN の構造による⽐較

・FP：正しい⽂字列が誤と判定された割合

本論⽂の提案モデルは embedding の後に適当な・FN：誤った⽂字列が正と判定された割合

段数・ノード数の LSTM を配置する。本節では、とした。誤り検出の性能は F 値で評価することがこの構造と判別機の性能の関係を観察する。共通⼀般的であるが、記事の作成・校正過程では誤りはの条件は下表の通りである。

稀ではないことから、上記の指標を採⽤した。また、サンプルの⻑さ10 ⽂字

実⽤上の要請からは両者がともに低い数値となるサンプルの個数

トレーニング：10 万個ことが望ましいが、特に新聞記事の校正に焦点を誤り⽂の⽣成各抽出サンプルに当てると、後者がより重視される。

ランダムに 2 通りを適⽤実験の対象とした RNN の構造、およびそれぞれ5.2

記事ジャンルによる⽐較の性能は下表の通りである。

記事ジャンルによって、語彙の多様性や新しいFP

FN

256>128>64

13.0%

7.1%

256>128>3211.9%

7.5%

対象として実験を⾏なった。共通の条件は下表の256>64>32

14.0%

6.8%通りである。

256>128>64>32

12.8%

6.5%

256>128>64>32>16

12.5%

6.7%

256>128>64>32>16>8

13.4%

6.1%

語彙の出現頻度が異なることから、判別機の性能も異なると予想される。そこで、複数のジャンルを

RNN の構造

RNN の構造256>128>64>32

サンプルの⻑さ

10 ⽂字

サンプルの個数

トレーニング：10 万個

誤り⽂の⽣成各抽出サンプルに⼩さい。しかし、サンプル数や⽂字数を増加させた

ランダムに 2 通りを適⽤際に、⼩さい RNN では⼗分に学習できない恐れが

上表の通り、RNN の構造が性能に与える影響は実験の対象としたジャンル、およびそれぞれのあることから、以下では 6 番⽬を採⽤する。

性能は下表の通りである。
ジャンル

FP

FN

企業/事業組換

22.4%

11.6%

本論⽂で提案するアプローチでは、誤りの⽣成

政治/政治運営

18.4%

14.4%

パターンは 5 通りあるが、その適⽤⽅法によって社会/社会問題

23.1%

15.7%

性能は変化すると考えられる。そこで、この条件や技術/技術

22.1%

13.1%

サンプル数を変えて実験を⾏なった。共通の条件

経済/マーケット

13.9%

9.9%

は下表の通りである。

5.4

上表の通り「経済/マーケット」が最も良い性能を⽰した。これは、話題が上場企業の株価や業績に限定されており、新出語彙が少ないためと考えられる。そこで、さらに検索タグ「東京証券取引所」

サンプル数および誤り⽂による⽐較

RNN の構造256>128>64>32>16>8

サンプルの⻑さ

10 ⽂字

サンプル数と誤り⽣成パターンの組み合わせ、およびそれぞれの性能は下表の通りである。

が付与されている記事に限定したところ、性能はサンプル数

FPFN

FP 12.8%, FN 6.5%に向上した。この条件を満たす

10 万個(A)

8.8%

11.5%

記事は約 5 本/⽇で、実⽤上の粒度の下限に近いと20 万個

(A)

7.8%

7.6%考えらえることから、以下ではこれを実験対象と40 万個

(A)

7.4%

6.2%して検証を進める。

10 万個

(B)

13.4%

6.1%

20 万個

(B)

10.2%

5.0%

40 万個

(B)

8.1%

5.3%

10 万個

(C)

19.6%

3.0%

20 万個

(C)

15.1%

2.6%

40 万個

(C)

13.3%

2.7%

【実際の記事：「東京証券取引所」タグ】
上げ幅は 200 円を超え、⼀時１万 9766 円まで上昇した。国連安全保障理事会が⽇本時間 12⽇朝に採択した北朝鮮への制裁決議で⽯油の全⾯禁輸を⾒送り、⽶朝対⽴が⼀段と緊迫化するとの警戒感が和らいだ。このため、投資家の運⽤リスク回避の姿勢が弱まり、12 ⽇の東京株式市場では……（後略）（2017/9/12, 560 ⽂字）

誤り⽂(A) 各サンプルにランダムに 1 通りを適⽤(B) 各サンプルにランダムに 2 通りを適⽤(C) 各サンプルに 5 通りを 1 回ずつ適⽤― 1274 ―Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.

上表の通り、場合もあった。そこで、Softmax 値が 0.9 超である・サンプル数が増えると FP, FN 共に改善サンプルに限定したところ、テスト 12 万件のうち・誤り⽂が増えると FP は悪化し FN は改善110,092 件が該当し、FP 5.8% FN 2.3%であった。という傾向が認められた。ただし、(C)はサンプルしたがって、特に FN については、この数値の⽅がの偏りにより適切な学習ができていない可能性がより正当な性能評価に近い可能性がある。

あるので、以下では(B)を採⽤する。
6.2
5.4 サンプル⽂字列の⻑さによる⽐較

実践的な事例での評価5 章では⾃動⽣成したテスト⽤サンプルにより⽂字列の⻑さについて、短過ぎれば正誤判定に性能評価を⾏なったが、実践的な事例での判定を⼗分な情報がなく、⻑過ぎればトレーニング⽤と観察するため、抽出した⽂字列の⼀部を対義語にテスト⽤の⼀致度は下がると想定される。そこで、置換した正解サンプルと、同⾳異義語に置換した⽂字列の⻑さを変えた場合の判別機の性能を観察

誤りサンプルを⼈⼿で作成した。その例を下表にする。共通の条件は下表の通りである。

⽰す（置換した箇所を網掛け）。

RNN の構造256>128>64>32>16>8

対義語

た武⽥が上昇した。産業⾰新

サンプルの個数

トレーニング：40 万個

対義語

し、⽬先の反落を期待した買誤り⽂の⽣成各抽出サンプルに対義語

った時価総額の⼩さい主⼒株

ランダムに 2 通りを適⽤同⾳異義語

加と信⽤売り残の造花でとも同⾳異義語

準で推移している。円安貴重

同⾳異義語

上昇も交換された。前⽇のボ実験対象とする⽂字列の⻑さ、およびそれぞれの性能は下表の通りである。
⽂字列

FP

FN

作成したサンプルを 5.4 節の学習済み判別機に7 ⽂字

11.0%

5.6%かけたところ、判定成功は 86/100 個と 86/100 個、9 ⽂字

9.5%

4.7%

すなわち FP 14.0%, FN 14.0%であった。これらの

11 ⽂字

8.3%

4.9%

⽂字列がトレーニング⽤サンプルと⼀致する確率

13 ⽂字

8.6%

4.3%は極めて低く、その判定結果は判別機の汎化性能

15 ⽂字

9.8%3.8%を⽰している。以上より、実践的な事例でも 5 章

17 ⽂字

9.8%

4.0%と⼤きく乖離しない性能を⽰すことを確認した。

19 ⽂字

11.8%

3.4%

上表の通り、FP は 11,13 ⽂字で最良となるのに【参考⽂献】

対して、FN は⽂字列が⻑くなるほど改善する傾向[1] ⾼橋諒（リクルートテクノロジーズ）LSTM とが認められた。

Residual Learning でも難しい「助詞の検出精度」を改善した探索アルゴリズムとは

6.

実験結果の考察www.atmarkit.co.jp/ait/articles/1611/11/news016

6.1

誤判別の傾向.html

誤判別の傾向を⾒るため、5.4 節で⽂字列の⻑さ[2] Yuta Hitomi, Hideaki Tamori, Naoaki Okazaki

を 13 ⽂字とした際の実験結果から、特に Softmax

and Kentaro Inui. Proofread Sentence Generationの値が低いサンプル（下表に例⽰）を観察した。

as Multi-Task Learning with Edit Operation

サンプル⽂字列

SoftmaxPrediction. In Proceedings of the 8th InternationalFP。株価指数先物への売りが落0.500009

Joint Conference on Natural Language Processing.

FP

⽇の欧⽶株⾼やギリシャ債務

0.500042

FPーベラスの下げが⽬⽴つ。住0.500174

FN

配検討すると伝わった楽天が0.500169

FNて上値重くなる場⾯もあった

0.500634

FN

⾓が上げに転じるなど相場志0.500902

観察した限りにおいて、FP サンプルでは誤判別の原因は不明確だったが、FN サンプルは著者らにも誤りの箇所を特定できず、誤判別とは⾔えない[3] ⻫藤いつみ, 鈴⽊潤, 貞光九⽉, ⻄⽥京介, 齋藤邦⼦, 松尾義博 (NTT) 擬似データの事前学習に基づく encoder-decoder 型⽇本語崩れ表記正規化 ⾃然⾔語処理学会年次⼤会講演集, 2017.
[4] 澤 井 裕 ⼀ 郎 , 進 藤 裕 之 , 松 本 裕 治 (NAIST)
⽂法誤り訂正のための疑似誤り⽣成によるラベルなしコーパスの利⽤ ⾃然⾔語処理学会年次⼤会
講演集, 2017.

― 1275 ―Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.