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

英語ライティング学習支援のための前置詞誤り解説生成永田† 甲南大学亮†,†††† 国立研究開発法人科学技術振興機構，さきがけ
E-mail: †nagata-nlp2019@ hyogo-u.ac.jp.

を訂正する手法を提案している．しかしながら，いずれの手1. は じ め に法とも，解説できる誤りは非常に限られている．

本稿では，解説文生成というタスクを導入し，その解法をソースコードのコメント生成も関連するタスクである．例

提案する．解説文生成とは，図 1 に示すように，与えられたえば，Hu [7] らは，ソースコードをコメントに翻訳するとい文書に対してライティングに関するヒントや説明を生成する

う翻訳問題として同タスクを解くことを提案している．このタスクのことである（図 1 は，提案手法で実際に生成した解ことは，解説文生成も翻訳問題として解けることを示唆する．

説文である）．解説文生成は，どこが悪いのか，どのように改しかしながら，純粋な翻訳問題として解説文生成を解くこと善したらよいのかを学習者が理解する助けになり，ライティには困難が伴う．図 1 の (S4) のように，一文中に複数の解ング能力の向上に繋がることが期待される．実際，Bitchener

説箇所が存在する場合があるが，通常，翻訳では，原文一文

ら [3] は，誤り訂正と共に解説を学習者に与えることで，ラに対して翻訳文一文を仮定する．逆に，(S3) のように，一文（注 1）イティングの正確さが向上することを示している．

中に解説箇所が一つもない事例も多数ある．このような事例

しかしながら，このような応用面での重要性にもかかわらに対しては，定型的な解説文（例：「誤りはありません。」）をず，2. で述べるように解説文生成の研究例は非常に少ない．

出力するように訓練することで対処可能である．しかしなが解説文生成が難しい問題であることに加えて，研究に必要とら，定型的な解説文に偏った訓練となる可能性がある．実際，なるデータが公開されていないことが理由として挙げられる．

5. で示すように，翻訳器を解説文生成に単純に適用すること

そこで，本稿では，解説文付き学習者コーパスの構築／公開と共に，解説文生成手法を提案する．まず，従来，解説文生成が一つのタスクとして明示的に取り扱われてこなかった背景を考慮し，タスクの定式化を行う．その定式化に基づき，はうまくいかない.

3. 解説文生成
3. 1 タスク定義

解説文生成手法を提案する．提案手法では，解説箇所の検出

解説文生成の入力は文書である．出力は，オフセットと解と適切な解説文の検索というマルチタスク学習として解説文説文をペアにしたものの集合である．オフセットとは，ペア生成問題を解く．更に，構築した解説文付きデータを用いて，になった解説文が文書中のどの単語に対するものかを示す整提案手法が前置詞の用法に関する解説文の生成に有効である数値の範囲（0 スタート）である．解説文は，学習者のライことを示す．なお，前置詞の用法を対象にするのは，頻出誤ティング能力向上に繋がると思われる内容を記述した文字列りであることと，比較可能な従来手法 [12] が存在することをである．多くの場合，文法誤りや不自然な表現に対する解説考慮してのことである．

であるが，より良くするためのアドバイスや書き手のモチベーションを上げるための励ましも含む（詳細な内容につい2. 関 連 研 究ては，公開データ中のガイドラインに詳しい）．

文法誤り訂正は，解説文生成に関連が深いタスクである．

以上が，タスク定義であるが，以降では，前置詞に対する最近では，深層学習を適用し，文法誤り訂正を翻訳問題とし解説文生成に取り組むことを踏まえ，緩和した定義を利用すて解く [10] ことが多い．その結果，目覚ましい性能改善がみる．まず，各オフセットの範囲は重複しないとする．また，単られる．一方で，文法誤り訂正では，誤りに関する説明がで語の抜けの誤りの場合（例えば，図 1 の (S1)），左隣りの単きないため，学習支援としては改善の余地がある．

語位置をオフセットとする．これにより，単語の抜けに対す解説文生成の研究例は非常に少ない．一部の研究者（例える解説かその単語自身に対する解説かの間で曖昧性が生じる

