# 日本語 Wikipedia の編集履歴に基づく 入力誤りデータセットと訂正システムの改良

田中佑 $\dagger$ 村脇有吾 $\dagger$ 河原 大輔 $\dagger$ 黒橋禎夫 $\dagger$
†京都大学 大学院情報学研究科 $\ddagger$ 早稲田大学 基幹理工学部
\{ytanaka, murawaki, kuro\}@nlp.ist.i.kyoto-u.ac.jp dkw@waseda.jp

## 1 はじめに

文章執筆時に発生する入力誤りによって，人はス ムーズに文章を読むことを妨げられ，計算機は正し く解析することを妨げられる。人が文章を書く際,入力誤り訂正を行うシステムを用いれば，その発生 を抑えることができ，計算機においても，システム を事前に適用することで, 解析誤りの減少が見込め るため, NLPにおいても重要である.

入力誤り訂正の一種であるスペルミス訂正におい て，ニューラルモデルは成功を収めており [1]，入力誤り訂正システムの構築に有望であると考えられ る. ニューラルモデルは多量の学習データを必要と するため，ニューラル入力誤り訂正システムの実現 の重要課題は多量の入力誤りとその訂正ぺアを用意 することである.

我々は Wikipedia の編集履歴から約 50 万文規模 の日本語入力誤りデータセット (JWTD v1; Japanese Wikipedia Typo Dataset version 1) ${ }^{1)}$ 構築した [2]. JWTD v1 は誤字・脱字・衍字・漢字誤変換の 4 種類 の日本語入力誤りからなるが, 転字 (transposition) [3] といった代表的な入力誤りを収集していなかった. データセット構築手法の評価をクラウドソーシング を用いて行っているが，再現率については評価でき ていなかった。また, ベースラインとして LSTM モ デルを用いた訂正システム実験も行ったが，不十分 な精度であった。

本研究では，JWTDv1で収集していない転字など の入力誤りを新たに収集し，フィルタリングの一部 を改良して, 約 70 万文規模の JWTD v2 を構築した。提案手法とは別に入力誤りを網羅的に収集し，それ を用いて評価を行った。JWTD v2を用いて, seq 2 seq 事前学習モデルである BART [4]を学習し, 訂正シ

1）http://nlp.ist.i.kyoto-u.ac.jp/?日本語 Wikipedia入力誤りデータセット
ステム実験を行い，より強力なベースラインとし た。漢字の読み推定を同時に学習する実験を行い, ベースラインと比較した。最後に入力誤り認識にお いて他の校正システムとの精度比較を行った。

## 2 関連研究

公開されている日本語入力誤りデータセットは JWTD の他に, GitHub Typo Corpus [5] がある.これ は $\mathrm{GitHub}^{2}$ の commit ログから構築した多言語入力誤りデータセットである．日本語データのサイズは 1,500 文ほどであり, ニューラルモデルの学習には 十分なサイズではない，そのため，本研究ではテス トセットの一つとして利用した。

BART は Transformer [6] を用いた seq2seq モデル であり，大規模な生コーパスで事前学習した後に，各タスクで fine-tuning するモデルである. Katsumata らは BART を用いて英語の文法誤り訂正を行って おり，事前学習済み BART を文法誤り訂正タスクで fine-tuning するというシンプルな手法ながら, 既存 の SOTA に近い結果が得られたと報告している [7].我々は文法誤り訂正を入力誤り訂正に近いタスクと 考え，ベースラインとして同様の手法で入力誤り訂正実験を行った。

## 3 日本語における入力誤り

日本語における入力誤りは様々なバリエーショ ンが考えられるが, 本研究でデータ構築に利用す る Wikipedia の編集履歴には，編集のタグが存在し ないため，入力誤り全てを取り出すことは容易では ない。そこで，本研究では日本語における入力誤り のうち，表 1 のような，誤字・脱字・衍字・転字・漢字誤変換（以下，誤変換と呼ぶ）の 5 種類を対象 に収集した。ここで，転字・衍字 (b) ・誤変換 (b) は JWTD v1 では収集しておらず，本研究で新規に収集

2) https://GitHub.com

} & \multirow{7}{*}{  } \\

表 1 本研究が対象とする入力誤りカテゴリ

した入力誤りである．誤字は 1 文字の入れ替え，脱字は 1 文字の抜け, 衍字 (a) は余分な 1 文字の挿入,衍字 (b) は直前の文字列と一致する 2 文字以上の余分な文字の挿入, 転字は隣接する 2 文字間の転置,誤変換（a）は同一の読みを持つ漢字の入れ替え，誤変換（b）は近い読みを持つ漢字の入れ替えの誤り である.

