【記事更新】私のブックマーク「自然言語処理による文法誤り訂正 (Grammatical Error Correction based on NLP)」


私のブックマーク

自然言語処理による文法誤り訂正 (Grammatical Error Correction based on NLP)

水本智也

はじめに

依頼を受けた時のテーマは「言語学習・教育支援」ということなのだが、このあたりのテーマについては甲南大学永田亮氏の著書「[語学学習支援のための言語処理]」やLeacockらの「[Automated Grammatical Error Detection for Language Learners]」にも詳しく書かれているため、広く知りたい方はそちらの本を読んでもらいたい。今回は特に「自然言語処理による英語の文法誤り訂正」に絞って最近の研究の動向やデータ・ツールを紹介し、すぐにでも文法誤り訂正を試してもらえる形で紹介したい。

あらためて説明する必要はないかもしれないが、念のため最初に文法誤り訂正のタスクについて説明しておく。
一般的な文法誤り訂正では、非母語話者が書く文を入力として受け取り、その文に含まれる誤りを訂正した文を出力する。
簡単な例を以下に示す。

この例だと、本来はtoとすべきところをinと誤って書いている。このような誤りを訂正するのが文法誤り訂正である。

文法誤り訂正の最近の動向

文法誤り訂正の研究自体は誤り検出(訂正するのではなく誤った箇所を検出する)含め古くから行なわれてはいるが、ここでは主に2011年以降の研究動向について概観する。

文法誤り訂正のコンペティション (Shared Task)

文法誤り訂正の研究が盛んに行なわれるようになってきた理由の一つとして外すことができないのが、Shared Taskと呼ばれるコンペティションの存在である。
2011年には[Helping Our Own (HOO-2011 Shared Task)]と呼ばれるコンペティションが開催され、2012年にも[HOO-2012 Shared Task]が開催された。
また、2012年には [Error Detection and Correction Workshop 2012 (EDCW2012)]というコンペティションが日本で開催され、このあたりから文法誤り訂正の研究が盛んになってきていることが伺える。
2013年、2014年には、CoNLLと呼ばれる国際会議のShared Taskとして文法誤り訂正が採用され ([CoNLL-2013 Shared Task], [CoNLL-2014 Shared Task])、
ここで用意された共通の評価用データセットによって文法誤り訂正の研究が発展したと言っても過言ではない、と私は思う。

以下に挙げるそれぞれのOverview paperを読めば使用したデータ、評価方法、参加チームのシステムの性能などを知ることができるので、興味がある人は読んでみて欲しい。

[Helping Our Own: The HOO 2011 Pilot Shared Task]
[HOO 2012: A Report on the Preposition and Determiner Error Correction Shared Task]
[The CoNLL-2013 Shared Task on Grammatical Error Correction]
[The CoNLL-2014 Shared Task on Grammatical Error Correction]

文法誤り訂正の評価手法

文法誤り訂正研究の発展の上で忘れてはいけないのが、文法誤り訂正の評価手法である。
これらの評価手法があるために定量的評価が可能となり様々な手法の研究開発がスムーズに行なわれるようになっている。
2012年以前の文法誤り訂正の評価は、1単語単位で適合率(訂正した単語が正しく訂正できているか)、再現率(訂正するべき箇所がどの程度正しく訂正できたか)、F値を計算していた。
2012年にDahlmeierらによる[Better Evaluation for Grammatical Error Correction]でMax Match (M2)という新たな評価手法が提案された。この評価手法はこれまで1単語単位で訂正が正しいか等を見ていたものを、なるべく長い単位で一致を見ようとしたものであるが、基本的には従来通り再現率、適合率を計算するが、適合率を重視したF0.5値で評価することが一般的になっている。CoNLL2013 Shared TaskとCoNLL2014 Shared Taskでの評価指標と使われており、その後の論文ではこの評価手法が使われていることが一般的となっている。その後2015年にFeliceらの[Towards a standard evaluation method for grammatical error detection and correction]でI-measureという手法が提案された。この評価手法のモチベーションは、訂正した結果が元の文より悪くなっている場合にそれを反映したいということがあり、他の評価手法では0から1の値を取ることが多いが、I-measureでは-1〜1の値を取るようになっている。同じく2015年にNapolesらの[Ground Truth for Grammatical Error Correction Metrics]でGLEUという評価手法が提案された。名前から想像がつく方もいると思うが、これは機械翻訳の評価手法として使われるBLEUに着想を得て作られている。機械翻訳では原文を見ることはないが、文法誤り訂正では原文、システム、正解の3つを比べる必要がありそのあたりでBLEUから改良が加えられている。
この3つの評価手法について改めて評価を行なったChollampattらの論文[A Reassessment of Reference-Based Grammatical Error Correction Metrics]が2018年に発表されているため、こちらも読むと面白い知見が得られると思う。