ば，Kakegawa ら [11]）は，人手で作成した規則により文法が，大抵の場合，解説文の内容からどちらのケースにあたる誤りを診断することを試みている．また，Nagata ら [12] は，か判断できるため（特に前置詞に関する解説文生成では）問自動獲得した格フレームを用いて，解説文と共に前置詞誤り題となることは少ない．更に，オフセットを次式により，範囲から単一の整数に変換して扱う： ⌈ end oﬀset−start oﬀset ⌉．
2（注 1）：ただし，彼らの研究では，誤り訂正は人手で紙面上で行われ，また，解説は口頭で行われていることに注意が必要である．

例えば，最初の単語から二番目の単語というオフセットは，0（=⌈ 1−0⌉）に変換する．緩和した定義を用いる理由は，解2― 831 ―Copyright(C) 2019 The Association for Natural Language Processing.
All Rights Reserved.

-------------------------------------------------------------------------------࠾㢟: Smoking should be completely banned at
all the restaurants in the country.
-------------------------------------------------------------------------------Ꮫ⩦⪅ࡢゎ⟅:(S1) I agree it.
(S2) It’s important to ban to smoke at the restaurants.
(S3) Smokers will disturb others who didn't smoke.
(S4) They smoke at all place include in the restaurant.
(S5) From those all reasons , I think we should ban...

図 1：䠘ືモ䠚ӐĂŐƌĞĞӑ䛿䠘⮬ືモ䠚䛷䛩䛾䛷䠘┠ⓗㄒ䠚䛾๓䛻䠘๓⨨モ䠚䛜ᚲせ䛷䛩䚹㎡᭩䛷䠘ືモ䠚ӐĂŐƌĞĞӑ䜢ᘬ䛔䛶㐺ษ䛺䠘๓⨨モ䠚䜢ㄪ䜉䜎䛧䜗䛖䚹䠘ືモ䠚ӐďĂŶӑ䛜⚗Ṇ䛩䜛⾜Ⅽ䛿䠘ƚŽ୙ᐃモ䠚䛷䛿䛺䛟䠘ືྡモ䠚䜎䛯䛿䠘ே䠇ĨƌŽŵ䠇ືྡモ䠚䛷⾲䛧䜎䛩䚹ఱ䛛䛜⾜䜟䜜䛶䛔䜛ሙᡤ䜢♧䛩ሙྜ䛻ӐƉůĂĐĞӑ䛸䛸䜒䛻౑⏝䛩䜛䠘๓⨨モ䠚䛿ӐĂƚӑ䛷䜒䜘䛔䛷䛩䛜䚸ŝŶ䛾䜋䛖䛜䜘䜚୍⯡ⓗ䛷䛧䜗䛖䚹䠘ືモ䠚ӐŝŶĐůƵĚĞӑ䛿䛭䛾䜎䜎䛾ᙧ䛷䛿䠘๓⨨モ䠚䛸䛧䛶ᶵ⬟䛧䜎䛫䜣䚹䠘ືྡモ䠚䛻䛺䛳䛶䛿䛨䜑䛶䠘ືモὴ⏕๓⨨モ䠚䛸䛺䜚䜎䛩䚹䠘๓⨨モ䠚ӐĨƌŽŵӑ䛷䜒ព࿡䛿㏻䛨䜎䛩䛜䚸䠘ྡモ䠚ӐƌĞĂƐŽŶӑ䛸䛸䜒䛻౑⏝䛧䛶䛂䡚䛾⌮⏤䛷䛃䛸䛔䛖䛣䛸䜢♧䛩䛾䛻᭱㐺䛺䠘๓⨨モ䠚䛜䛒䜚䜎䛩䛾䛷ㄪ䜉䛶䜏䜎䛧䜗䛖

提案手法で生成した前置詞の用法に関する解説文の例．

説箇所の検出を 2 値の系列ラベリング問題として解くことが;//Ϳゎㄝ⟠ᡤ䛾᳨ฟ 䠄///䠅䝬䝑䝢䞁䜾できるためである．

ฟຊ䠖Ϭͬϭ

3. 2 解説文生成手法