## 4 データセットの構築

データセットの構築では, Wikipedia の編集履歴 から入力誤りとその訂正文ぺアの候補を取り出し, その後, 入力誤り訂正ではないと考えられる編集を フィルタリングした。

## 4.1 Wikipedia マイニング

Wikipedia の編集履歴から, 入力誤り訂正の可能性がある文ぺアを以下の方法で取り出す3）.

1. Wikipedia の全ての記事の全ての版において、編集前と編集後の差分をとり、編集箇所を持つ文 ペアを取り出す.

2. 編集箇所が以下の条件を満たす文ぺアを取り 出す.

誤字編集箇所における文字単位編集距離が 1 , 編集箇所の文字数変化が 0 , 編集箇所の文字 は前後ともひらがな又はカタカナ

脱字編集箇所における文字単位編集距離が 1 , 編集箇所の文字数変化が 0 , 編集箇所の文字 は前後ともひらがな又はカタカナ

衍字 (a) 編集箇所における文字単位編集距離が 1 , 編集箇所の文字数変化が -1 , 削除文字 はひらがな又はカタカナ

衍字 (b) 編集箇所がその直前もしくはその 直後の文字列と一致する, 編集箇所の文字数変化が -1 以下, 削除文字は編集箇所の文字数変化が -1 ならば漢字， -2 以下ならばひらがな又

3）JWTD v1 と同様に, undo や revert された版を取り除く, 編集がループしている文ぺアを取り除く, 編集が推移している 文ペアは統合するなどの操作も行っているが, 紙面の都合上,本稿ではその詳細は省略する。

 &  \\

& 出力 & 今日はいい天気だ。 \\

表 2

「今日はいい【転機 $\rightarrow$ 天気】だ。」を BART モデル で尤度計算する際に与える入出力

はカタカナ又は漢字

転字 編集箇所における文字単位編集距離が 2, 編集箇所における文字単位ダメラウ・レー ベンシュタイン距離 [8] が 1, 編集箇所の文字 は前後ともひらがな又はカタカナ

誤変換 (a) 編集箇所における編集前後の読 みが一致，編集箇所の文字は前後ともに漢字が 含まれる

誤変換 (b) 編集箇所における編集前後の読 みが誤字または脱字または衍字 (a) または転字 を含む，編集箇所の文字は前後ともに漢字が含 まれる

## 4.2 フィルタリング

上記で得られた文ぺアには入力誤り訂正ではな いと考えられる編集も含まれる. それらを取り除く ため, 品詞・形態素解析, リダイレクトデータ, 言語モデルを使ったフィルタリングを行った. 本稿で は，JWTDv1 から変更した言語モデルフィルタにつ いてのみ以下に述べ，それ以外は省略する。

JWTD v1 では文字単位 LSTM 言語モデルにおけ る編集による尤度の差をもとにフィルタリングを 行っている. 本研究では，モデルを事前学習済み BART $^{4)}$ に変更してフィルタリングを行った。表 2 のように編集箇所を mask トークンで置換した文を 入力として, 編集前・編集後の文が出力される尤度 をそれぞれ計算する．編集による尤度の増加が大き いものは入力誤り訂正である可能性が高いと考えら れる。それぞれの入力誤りの種類で閾值を定め，編集による尤度の差が閾値より小さい文ぺアを取り除 いた5).

## 4.3 結果

上記の手法を 2019 年 6 月の日本語 Wikipedia に適用し，JWTDv2を構築した。そのデータサイズを表


表 3 データセットのサイズ

3 に示す. 合計で約 70 万文ぺアが得られた.

## 5 データセット構築手法の評価

JWTD v1 ではデータセット構築手法の評価を，ク ラウドソーシングを用いてデータセットの一部を 評価することで行っていた6). しかし，その方法は データセットの適合率のみ評価ができるものであっ た. 入力誤りのうち, 特定のカテゴリを対象として 収集する JWTD の手法では，含まれていない入力誤 りが存在すると考えられるため, 再現率も評価する ことが望ましい. 本研究では, 再現率も含めて評価 するために，入力誤り評価データを作成し，それを 用いて評価を行った。

## 5.1 入力誤り評価データ

特定のカテゴリに制限されていない入力誤りデー タを用意できれば，データセット構築手法の再現率 を評価できる．そこで，クラウドソーシングを用い て，そのようなデータを収集し，それを入力誤り評価データとした.