ここまでは正解データを使った文法誤り訂正の評価手法について紹介するが、正解データを使わずにシステムを評価しようという手法も提案されている。2016年にNapolesらが[There’s No Comparison: Reference-less Evaluation Metrics in Grammatical Error Correction]で初めて正解データを使わない評価手法を提案した。この論文では文法誤り検出(訂正ではなく誤っている箇所を検出する)システムで検出された誤りの数を使って文法誤り訂正のシステムを評価することを行なっている。2017年にAsanoらが[Reference-based Metrics can be Replaced with Reference-less Metrics in Evaluating Grammatical Error Correction Systems]で正解データを使わない新しい評価手法を提案した。この論文では、文法性・流暢性・意味保存性の3つの観点に注目した評価手法を提案しており、正解データを使わない評価手法が正解データを使った評価手法よりも人による評価に近い評価ができることを明らかにした。

評価手法自体ではないが関連する研究として重要なものをいくつかピックアップして紹介する。[CoNLL2014 Shared Taskの参加チームのシステムの出力]を人手で評価した論文として2015年のGrundkiewiczらの[Human Evaluation of Grammatical Error Correction Systems]がある。その後の評価手法の性能を測る場合にこの論文で出されている人手の評価を使うことがあり、文法誤り訂正の評価に関する研究として押さえておきたい。また、文法誤り訂正においても流暢性が大切であることを示したSakaguchiらの2016年の論文[Reassessing the Goals of Grammatical Error Correction: Fluency Instead of Grammaticality]も重要である。流暢性を重視して訂正されているデータも作られているため、この論文も押さえておきたい。

文法誤り訂正の手法

文法誤り訂正の手法には、大きく分けてルールベース、分類器ベース、機械翻訳ベースの3つがある。
ルールベースの手法では、主に冠詞・名詞の単数複数・主語と動詞の一致・時制などの誤りを訂正するものが提案されている。
2011年以降はルールベースの手法はあまり行なわれてはいないが、主語と動詞の一致誤りを対象としたものとしては永田による2013年の論文[構文解析を必要としない主語動詞一致誤り検出手法]がある。また、前置詞を対象としたものとしてNagataらによる2014年の論文[Correcting Preposition Errors in Learner English Using Error Case Frames and Feedback Messages]があり、この手法は誤りを訂正するだけでなくフィードバックメッセージを出すことも可能で面白い。

2013年までは分類器を使った文法誤り訂正が主流であり、訂正する誤りのタイプも冠詞や前置詞など一部の誤りタイプに限定されていた。一部のみを紹介すると、冠詞や前置詞を対象としたDe Feliceらの2008年の論文[A Classifier-Based Approach to Preposition and Determiner Error Correction in L2 English]、前置詞を対象としたものとしてDahlmeierらの2011年の論文[Grammatical Error Correction with Alternating Structure Optimization]やRozovskayaらの2011年の論文[Algorithm Selection and Model Adaptation for ESL Correction Tasks]、動詞の時制を対象としたTajiriらの2012年の論文[Tense and Aspect Error Correction for ESL Learners Using Global Context]などがある。動詞の語彙選択にフォーカスしたSawaiらの2013年の論文[A Learner Corpus-based Approach to Verb Suggestion for ESL]のようなものもある。

一番最初の機械翻訳ベースの文法誤り訂正の論文は2006年のBrockettらによる[Correcting ESL Errors Using Phrasal SMT Techniques]である。この論文が出た当初は大規模な文法誤り訂正のデータがなかったため、擬似的に文法誤りの入ったデータを作成してモデルを学習した。大規模なデータがなかったためか、しばらくは機械翻訳ベースの文法誤り訂正の論文は出ていないが2011年にMizumotoらが大規模な文法誤り訂正のデータを使った日本語の文法誤り訂正の論文[Mining Revision Log of Language Learning SNS for Automated Japanese Error Correction of Second Language Learners]を発表し、2012年に英語を対象とした[The Effect of Learner Corpus Size in Grammatical Error Correction of ESL Writings]も発表し、それ以降彼らのデータを使った機械翻訳ベースの手法が多く発表されている。