Ϭϭ䠄/s䠅ゎㄝᩥ⏕ᡂ䠄᳨⣴䠅㻵 㼍㼓㼞㼑㼑 㼕㼠䞉䞉䞉㻚 㻨㻨㼍㼓㼞㼑㼑㻪㻪䛿㻨⮬ືモ㻪;sͿฟຊ͗ゎㄝᩥ 䛺䛾䛷┤᥋䞉䞉䞉Ϭ䞉䞉䞉㻵㼒㻌㻝ゎㄝᩥ䝕䞊䝍䝧䞊䝇DJUHH!!䛿⮬ືモ!
䛺䛾䛷┤᥋┠ⓗㄒ!䜢ྲྀ䜛䛣䛸䛿䛷䛝䜎䛫䜣䚹

提案手法は，次の六つの手順から成る：(0) 前処理，(I) 解説文ベクトルの生成，(II) 解説箇所の検出と文脈ベクトルの抽出，(III) ベクトルのマッピング，(IV) 解説文生成（検索），ධຊ䠖ⱥᩥ(0) 前処理は，訓練時及び生成時に，入力文書に対して行図 2：

う．入力文書に対して，文分割，トークン分割，小文字化の䞉䞉䞉фƐх/ ĂŐƌĞĞŝƚ䞉䞉䞉 фͬƐх䞉䞉䞉(V) 出力．主な手順である (I)–(V) の流れを図 2 に示す．

ືモ!EDQ!!䛜䞉䞉䞉ゝㄒ䝰䝕䝹;ŝ>^dDͿ ືモ!LQFOXGH 䞉䞉䞉䠄/䠅ゎㄝᩥ䝧䜽䝖䝹䛾⏕ᡂ解説文生成のための提案モデル．

処理を施す．また，閾値未満の頻度の単語については <unk>(III) ベクトルのマッピングでは，FFNN を用いて (II) でに置き換える．同様の処理を訓練データ中の解説文に対して得られた文脈ベクトルを解説ベクトルの空間にマッピングすも行う（ただし，文分割は行わない）．

る（図 2 (III))．この理由は，文脈ベクトルから，その文脈(I) 解説文ベクトルの生成では，LSTM ベースの言語モデに適した解説文を検索できるようにするためである．損失関ル（LSTMLM）を用いて，訓練データ中の解説文をベクト数としては二乗誤差関数を用いる．ただし，FFNN の訓練ルに変換する（図 2 (I)）．この LSTM は，入力単語から次のは，(II) で解説箇所として検出された場合のみ行う．また，単語を予測するように訓練する．訓練済みの LSTMLM に，実際には，(II) と (III) の訓練は同時に行う（すなわち，解解説文を入力することで，対応する解説文ベクトルを得る．

説箇所検出とベクトルマッピングからなるマルチタスク学習

すなわち，LSTM の最後の隠れ状態ベクトルを解説文ベクトである）．ネットワーク全体の損失関数は，(1 − β)ls + βlm

ルとする．ただし，表現力を高めるため，前向きと後ろ向きを用いる（ls ，lm ，β は，それぞれ，系列ラベリングの損失の 2 種類の LSTMLM を用意し，両者の隠れ状態ベクトルを関数，ベクトルマッピングの損失関数，両者のバランスを調連結したものを解説文ベクトルとする．

整するハイパパラメタである）．

(II) 解説箇所の検出と文脈ベクトルの抽出は，二つのサ(IV) 解説文生成（検索）および以降の処理は，生成時のブタスクから成る．最初のサブタスクでは，解説する箇所み適用する．(II) で得られた文脈ベクトルは，(III) により，を決定する（なお，以降では，一文ずつ処理することを想定

対応する解説文のベクトルの近くに位置するように，解説文する）．3. 1 で導入した緩和したタスク定義により，解説箇ベクトルの空間上にマッピングされる．したがって，この空所は，0/1（解説文なし/あり）の系列で表すことができる．

間上で，近傍に存在する（訓練データ中の）解説文は適切なしたがって，2 値の系列ラベリングとして解ける．提案手法ものである可能性が高い．このアイデアに基づき，(IV) ででは，BiLSTM に基づいた系列ラベリングモデルを用いる

は，マッピングされた文脈ベクトルと訓練データ中の解説文（図 2 (II)）．具体的には，各トークンを分散表現に変換し，ベクトルとの間の余弦類似度を計算する．この結果が生成の順次 BiLSTM に与える．出力層は，softmax 層とし，0/1 の基盤となる．

確率を推定する．訓練時の損失関数は，交差エントロピー損