クラウドソーシングに用いたデータは, 4.1 節の ステップ 1 で取り出した編集箇所を持つ文ぺアから ランダムに選んだ 11,000 文ぺアである. クラウド ソーシングのタスク内容については紙面の都合上,付録の A. 1 章に付す. タスクの結果より 1,127 個の 文ぺアが入力誤り評価データとして得られた。

## 5.2 評価結果

入力誤り評価データを用いて, データセット構築手法の評価を行った。前節でクラウドソーシングに 用いた 11,000 文ペアに対して，4 章の方法を適用 し, 収集された文ペアから，データセット構築手法 を評価した。

結果を表 4 に示す. v1 が JWTD v1における手法 であり, v2 が本研究の手法を示している. これよ

6）同様の方法での JWTD v2 の評価を A. 2 章に付す.

表 4 データセット構築手法の評価結果

り，本研究の手法がマイニング・フィルタリング両面で $\mathrm{F}$ 值が高いことが確認できる.

## 6 入力誤り訂正システム

JWTD v2 を利用して，入力誤り訂正実験を行っ た. BART モデルを事前学習し, その後, 入力誤り 訂正タスクで, fine-tuning を行った. 誤変換の訂正 には漢字の読みの情報が役立つと考え, fine-tuning 時に漢字の読み推定を同時に学習する実験も行っ た。紙面の都合上，事前学習については付録の A. 3 章に付す。

## 6.1 fine-tuning

入力誤り訂正タスクでは, 評価に使うデータ(入力誤り評価データ・次節で後述の JWTD v2 テスト セット)を含まないページから得られた, 入力誤り 文ペア 664,287 文を訓練データ，1,000 文を検証デー タとした。漢字の読み推定タスクでは, BCCWJ [9] のコアデータ 40,584 文を訓練データとして用いた. BCCWJ の原文文字列（原文）を入力して，発音形出現形（読み）を出力させるように学習させる.読み推定タスクの入力単位は BCCWJ の短単位を subword 分割したものとした。同時に学習を行うモ デルでは，まず，入力誤り訂正タスクと読み推定タ スクで fine-tuning した後, 入力誤り訂正タスクのみ で fine-tuning した.

## 6.2 評価方法

評価指標は入力誤り訂正の適合率 - 再現率 $\cdot \mathrm{F}$ 值 とし，それらは訂正前の文と訂正後の文の文字単位最小編集と, 訂正前の文とシステム出力文の文字単位最小編集から計算した。

評価には, 入力誤り評価データ・GitHub Typo Corpus・JWTD v2 テストセットの 3 つを用いた. GitHub Typo Corpus は, Hagiwara らの分類器での入力誤りである確率 (prob_typo) が 0.9 より大きい日本語データから，英語のスペルミス訂正を除いた，557 文を用いた。JWTD v2 テストセットは JWTD v2 の

表 5 入力誤り訂正結果

表 6 誤変換の訂正結果

一部をクラウドソーシングで評価し，入力誤り訂正 として「正しい」と分類されたものである7).

## 6.3 実験結果

入力誤り評価データと GitHub Typo Corpusにおけ る結果を表 5 に示す。入力誤り評価データでのスコ アは, 表 4 にあるデータセットの評価結果と比較し て，十分高いスコアといえる. GitHub Typo Corpus でのスコアは入力誤り評価データと比較していずれ も低い。これは, Wikipedia と GitHubの commitログ ではテキストのドメインが大きく異なることが原因 であると考えられる. JWTD v2 テストセットのう ち，誤変換カテゴリにおける結果を表 6 に示す。い ずれにおいても，スコアの向上が確認できる。これ より，誤変換の訂正では読み推定タスクを同時に学習することが有効であると考えられる。

## 7 他の校正システムとの比較

前章で作成した BART を用いた入力誤り訂正シス テムと, 他の二つの校正システム (Microsoft Word ${ }^{8}$ ) と Yahoo! 校正支援 $\mathrm{API}^{9}$ ) で, 入力誤り認識精度の 比較を行った。紙面の都合上，校正システムの設定等は付録 A. 4 章に付す.

## 7.1 評価方法

二つの校正システムの出力の多くが，訂正箇所の 指摘のみであったため, 入力誤り訂正ではなく, 訂正すべき箇所を推定するタスク（入力誤り認識）で 評価した。校正システムが出力した訂正箇所（区間）が，正解の訂正箇所（区間）を含むかどうかを 数え上げ，適合率・再現率・F 値を計算する．前章


表 7 入力誤り認識結果

表 8 入力誤り認識結果の実例

で作成した訂正システムにおいては，入力とシステ ム出力の差分箇所を訂正箇所とした。評価には入力誤り評価データと GitHub Typo Corpus を用い, Word においてはそれぞれランダムに 100 個サンプルした もので我々が人手で評価した。