機械翻訳に詳しい人は知っていると思うが、機械翻訳には統計的機械翻訳と呼ばれる手法と、ニューラル機械翻訳と呼ばれる手法があり、文法誤り訂正においてもこの2つが用いられている。2016年までは統計的機械翻訳が主流であり、それ以降はニューラル機械翻訳を使った文法誤り訂正が主流になってきている。ここではその一部を紹介する。
まず、統計的機械翻訳ベースの論文を2つ紹介する。

[Discriminative Reranking for Grammatical Error Correction with Statistical Machine Translation]
Mizumotoらによる2016年の論文。統計的機械翻訳の訂正結果を複数出力し、それを別のシステムを使って並べなおす(リランキング)手法を提案した論文である。言語モデルによるリランキングはこれまでもあったが、品詞などの情報も使ってリランキングした最初の論文である。また、統計的機械翻訳が出す複数の出力で一番良い訂正を選んだ場合のスコア(オラクルスコア)を調べている。
[Phrase-based Machine Translation is State-of-the-Art for Automatic Grammatical Error Correction]
Junczys-Dowmuntらの2016年の論文。それまでの文法誤り訂正のシステムの性能(F0.5値)が40程度だったのに対し、この論文ではF0.5値で52.21を出し、その当時ダントツの性能を出した論文である。後述するがこちらはツール、モデルが公開されており実際に動かすこともできる。

ニューラル機械翻訳を使った研究で押さえておきたいものとして5つ紹介する。
[Grammatical error correction using neural machine translation]
Yuanらによる2016年の論文。文法誤り訂正において初めてニューラル機械翻訳の手法を使った論文である。性能自体はそこまで高くはないが、初めてニューラル機械翻訳を文法誤り訂正に適応した論文として覚えておきたい。
[Grammatical Error Correction with Neural Reinforcement Learning]
Sakaguchiらによる2017年の論文。ニューラル機械翻訳ベースの文法誤り訂正で初めて強化学習を使った論文である。この論文は、ここで挙げた他の論文と異なるデータセットでのみ評価しているため性能については割愛する(後述するJFLEGというデータで評価している)。
[A Multilayer Convolutional Encoder-Decoder Neural Network for Grammatical Error Correction]
Chollampattらによる2018年の論文。RNN系のエンコーダデコーダを使った手法が多い中でCNNを使った手法を提案した。F0.5値も54.79とその当時の最高性能であった。コードが公開されているため実際に動かすことが可能である。
[Approaching Neural Grammatical Error Correction as a Low-Resource Machine Translation Task]
Junczys-Dowmuntらによる2018年の論文。RNN系のエンコーダデコーダを使った場合に再現率が低くなる傾向にあったが、この論文ではいくつかの工夫を行なうことで従来より高い再現率を達成している。F0.5値でも56.1と高性能を出している。
[Fluency Boost Learning and Inference for Neural Grammatical Error Correction]
Geらによる2018年の論文。流暢性という観点に注目し、流暢な訂正ができるようにいくつか工夫することで訂正性能を向上させている。この論文でF0.5値は52.72となっている(流暢性を考慮してない場合はF0.5値41.81)。その後、同じ著者らがarXivで[Reaching Human-level Performance in Automatic Grammatical Error Correction: An Empirical Study]という論文を公開しており、元の論文でRNNエンコーダデコーダを使っていたのを、こちらでは上のCNNエンコーダデコーダのモデルを使っており、F0.5値で62.42まで達成しており、現状もっとも性能が高い論文である。

この他にも分類器と統計的機械翻訳を一緒に使った手法や統計的機械翻訳とニューラル機械翻訳の両方を使った手法も提案されている。興味があればぜひ調べて欲しい。

データセット

文法誤り訂正の分野でシステム/モデルの学習に使われているデータと評価に使われているデータを紹介する。
文法誤り訂正のシステムを学習したり評価するためのデータは、学習者の書いた英文とそれを訂正した文のペアになっている。
訂正された箇所にどういう誤りか(例えば、aからtheであれば冠詞誤りなど)が付けられたデータもあれば、何も情報は付いておらず素朴に機械翻訳のパラレルコーパスのように学習者の書いた英文とそれの訂正文のペアになっているだけのものもある。
ここでは、特に明確に区別はせずに文法誤り訂正の論文によく出てくるデータについて紹介する。
また、学習用/評価用の区別は便宜上のものであり、論文によってはここで挙げた評価用のものを学習に使って別のコーパスで評価しているものもある。

学習用のデータ

機械学習や機械翻訳ベースの文法誤り訂正を行なうためには大規模なデータが必要となる。下記に3つのコーパスを挙げる。