更に性能を高めるため，追加処理を行う．まず，解説箇所の前置詞（例えば，“at”）と解説内容の前置詞（例えば，“in”）失関数を用いる．
二番目のサブタスクでは，解説箇所の文脈を文脈ベクトルが一致しない場合がある．このような解説文は，類似度がどとして抽象的に表現する．これには，系列ラベリングで 1 がれだけ高くとも，不適切である可能性が高い（この例の場合，出力されたトークンに対応する BiLSTM の隠れ状態ベクト“at” に対して “in” に関する解説を行うことになる）．した

ルを利用する．BiLSTM の隠れ状態ベクトルは，各タイムスがって，このような解説文は除外する．また，余弦類似度がテップで，前後の単語の情報を蓄積しているため，文脈ベク

閾値未満となる解説文も除外する．言い換えれば，類似したトルに適している．

解説文が見つからない場合，解説文の生成は行わない．

― 832 ―

Copyright(C) 2019 The Association for Natural Language Processing.
All Rights Reserved.

表 1：(V) 出力で，生成結果を出力する．(IV) の結果，最も類似構築した解説文データの統計量．

トピックすると判定された解説文を解説箇所の情報と共に出力する．

文書数

4. データ構築

アルバイト

喫煙521519

トークン数

131,947

130,154

解説文数

1,408

1,426

評価実験のため前置詞に関する解説文を人手で付与した（Web 上（注 2）でデータを公開している）．基礎となるコーパス回行い，各生成結果の和集合を最終的な生成結果とした（同として，ICNALE [8] の written essay を選択した．ICNALE

じ個所に複数の解説文が生成された場合，余弦類似度が最もでは，ライティングのトピックが「大学生のアルバイト」と高いものを選択した）．

「レストランでの喫煙」の 2 種類に統制されている（以降，比較手法として，2 種類の手法を実装した．一つ目は，格それぞれ，「アルバイト」，「喫煙」と表記する）．このトピッ

フレームに基づいた手法 [12] である．訓練データとして次のクの統制により，語学学習で頻繁にみられる状況を想定するコーパスを用いた：BNC [5]，EDR コーパス [9]（母語話者ことができ，評価環境として好ましい．すなわち，授業内のコーパス）；構築した訓練データと開発データ（学習者コーパ

ライティング課題や資格試験など，全ての学習者が同一のトス）（注 6）．二つ目は，注意機構付きエンコーダデコーダニュー

ピックについて書くという状況を想定した評価が行える．

ラルネットワーク [1]（以降，enc-dec+att と表記する）であICNALE から 1,040 の文書をサンプリングし，日本語で解る．すなわち，学習者の書いた英文を解説文に翻訳するとい説文の付与を行った．2 名のプロのアノテータを雇用し，いずう翻訳問題として解く手法である．訓練には，基本的に，提れか 1 名が一つの文書を担当した．解説対象は，全ての前置案手法と同じ条件を用いた．ただし，enc-dec+att は，解説詞誤りに加え，解説を加えたい箇所（例えば，より良くする文が付与された英文のみを用いて訓練と評価を行った（注 7）．

ための助言やモチベーションを向上させる励ましなど）とし解説文付与に携わった一人が生成結果を主観評価した．各た．付与の際には，MS-Word のコメント機能を用いた．な生成結果を，適切，部分的に適切，不適切の 3 種類に分類

お，前処理として，Stanford Statistical Natural Language

した．部分的に適切とは，生成結果の一部を修正すること

Parser (ver.2.0.3) を用いて文分割とトークン分割を行った．

で適切な解説となる場合を指す．評価尺度として，recall，このデータの統計量は表 1 に示すとおりである．

precision，F 値を用いた．
「適切」のみを正しい生成とみなした厳密評価と「部分的に適切」も正しい生成とみなした緩和

5. 評 価 実 験

評価の 2 種類を用いた．

5. 1 実験条件と実験手順

5. 2 評 価 結 果

構 築 し た デ ー タ を 用 い て ，提 案 手 法 を 実 装 し た ．英

表 2 に評価結果を示す．表 2 から，提案手法は，比較手法

単語の分散表現は，事前訓練により，次のコーパスからの性能を大きく改善していることがわかる．enc-dec+att の得た： CEEJUS（注 3），ETS [4]，ICLE [6]，CLC FCE [14]，結果は，解説文生成を純粋な翻訳問題として解くことは有効