## 7.2 結果

結果を表 7 に示す. 本研究のシステムが，他の校正システムより再現率・F 值において高いスコアで あることが確認できる。

入力誤り認識結果の実例を表 8 に示す. 誤変換以外の衍字などの入力誤りは，Word が指摘できてい るものがあったが，誤変換は，本研究のシステムの みが指摘できているものが多かった。最後の例は JWTD v2 では収集していない編集距離の大きい入力誤りであり, 本研究のシステムは指摘できておら ず，今後の課題である.

## 8 おわりに

本研究では JWTD v1 が収集していない入力誤り の収集とフィルタリングの一部を変更し，JWTD v2 を構築した。データセットの再現率を評価できる データを作成して評価を行い，v2 が v1より精度が 高いことを確認した。事前学習モデルを用いて入力誤り訂正実験を行い，十分高い精度であることを確認した。また，読み推定タスクを同時に学習するこ とで，精度が向上することを確認した。最後に，入力誤り認識において, 他の校正システムと比較し て, 本研究のシステムの精度が高いことを確認し た. 今後はデータセットのさらなる改良と, 入力誤 り訂正システムを異なるドメインで適用した際の分析・改良に取り組む予定である。

## 参考文献

[1] Keisuke Sakaguchi, Kevin Duh, Matt Post, and Benjamin Van Durme. Robsut wrod reocginiton via semi-character recurrent neural network. Proceedings of the AAAI Conference on Artificial Intelligence, Vol. 31, No. 1, Feb. 2017.

[2] Yu Tanaka, Yugo Murawaki, Daisuke Kawahara, and Sadao Kurohashi. Building a Japanese typo dataset from Wikipedia's revision history. In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics: Student Research Workshop, pp. 230-236, 2020.

[3] Yukino Baba and Hisami Suzuki. How are spelling errors generated and corrected? a study of corrected and uncorrected spelling errors using keystroke logs. In Proceedings of the 50th Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers), pp. 373-377, 2012.

[4] Mike Lewis, Yinhan Liu, Naman Goyal, Marjan Ghazvininejad, Abdelrahman Mohamed, Omer Levy, Veselin Stoyanov, and Luke Zettlemoyer. BART: Denoising sequence-to-sequence pre-training for natural language generation, translation, and comprehension. In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, pp. 7871-7880, Online, July 2020. Association for Computational Linguistics.

[5] Masato Hagiwara and Masato Mita. GitHub typo corpus: A large-scale multilingual dataset of misspellings and grammatical errors. In Proceedings of the 12th Language Resources and Evaluation Conference, pp. 6761-6768, Marseille, France, May 2020. European Language Resources Association.

[6] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Lukasz Kaiser, and Illia Polosukhin. Attention is all you need. In Advances in neural information processing systems, pp. 5998-6008, 2017.

[7] Satoru Katsumata and Mamoru Komachi. Stronger baselines for grammatical error correction using a pretrained encoder-decoder model. In Proceedings of the 1st Conference of the Asia-Pacific Chapter of the Association for Computational Linguistics and the 10th International Joint Conference on Nat- ural Language Processing, pp. 827-832, Suzhou, China, December 2020. Association for Computational Linguistics.

[8] Fred J Damerau. A technique for computer detection and correction of spelling errors. Communications of the ACM, Vol. 7, No. 3, pp. 171-176, 1964.

[9] Kikuo Maekawa, Makoto Yamazaki, Toshinobu Ogiso, Takehiko Maruyama, Hideki Ogura, Wakako Kashino, Hanae Koiso, Masaya Yamaguchi, Makiro Tanaka, and Yasuharu Den. Balanced corpus of contemporary written Japanese. Language resources and evaluation, Vol. 48, No. 2, pp. 345-371, 2014.

[10] Rico Sennrich, Barry Haddow, and Alexandra Birch. Neural machine translation of rare words with subword units. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pp. 1715-1725, 2016.

[11] Taku Kudo and John Richardson. Sentencepiece: A simple and language independent subword tokenizer and detokenizer for neural text processing. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations, pp. 66-71, 2018.

## A 付録

## A. 1 入力誤り評価データの作成

クラウドソーシングを用いて，入力誤り評価データを 作成した。

## A.1.1 タスク内容

質の良い評価データを作るために，二段階の方法でク ラウドソーシングを行った. どちらもそれぞれ 5 人の ワーカーに回答してもらった.

