\section{はじめに}
文法誤り訂正とは，与えられた文章中の文法誤りを文法的に正しい表現に訂正するタスクである．主に語学学習者が書いた文章を対象とし，自然言語処理の教育応用における主要タスクのひとつとなっている．これまでルールに基づく手法\cite{schneider-mccoy-1998-recognizing-syntactic}や言語モデルに基づく手法\cite{gamon-etal-2008-using}，分類器に基づく手法\cite{dahlmeier-ng-2011-grammatical}などが開発されてきた．近年では機械翻訳に基づく手法\cite{brockett-etal-2006-correcting}が盛んに研究されている\cite{chollampatt-ng-2018-multilayer,junczys-dowmunt-etal-2018-approaching,zhao-etal-2019-improving,lichtarge-etal-2019-corpora,kiyono-etal-2020-massive,kaneko-etal-2020-encoder,rothe-etal-2021-simple,yuan-etal-2021-multi,stahlberg-etal-2022-uncertainty,sun-wang-2022-adjusting}．分類器に基づく手法などが対象とする誤りを限定していたのに対し，機械翻訳に基づく手法は様々な誤りを訂正できるためモデルの性能は飛躍的に向上した．文法誤り訂正が発展する要因のひとつに一般利用可能な評価コーパスの存在がある．例えば英語文法誤り訂正では2012年頃まで各研究が独自の評価コーパスでモデルを評価していたため，異なる研究間でモデルの性能が比較しづらいという問題があった．しかしCoNLL-2013及びCoNLL-2014sharedtask\cite{ng-etal-2013-conll,ng-etal-2014-conll}で評価コーパスが一般公開されたことにより，各研究が同じ評価コーパスでモデルを評価するようになった．その結果，英語文法誤り訂正ではモデル間の性能差を比較しやすくなり迅速に研究を進めることが可能になった．現在ではCoNLL-2014sharedtask評価コーパスでモデルを評価することが一般的である．また英語文法誤り訂正では，単一の評価コーパスに過度に依存することの危険性が指摘されており\cite{mita-etal-2019-cross}，様々な評価コーパスを用いた多面的な評価が進んでいる\cite{grundkiewicz-etal-2019-neural,kiyono-etal-2020-massive,kaneko-etal-2020-encoder,yasunaga-etal-2021-lm,lai-etal-2022-type}．具体的にはCoNLL-2014sharedtask評価コーパスに加え，FCE\cite{yannakoudakis-etal-2011-new}やJFLEG\cite{napoles-etal-2017-jfleg}，W\&I+LOCNESS\cite{granger-1998-computerized,yannakoudakis-etal-2018-developing}，GMEG\cite{napoles-etal-2019-enabling}といった評価コーパスが利用されている．一方日本語文法誤り訂正では利用可能な評価コーパスが限られており\cite{oyama-etal-2016-nihongo,kiyama-etal-2022-nihongo}，研究間でのモデルの比較・多面的評価のためには評価コーパスをいま以上に増やす必要がある．そこで本研究では，日本語文法誤り訂正のための評価コーパスを構築し，一般利用可能な形で公開する．我々は文法誤り訂正において代表的な多言語学習者コーパスLang-8コーパス\cite{mizumoto-etal-2013-nihongo}の日本語学習者文を本評価コーパスの学習者文に利用する．また文法誤り訂正分野の研究者や開発者が使いやすい評価コーパスとするため，本評価コーパスの仕様を英語文法誤り訂正で代表的なコーパスやツールに寄せる．具体的には(1)対象とする誤りの範囲を学習者コーパスNUCLE\cite{dahlmeier-etal-2013-building}に合わせ，(2)誤用タグを自動誤用タグ付けツールERRANT\cite{felice-etal-2016-automatic,bryant-etal-2017-automatic}の誤用タグを一部改変し設計する．(1)について，現在の文法誤り訂正では綴り誤りや語彙選択誤りといった狭義の文法誤り以外も訂正対象に含めることが一般的である．したがって本評価コーパスでも綴り誤りや語彙選択誤りも訂正対象に含める．(2)について，英語文法誤り訂正ではモデルの誤りタイプ別評価を$\mathrm{F_{0.5}}$で行うため，ERRANTが盛んに使用されている．本研究では日本語用の自動誤用タグ付けツール（日本語版ERRANT）を今後開発しやすくするため，ERRANTの誤用タグを一部改変し誤用タグを設計する．最後に作成した評価コーパス及び既存評価コーパスで6種類の代表的な文法誤り訂正モデルを評価し，今後の日本語文法誤り訂正においてベースラインとなるスコアを報告する．本研究の主な貢献は以下の通りである．\begin{itemize}\item日本語文法誤り訂正のための誤用タグ付き評価コーパスを構築し公開した\footnote{TMUEvaluationCorpusforJapaneseLearners(TEC-JL)．\url{https://github.com/koyama-aomi/TEC-JL}}．また誤用タグを利用し，日本語文法誤り訂正モデルの誤りタイプ別の性能を調査した．\item作成した評価コーパス及び既存評価コーパスで6種類の代表的な文法誤り訂正モデルを評価し，今後の日本語文法誤り訂正においてベースラインとなるスコアを示した．\end{itemize}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{関連研究}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{文法誤り訂正の評価コーパス}文法誤り訂正の代表的な自動評価手法は誤り文と比較し訂正文に施されている編集をモデルがどの程度再現できたかをスコアリングする\cite{dahlmeier-ng-2012-better,felice-briscoe-2015-towards,napoles-etal-2015-ground,bryant-etal-2017-automatic,gotou-etal-2020-taking}．そのため評価には誤り文とその訂正文を収録したコーパスが必要である．表~\ref{learner_corpora}に誤り文とその訂正文を収録した主な日本語学習者コーパスを示す．日本語文法誤り訂正では作文対訳データベース\cite{inoue-etal-2006-sakubun}やNAIST誤用コーパス\cite{oyama-etal-2016-nihongo}が評価コーパスに利用されている．作文対訳データベースは元々日本語教育での活用を目的に作成された学習者コーパスであり，NAIST誤用コーパスは作文対訳データベースに誤用タグを付与したコーパスである．我々の評価コーパスが文法誤り訂正モデルの評価を目的に一貫した訂正基準に基づき訂正を行っているのに対し，作文対訳データベースでは日本語教師が学習者の習熟度に応じて日本語教師個人の感覚と経験に基づき訂正を施している．また作文対訳データベースの手書き作文は仮名漢字変換システムを利用しておらず，Lang-8コーパスのキーボード入力とは学習者の犯す誤り傾向が異なる．さらにLang-8コーパスが多様なトピックの文章を含むのに対し\cite{mizumoto-etal-2013-nihongo}，作文対訳データベースでは与えられた課題\footnote{``あなたの国の行事について''や``たばこについてのあなたの意見''など．}にトピックが限られる．加えてNAIST誤用コーパスの誤用タグが学習者の誤用分析や学習者へのフィードバックを目的に設計されている一方，本研究の誤用タグは今後日本語版ERRANTを開発しやすいように設計している．その他の日本語学習者コーパスには，なたね\footnote{\url{https://hinoki-project.org/natane}}や日本語学習者作文コーパス\footnote{\url{http://sakubun.jpn.org}}，国際日本語学習者作文コーパス及び誤用辞典\footnote{\url{https://corpus.icjs.jp/corpus_ja}}が存在する．しかしなたねは言語資源協会の会員以外は有償であり\footnote{\url{https://www.gsk.or.jp/catalog/gsk2021-c}}，日本語学習者作文コーパスと国際日本語学習者作文コーパス及び誤用辞典はテキストデータ全体が一般公開されていないためモデルの評価に利用しにくい．\mbox{また\citeA{mizumoto-etal-2013-nihongo}や}\citeA{liu-etal-2018-automatic-error}は独自に作成した評価コーパスを用いており，それら評価コーパスは非公開のため使用できない．我々は作成した評価コーパスを他の研究も利用可能な形で公開する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table1\begin{table}[t]\input{03table01.tex}%\caption{主な日本語学習者コーパス．}\label{learner_corpora}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%近年日本語文法誤り訂正ではFLUTEC\cite{kiyama-etal-2022-nihongo}という評価コーパスが公開された．FLUTECは日本語文法誤り訂正モデルの流暢性評価\cite{sakaguchi-etal-2016-reassessing}を目的としており，Lang-8コーパスの日本語学習者文へ文法的に正しいだけでなく流暢になる訂正（{\bf流暢な訂正}：Fluencyedits）を行っている．一方我々は流暢性よりも文法性評価を目的に文法的に正しくなる最小限の訂正（{\bf最小限の訂正}：Minimaledits）を施した評価コーパスを作成する．表\ref{minimal_and_fluency_edits}に最小限の訂正と流暢な訂正の例を示す．最小限の訂正は本論文の訂正基準（\ref{correction_criteria}節参照）に基づき作成した訂正文であり，流暢な訂正はFLUTECに実際に収録されている訂正文である．表\ref{minimal_and_fluency_edits}より，最小限の訂正では``以外''を``意外''にのみ訂正しているのに対し，流暢な訂正では``たっぷりになってしまいました''を``予定がぎっしり詰まってしまいました''のように表現を大幅に変えて訂正していることが分かる．このように最小限の訂正では原文の表現を可能な限り尊重し誤りがある箇所のみを訂正するのに対し，流暢な訂正では流暢な文になるように原文の表現を大幅に変えて訂正する．文法誤り訂正モデルをどのような評価コーパスで評価すべきかは目的次第であり，流暢に訂正する必要がなく文法誤りへの訂正性能のみを測りたい場合などは最小限の訂正を施した評価コーパスが有用である．実際英語文法誤り訂正では，最小限の訂正を施したCoNLL-2014sharedtask評価コーパスと流暢な訂正を施したJFLEGが評価の目的に合わせ使用されている\cite{sakaguchi-etal-2017-grammatical,mita-etal-2020-self}．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table2\begin{table}[t]\input{03table02.tex}%\caption{最小限の訂正と流暢な訂正の例．}\label{minimal_and_fluency_edits}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%またロシア語や中国語などでも文法誤り訂正のための評価コーパスが開発されている．\citeA{trinh-rozovskaya-2021-new}はLang-8コーパス中の文章を再添削しロシア語文法誤り訂正の評価コーパスRU-Lang8を作成した．中国語文法誤り訂正でもLang-8コーパスを使用しMuCGEC\cite{zhang-etal-2022-mucgec}というコーパスが作成された．我々もLang-8コーパス中の文章を再添削し日本語文法誤り訂正の評価コーパスを作成する．近年文法誤り訂正では，英語だけでなくロシア語，ドイツ語，チェコ語など多言語にわたって実験を行う研究が増加している\cite{naplava-straka-2019-grammatical,grundkiewicz-junczys-dowmunt-2019-minimally,katsumata-komachi-2020-stronger,flachs-etal-2021-data,rothe-etal-2021-simple,straka-etal-2021-character,yamashita-etal-2022-gengo}．この背景にはロシア語\cite{rozovskaya-roth-2019-grammar}やドイツ語\cite{boyd-2018-using}，チェコ語\cite{naplava-straka-2019-grammatical}でコーパスが整備されたことがある．したがって我々の評価コーパスの公開でも日本語文法誤り訂正の研究促進が期待される．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{文法誤り訂正モデル}機械翻訳に基づくモデルが台頭する以前は，訂正対象を限定した取り組みが主流であった．例えば英語では，訂正対象を前置詞誤りや冠詞誤りなどに限定した研究がある\cite{de-felice-pulman-2008-classifier,gamon-2010-using,rozovskaya-roth-2010-generating,rozovskaya-roth-2010-training,rozovskaya-roth-2011-algorithm,dahlmeier-ng-2011-grammatical,cahill-etal-2013-robust}．日本語では主に助詞誤りに訂正対象を限定していた\cite{imaeda-etal-2003-nihongo,suzuki-toutanova-2006-learning,nampo-etal-2007-bunsetsu,imamura-etal-2012-syokibo,kasahara-etal-2012-nihongo}．その後，大規模な学習者コーパスLang-8コーパスが公開されたことにより機械翻訳に基づくモデルが隆盛し，訂正対象を限定しない取り組みが主流になった．機械翻訳に基づくモデルには様々なアーキテクチャが使用され，英語文法誤り訂正ではSMT\cite{mizumoto-etal-2012-effect,junczys-dowmunt-grundkiewicz-2016-phrase}，RNN\cite{yuan-briscoe-2016-grammatical,ji-etal-2017-nested}，CNN\cite{chollampatt-ng-2018-multilayer,ge-etal-2018-reaching}を経て，現在Transformer\cite{vaswani-etal-2017-attention}が主に使用されている\cite{lichtarge-etal-2019-corpora,kaneko-etal-2020-encoder,mita-yanaka-2021-grammatical,stahlberg-etal-2022-uncertainty}．近年ではBART\cite{lewis-etal-2020-bart}やT5\cite{raffel-etal-2020-exploring}といった大規模事前学習済みモデルも利用されるようになった\cite{katsumata-komachi-2020-stronger,rothe-etal-2021-simple}．日本語文法誤り訂正では\citeA{mizumoto-etal-2013-nihongo}がLang-8コーパスを用いてSMTを訓練し訂正を行った．\citeA{liu-etal-2018-automatic-error}は訂正対象を機能表現に限定しているもののRNNを用いて訂正を行っている．\citeA{homma-komachi-2022-kosoku}は非自己回帰モデルであるLevenshtein\mbox{Transformer\cite{gu-etal-2019-levenshtein}}を使用し，高速な訂正機能を持ったライティング支援システムを構築した．\citeA{suzuki-etal-2022-construction}は日本語文法誤り訂正の品質推定データセットを作成する際，SMT，RNN，CNN，Transformerを利用した．我々は機械翻訳に基づくモデルを幅広く用意し，本研究で作成した評価コーパスでの性能を報告する．英語文法誤り訂正ではモデルごとに誤りタイプ別の性能が異なることが知られている．例えば\citeA{chollampatt-ng-2018-multilayer}はCNNに基づくモデルは局所的な誤りの訂正性能が高いと述べている．\citeA{mita-etal-2021-bunpou}はCoNLL-2014sharedtask評価コーパス上でTransformerの時制誤りの訂正性能がSMT，RNN，CNNよりも高いことを報告している．\mbox{\citeA{white-rozovskaya-2020-comparative}は}2つの擬似データ生成手法を比較し，擬似データごとのモデルの誤りタイプ別の性能を調査した．1つ目の手法ではスペルチェッカーを用いて構築した混同セットを利用し擬似データを生成する\cite{grundkiewicz-etal-2019-neural}．2つ目の手法では学習者コーパスから抽出した誤りパターン及び，動詞・名詞・前置詞の置換を利用し擬似データを生成する\cite{choe-etal-2019-neural}．実験の結果，前者では綴り誤りの訂正性能が高く，後者では名詞の単数・複数形の誤りと時制誤りの訂正性能が高いことが明らかになった．一方日本語文法誤り訂正では，モデルの誤りタイプ別の訂正性能が未だ明らかでない．そのため我々は作成した評価コーパスを用いて日本語文法誤り訂正モデルの誤りタイプ別の性能を調査する．英語文法誤り訂正では異なる訂正傾向を持つモデルを組み合わせ性能を向上させる研究もあり\cite{grundkiewicz-junczys-dowmunt-2018-near,kantor-etal-2019-learning,qorib-etal-2022-frustratingly}，日本語文法誤り訂正でもモデルごとの訂正傾向を把握することがより高性能なモデルの構築に繋がると考えられる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{評価コーパスの構築}
本研究ではLang-8コーパスの一部から評価コーパスを構築する．Lang-8コーパスは文法誤り訂正モデルの訓練に使用されることが多い．しかし語学学習SNSLang-8\footnote{\url{https://lang-8.com}}から自動収集して作成されたコーパスのためノイズを多く含み，評価にはほとんど使用されていない．そこで本評価コーパスを作成し，Lang-8コーパスを評価にも使用可能にする．また文法誤り訂正分野の研究者や開発者が使いやすい評価コーパスとするため，本評価コーパスの仕様を英語文法誤り訂正で代表的なコーパスやツールに寄せる．具体的には対象とする誤りの範囲を学習者コーパスNUCLEに合わせ，誤用タグを自動誤用タグ付けツールERRANTの誤用タグを一部改変し設計する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{訂正文の作成}我々はLang-8コーパスの訂正文にノイズが多く含まれることやLang-8ではユーザごとに訂正基準が異なることを理由に，学習者文を再添削し新たな訂正文を作成する．Lang-8コーパスの訂正文には訂正者（Lang-8ユーザ）のコメントが付与されている場合や訂正者が学習者文中の誤りを全て訂正していない場合がある\cite{mizumoto-etal-2013-nihongo}．\citeA{mita-etal-2020-self}の実験ではLang-8コーパスの訂正文に含まれるノイズの定量化を試みている．具体的にはLang-8コーパスの訂正文からノイズを除去した訂正文を新たに作成し，元の訂正文とノイズ除去した訂正文の間の単語編集率でノイズ量を推定している．なお単語編集率は以下の式で定義される．\begin{equation}\label{word_edit_rate}単語編集率:=\frac{\sum_{i=1}^Nd(X_{i},Y_{i})}{\sum_{i=1}^N|X_{i}|}\times100\left(\%\right)\end{equation}ここで$N$はデータセット内の文対数であり，$X_{i}$と$Y_{i}$はそれぞれ編集前と編集後の文である．また$d(\cdot)$は編集距離\cite{levenshtein-1966-binary}を表し，$|X_{i}|$は$X_{i}$の単語数を表す．\mbox{\citeA{mita-etal-2020-self}の}実験では，$X_{i}$が元の訂正文に相当し，$Y_{i}$がノイズ除去後の訂正文に相当する．実験の結果，単語編集率は34.6\%となり，Lang-8コーパスの訂正文には無視できない量のノイズが含まれることが明らかになった．また\citeA{rothe-etal-2021-simple}は英語・ドイツ語・ロシア語でLang-8コーパスの訂正文を大規模多言語事前学習済みモデルmT5\cite{xue-etal-2021-mt5}の出力文に置き換え，ノイズの少ない訂正文を持ったCleanedLang-8Corpus(cLang-8)を作成し公開した\footnote{\url{https://github.com/google-research-datasets/clang8}}．さらにLang-8ではユーザが自由に学習者文を訂正しているため訂正基準が統一されておらず，モデルの文法性に絞った評価がしにくい．したがって本研究では一貫した訂正基準のもと訂正文を作成し，文法誤り訂正モデルの評価に使いやすくする．加えて本研究ではマルチリファレンス評価のため，1つの学習者文につき2つの訂正文を付与する．文法誤り訂正は1つの入力文に対し正解となる訂正文が必ずしも1つに定まらないタスクである\cite{bryant-ng-2015-far}．そのため文法誤り訂正では，複数の訂正文（参照文）を用いたマルチリファレンス評価を行い，モデルが参照文とは異なる正しい訂正を行った場合に過小評価される問題を軽減している．例えばCoNLL-2014sharedtask評価コーパスでは1つの学習者文につき2つの訂正文が付与されており，英語文法誤り訂正ではそれら2つの訂正文を用いてモデルを評価している．そこで本研究でも1つの学習者文につき2つの訂正文を付与しマルチリファレンス評価を可能にする．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{作成手順}我々が訂正文を作成した際の具体的な手順は以下の通りである．\begin{enumerate}[手順1.]\itemLang-8コーパスから2,000文程度になるように日本語を学習言語とする文章を抽出する\footnote{ただし評価コーパス間で文章が重複するのを避けるためFLUTECで使用されている文章は含んでいない．}．\item\label{step2}抽出した文章の内，約1割を3人の日本語母語話者が訂正し，訂正基準を決定する．\item\label{step3}1つの文章につき2人の訂正者が訂正を行うように，3人の日本語母語話者に文章を割り振り，作成した訂正基準に従って訂正文を作成する．\item\label{step4}作成した訂正文を本論文の最終著者が確認し，不適切な箇所があれば各訂正者が再度訂正を行う．\end{enumerate}ここで手順\ref{step2}と手順\ref{step3}における訂正者は本論文の第1著者，第2著者，第3著者である．各訂正者は情報通信工学を専攻する20代の大学生であり日本語教育歴はない．手順\ref{step4}の終了後，文分割に失敗している箇所を人手で修正した\footnote{Lang-8では文章を自動で文分割しており，Lang-8コーパスはその分割をそのまま使用しているため文分割に失敗している箇所が存在する．}．また文法誤り訂正に無関係な記号のみの文や日本語以外の文などを取り除き，URLや顔文字は特殊トークンに置き換えた．結果，日本語学習者文が1,702文となり，1つの学習者文につき2つの訂正文が付与された評価コーパスを作成した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{訂正基準}\label{correction_criteria}我々は基本的な訂正方針をNUCLEに合わせた．具体的には(1)文法的に正しくなる最小限の訂正を行うこと，(2)文章単位で訂正を行うことの2つを定めた．NUCLEの一部を使用したCoNLL-2014sharedtask評価コーパスは英語文法誤り訂正で最も代表的な評価コーパスである．NUCLEに仕様を合わせることで英語と同じような評価環境を整備することを狙った．\mbox{(1)に}ついて，最小限の訂正にはNUCLE同様，狭義の文法誤りだけでなく綴り誤りや語彙選択誤りも含める．訂正対象の範囲をNUCLEに合わせることで英語文法誤り訂正の知見を日本語文法誤り訂正に援用しやすくなる．またドイツ語\cite{boyd-2018-using}やロシア語\cite{rozovskaya-roth-2019-grammar}，チェコ語\cite{naplava-etal-2022-czech}の文法誤り訂正評価コーパスでも狭義の文法誤り以外（綴り誤りや語彙選択誤りなど）を訂正対象に含めている．したがって文法誤り訂正分野全体として狭義の文法誤り以外も訂正対象とすることが一般的であるため，本研究でも綴り誤りや語彙選択誤りを訂正対象に含める．\mbox{(2)について，}学習者が書いた文章には時制誤りや接続詞誤りなど文間文脈に依存する誤りが存在する\cite{tajiri-etal-2012-tense,chollampatt-etal-2019-cross,yuan-bryant-2021-document}．文単位で訂正を行った場合，そのような文間文脈を必要とする誤りを捉えることが難しい．文章単位であれば前後の文を考慮し訂正できるため，文間文脈を必要とする誤りを捉えることができる．本研究では日本語の文章であることやLang-8コーパスを元データにしていることを考慮し，基本的な訂正方針に加え以下の訂正基準を定めた．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\paragraph{文単位の訂正基準}\begin{enumerate}[L1.]\item翻字を行う際，単語が本来の発音のまま表記してあり，一般的な表記と異なる場合には一般的な表記に訂正する\footnote{一般的な表記は検索エンジンを用いて使用例を調査し，各訂正者が一般的な表記と判断した表記に訂正した．}．\item補助用言が漢字で書かれている場合には平仮名に訂正する．\end{enumerate}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\paragraph{文章単位の訂正基準}\begin{enumerate}[G1.]\item1つの文章内では，常体と敬体を揃えるように訂正する．\item助詞が脱落している場合，助詞がないと不自然である場合のみ訂正する．\end{enumerate}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table3\begin{table}[b]\input{03table03.tex}%\caption{設定した訂正基準に基づく訂正例．}\label{example_criteria}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%各訂正基準に基づく訂正例を表\ref{example_criteria}に示す．L1について，翻字とはある言語の単語を別言語の表記に移すことである．翻字では表\ref{example_criteria}の例のように原言語の発音が目的言語の表記に必ずしも反映されず，目的言語での表記に合わせて書く必要があるためL1を設定した．また翻字に関する訂正は作文対訳データベースやなたねでも行われており日本語教育にとって有用である．L2について，補助用言は単語本来の意味が失われており平仮名で書くことが一般的であるためL2を設定した．G1について，1つの文章内では常体と敬体を揃えることが一般的であるためG1を設定した\footnote{なおNAIST誤用コーパスでは``文体''の誤用タグを``文法的''の下位分類としており，文体に関する誤りを文法誤りに含めている．したがって本研究では文体に関する誤りも訂正対象とした．}．G2について，Lang-8コーパスでは学習者の日記がくだけた表現で書かれていることが多い．くだけた表現の場合，助詞が脱落しても不自然でない場合があることからG2を設定した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{誤用タグの付与}我々は日本語文法誤り訂正モデルをより詳細に分析するための誤用タグを設計し，本評価コーパスの各誤りに人手で付与する．我々は英語文法誤り訂正で代表的な自動誤用タグ付けツールERRANTの誤用タグを日本語用に一部改変し誤用タグを設計する．この理由はERRANTの誤用タグに基づき誤用タグを設計することで今後日本語版ERRANTを開発しやすくするためである．実際ドイツ語\cite{boyd-2018-using}やチェコ語\cite{naplava-etal-2022-czech}では，ERRANTの誤用タグを各言語用に一部改変しERRANTのコードを流用する形でドイツ語版ERRANT\footnote{\url{https://github.com/adrianeboyd/boyd-wnut2018}}やチェコ語版ERRANT\footnote{\url{https://github.com/ufal/errant_czech}}を開発している\footnote{日本語では英語・ドイツ語・チェコ語と異なり単語分割処理が必要になる．学習者文のように誤りを含む文を正しく分割することは難しく\cite{fujino-etal-2012-nihongo,tomo-komachi-2015-bubun}，日本語版ERRANTの開発は英語・ドイツ語・チェコ語ほど単純ではない．そのため日本語版ERRANTの作成自体は今後の課題とする．}．またERRANTの誤用タグに基づくことで，日本語にあまり馴染みのない研究者が本評価コーパスを利用する場合でも誤用タグの意味を理解しやすくなると考えられる．さらに多言語にわたって文法誤り訂正の研究を行う場合，言語間で誤用タグの粒度がある程度揃っていた方がモデルの誤りタイプ別の分析をしやすくなる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table4\begin{table}[t]\input{03table04.tex}%\caption{本研究で設計した誤用タグの一覧．}\label{example_error_tag}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{誤用タグの設計}我々はERRANTの誤用タグを一部改変し誤用タグを設計した\footnote{なお誤用タグの設計は訂正文の作成後に行った．}．ERRANTではUniversalDependencies(UD)\cite{de-marneffe-etal-2021-universal}\footnote{UDは言語横断的に品詞や構文構造をアノテーションするための枠組みである\cite{nivre-etal-2016-universal,nivre-etal-2020-universal}．}の品詞を基に誤用タグを設計している．そのため本研究ではUD日本語コーパス\cite{asahara-etal-2019-universal}の品詞も参考にした．表\ref{example_error_tag}に本研究で設計した誤用タグの一覧を示す．1行目から10行目は語彙選択に関する誤用タグである．語彙選択の誤用タグはある品詞の単語が同じ品詞の別の単語に訂正された場合に付与される\footnote{助詞誤りについて，UD日本語コーパスでは助詞を格助詞，終助詞，接続助詞に区別しているが，本研究では誤用タグの体系を簡単化するため区別せず扱った．}．例えば\mbox{1行}目では，``大切な''という形容詞が``重大な''という別の形容詞に訂正されているため\texttt{ADJ}の誤用タグが付与される．ここで形容詞や動詞の選択誤りにはコロケーション誤りも含める．11行目から13行目は活用に関する誤用タグである．活用の誤用タグはある単語が別の活用形に訂正された場合に付与される．例えば11行目では，``寂しい''という形容詞が``寂しく''という連用形に訂正されているため\texttt{ADJ:INFL}の誤用タグが付与される．14行目の\texttt{SPELL}の誤用タグは誤字・脱字・衍字などの誤りが訂正された場合に付与される．また\texttt{SPELL}には翻字の誤りも含める．15行目の\texttt{VERB:TENSE}の誤用タグはテンスやアスペクトといった時間表現について訂正された場合に付与される．16行目の\texttt{WO}の誤用タグは隣り合う単語を入れ替えるような訂正がされた場合に付与される．17行目の\texttt{OTHER}の誤用タグは1行目から16行目の誤用タグの中に該当する誤用タグがなかった場合に付与される．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{付与手順}我々が誤用タグを付与した際の具体的な手順は以下の通りである．\begin{enumerate}[手順1.]\item\label{step1_tag}原文（学習者文）と訂正文に自然言語処理ライブラリspaCy\cite{honnibal-montani-2017-spacy2}\footnote{\url{https://spacy.io}}を適用し，各文中の単語に基本形及び品詞の情報を付与する．\item\label{step2_tag}各文の基本形及び品詞の情報を基に表\ref{example_error_tag}の誤用タグを人手で付与する．\end{enumerate}手順\ref{step1_tag}ではERRANTに合わせspaCyを使用した．なおspaCyを使用する際のモデルには\texttt{ja\_core\_news\_trf}モデルを用いた．手順\ref{step2_tag}では誤り箇所及び訂正箇所の基本形や品詞の情報を確認しながら本論文の第一著者が人手で誤用タグを付与した．表\ref{example_annotations}に誤用タグの付与例を示す．表\ref{example_annotations}の左側は動詞の選択誤りの例であり，``飲み''を``食べ''に訂正している．各単語の基本形を見ると``飲む''と``食べる''という異なる基本形をしており，品詞を見るとVERBとなっているため動詞の選択誤りの誤用タグを付与する．表\ref{example_annotations}の右側の例は動詞の活用誤りの例であり，``見つかれ''を``見つから''に訂正している．各単語の基本形を見ると``見つかる''という同じ基本形をしており，品詞を見るとVERBとなっているため，動詞の活用誤りの誤用タグを付与する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table5\begin{table}[b]\input{03table05.tex}%\caption{誤用タグの付与例．}\label{example_annotations}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table6\begin{table}[b]\input{03table06.tex}%\caption{各コーパスの統計量．}\label{corpus_statistics}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{コーパス分析}表\ref{corpus_statistics}に本研究の評価コーパス，FLUTEC，NAIST誤用コーパスの統計量を示す．ここで学習者文の平均文長や単語編集率（式(\ref{word_edit_rate})参照）を計算する際は各コーパスを\mbox{MeCab\cite{kudo-etal-2004-applying}}で単語分割した．MeCabの辞書には現代話し言葉UniDic\cite{oka-2019-gengo}を用いた．表\ref{corpus_statistics}より，学習者文の平均文長を比較すると，コーパス間の差は最大で3.9語であり文長に大きな差はない．一方単語編集率と無編集の文対の割合では，本研究の評価コーパスとそれ以外のコーパスで大きな差が見られる．本研究の評価コーパスは他のコーパスよりも単語編集率は低く，無編集の文対の割合は高くなっている．これは文法的に正しくなる最小限の訂正を行ったことに起因する．一方FLUTECの単語編集率が最も大きい理由は文法的に正しいだけでなく流暢になる訂正を行っているためである．またNAIST誤用コーパスでは日本語教師が学習者の習熟度に応じた訂正を行っており，例えば日本語上級者の文には流暢になるような訂正も施していることから単語編集率が高くなったと考えられる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.1\begin{figure}[b]\begin{center}\includegraphics{30-2ia3f1.pdf}\end{center}\caption{各コーパス中の誤りタイプの割合．}\label{error_type_ratio}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table7\begin{table}[b]\input{03table07.tex}%\caption{綴り誤りの例．}\label{typo_error}\vspace{-1\Cvs}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%図\ref{error_type_ratio}に本研究で作成した評価コーパスとNAIST誤用コーパス中の各誤りタイプの割合を示す\footnote{NAIST誤用コーパスは\citeA{oyama-etal-2016-nihongo}が実験で用いた誤りタイプのみを記載した．}．本研究の評価コーパスとNAIST誤用コーパスでは誤りタイプの粒度が異なるため厳密な比較は困難であることに注意する必要がある．比較の結果，どちらも助詞誤りの割合が最も大きいことから，日本語学習者にとって助詞を使いこなすことは難しいと分かる．また本評価コーパス中の綴り誤り（NAIST誤用コーパスでの表記誤りに相当）の割合がNAIST誤用コーパスと同様に比較的高い．綴り誤りには翻字の誤りや仮名漢字変換システムに起因する誤りが見られた．表\ref{typo_error}に翻字の誤りと仮名漢字変換システムに起因する誤りの例を示す．翻字の誤りでは，学習者が``シェルロク・ホールムス''と書いたのを``シャーロック・ホームズ''に訂正している．翻字は目的言語での表記をあらかじめ知っておかないと正しく表記することが難しく，学習者にとって間違いやすい誤りである．仮名漢字変換システムに起因する誤りでは，学習者が``張る''と誤入力したのを``春''に訂正している．NAIST誤用コーパスは手書き作文をもとにしているため誤入力は起きず，このような誤入力はLang-8コーパスを基にしている本評価コーパス特有の誤りである．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{一致率}我々は訂正者間の一致率を調べるため，$\kappa$係数\cite{cohen-1960-coefficient}を計算した．一致率は誤り検出の一致率と誤り訂正の一致率の2つを求めた．誤り検出の一致率は両方の訂正者が何らかの訂正を行った箇所の一致率である．誤り訂正の一致率は両方の訂正者が同じ訂正を行った箇所の一致率である．$\kappa$係数の計算は\citeA{dahlmeier-etal-2013-building}に従った．表\ref{corpus_agreement}の左側にそれぞれの訂正者間の一致率を示す．表\ref{corpus_agreement}より，誤り検出の一致率は\citeA{landis-koch-1977-measurement}の基準におけるsubstantialagreement（かなりの一致）に該当し，誤り訂正の一致率はmoderate\mbox{agreement（適度な一致）}に該当する．したがって訂正者間で誤りの検出や訂正は概ね一致していると考えられる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table8\begin{table}[b]\input{03table08.tex}%\caption{訂正者間の一致率．}\label{corpus_agreement}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%別の観点からも訂正者間の一致率を測る．具体的には片方の訂正文を文法誤り訂正モデルの出力とみなし，もう片方の訂正文のみを正解として評価した時のスコアを求める．表\ref{corpus_agreement}の右側にそれぞれの訂正文のスコアを示す．スコアは$\mathrm{M^2}$scorer\cite{dahlmeier-ng-2012-better}で測定したPrecision，Recall，$\mathrm{F_{0.5}}$を用いた．表\ref{corpus_agreement}より，どちらの場合もRecallは約62\%である．言い換えると，例えば訂正文2を正解とした場合，訂正文2が訂正した箇所のうち訂正文1も同じ訂正をした箇所が約62\%である．したがって約62\%の訂正が訂正者間で一致していることが分かる．また$\mathrm{F_{0.5}}$はどちらも約64\%であり，このスコアが文法誤り訂正モデルのある種の性能限界であると考えられる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{本評価コーパスのリミテーション}我々は文法誤り訂正分野の研究者や開発者が使いやすい評価コーパスを作成するためERRANTの誤用タグを一部改変し本誤用タグを設計した．したがって第二言語習得分野での誤用タグと大きく異なる部分が生じており，第二言語習得分野の研究者にとっては使いにくい誤用タグである可能性がある．例えば本誤用タグはERRANTと同様フラットな構造をしているが，第二言語習得分野での誤用タグは階層的な構造をとる\cite{dagneaux-etal-1998}．またNAIST誤用コーパスやなたねが細かく誤用タグを設計しているのに対し\footnote{NAIST誤用コーパスでは76種類，なたねでは77種類の誤用タグを設計している．}，本誤用タグはERRANTの誤用タグを基に設計したため17種類と比較的粗い\footnote{ERRANTでは25種類の誤用タグを設計している．ERRANTはルールに基づき誤用タグを付与するため誤用タグがルールで記述可能な範囲に限られる．また誤用タグを細かくすると記述するルールの数が膨大になり開発コストが大幅に増加する．そのためERRANTでは開発コストと折り合いをつけ誤用タグの種類を抑えている．}．この理由は今後日本語版ERRANTを開発しやすくするためであるが，第二言語習得分野での利用（学習者の誤用分析や学習者へのフィードバックなど）まで考慮すると誤用タグは細かく設計される方が望ましい．本誤用タグをより細かくする場合，語彙選択誤りとコロケーション誤りを区別することなどが挙げられる．実際NAIST誤用コーパスやなたねでは，語彙選択誤りとコロケーション誤りを区別しており，第二言語習得分野で利用する場合それらは区別された方が有用である．一方日本語版ERRANTの作成では，語彙選択誤りとコロケーション誤りをどのように自動で区別するかが問題となる．語彙選択誤りとコロケーション誤りを区別するには，コロケーションに関する外部知識の利用\cite{pereira-etal-2016-leveraging}や機械学習による誤用タグの付与\cite{swanson-yamangil-2012-correction,oyama-etal-2016-nihongo}などを行う必要があると考えられる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{実験}
本節では作成した評価コーパスで代表的な文法誤り訂正モデルを評価し，今後の日本語文法誤り訂正においてベースラインとなるスコアを示す．また我々の評価コーパスに加え，FLUTECやNAIST誤用コーパスも利用しモデルを多面的に評価した結果を報告する．さらに本評価コーパスの誤用タグを利用しモデルごとの誤りタイプ別の性能も調査する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{実験設定}\label{experimental_settings}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{データセット}表\ref{gec_dataset_table}に本実験で使用したデータセットを示す．訓練データにはLang-8コーパス\cite{mizumoto-etal-2013-nihongo}を用いた．ただしTEC-JL（本研究の評価コーパス）とFLUTECに使用されている文章は取り除いた．また\citeA{mizumoto-etal-2013-nihongo}と同様に，訓練データには文長制限などを施し，訓練時にノイズとなる文対を除去した\footnote{前処理に使用したスクリプトはGitHubで公開する．}．開発データにはFLUTECの開発データを用いた．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table9\begin{table}[t]\input{03table09.tex}%\caption{実験で使用したデータセットの詳細．}\label{gec_dataset_table}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{性能評価}評価データにはTEC-JLに加え，\pagebreakFLUTEC\cite{kiyama-etal-2022-nihongo}とNAIST誤用コーパス\cite{oyama-etal-2016-nihongo}を使用した．TEC-JLとNAIST誤用コーパスはMaxMatch($\mathrm{M^2}$)\cite{dahlmeier-ng-2012-better}で評価し，FLUTECは\mbox{$\mathrm{GLEU^+}$\cite{napoles-etal-2015-ground,napoles-etal-2016-gleu}}で評価した\footnote{英語文法誤り訂正では慣習的に，最小限の訂正を施したCoNLL-2014sharedtask評価コーパスは$\mathrm{M^2}$で評価し，流暢な訂正を施したJFLEGは$\mathrm{GLEU^+}$で評価していることを考慮した．}．また単語分割誤りが評価結果に影響を与えないようにするため文字単位で評価した．報告する全ての値は4つの異なるシードで訓練されたモデルのスコアの平均である．各評価尺度の詳細は以下の通りである．\begin{description}\item[$\mathrm{M^2}$\cite{dahlmeier-ng-2012-better}]$\mathrm{M^2}$は文法誤り訂正において最も一般的な評価尺度である．$\mathrm{M^2}$ではモデルの出力文が行った編集を参照文の編集となるべく多く一致するように計算し，Precision，Recall，$\mathrm{F_{0.5}}$を求める．文法誤り訂正ではCoNLL-2014sharedtask以降，$\mathrm{F_{1}}$ではなくPrecisionを重視した$\mathrm{F_{0.5}}$を使用することが一般的である\footnote{\citeA{ng-etal-2014-conll}は$\mathrm{F_{0.5}}$を採用した理由に，文法誤り訂正モデルの訂正をユーザに受け入れてもらいやすくするには誤った訂正が少ないことが重要であるためと述べている．また英語\cite{grundkiewicz-etal-2015-human}やチェコ語\cite{naplava-etal-2022-czech}文法誤り訂正では，$\mathrm{F_{1}}$よりも$\mathrm{F_{0.5}}$の方が人手評価との相関が高いことが示されている．さらに文法誤り検出ではRecallよりもPrecision重視のモデルの方が学習効果を高めることが知られている\cite{nagata-nakatani-2010-evaluating}．}．本研究では$\mathrm{M^2}$の計算に$\mathrm{M^2}$scorerを使用した\footnote{\url{https://github.com/nusnlp/m2scorer}}．\item[$\mathrm{GLEU^+}$\cite{napoles-etal-2015-ground,napoles-etal-2016-gleu}]$\mathrm{GLEU^+}$は機械翻訳モデルの評価尺度BLEU\cite{papineni-etal-2002-bleu}を文法誤り訂正用に改良した評価尺度である．BLEUがモデルの出力文と参照文のN-gramのみを使用するのに対し，$\mathrm{GLEU^+}$では原文のN-gramも使用しスコアリングする．本研究では$\mathrm{GLEU^+}$の計算に\citeA{napoles-etal-2016-gleu}が公開しているスクリプトを使用した\footnote{\url{https://github.com/cnap/gec-ranking}}．\end{description}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{文法誤り訂正モデル}幅広いモデルの性能を調査するため，\pagebreak文法誤り訂正モデルにはSMT\cite{koehn-etal-2003-statistical}及びRNN\cite{luong-etal-2015-effective}，CNN\cite{gehring-etal-2017-convolutional}，Transformer\cite{vaswani-etal-2017-attention}を用いる．また上記のモデルに加え，事前学習済みモデルBART\cite{lewis-etal-2020-bart}とT5\cite{raffel-etal-2020-exploring}も使用する．実装にはSMTではMoses\cite{koehn-etal-2007-moses}\footnote{\url{https://github.com/moses-smt/mosesdecoder}}を用いた．またRNN，CNN，Transformer，BARTではfairseq\cite{ott-etal-2019-fairseq}\footnote{\url{https://github.com/facebookresearch/fairseq}}を使用し，T5ではTransformers\cite{wolf-etal-2020-transformers}\footnote{\url{https://github.com/huggingface/transformers}}を使用した．なお\citeA{mizumoto-2020-nihongo}の実験結果に基づき，SMT，RNN，CNN，Transformerの訓練には，学習者文は文字に分割し訂正文は語彙サイズ16,000で1-gram言語モデルに基づくトークン化\cite{kudo-2018-subword}を施したデータを使用した．またBARTとT5では事前学習時の分割に従った．具体的にはBARTではJuman++\cite{morita-etal-2015-morphological}で単語分割したのち語彙サイズ32,000で1-gram言語モデルに基づくトークン化を施し，T5では語彙サイズ32,000で1-gram言語モデルに基づくトークン化を施した．1-gram言語モデルに基づくトークン化を行う際の実装にはSentencePiece\cite{kudo-richardson-2018-sentencepiece}\footnote{\url{https://github.com/google/sentencepiece}}を使用した．各モデルの設定は以下の通りである．\begin{description}\item[SMT\cite{koehn-etal-2003-statistical}]GIZA++\cite{och-ney-2003-systematic}をアライメントツールに使用し，KenLM\cite{heafield-2011-kenlm}を用いて3-gram言語モデルを構築した．言語モデルの訓練には訓練データ中の訂正文を使用した．また開発データを用いてBLEUを最大化するようにMERT\cite{och-2003-minimum}を行った．\item[RNN\cite{luong-etal-2015-effective}]アーキテクチャは\citeA{luong-etal-2015-effective}のモデルをベースにした6層のエンコーダ・デコーダモデルである．エンコーダとデコーダの単語埋め込みは512次元である．訓練時の最適化方法や推論時の設定は\citeA{kiyono-etal-2020-massive}に従った．\item[CNN\cite{gehring-etal-2017-convolutional}]アーキテクチャは\citeA{gehring-etal-2017-convolutional}のモデルをベースにした6層のエンコーダ・デコーダモデルである．エンコーダとデコーダの単語埋め込みは512次元である．またカーネルサイズは3である．訓練時の最適化方法や推論時の設定は\citeA{kiyono-etal-2020-massive}に従った．\item[Transformer\cite{vaswani-etal-2017-attention}]アーキテクチャは\citeA{vaswani-etal-2017-attention}の``Transformer(base)''と同様である．具体的には6層のエンコーダ・デコーダモデルであり，エンコーダとデコーダの単語埋め込みは512次元である．訓練時の最適化方法や推論時の設定は\citeA{kiyono-etal-2020-massive}に従った．\item[BART\cite{lewis-etal-2020-bart}]BARTはTransformerに基づくエンコーダ・デコーダ型の事前学習済みモデルである．本研究では\citeA{tanaka-etal-2021-nihongo}が公開している日本語BARTを使用した\footnote{\url{https://github.com/utanaka2000/fairseq/tree/japanese_bart_pretrained_model}}．\citeA{tanaka-etal-2021-nihongo}のモデルでは，テキスト内の0個以上のトークンを1個の\texttt{[MASK]}トークンに置き換え，元のテキストを予測するtextinfillingタスクを事前学習に行っている（表\ref{example_bart_t5}参照）．事前学習用のデータには日本語Wikipediaから抽出した1,800万文を使用している．エンコーダとデコーダはそれぞれ6層であり，単語埋め込みは768次元である．訓練時の最適化方法や推論時の設定は付録\ref{bart_t5_setting}に記載する．\item[T5\cite{raffel-etal-2020-exploring}]T5はTransformerに基づくエンコーダ・デコーダ型の事前学習済みモデルである．本研究ではMegagonLabs\footnote{\url{https://megagon.ai}}が公開している日本語T5を使用した\footnote{\url{https://github.com/megagonlabs/t5-japanese}}．T5ではテキスト内の一部トークンをそれぞれ別の特殊トークンに置き換え，置き換え元のトークンのみを予測するように事前学習を行っている（表\ref{example_bart_t5}参照）．事前学習用のデータにはmC4\cite{raffel-etal-2020-exploring}とWiki-40B\cite{guo-etal-2020-wiki}の日本語部分からそれぞれ782GBと2GBのテキストを使用している．エンコーダとデコーダはそれぞれ12層であり，単語埋め込みは768次元である．訓練時の最適化方法や推論時の設定は付録\ref{bart_t5_setting}に記載する．\end{description}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table10\begin{table}[t]\input{03table10.tex}%\caption{BART及びT5での事前学習の例．\texttt{[MASK]}及び\texttt{<X>}，\texttt{<Y>}，\texttt{<Z>}は特殊トークンである．}\label{example_bart_t5}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{実験結果}表\ref{tb:over_all_score_no_pseudo_data}に各文法誤り訂正モデルの性能を示す．訂正なしは入力文をモデル出力とみなし評価した時のスコアである．表\ref{tb:over_all_score_no_pseudo_data}より，CNNはPrecisionが高く，不必要な訂正が他のモデルよりも少ないことが分かる．その結果，最小限の訂正を施したTEC-JLでは，事前学習済みモデルであるT5を除いてCNNの$\mathrm{F_{0.5}}$が最も高くなっている．一方Transformerに加え，Transformerに基づくモデルであるBARTやT5はRecallが高いことが分かる．また流暢な訂正を施したFLUTECではTransformerやBART，T5の方が他のモデルよりも$\mathrm{GLEU^+}$スコアが高い．したがってTransformerを含めTransformerに基づくモデルは流暢な訂正を行っていると考えられる．我々はTransformerが流暢な訂正を行っていることを検証するため，各モデルの流暢性を調査した．流暢性は入力文と出力文のパープレキシティ比(PPLR)で測定した．具体的にはPPLRは以下の式で定義される．\pagebreak\begin{equation}PPLR:=\frac{PPL_{output}}{PPL_{input}}\end{equation}ここで$PPL_{input}$及び$PPL_{output}$はそれぞれ入力文と出力文のパープレキシティである．PPLRは$0$以上の値をとり，値が低いほど流暢性が高い，つまり流暢な訂正を行ったと考えられる．本実験ではパープレキシティの測定にGPT\cite{radford-etal-2018-improving}を使用した\footnote{\url{https://huggingface.co/rinna/japanese-gpt-1b}}．また文法誤り訂正では入力文の意味を保存しつつ訂正する必要がある\cite{asano-etal-2018-bumposei}．そのため入力文と出力文の間で意味が保存されているか（意味保存性）を，入力文と出力文の文ベクトルのcos類似度を用いて測定する．cos類似度は$-1$以上$1$以下の値を取り，$1$に近いほど入力文と出力文の間で意味が保存されていると考えられる．本実験では入力文と出力文の文ベクトルの取得にSentence-BERT\cite{reimers-gurevych-2019-sentence}を利用した\footnote{\url{https://huggingface.co/sonoisa/sentence-bert-base-ja-mean-tokens-v2}}．図\ref{pplr_cos_sim}にTEC-JLにおける各モデルのPPLR及びcos類似度を示す\footnote{外れ値の影響を軽減するため5\%トリム平均を用いた．}．図\ref{pplr_cos_sim}より，流暢性はCNNよりもTransformerの方が高いことが分かる．一方意味保存性はTransformerよりもCNNの方が高い．したがってTransformerは意味保存性を犠牲にし，CNNよりも流暢性の高い訂正を行っている\footnote{なおハイパーパラメータ次第ではTransformerでも意味保存性を重視した訂正を行う可能性はあり，今後\citeA{kiyono-etal-2020-massive}の設定以外でも検証する必要がある．}．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table11\begin{table}[t]\input{03table11.tex}%\caption{各文法誤り訂正モデルの性能．}\label{tb:over_all_score_no_pseudo_data}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%次に各モデルの誤りタイプ別の性能を表\ref{recall_score}に示す．誤りタイプはTEC-JL中の割合が$5\%$以上の誤りタイプのみを記載した．また誤りタイプ別の性能にはRecallを用いた\footnote{誤りタイプ別の性能を$\mathrm{F_{0.5}}$で評価するにはモデル出力に誤用タグを付与し，誤りタイプ別のPrecisionを求める必要がある．英語文法誤り訂正ではERRANTで誤用タグを自動推定し，誤りタイプ別のPrecisionを求めることが可能である．しかし日本語では公開された自動誤用タグ付けツールがないためRecallで評価した．}．表\ref{recall_score}より，各モデルは綴り誤りの性能が高いことが分かる．また助詞誤りの性能も高く，BARTでは$60\%$近くの助詞誤りを訂正できている．したがって綴り誤りや助詞誤りは日本語文法誤り訂正モデルにとって比較的訂正しやすい誤りタイプである．綴り誤りや助詞誤りが訂正しやすい理由には様々な要素があると思われるが，例えば学習者が犯しやすい誤りのため訓練データに同様の誤りが多く存在することなどが考えられる．一方名詞誤りは各モデルの訂正性能が比較的低く，SMTやRNN，CNNでは$10\%$以下であり，TransformerやBART，T5でも$20\%$から$30\%$程度である．名詞誤りは文脈を考慮して訂正する必要がある場合が多いため，誤りタイプの中でも訂正性能が低くなったと考えられる．英語文法誤り訂正でも名詞誤りの訂正性能は低く\cite{bryant-etal-2019-bea}，名詞誤りの訂正性能向上は日本語と英語で共通の課題である．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.2\begin{figure}[t]\begin{center}\includegraphics{30-2ia3f2.pdf}\end{center}\caption{TEC-JLにおける各モデルのPPLR及びcos類似度．}\label{pplr_cos_sim}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table12\begin{table}[t]\input{03table12.tex}%\caption{TEC-JLにおける各モデルの誤りタイプ別のRecall(\%)．}\label{recall_score}\vspace{-0.5\Cvs}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{擬似データによる性能向上}
本節では日本語文法誤り訂正モデルの訓練に\pagebreak擬似データを使用した場合の性能変化を調査する．現在文法誤り訂正で主流のエンコーダ・デコーダモデル\cite{sutskever-etal-2014-sequence,bahdanau-etal-2015-neural}は大量の訓練データを必要とする\cite{koehn-knowles-2017-six}．しかし文法誤り訂正に利用可能な学習者データは限られており，英語文法誤り訂正では擬似データを利用したエンコーダ・デコーダモデルの性能向上が一般化している\cite{xie-etal-2018-noising,ge-etal-2018-fluency,zhao-etal-2019-improving,grundkiewicz-etal-2019-neural,lichtarge-etal-2019-corpora,lichtarge-etal-2020-data,kiyono-etal-2020-massive,wang-zheng-2020-improving,zhou-etal-2020-improving-grammatical,wan-etal-2020-improving,stahlberg-kumar-2021-synthetic,yasunaga-etal-2021-lm,li-he-2021-data,koyama-etal-2022-tayo}．一方日本語文法誤り訂正では，擬似データがエンコーダ・デコーダモデルの性能に与える影響があまり明らかになっていない．そこで本節では，既存の擬似データ生成手法を適用し，日本語文法誤り訂正に擬似データを用いた場合のモデルの性能変化を観察する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{実験設定}エンコーダ・デコーダモデルにはRNN，CNN，Transformerを使用する．各モデルのアーキテクチャや評価方法は\ref{experimental_settings}節と同様である．擬似データ生成時の生成元コーパスにはWiki-40Bの日本語Wikipedia部分から抽出した1,000万文を用いた．\citeA{kiyono-etal-2020-massive}に従い，擬似データは事前学習で使用し，学習者データはファインチューニングにのみ用いた．また事前学習及びファインチューニング時の設定は\citeA{kiyono-etal-2020-massive}に従った．使用する擬似データ生成手法は以下の通りである．\begin{description}\item[Directnoise\cite{zhao-etal-2019-improving}]原文に4つの編集操作（削除，挿入，置換，シャッフル）を行う．具体的には原文をトークンに区切り，次の操作を確率的に適用する．$(\mathrm{i})$削除:10\%の確率でトークンを削除する．$(\mathrm{ii})$挿入:10\%の確率でトークンの後ろに生成元コーパス中のトークンを挿入する．$(\mathrm{iii})$置換:10\%の確率でトークンを生成元コーパス中のトークンに置き換える．$(\mathrm{iv})$シャッフル:各トークンの位置番号に対し正規分布から抽出した値を加え，昇順に整列する．本実験では\citeA{zhao-etal-2019-improving}が公開しているスクリプトを使用した\footnote{\url{https://github.com/yuantiku/fairseq-gec}}．\item[Directnoise(ja)\cite{ogawa-yamamoto-2020-nihongo}]Directnoiseが非現実的な誤りを多く生成する点を改良し，Directnoiseに日本語学習者特有の誤り傾向を反映させる．具体的には原文をトークンに区切り，次の操作を確率的に適用する．$(\mathrm{i})$削除:助詞を10\%，助詞以外を5\%の確率で削除する．また送り仮名がある単語では50\%の確率で送り仮名の1文字目を削除する．$(\mathrm{ii})$挿入:5\%の確率で後ろにトークンを挿入する．挿入するトークンは70\%の確率で助詞セットから，30\%の確率で生成元コーパスから選択する．$(\mathrm{iii})$置換:助詞を10\%，助詞以外を5\%の確率で置換する．置換するトークンは70\%の確率で助詞セットから，30\%の確率で生成元コーパスから選択する．$(\mathrm{iv})$シャッフル:Directnoiseのシャッフル操作を文節単位で行う．本実験では\citeA{ogawa-yamamoto-2020-nihongo}が公開しているスクリプトを使用した\footnote{\url{https://github.com/youichiro/transformer-copy}}．\item[Back-translation\cite{xie-etal-2018-noising}]逆翻訳モデル\cite{sennrich-etal-2016-improving}を用いて原文に誤りを生成させる．逆翻訳モデルとは入力と出力を入れ替えて訓練したモデルである．文法誤り訂正の場合，訂正文を入力とし学習者文を出力として訓練したモデルになる．\citeA{xie-etal-2018-noising}はビームサーチ時，毎ステップの各仮説のスコアに$r\beta_{\mathrm{random}}$をノイズとして加え，より多様な誤りを含むように改良した．ここで，$r$は区間$[0,1]$の一様分布からランダムに選択される値であり，$\beta_{\mathrm{random}}$はノイズの大きさを調節するためのハイパーパラメータである．本実験ではTransformerを逆翻訳モデルに用い，事前実験において開発データ上で最大の$\mathrm{GLEU^+}$スコアとなった時の値である$\beta_{\mathrm{random}}=8$を使用した．\item[Round-triptranslation\cite{lichtarge-etal-2019-corpora}]原文を他言語へ翻訳し，その翻訳文を原言語に翻訳し直す．本実験では日本語の原文を英語に翻訳し，生成された英語を日本語へ再度翻訳した．日英翻訳モデル及び英日翻訳モデルには，\citeA{morishita-etal-2022-jparacrawl}のJParaCrawl\cite{morishita-etal-2020-jparacrawl,morishita-etal-2022-jparacrawl}で訓練された``Transformer(big)''\cite{vaswani-etal-2017-attention}を使用した\footnote{\url{https://www.kecl.ntt.co.jp/icl/lirg/jparacrawl}}．\end{description}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{実験結果}表\ref{tb:over_all_score_pseudo_data}に擬似データを使用した場合の各文法誤り訂正モデルの性能を示す．表\ref{tb:over_all_score_pseudo_data}より，擬似データを使用することで各モデルの性能が向上したことが分かる．TEC-JLではCNNにBack-translationで生成した擬似データを用いた場合に$\mathrm{F_{0.5}}$が最も高くなった．FLUTECとNAIST誤用コーパスではTransformerにBack-translationを使用した場合にそれぞれ$\mathrm{GLEU^+}$スコアと$\mathrm{F_{0.5}}$が最も高くなった．全体的な傾向としてはDirectnoiseとDirectnoise(ja)よりもBack-translationやRound-triptranslationを用いた方がモデルの性能が向上している．この理由にはBack-translationやRound-triptranslationの方がより多様な誤りを生成できることが考えられる．DirectnoiseとDirectnoise(ja)を比較すると，DirectnoiseよりもDirect\mbox{noise(ja)}を使用した場合の方がRecallが向上することが分かる．Directnoise(ja)は学習者の犯しやすい現実的な誤りを発生できるため，Directnoiseよりも学習者文中の誤りを捉えやすくなったと考えられる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table13\begin{table}[t]\input{03table13.tex}%\caption{擬似データを用いた場合の各文法誤り訂正モデルの性能．\textbf{太字}は各モデルでの最高性能を表す．}\label{tb:over_all_score_pseudo_data}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%図\ref{error_type_with_pseudo_data}に擬似データで事前学習した場合の各文法誤り訂正モデルの誤りタイプ別の性能を示す．ここで事前学習なしは擬似データを用いず学習者データのみで訓練したモデルの性能を表す．図\ref{error_type_with_pseudo_data}より，全ての擬似データ生成手法で助詞誤りの訂正性能が事前学習なしの場合のよりも向上していることが分かる．助詞誤りは学習者が犯しやすい誤りタイプであるため\cite{oyama-etal-2016-nihongo}，全ての擬似データ生成手法で性能が向上したことは好ましい結果である．またRNNではDirectnoise(ja)を使用した場合に，句読点誤りの訂正性能が他の手法よりも向上している．TransformerではBack-translationを使用した場合に，綴り誤りの訂正性能が他の手法よりも向上した．一方CNNでは，綴り誤りの訂正性能がBack-translationを使用しても向上しておらず，Round-triptranslationの場合のみ向上している．また動詞の活用誤りの訂正性能に関して，CNNでは全ての擬似データ生成手法で性能が向上しているが，RNNやTransformerでは性能を低下させる擬似データ生成手法がある．したがってどのような擬似データ生成手法が有効かはモデルのアーキテクチャに依存することが示唆され，今後より詳細な分析が必要である．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.3\begin{figure}[p]\begin{center}\includegraphics{30-2ia3f3.pdf}\end{center}\caption{擬似データを利用した場合の各文法誤り訂正モデルのRecall(\%)．}\label{error_type_with_pseudo_data}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.4\begin{figure}[t]\begin{center}\includegraphics{30-2ia3f4.pdf}\end{center}\caption{TEC-JLにおける擬似データ量を変化させた時の$\mathrm{F_{0.5}}$．}\label{f0.5_score}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table14\begin{table}[t]\input{03table14.tex}%\hangcaption{TEC-JLにおける擬似データ量（文対数）を変化させた時の誤りタイプ別のRecall(\%)．Δは擬似データなしの性能からの各擬似データ量での差分を表す．}\label{error_type_with_each_data_size}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{擬似データ量が性能に与える影響}擬似データ量が訂正性能に与える影響をより詳細に調べるため，擬似データ量を変化させた時のモデルの性能を調査した．具体的には擬似データ量を1M，3M，5M，7M，10Mと変化させた時の性能を調査した．図\ref{f0.5_score}にTEC-JLにおける擬似データ量を変化させた時の$\mathrm{F_{0.5}}$を示す．本実験では，表\ref{tb:over_all_score_pseudo_data}でTEC-JLにおいて最高性能であるCNNを文法誤り訂正モデルに使用し，Back-translationによる擬似データを用いた．図\ref{f0.5_score}より，擬似データ量の増加とともにモデルの性能は向上することが分かる．これは英語文法誤り訂正での\citeA{kiyono-etal-2020-massive}や\mbox{\citeA{wan-etal-2020-improving}}の報告と整合性のある結果である．次に誤りタイプ別の性能はどのように変化するかを調べる．表\ref{error_type_with_each_data_size}に擬似データ量を変化させた時の誤りタイプ別のRecallを示す．\mbox{表\ref{error_type_with_each_data_size}}より，ほとんどの場合，擬似データなしの時に比べ擬似データを使用した時の方が誤りタイプ別の性能も向上することが分かる．また助詞誤りや助動詞の選択誤りなどは擬似データ量が1Mの時と比べ10MではRecallが2\%程度上昇している．一方綴り誤りでは擬似データなしの時よりも10Mの時の方が性能が下がっている．また句読点誤りの性能は擬似データ量が1Mと10Mの時でほとんど変わっていない．この理由にはBack-translationでは綴り誤りや句読点誤りを上手く生成できていないことが考えられ，擬似データにより性能が向上しやすい誤りタイプとそうでない誤りタイプが存在することが分かった．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{おわりに}
本研究では日本語文法誤り訂正のための誤用タグ付き評価コーパスを構築した．学習者文にはLang-8コーパスの日本語学習者文を利用し，一貫した訂正基準に基づき訂正を施した．また文法誤り訂正分野の研究者や開発者が使いやすい評価コーパスとするため，評価コーパスの仕様を英語文法誤り訂正で代表的なコーパスやツールに寄せた．本評価コーパスが日本語文法誤り訂正の研究促進に寄与することを期待する．実験では6種類の代表的な文法誤り訂正モデルを評価し，今後の日本語文法誤り訂正においてベースラインとなるスコアを示した．今後の課題としては日本語版ERRANTの開発が挙げられる．本実験では誤りタイプ別の性能評価にRecallを用いたが，モデルをより精緻に評価するにはPrecisionも考慮した$\mathrm{F_{0.5}}$で評価することが望ましい．誤りタイプ別の$\mathrm{F_{0.5}}$を求めるには，モデル出力に誤用タグを付与し，誤りタイプ別のPrecisionを求める必要がある．しかし日本語ではERRANTのような自動誤用タグ付けツールが存在せず，人手での誤用タグ付けはコストが高い．したがって日本語版ERRANTを開発し，モデルの誤りタイプ別の性能を$\mathrm{F_{0.5}}$で評価可能にする必要がある．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\acknowledgmentLang-8のデータを提供してくださった株式会社Lang-8の喜洋洋氏に感謝申しあげます．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\bibliographystyle{jnlpbbl_1.7}\bibliography{03refs}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\appendix
\section{BART及びT5の設定}
\label{bart_t5_setting}表\ref{optimaization_setting}にBART及びT5のハイパーパラメータと推論時の設定を示す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table15\begin{table}[h]\input{03table15.tex}%\caption{BART及びT5のハイパーパラメータと推論時の設定．}\label{optimaization_setting}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\begin{biography}\bioauthor{小山碧海}{%2021年東京都立大学システムデザイン学部システムデザイン学科情報通信システムコース卒業．2023年東京都立大学大学院システムデザイン研究科情報科学域博士前期課程修了．同年KDDI株式会社入社及び東京都立大学大学院システムデザイン研究科情報科学域博士後期課程進学．現在に至る．}\bioauthor{喜友名朝視顕}{%2021年東京都立大学システムデザイン学部システムデザイン学科情報通信システムコース卒業．2023年東京都立大学大学院システムデザイン研究科情報科学域博士前期課程修了．同年ヤフー株式会社入社．現在に至る．}\bioauthor{小林賢治}{%2021年東京都立大学システムデザイン学部システムデザイン学科情報通信システムコース卒業．2023年東京都立大学大学院システムデザイン研究科情報科学域博士前期課程修了．同年NECソリューションイノベータ株式会社入社．現在に至る．}\bioauthor{新井美桜}{%2017年帝京大学外国語学部外国語学科卒業．2020年首都大学東京（現東京都立大学）大学院システムデザイン研究科情報科学域博士前期課程修了．同年フューチャー株式会社入社．現在に至る．}\bioauthor{三田雅人}{2014年県立広島大学経営情報学部経営学科卒業．2016年奈良先端科学技術大学院大学情報科学研究科博士前期課程終了.同年日本マイクロソフト株式会社入社．2018年理化学研究所革新知能統合研究センター入所．2021年東北大学大学院情報科学研究科博士後期課程修了．博士（情報科学）．同年東京都立大学システムデザイン学部特任助教．2022年株式会社サイバーエージェントAILabリサーチサイエンティスト．現在に至る．言語処理学会，ACL各会員．}\bioauthor{岡照晃}{%2010年豊橋技術科学大学情報工学課程卒業．2012年奈良先端科学技術大学院大学情報科学研究科博士前期課程修了．2013年より日本学術振興会特別研究員(DC2)を経て，2015年奈良先端科学技術大学院大学情報科学研究科博士後期課程修了．博士（工学）．同年京都大学大学院情報学研究科特定研究員．2016年国立国語研究所言語変化研究領域プロジェクト非常勤研究員．同年同研究所コーパス開発センター特任助教．2021年東京都立大学システムデザイン学部特任助教．2023年一橋大学ソーシャル・データサイエンス研究科特任助教．現在に至る．}\bioauthor{小町守}{%2005年東京大学教養学部基礎科学科科学史・科学哲学分科卒業．2007年奈良先端科学技術大学院大学情報科学研究科博士前期課程修了．2008年より日本学術振興会特別研究員(DC2)を経て，2010年奈良先端科学技術大学院大学情報科学研究科博士後期課程修了．博士（工学）．同年同研究科助教．2013年首都大学東京（現東京都立大学）システムデザイン学部准教授．2022年同大学同学部教授．2023年一橋大学ソーシャル・データサイエンス研究科教授．現在に至る．情報処理学会，人工知能学会，言語処理学会，ACL各会員．}\end{biography}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\biodate\clearpage\clearpage\end{document}