NICE [13]（以上，学習者コーパス），EWT [2] (母語話者でないことを示す（その理由は，2. で議論した通りである）．

コーパス）．また，この分散表現を，解説文中に出現する英格フレームに基づいた手法でも，その recall は非常に低い．

単語の分散表現としても使用した．その他の日本語単語につ一方，提案手法は，同程度の precision を達成しつつ，recall

いては，ランダムな値で初期化した．日本語の形態素解析を 2〜5 倍も改善している．この結果は，解説対象の英文と（注 4）器として MeCabを用いた．評価実験用に，構築データを 8:1:1 の比率で訓練，開発，評価データに文書単位で分割

解説文とをベクトルとして抽象的に表現し，検索問題として解説文生成を解く提案手法の有効性を示すものである．

した．訓練は，「アルバイト」と「喫煙」別々に行い，2 種類一方で，表 2 から，前置詞の用法に限ったとしても解説文の訓練結果を得た．ハイパパラメタは開発データで決定した生成は難しいタスクであることもわかる．次節では，提案手（注 5）法で，どのような問題が解けるのか（すなわち，どのような．その結果を対応する評価データで評価した．訓練を 5誤りに対して解説文が生成できるのか）を考察する．
（注 2）：http://nlp.ii.konan-u.ac.jp/fc_corpus.html

6. 考（注 3）：http://language.sakura.ne.jp/icnale/modules.html（注 4）：http://taku910.github.io/mecab/

察（注 5）：LSTMLM： LSTM の層数 2；隠れ状態の次元 600．BiLSTM：

提案手法の生成結果を人手で分析したところ，典型的な誤LSTM の層数 1；隠れ状態の次元 1,200．FFNN：層数 1（次元 1,200）．共りに対して適切な解説文が生成できることを確認した．具体

通ハイパパラメタ：単語分散表現の次元 600；未知語（<unk>）の頻度閾値：
英単語 5 未満，日本語単語 2 未満；バッチサイズ 64；early stopping：エ（注 6）：この手法は開発データを必要としないため，開発データも訓練データ

ポック数 200，patience 10；ドロップアウトレート 0.5；最適化アルゴリズとして使用した．

ム Adam（step size: 0.01, first/second moment: 0.9/0.999）．余弦類（注 7）：解説文が付与されていない英文を訓練に用いると，何も出力しない似度の閾値 0.971（アルバイト）と 0.976（喫煙）．損失関数の重み β = 0.9．

ネットワークが得られたためである．定型文を出力させた場合も同様である．

― 833 ―

Copyright(C) 2019 The Association for Natural Language Processing.
All Rights Reserved.

表 2： 生成性能（カッコ内の数値は緩和した評価尺度に対応）．
アルバイト（解説文総数：190）
手法

Recall喫煙（解説文総数：184）

Precision

F 値

RecallPrecisionF 値

提案手法

0.232 (0.253)

0.611 (0.667)

0.336 (0.366)

0.283 (0.304)

0.722 (0.778)

0.406 (0.438)

格フレーム

0.095 (0.095)

0.621 (0.621)

0.164 (0.164)

0.049 (0.04)

0.750 (0.750)

0.092 (0.092)

Enc-dec+att

0.063 (0.074)

0.069 (0.080)

0.066 (0.077)

0.098 (0.125)

0.108 (0.131)

0.103 (0.131)

的には，トピックに典型的な解説（図 1 の（S2））やエッセ文の検索（ベクトルのマッピング）というマルチタスク学習

イライティングに典型的な解説（（S1），（S5））などである．

として解いた．評価実験により，前置詞の用法に対して，従これら典型的な誤りに対しては，人手で作成した規則でも，来手法より性能が高いかつ，従来手法では生成が困難である

ある程度，対応可能であるかもしれない．しかしながら，そ言語現象に対して解説文が生成できることを示した．のためには，英語の専門家と言語処理の専門家が必要となる．

今後は，提案手法で生成された解説文を，より適切なもの

まず，英語の専門家は，各トピックにおいて典型的な誤りとに書き換える手法の考案に取り組む予定である（翻訳問題とは何かを考慮しながら，誤り検出と解説文生成の基盤となるして解けると予想している）．また，前置詞だけでなく，一規則を考えなければならない．その後，言語処理の専門家が，般的な解説文の生成にも取り組む予定である（一般的な解説その規則を計算機で扱える形で実装しなければならない．一文を付与したコーパスも構築済みである）．

方，提案手法では，（何が典型的かということを特に意識する必要はなく），英語の専門家は，与えられたデータに解説文

謝辞

本研究の一部は，JST，さきがけ，JPMJPR1758 の支援を付与するだけでよく，より効率的かつ効果的である．
更に，典型的な誤りではあるが，従来手法では対処が困を受けたものである．

難な言語現象に対しても解説文が生成できることを確認し参考文献た．具体例として，図 1（S4）の “include” を挙げることが[1] Bahdanau et. al., “Neural machine translation by jointly
learning to align and translate,” arXiv e-prints, 2014.
[2] Bies et al., “English Web Treebank LDC2012T13. Web
Download,” 2012.
[3] Bitchener et. al., “The eﬀect of diﬀerent types of corrective feedback on ESL student writing,” Journal of Second
Language Writing, vol.14, no.3, pp.191–205, 2005.
[4] Blanchard et al., “ETS corpus of non-native written English, LDC2014T06. web download,” 2014.
[5] Burnard, Users Reference Guide for the British National
Corpus. version 1.0, Oxford University Computing Services, Oxford, 1995.
[6] Granger, “The international corpus of learner English,”in English language corpora: Design, analysis and exploitation, pp.57–69, Rodopi, 1993.
[7] Hu et. al., “Deep code comment generation,” Proc. of
26th Conference on Program Comprehension, pp.200–210, 2018.
[8] Ishikawa, The ICNALE and Sophisticated Contrastive Interlanguage Analysis of Asian learners of English, pp.91–118, Kobe University, Kobe, 2013.
[9] Japan electronic dictionary research institute Ltd, “EDRelectronic dictionary specifications guide,” 1993.
[10] Junczys-Dowmunt et. al., “Approaching neural grammatical error correction as a low-resource machine translationtask,” Proc. of 2018 NAACL, pp.595–606, 2018.
[11] Kakegawa et. al, “Diagnostic processing of Japanese forcomputer-assisted second language learning,” Proc. of38th ACL, pp.537–546, 2000.
[12] Nagata et. al., “Correcting preposition errors in learner
English using error case frames and feedback messages,”
Proc. of 52nd ACL, pp.754–764, 2014.
[13] Sugiura et. al., “A discriminant analysis of non-nativespeakers and native speakers of English,” Proc. ofCL2007, pp.84–89, 2007.
[14] Yannakoudakis et. al., “A new dataset and method forautomatically grading ESOL texts,” Proc. of 49th ACL,
pp.180–189, 2011.

できる．この誤り対して適切な解説文を生成するためには，“smoke” と “include” が，それぞれ動詞と前置詞として使用されていることを認識しなければならない．通常，単語の関係の認識には構文解析が用いられるが，見た目上，両単語とも動詞の形をしているため解析に失敗する可能性が高い（したがって，解説文の生成にも失敗する）．構文解析に成功するためには，“include” が前置詞誤りであることを認識しなければならない．このように，構文解析が先か誤りの認識が先かというジレンマに陥る．実際，構文解析を使用する格フレームに基づいた手法では，この例に対して解説文を生成できなかった．一方，提案手法では，類似した誤りから適切な解説文を選択していた．同様に，構文解析のミスを引き起こしそうな誤りに対して適切な解説文を生成できた例は，少なくとも 5 例あることを分析により確認した．
以上の分析により，提案手法は，生成性能に改善の余地はあるものの，従来手法より幅広い解説文を効率的に生成できることがわかる．特に，典型的な誤りに対して適切な解説文を生成できることは学習支援としては有益である（学習支援の場面では，学習者が頻繁に間違える典型例から，まず解説すべきであろう）．更に，典型的な誤りではあるが，従来手法では対処が困難である言語現象に対しても解説文が生成可能となったことは，今後の解説文生成研究を考える上で重要である．

7. お わ り に
本稿では，解説文生成タスクを導入し，その解法を示した．
具体的には，解説箇所の検出（系列ラベリング）と類似解説― 834 ―

Copyright(C) 2019 The Association for Natural Language Processing.
All Rights Reserved.