[NAIST Lang-8 Learner Corpora]
これは奈良先端科学技術大学院大学の松本研究室から配布されているデータである。語学学習のためのSNS [Lang-8]の添削ログからクローリングして作られたデータである。約200万文対から成り、文法誤り訂正用のデータとしては規模の大きいものとなっている。
学習者の母語に関しても、日本人の英文も多いが他の言語を母語とする英文も数多く含まれている。

[NUS Corpus of Learner English (NUCLE)]
このデータはシンガポール国立大学のチームが開発したデータで、データの規模自体はおよそ6万文対で、NAIST Lang-8 Learner Corporaには劣るが、訂正の質自体はいいとされている。また、後述する現在の評価データとしてスタンダードとなっているコーパスと性質が似ているため、これを使って学習することが多い(NAIST Lang-8 Learner Corporaと一緒に用いられることが多い)。

[The EF-Cambridge Open Language Database (EFCAMDAT)]
Cambridge Universityのチームが作ったコーパスであり、訂正されてない文のペアも合わせると約600万文対、何らかの訂正がされているものだけでも約250万文対あり、文法誤り訂正のコーパスとしては非常に大規模なコーパスである。このコーパスを文法誤り訂正に使っている論文は今年2018年に一本出たデモペーパー ([Cool English: A Grammatical Error Correction System Based on Large Learner Corpors])のみであり、そのデータの性質等はあまりわかってはいないが、このデータも大規模であるため、今後使われることも多くなると思われる。
データの詳細に関しては[Automatic Linguistic annotation of large scale L2 databases: The EF-Cambridge Open Language Database (EFCAMDAT)]を参照して欲しい。

評価用データ

文法誤り訂正の評価に使われているデータとしてもっともよく使われるものは、CoNLL2014 Shared Taskのテストセットであるが、他にいくつかの論文で使われてる2つのデータを挙げる。

[CoNLL2014 Shared Task Test Set] (ダウンロードが始まるので注意)

2014年にShared Taskが開催されて以降、このデータを使って評価している論文がほとんどであり、後述するM2Scorerを用いて評価される。また関連したデータとして、[CoNLL2013 Shared Task Test Set] (ダウンロードが始まるので注意)があり、システム/モデルのパラメータを決めるために使われることが多い。
どちらも約1300文対から成る。このコーパスの評価には後述する評価ツールM2Scorerが使われることが一般的である。

[Cambridge Learner Corpus First Certificate in English (CLC-FCE)]

Cambridge Universityで作られたデータであり、Cambridge Learner Corpus (CLC)という大規模なコーパスのサブセットとなっている(CLC本体の方は基本的には共同研究等でしか使用できない)。
データ規模的には約3万文対であり、他の評価用コーパスよりは規模が大きくこれをシステムの学習に使っている論文もある。

[JHU FLuency-Extended GUG (JFLEG)]

2016年にJohns Hopkins University、Grammarlyのメンバーによって作られたデータである。
このデータが他のデータと比べて変わっている点として、他のデータが単純に文法誤りのみが訂正されているのに対して、JFLEGでは文法誤りを訂正しつつなるべく流暢な表現に直すということを行なっている点がある。このコーパスは公開時点で作者が開発セットとテストセットにデータを分割しており、それぞれ約750文対から成る。このコーパスを評価に使う場合は後述する評価ツールのGLEUを使って評価することが一般的になっている。

ツール

文法誤り訂正のツール

計算機環境さえあればすぐにでも使うことのできるツールを2つ紹介する。
1つは統計的機械翻訳の手法であるPhrase-based Statistical machine translationを使ったもので、もう1つはニューラル機械翻訳を使ったツールである。便宜上、各システムが提案された論文のタイトルを示す。

[Phrase-based Machine Translation is State-of-the-Art for Automatic Grammatical Error Correction]

このシステムは2016年に発表された統計的機械翻訳を使った文法誤り訂正の手法を使ったものであり、M2 ScoreのF0.5値で52.21で比較的高い性能を出すことができる。

[A Multilayer Convolutional Encoder-Decoder Neural Network for Grammatical Error Correction]

ニューラル機械翻訳を使ったシステムとして公開されているものとしては、現状もっとも性能が高いシステムであり、F0.5値では54.79である。

ツールではないが、現在もっとも高い性能を出しているシステムの出力結果が以下で公開されている。現在の文法誤り訂正システムの性能がどの程度か見てみたい場合はぜひ見て欲しい。

[Reaching Human-level Performance in Automatic Grammatical Error Correction: An Empirical Study]

