概要
こちらの記事に対する私なりの整理です。
私もタスクの説明を書く時は毎回頭を抱えています。具体的には以下のポイントで悩みます。
- 入力のスコープ
- 「文」と言い切っていいのか(文章は対象外なのか)
- 「非母語話者(学習者)」が書いた文と言い切っていいのか(母語話者は対象外なのか)
- 誤りのスコープ
- 「文法誤り」と言い切っていいのか(スペル誤りや、コロケーションは文法誤りなのか)
- 流暢性に関する誤りはどういう位置付けにするか
それで、厳密にタスクの定義を書こうとすればするほどどうしても長くなってしまい、予稿のスペース的にも論文のストーリー的にも無理があるので便宜上ついつい省いて説明しがちです。こういった読み手にある一定の前提を敷いた上で書けるのも、言語処理学会などの専門性の高い学会や研究会で発表するメリットの一つとはいえ、冒頭の記事でもあるように分野外の人からしたら「??」となるのは当然だと思うので、「文法誤り訂正」というタスクの定義について、これまでの変遷を振り返りながらここで改めて整理しようと思います。
GECタスクの変遷
まず、「Grammatical Error Correction」という用語を使い始めたのは、おそらくGrammatical Error Correction with Alternating Structure Optimization(Dalmeier and Ng, 2011)が最初だと思います。とはいえ、「文法誤りを自動的に訂正する」という試みはそれまで誰もやっていなかったのかといえばそうではなく、それ以前は「Automatic correction of grammatical errors」とか「Error correction」とか個々の研究者が様々な呼び方で呼んでいたようです。また、GECに関する最初のShared TaskであるHelping Our Own: The HOO 2011 Pilot Shared Task (Dale and Kilgarriff, 2011)もだいたい同じような時期に開催されたということもあり、GECの変遷を語るときは、2011年頃を起点に考える人も多いかと思います。そのため、今回もそこを起点にGECのこれまでの変遷を整理しようと思います。
結論からいうと
- GECタスクはこれまで大きく2度アップデートがあり、今のGECは第3世代にあたる
- 近年のGEC(第2,3世代)は、同じタスク("GEC")のもとそのスコープを徐々に広げていっているため、タスク定義に齟齬が起きている
というのが私なりの整理で、現在のGECのタスク説明が難しい要因だと思っています。
第1世代
世代 | 時期 | 対象誤り | ベンチマーク&Shared Task | 評価観点 |
---|---|---|---|---|
第1世代 | 2011-2013 | 冠詞, 前置詞など | HOO2011,2012, CoNLL2013 | 文法性 |
第2世代 | 2014-2016 | 全ての誤り | CoNLL-2014 | 文法性?? |
第3世代 | 2017- | 全ての誤り | JFLEG | 文法性??,流暢性 |
2011~2013年頃は、冠詞や前置詞などの個々の誤りに対して個別にモデルを構築するアプローチで研究されてきました。この時期のタスク定義はどのように説明されていたかというと、The CoNLL-2013 Shared Task on Grammatical Error Correction(Ng et al.,2013)には以下のように記述されています。
In this task, given an English essay written by a learner of English as a second language, the goal is to detect and correct the grammatical errors present in the essay, and return the corrected essay.
このように、少なくとも「Grammatical Error Correction」という用語を使い始めた時期のタスクの定義としては、
- 入力のスコープ: 「第二言語学習者」が書いた「エッセイ(文章)」
- 誤りのスコープ: 文法誤り
となります。実際、CoNLL-2013 Shared Taskでは、冠詞/限定詞、 名詞の単複、 前置詞、主語と動詞の一致、動詞の態に関する誤りといったいわゆる文法誤りのみを対象としていますし、扱っているデータ(コーパス)に関しても、NUCLEを中心とした第二言語学習者が書いたエッセイを基に作られたものだったため、この定義で間違っていないかと思います。
第2世代
翌年に開催されたCoNLL-2014 Shared Taskでは、対象の誤りを上述の5タイプから全ての誤りへとスコープを広げました。つまり、タスクの対象とする誤りのスコープに関してアップデートがあったわけです。このことにより、結果として文法誤り...なのか?と思われるようなものも対象とする誤りのスコープに入ってきました。これまでSpellling Error CorrectionとしてGECとは独立タスクとして解かれていたスペル誤りがしれっとGECに入ってきたのもこのタイミングです。
第3世代
2回目のアップデートは、タスクのゴール感に関するものです。これまでのGECでは、「Minimal edits」、すなわち、文法的に正しい文章にするための最小限の編集を標準としてきました。しかし、文法的に正しい文章が必ずしも母語話者にとって自然なものとは限らないということが、Reassessing the Goals of Grammatical Error Correction: Fluency Instead of Grammaticality(Sakaguchi et al.,2016)によって示され、また、GECのゴールを「文法的に正しい文章の作成」から「母語話者の流暢さをもつ文章の作成」へと根本的にシフトすべきだと提唱されました。その後に、同じ研究グループからJFLEGという「Fluency edits(流暢性のある修正)」を評価するための新たなベンチマークデータがコミュニティに提供されることで、GECコミュニティ全体としても文法性だけでなく流暢性もセットで評価するようになってきました。
Type | Text |
---|---|
Original | they just creat impression such well that people are drag to buy it. |
Minimal edit | They just create an impression so well that people are dragged to buy it. |
Fluency edit | They just create such a good impression that people are compelled to buy it. |
この結果、第2世代の時点で評価観点としてすでに文法性の範疇を若干超えてはいましたが、第3世代では評価観点として明示的に「流暢性」も加わるようになったため、いよいよ文法誤り訂正とは?という気持ちになってきます。
おわりに
どちらかといえばGECの分野外の人に向けて、「GECタスクの説明がなぜ難しいのか」について、点ではなく線でみることで理解が深まればと思い整理してみました。しかし、依然として「GECタスクの説明どうしよう問題」は解決されていないし、タスク名が形骸化されているため根本解決は難しいのではという気がします...。