一段回目のタスクは，編集がどのような編集かを分類 するタスクである，編集前と編集後の文を提示して，「内容の変更 ・追加 ・削除」,「表現の変更 - 追加 - 削除」, 「誤字・脱字・衍字・漢字の変換ミスの修正」,「その他・わか らない」の 4 つの選択肢の中から一つ選んでもらった。「誤字・脱字・衍字・漢字の変換ミスの修正」が過半数を 得た文ペアを入力誤りに関係するぺアとし, 二段階目の タスクの対象データとした.

二段階目のタスクは，編集前と編集後の文を同時に提示して，それぞれ書き言葉として自然かどうかを質問し た. このとき, 提示する際は単に文 $\mathrm{A}$, 文 $\mathrm{B}$ として提示 し, どちらが編集前か編集後かをわからないようにした.選択肢は「A は書き言葉として自然な文であるが，B は不自然な文である」，「B は書き言葉として自然な文である が，A は不自然な文である」，「どちらの文も自然である」,「どちらの文も不自然である」，「わからない」の 5 つとし た. 編集前が不自然・編集後が自然という回答が過半数 を得た文ぺアを入力誤りに関係するぺアとした。

## A.1.2 結果

一段階目のタスクにおいて，「誤字・脱字・衍字・漢字 の変換ミスの編集」が過半数を占めた文ぺアは 1,773 個で あった。それらを対象に行った二段階目のタスクで，編集前の文が不自然・編集後の文が自然という回答が過半数を占めた文ぺアは 1,127 個であった。この 1,127 個の文 ペアを入力誤り評価データとした。

## A. 2 クラウドソーシングを用いたデータ セット構築手法の評価

クラウドソーシングを用いて, JWTD v2 の評価を行っ た. 評価対象はランダムに選んだ記事 3,000 ページ中から 得られた文ぺアを用いた. 同じ編集が数多く存在してい るぺージが存在したため, データの偏りを避けるために，選ばれたページ内に同一の編集が 4 つ以上含まれていた 場合，そのうちの 3 つのみをランダムに採用した。

## A.2.1 タスク内容
A. 1 節の二段階目のタスクと同じ，編集前後の文が自然 かどうかを問うタスクである。それぞれの文ぺアにつき 10 人のワーカーに回答してもらった.

## A.2.2 結果

編集前が不自然で編集後が自然という回答の票が過半数を占める文ぺアを入力誤りとして「正しい」とすると，「正しい」割合は, 誤字が $77.6 \%$, 脱字が $70.3 \%$, 衍字 (a) が $84.1 \%$, 衍字 (b) が $93.5 \%$, 転字が $52.5 \%$, 誤変換 (a) が $64.3 \%$ ，誤変換 (b) が $69.9 \%$ で，全体では $71.9 \%$ であった.

## A. 3 BART の事前学習

日本語 Wikipedia の約 1,800 万文を利用して BART の事前学習を行った ${ }^{10)}$. 事前学習では, Text infilling タスクを 行った. Text infilling は, 文章の一部が maskトークンに 置き換えられた文章から，元の文章を生成するタスク である。トークン単位は，テキストをJuman++で形態素分割した後にそれらを subword 分割 [10] したものを用い た. subword 分割には SentencePiece[11]を利用し，語彙数 は 32,000 とした. encoder と decoder がそれぞれ 12 層であ る, large モデルで事前学習した。隠れ層の次元は 1,024 , バッチサイズは 512 とし, 25 万 step 学習した.

## A. 4 他の校正システムの設定

Microsoft Word 日本語における入力誤り認識のみの 評価に限定するために，校正結果のうち言語設定が日本語とされている箇所のみを評価に用いた。校正の設定は 「文書のスタイル」を「通常の文」に設定し，他は初期設定 のままとした. 利用した Word のバージョンは「Microsoft Word for Mac 16.37」である.

Yahoo! 校正支援 API Yahoo! 校正支援 API は，校正 のカテゴリを 17 種類に分けて出力を行う. 本研究におい ては，それら 17 種類のうち, $\mathrm{F}$ 值が最大となるような力 テゴリを選択して，評価を行った。

10）事前学習済みモデルはhttp://nlp.ist.i.kyoto-u.ac.jp/ ?BART 日本語Pretrained モデル にて公開している.
 田中佑 $\dagger$ 村脇有吾 $\dagger$ 河原 大輔 $\dagger$ 黒橋禎夫 $\dagger$ †京都大学 大学院情報学研究科 $\ddagger$ 早稲田大学 基幹理工学部 \{ytanaka, murawaki, kuro\}@nlp.ist.i.kyoto-u.ac.jp dkw@waseda.jp  