文法誤り訂正の評価のためのツール

自分で作ったシステムを評価するためには、評価するためのツールが必要である。
文法誤り訂正の動向で紹介した正解データを使わない評価手法はツールとしては公開されていないため、正解データを使う3つのツールについてのみ挙げておく。

[M2Scorer]

現在文法誤り訂正の評価でもっとも良く使われているM2で評価することができるツール。このツールを使うためには正解のデータを特殊な形に変換する必要があるが、後述するERRANTに含まれているツールを使うことでこのツールを使うための形に変換することができる。

[GLEU]

JFLEGをテストデータとして使った場合に使用されることが多い。M2ScorerやI-measureと異なり、システムの出力とその正解が単純なペアの形になっていれば使うことができるため、簡単に使用することができる。

[I-measure]

このツールを使って評価するためには、xml形式に変換する必要がある。このツールにM2Scorer用の形式からxmlに変換するスクリプトが含まれている。

その他の便利なツール

文法誤り訂正の研究や開発をする上で知っていると便利なツールを紹介する。

[ERRor ANnotation Toolkit (ERRANT)]

このツールではシステムの出力に対して誤りのタイプを自動で付与することができる。例えば、aをtheに訂正しているような場合は冠詞誤りを付与する。このツールを使うことで、自分のシステムがどの誤りタイプに強い・弱いかを知ることが可能である。自動推定精度は約96%とされている。詳しくは[Automatic Annotation and Evaluation of Error Types for Grammatical Error Correction][Automatic Extraction of Learner Errors in ESL Sentences Using Linguistically Enhanced Alignments]を参照して欲しい。
また、このツールにはM2Scorerで評価可能な形式に変換するスクリプトも含まれている。

[EFCamDat-Preprocess]

文法誤り訂正のデータであるEFCAMDATを文法誤り訂正に使えるように処理するためのツール。

[Lang8-NAIST-extractor]

NAIST Lang-8 Corpora用の抽出ツール。誤り文と正解後のペアを抽出することができる。NAIST Lang-8 Corporaを使った論文では、それぞれ独自の前処理が行われているため、論文を再現したい場合は論文に書いてある方法を使って抽出する必要があることに注意したい。

国際会議

文法誤り訂正の研究についての最新の研究動向を知りたい場合は、自然言語処理のカンファレンスである

[Annual Meeting of the Association for Computational Linguistics (ACL)]
[Annual Conference of the North American Chapter of the Association for Computational Linguistics (NAACL)]
[Conference on Empirical Methods in Natural Language Processing (EMNLP)]
[International Conference on Computational Linguistics (COLONG)]
[International Joint Conference on Natural Language Processing (IJCNLP)]

あたりを調べると良いが、年や会議によってばらつきがあり、多い場合もあれば0本の場合もあるため、
文法誤り訂正についてサーベイする場合は頑張って探して欲しい。
言語学習系の国際ワークショップとして以下のものがある。

[Workshop on Innovative Use of NLP for Building Educational Applications (BEA)]
[Workshop on Natural Language Processing Techniques for Educational Applications (NLPTEA)]

これらのワークショップには文法誤り訂正だけでなく自動採点や母語推定など自然言語処理を使った言語学習に関する研究が発表されている。

実際に使えるサービス/デモ

ここまで文法誤り訂正の研究に関することを述べてきたが、最後に実際に動いているサービスやデモを紹介したい。実際に動いているものを触ってみて今の文法誤り訂正がどの程度のものか確かめて欲しい。念のために言っておくと、実際のサービスで研究論文で発表されている手法が必ずしも使われているわけではないことに注意したい。

[Grammarly]
[Ginger]
[LanguageTool]
[GEC Cool English]

代表的なツールとCOLING2018のデモペーパで発表されたシステムを挙げた。
Grammarlyは有料会員になることで文法誤りだけでなく、表現なども一部指摘してくれる。また、他のツールなど違い誤りに対して簡単な説明も表示してくれる。
他のツールなども書きたいことはあるが、公の場なので詳細は語らないため、気になる人はそれぞれのシステムで何が異なるか比べてみて欲しい。

おわりに

本ブックマークでは、すぐにでも文法誤り訂正を試してもらえることを目的として、文法誤り訂正の最近の動向からデータセットやツールについて紹介した。個人的にはかなり頑張って書いた方だが、説明が足りていない箇所も多々あったり、重要な文献など抜けているかもしれないがその辺りはご容赦願いたい。最後に、このブックマークを読んで文法誤り訂正をやってくれる人が増えてくれると大変嬉しく思う。