(57)【要約】【課題】語学の学習者のライティング技術の向上を効果的に支援する。【解決手段】学習支援装置は、多数の解説文と、多数の解説文にそれぞれ関連付けられており、多数の解説文の意味をそれぞれ表す多数の解説文ベクトルを格納する解説文データベースと、学習者が記述した対象文を第１ニューラルネットワークに入力することにより、対象文に含まれる解説すべき箇所を検出するとともに、第１ニューラルネットワークの出力として、対象文の文脈を表す文脈ベクトルを生成する文脈ベクトル生成部と、文脈ベクトルを解説文データベースと照合して、文脈ベクトルと類似する解説文ベクトルを検索し、検索された解説文ベクトルに関連付けられた解説文を、対象文の解説すべき箇所に付与される解説文として導出する解説文生成部とを備える。【選択図】図２
2020140183.tif 000002
【特許請求の範囲】
【請求項１】
語学の学習者のライティング技術の向上を支援する学習支援装置であって、
文に対する多数の解説文と、前記多数の解説文にそれぞれ関連付けられており、前記多数の解説文の意味をそれぞれ表す多数の解説文ベクトルを格納する解説文データベースと、
前記学習者が記述した文である対象文を第１ニューラルネットワークに入力することにより、前記対象文に含まれる解説すべき箇所を検出するとともに、前記第１ニューラルネットワークの出力として、前記解説すべき箇所の文脈を表す文脈ベクトルを生成する文脈ベクトル生成部と、
前記文脈ベクトルを前記解説文データベースと照合して、前記文脈ベクトルと類似する前記解説文ベクトルを検索し、前記検索された解説文ベクトルに関連付けられた前記解説文を、前記対象文の前記解説すべき箇所に付与される解説文として導出する解説文生成部と
を備える、
学習支援装置。
【請求項２】
前記文脈ベクトル生成部は、前記文脈ベクトルを第２ニューラルネットワークに入力することにより、前記第２ニューラルネットワークの出力として、前記解説文ベクトルが属する空間にマッピングされた前記文脈ベクトルである変換文脈ベクトルを生成し、
前記解説文生成部は、前記変換文脈ベクトルを前記解説文データベースと照合して、前記変換文脈ベクトルと類似する前記解説文ベクトルを検索する、
請求項１に記載の学習支援装置。
【請求項３】
語学の学習者のライティング技術の向上を支援する学習支援装置であって、
前記学習者が記述した文である対象文を第１ニューラルネットワークに入力することにより、前記対象文に含まれる解説すべき箇所を検出するとともに、前記第１ニューラルネットワークの出力として、前記解説すべき箇所の文脈を表す文脈ベクトルを生成する文脈ベクトル生成部と、
前記文脈ベクトルを第２ニューラルネットワークに入力することにより、前記第２ニューラルネットワークの出力として、前記対象文の前記解説すべき箇所に付与される解説文を生成する解説文生成部と
を備える、
学習支援装置。
【請求項４】
前記解説文生成部は、前記対象文に複数の解説すべき箇所が含まれる場合には、前記複数の解説すべき箇所の各々に対し、前記解説文を生成する、
請求項１から３のいずれかに記載の学習支援装置。
【請求項５】
前記文脈ベクトルは、前記第１ニューラルネットワークの隠れ層から出力される、
請求項１から４のいずれかに記載の学習支援装置。
【請求項６】
語学の学習者のライティング技術の向上を支援する学習支援プログラムであって、
文に対する多数の解説文と、前記多数の解説文にそれぞれ関連付けられており、前記多数の解説文の意味をそれぞれ表す多数の解説文ベクトルを格納する解説文データベースに接続されたコンピュータに、
前記学習者が記述した文である対象文を第１ニューラルネットワークに入力することにより、前記対象文に含まれる解説すべき箇所を検出するとともに、前記第１ニューラルネットワークの出力として、前記解説すべき箇所の文脈を表す文脈ベクトルを生成することと、
前記文脈ベクトルを前記解説文データベースと照合して、前記文脈ベクトルと類似する前記解説文ベクトルを検索し、前記検索された解説文ベクトルに関連付けられた前記解説文を、前記対象文の前記解説すべき箇所に付与される解説文として導出することと
を実行させる、
学習支援プログラム。
【請求項７】
語学の学習者のライティング技術の向上を支援する学習支援プログラムであって、
前記学習者が記述した文である対象文を第１ニューラルネットワークに入力することにより、前記対象文に含まれる解説すべき箇所を検出するとともに、前記第１ニューラルネットワークの出力として、前記解説すべき箇所の文脈を表す文脈ベクトルを生成することと、
前記文脈ベクトルを第２ニューラルネットワークに入力することにより、前記第２ニューラルネットワークの出力として、前記対象文の前記解説すべき箇所に付与される解説文を生成することと
をコンピュータに実行させる、
学習支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、語学の学習者のライティング技術の向上を支援する学習支援装置及びプログラムに関する。
【背景技術】
【０００２】
特許文献１は、英文における前置詞の正誤をコンピュータにより自動解析する技術を開示している。特許文献１では、格フレームに基づいて前置詞の誤りが検出されるが、この格フレームには、前置詞の誤りに関する説明であるフィードバックメッセージが関連付けられている。よって、特許文献１では、英語の学習者に対し、前置詞の誤りを示すとともに、フィードバックメッセージを提供することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−２０９３１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
以上の技術によれば、学習者は、自身が作成した文の誤りを単に知ることができるだけでなく、これに関するフィードバックメッセージを受け取ることができる点で、語学の学習を効果的に進めることができる。しかし、この方法では、格フレームで表現されるような限られた種類の誤りしか検出することができず、そのような誤りに対してのみフィードバックメッセージが提供されるため、学習の幅が制限されてしまう。よって、語学の学習者のライティング技術の向上を支援するには、さらなる創意工夫が求められる。また、格フレームに基づくアルゴリズムは、自動生成した格フレームの解釈、競合する格フレームの調整等、人手の介入が多分に求められるという課題もある。これらの作業は、特に格フレームの数が増えると、極めて困難になる。
【０００５】
本発明は、語学の学習者のライティング技術の向上を効果的に支援することができる学習支援装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
第１観点に係る学習支援装置は、語学の学習者のライティング技術の向上を支援する学習支援装置であって、文に対する多数の解説文と、前記多数の解説文にそれぞれ関連付けられており、前記多数の解説文の意味をそれぞれ表す多数の解説文ベクトルを格納する解説文データベースと、前記学習者が記述した文である対象文を第１ニューラルネットワークに入力することにより、前記対象文に含まれる解説すべき箇所を検出するとともに、前記第１ニューラルネットワークの出力として、前記解説すべき箇所の文脈を表す文脈ベクトルを生成する文脈ベクトル生成部と、前記文脈ベクトルを前記解説文データベースと照合して、前記文脈ベクトルと類似する前記解説文ベクトルを検索し、前記検索された解説文ベクトルに関連付けられた前記解説文を、前記対象文の前記解説すべき箇所に付与される解説文として導出する解説文生成部とを備える。
【０００７】
第２観点に係る学習支援装置は、第１観点に係る学習支援装置であって、前記文脈ベクトル生成部は、前記文脈ベクトルを第２ニューラルネットワークに入力することにより、前記第２ニューラルネットワークの出力として、前記解説文ベクトルが属する空間にマッピングされた前記文脈ベクトルである変換文脈ベクトルを生成する。前記解説文生成部は、前記変換文脈ベクトルを前記解説文データベースと照合して、前記変換文脈ベクトルと類似する前記解説文ベクトルを検索する。
【０００８】
第３観点に係る学習支援装置は、語学の学習者のライティング技術の向上を支援する学習支援装置であって、前記学習者が記述した文である対象文を第１ニューラルネットワークに入力することにより、前記対象文に含まれる解説すべき箇所を検出するとともに、前記第１ニューラルネットワークの出力として、前記解説すべき箇所の文脈を表す文脈ベクトルを生成する文脈ベクトル生成部と、前記文脈ベクトルを第２ニューラルネットワークに入力することにより、前記第２ニューラルネットワークの出力として、前記対象文の前記解説すべき箇所に付与される解説文を生成する解説文生成部とを備える。
【０００９】
第４観点に係る学習支援装置は、第１観点から第３観点のいずれかに係る学習支援装置であって、前記解説文生成部は、前記対象文に複数の解説すべき箇所が含まれる場合には、前記複数の解説すべき箇所の各々に対し、前記解説文を生成する。
【００１０】
第５観点に係る学習支援装置は、第１観点から第４観点のいずれかに係る学習支援装置であって、前記文脈ベクトルは、前記第１ニューラルネットワークの隠れ層から出力される。
【００１１】
第６観点に係る学習支援プログラムは、語学の学習者のライティング技術の向上を支援する学習支援プログラムであって、解説文データベースに接続されたコンピュータに以下のことを実行させる。前記解説文データベースは、文に対する多数の解説文と、前記多数の解説文にそれぞれ関連付けられており、前記多数の解説文の意味をそれぞれ表す多数の解説文ベクトルを格納する。
・前記学習者が記述した文である対象文を第１ニューラルネットワークに入力することにより、前記対象文に含まれる解説すべき箇所を検出するとともに、前記第１ニューラルネットワークの出力として、前記解説すべき箇所の文脈を表す文脈ベクトルを生成すること
・前記文脈ベクトルを前記解説文データベースと照合して、前記文脈ベクトルと類似する前記解説文ベクトルを検索し、前記検索された解説文ベクトルに関連付けられた前記解説文を、前記対象文の前記解説すべき箇所に付与される解説文として導出すること
【００１２】
第７観点に係る学習支援プログラムは、語学の学習者のライティング技術の向上を支援する学習支援プログラムであって、コンピュータに以下のことを実行させる。
・前記学習者が記述した文である対象文を第１ニューラルネットワークに入力することにより、前記対象文に含まれる解説すべき箇所を検出するとともに、前記第１ニューラルネットワークの出力として、前記解説すべき箇所の文脈を表す文脈ベクトルを生成すること
・前記文脈ベクトルを第２ニューラルネットワークに入力することにより、前記第２ニューラルネットワークの出力として、前記対象文の前記解説すべき箇所に付与される解説文を生成すること
【発明の効果】
【００１３】
本発明によれば、語学の学習者のライティング技術の向上を効果的に支援することができる。
【図面の簡単な説明】
【００１４】
【図１】第１実施形態に係る学習支援装置の機能ブロック図。
【図２】第１実施形態に係る添削処理で使用される第１及び第２ニューラルネットワークを含む解析モデルの構成を示す図。
【図３】第１実施形態に係る第３ニューラルネットワークの構成を示す図。
【図４】第１実施形態に係る添削処理の流れを示すフローチャート。
【図５】第１実施形態に係る添削結果を表示する表示画面の例を示す図。
【図６】第２実施形態に係る学習支援装置の機能ブロック図。
【図７】第２実施形態に係る添削処理で使用される第１及び第２ニューラルネットワークを含む解析モデルの構成を示す図。
【図８】第２実施形態の変形例に係る添削処理で使用される第１及び第２ニューラルネットワークを含む解析モデルの構成を示す図。
【図９】第２実施形態に係る添削処理の流れを示すフローチャート。
【発明を実施するための形態】
【００１５】
以下、図面を参照しつつ、本発明の幾つかの実施形態に係る学習支援装置及びプログラムについて説明する。
【００１６】
＜１．第１実施形態＞
＜１−１．概要＞
図１に、第１実施形態に係る学習支援装置１の全体構成図を示す。学習支援装置１は、語学の学習者のライティング技術の向上を支援するための装置であり、語学の学習者が記述した文（以下、対象文ということがある）Ｌ１の添削処理を実行する。この添削処理においては、対象文Ｌ１に含まれる解説すべき箇所が検出されるとともに、当該解説すべき箇所に付与される解説文Ｌ２が生成され、当該解説文Ｌ２はユーザーに提供される。解説文Ｌ２は、学習者のライティング能力の向上に寄与し得る内容を記述した文字列である。解説文Ｌ２は、典型的には、文法誤りや不自然な表現等に対するコメントであるが、より良くするためのアドバイスや学習者の意欲を向上させるための励まし等も含み得る。なお、語学の学習の場面では、誤った箇所だけでなく、たとえ正しい箇所についても解説することで、学習の効果を促進することも可能である。よって、ここでいう解説すべき箇所とは、典型的には、対象文Ｌ１において文の誤りが発見された位置であるが、文として何ら誤りのない正しい位置であってもよい。また、ここでいうユーザーとは、典型的には、対象文Ｌ１を記述した学習者であるが、これに限られず、例えば、添削者であってもよい。添削処理は、ニューラルネットワークモデル２（図２参照）に基づいて行われる。ニューラルネットワークモデル２は、事前学習により構築される。
【００１７】
以下、学習支援装置１の構成について述べた後、添削処理で使用されるニューラルネットワークモデル２を含む解析モデルの構成、添削処理の流れ、及びニューラルネットワークモデル２の学習処理の流れについて順に説明する。
【００１８】
＜１−２．学習支援装置の構成＞
図１を参照しつつ、学習支援装置１の構成について説明する。学習支援装置１は、ハードウェアとしては汎用のコンピュータであり、例えば、デスクトップ型コンピュータ、ノート型コンピュータ、タブレットコンピュータ、スマートフォンとして実現される。学習支援装置１は、ＣＤ−ＲＯＭ、ＵＳＢメモリ等のコンピュータで読み取り可能な記録媒体３０から、或いはインターネット等のネットワークを介して、学習支援プログラム３を汎用のコンピュータにインストールすることにより製造される。学習支援プログラム３は、ユーザーにより入力された対象文Ｌ１を添削するためのソフトウェアであり、学習支援装置１に後述する動作を実行させる。
【００１９】
学習支援装置１は、表示部１１、入力部１２、記憶部１３、制御部１４及び通信部１５を備える。これらの部１１〜１５は、互いにバス線１６を介して接続されており、相互に通信可能である。表示部１１は、液晶ディスプレイ等で構成することができ、対象文Ｌ１の添削結果をユーザーに対し表示する。入力部１２は、マウス、キーボード、タッチパネル等で構成することができ、学習支援装置１に対するユーザーからの操作を受け付ける。
【００２０】
記憶部１３は、ハードディスクやフラッシュメモリ等の不揮発性の記録装置で構成することができる。記憶部１３内には、学習支援プログラム３が格納されている他、後述する学習処理で学習され、後述する添削処理で使用されるニューラルネットワークモデル２を定義する情報が格納される。また、記憶部１３内には、添削処理において対象文Ｌ１の解説すべき箇所に付与される多数の解説文Ｌ２を格納した解説文データベース４も格納される。
【００２１】
制御部１４は、ＣＰＵ、ＲＯＭおよびＲＡＭ等から構成することができる。制御部１４は、記憶部１３内の学習支援プログラム３を読み出して実行することにより、仮想的に文脈ベクトル生成部１４ａ、解説文生成部１４ｂ、及び表示制御部１４ｃとして動作する。各部１４ａ〜１４ｃの動作の詳細については、後述する。通信部１５は、ＬＡＮやインターネット等のネットワーク上に存在する外部機器との通信を可能にする通信インターフェースとして機能する。
【００２２】
＜１−３．解析モデルの構成＞
次に、図２を参照しつつ、添削処理で使用される解析モデルの構成について説明する。同モデルに含まれるニューラルネットワークモデル２は、第１ニューラルネットワーク２１と、第２ニューラルネットワーク２２とを含む。
【００２３】
これに限定されないが、第１ニューラルネットワーク２１は、再帰型ニューラルネットワーク（ＲＮＮ）であり、例えば、ＬＳＴＭ(Long short-term memory)やＧＲＵ（Gated Recurrent Unit）等とすることができる。本実施形態の第１ニューラルネットワーク２１は、双方向型であり、特にＢｉＬＳＴＭ(Bidirectional Long short-term memory)である。また、第１ニューラルネットワーク２１の表現力を高めるため、注意機構（Attention Mechanism）を追加することもできる。また、ＬＳＴＭを多層に重ねてもよい（Stacked LSTM）。
【００２４】
第１ニューラルネットワーク２１は、対象文Ｌ１を入力とし、対象文Ｌ１中の解説すべき箇所を示すデータ列Ｌ３を作成するためのデータを出力するニューラルネットワークである。第１ニューラルネットワーク２１は、入力層２１１、隠れ層２１２、及び出力層２１３を含む。対象文Ｌ１は、入力層２１１に入力される。本実施形態では、入力層２１１を構成する複数のノードに対し、対象文Ｌ１に含まれるトークン（単語、記号等）が、文中での順番に沿って順次入力される。ただし、入力層２１１のノードには、文字を１文字ずつ入力することもできる。なお、トークンは、第１ニューラルネットワーク２１内では分散表現に変換されて処理される。
【００２５】
出力層２１３を構成する各ノードからは、当該ノードに対応する、入力層２１１のノードに入力されたトークンに対し、解説文Ｌ２を付与すべきか否かを表す値が出力される。本実施形態では、出力層２１３は、softmax層であり、出力層２１３の各ノードは、「０」に該当する確率と「１」に該当する確率を出力する。「０」は解説文Ｌ２が不要であることを意味し、「１」は解説文Ｌ２が必要であることを意味する。そして、出力層２１３の各ノードから出力された「０」に該当する確率と「１」に該当する確率とが比較され、当該ノードに対し、前者の方が大きい場合には「０」のラベルが付与され、後者の方が大きい場合には「１」のラベルが付与される。データ列Ｌ３は、出力層２１３の配列に合わせてこれらのラベルを順番に並べたデータ列であり、よって、第１ニューラルネットワーク２１は、２値の系列ラベリングのモデルとなる。よって、例えば、データ列Ｌ３において、２番目と４番目に「１」が含まれる場合には、対象文Ｌ１において２番目と４番目のトークンが解説をすべき箇所として検出される。なお、典型的には、「０」は対象文Ｌ１における誤り箇所に、「１」は正しい箇所に付与されるが、これは学習時の教師信号に依存する。
【００２６】
隠れ層２１２の隠れ状態ベクトルは、対象文Ｌ１中の前後のトークンの情報を記憶している。従って、隠れ層２１２の隠れ状態ベクトルは、対象文Ｌ１の対応箇所での文脈を抽象的に表現することができる。本実施形態では、データ列Ｌ３に基づき、解説すべき箇所が検出される。そして、解説すべき箇所に対応する隠れ層２１２の隠れ状態ベクトルが、当該解説すべき箇所の文脈を表す文脈ベクトルＶ１として、第２ニューラルネットワーク２２に入力される。
【００２７】
次に、これに限定されないが、本実施形態の第２ニューラルネットワーク２２は、順伝播型ニューラルネットワーク（ＦＦＮＮ）であり、特に１層のＦＦＮＮである。第２ニューラルネットワーク２２には、第１ニューラルネットワーク２１から出力される文脈ベクトルＶ１が入力される。第２ニューラルネットワーク２２は、この文脈ベクトルＶ１を解説文ベクトルＶ２が属する空間にマッピングする。解説文ベクトルＶ２とは、解説文データベース４に格納されている解説文Ｌ２の意味を抽象的に表現するベクトルである。つまり、第２ニューラルネットワーク２２内では、文脈ベクトルＶ１が解説文ベクトルＶ２と次元が一致するように変換され、変換後の文脈ベクトルＶ１（以下、変換文脈ベクトルＶ３という）が、第２ニューラルネットワーク２２から出力される。
【００２８】
第２ニューラルネットワーク２２から出力される変換文脈ベクトルＶ３は、解説文データベース４内の解説文ベクトルＶ２と照合される。以上のマッピングは、対象文Ｌ１の文脈を表す文脈ベクトルＶ１と、解説文Ｌ２の意味を表す解説文ベクトルＶ２とを比較できるようするために行われる。解説文データベース４内には、多数の解説文Ｌ２と、これらの解説文Ｌ２の意味をそれぞれ表す多数の解説文ベクトルＶ２とが格納されている。解説文データベース４内では、解説文Ｌ２と解説文ベクトルＶ２とは互いに関連付けられている。
【００２９】
解説文ベクトルＶ２は、図３に示す第３ニューラルネットワーク２３に解説文Ｌ２を入力することにより作成される。これに限定されないが、第３ニューラルネットワーク２３は、再帰型ニューラルネットワーク（ＲＮＮ）であり、例えば、ＬＳＴＭ(Long short-term memory)やＧＲＵ（Gated Recurrent Unit）等とすることができる。本実施形態の第３ニューラルネットワーク２３は、ＬＳＴＭベースの言語モデル(Long short-term memory language model；ＬＳＴＭＬＭ)である。また、ＬＳＴＭを多層に重ねてもよい（Stacked LSTM）。
【００３０】
第３ニューラルネットワーク２３は、解説文Ｌ２を入力とするニューラルネットワークである。第３ニューラルネットワーク２３は、入力層２３１、隠れ層２３２、及び出力層２３３を含む。本実施形態では、入力層２３１を構成する複数のノードに対し、解説文Ｌ２に含まれるトークンが、文中での順番に沿って順次入力される。ただし、入力層２３１のノードには、文字を１文字ずつ入力することもできる。なお、トークンは、第３ニューラルネットワーク２３内では分散表現に変換されて処理される。
【００３１】
第３ニューラルネットワーク２３は、入力されるトークンから次のトークンを予測するように訓練される。この場合、隠れ層２３２の隠れ状態ベクトルは、第３ニューラルネットワーク２３に入力された解説文Ｌ２の意味を抽象的に表現することができ、これが解説文ベクトルＶ２に設定される。図３には明確に表れていないが、本実施形態では、解説文ベクトルＶ２の表現力を高めるため、第３ニューラルネットワーク２３として、解説文Ｌ２に含まれるトークンを順方向に入力するＬＳＴＭＬＭと、これらを逆方向に入力するＬＳＴＭＬＭとが用意される。そして、両ＬＳＴＭＬＭの隠れ層２３２の最後の隠れ状態ベクトルを連結したものが、解説文ベクトルＶ２に設定される。
【００３２】
＜１−４．添削処理の流れ＞
次に、図４を参照しつつ、添削処理の流れについて説明する。添削処理は、第１及び第２ニューラルネットワーク２１及び２２の学習が完了しており、さらに解説文データベース４も完成している状態で実行される。
【００３３】
最初のステップＳ１では、文脈ベクトル生成部１４ａが、添削の対象となる対象文Ｌ１を取得する。対象文Ｌ１は、学習者が記述した文であり、学習者が入力部１２を介して入力してもよいし、通信部１５を介して外部から受信してもよい。
【００３４】
続くステップＳ２では、文脈ベクトル生成部１４ａが、対象文Ｌ１に前処理を施す。例えば、ステップＳ１で複数の文からなる文章が取得された場合には、これを複数の対象文Ｌ１に分割する。なお、ここでは簡単のため、主としてステップＳ１で１つの文が取得された場合を例に説明するが、文章が取得されていた場合には、これに含まれる各対象文Ｌ１に対し、以下の処理が同様に繰り返される。
【００３５】
その他、前処理としては、トークン分割や、英語であれば小文字化、言語によっては形態素解析等の処理が実行される。また、解析精度を向上させるために、対象文Ｌ１に含まれる閾値未満の頻度の単語については、低頻度語であることを示す記号（例えば、<unk>）に置換してもよい。ただし、言語によらず、トークン分割や形態素解析等の処理は行わず一文字ずつ入力してもよい。
【００３６】
続くステップＳ３では、文脈ベクトル生成部１４ａが、前処理後の対象文Ｌ１を第１ニューラルネットワーク２１に入力する。これにより、対象文Ｌ１に含まれる解説すべき箇所が検出される。解説すべき箇所は０個の場合もある。一方、対象文Ｌ１に１つ以上の解説すべき箇所が含まれる場合には、第１ニューラルネットワーク２１の出力として、文脈ベクトルＶ１が生成される。
【００３７】
より具体的には、文脈ベクトル生成部１４ａは、第１ニューラルネットワーク２１から得られるデータ列Ｌ３に基づいて、対象文Ｌ１において解説すべき箇所を検出する。すなわち、データ列Ｌ３中で、解説すべきであることを示すフラグ（本実施形態では、「１」）が立っている位置を検出する。そして、出力層２１３を構成する複数のノードのうち、当該フラグに対応するノードに対応する隠れ状態ベクトルを、文脈ベクトルＶ１として抽出する。データ列Ｌ３の中に複数のフラグ「１」が含まれる場合、言い換えると、対象文Ｌ１に複数の解説すべき箇所が含まれる場合は、各解説すべき箇所に対し、文脈ベクトルＶ１を抽出する。
【００３８】
続くステップＳ４では、ステップＳ３において解説すべき箇所が１つ以上検出されたか否かが判定される。解説すべき箇所が０個の場合には、処理はステップＳ７に進められ、１個以上の場合には、ステップＳ５に進められる。
【００３９】
ステップＳ５及びこれに続くステップＳ６は、ステップＳ３で検出された各解説すべき箇所、言い換えると、ステップＳ３で抽出された各文脈ベクトルＶ１に対し実行される。すなわち、ステップＳ５の前に、ステップＳ３で導出された解説すべき箇所及び文脈ベクトルＶ１のセットが１つずつ選択され、現在選択されているセットに対し、ステップＳ５及びＳ６が実行される。
【００４０】
ステップＳ５では、文脈ベクトル生成部１４ａが、現在選択されている文脈ベクトルＶ１を解説文ベクトルＶ２が属する空間へマッピングする。より具体的には、文脈ベクトルＶ１を第２ニューラルネットワーク２２に入力することより、第２ニューラルネットワーク２２の出力として、変換文脈ベクトルＶ３を生成する。このとき、ベクトル空間内では、変換文脈ベクトルＶ３は、これに対応する解説すべき箇所の解説として適切な解説文Ｌ２を表す解説文ベクトルＶ２の近くに位置するようにマッピングされる。
【００４１】
続くステップＳ６では、解説文生成部１４ｂが、変換文脈ベクトルＶ３をキーとして、解説文データベース４内に格納されている多数の解説文Ｌ２の中から、現在選択されている解説すべき箇所に付与されるべき解説文Ｌ２を導出する。より具体的には、解説文生成部１４ｂは、変換文脈ベクトルＶ３を解説文データベース４と照合して、変換文脈ベクトルＶ３と類似する解説文ベクトルＶ２を検索する。言い換えると、ベクトル空間内において、変換文脈ベクトルＶ３に近い解説文ベクトルＶ２が検索される。
【００４２】
本実施形態では、解説文データベース４内に格納されている解説文ベクトルＶ２に総当たりの態様で、変換文脈ベクトルＶ３と解説文ベクトルＶ２との余弦類似度が算出される。そして、これらの余弦類似度に応じて、解説文ベクトルＶ２が検索される。より具体的には、変換文脈ベクトルＶ３との間で余弦類似度が最も大きい解説文ベクトルＶ２が検索される。そして、解説文データベース４内で当該解説文ベクトルＶ２に関連付けられている解説文Ｌ２が、現在選択されている解説すべき箇所に付与されるべき解説文Ｌ２として導出される。なお、余弦類似度が閾値以上のもの全てや、余弦類似度が上位所定数のもの等、複数の解説文Ｌ２を導出することもできる。一方で、余弦類似度が閾値未満となる解説文ベクトルＶ２しか存在しない場合には、解説文Ｌ２を導出しなくてもよい。また、現在選択されている解説すべき箇所のトークン（例えば、前置詞「at」）が、解説文Ｌ２に含まれるトークン（例えば、前置詞「in」）に一致しない場合には、余弦類似度の値に関わらず、そのような解説文Ｌ２は検索対象から除外してもよい。なお、ここでの類似度は、余弦類似度に限定されず、ベクトル間の類似度を算出することが可能な様々な類似度を使用することができる。
【００４３】
ステップＳ３で抽出された全ての解説すべき箇所に対するステップＳ５及びＳ６が終了すると、処理はステップＳ７に進められる。ステップＳ７では、表示制御部１４ｃが、対象文Ｌ１の添削結果を表示する表示画面Ｗ１を作成し、これを表示部１１上に表示させる。例えば、図５に示すような表示画面Ｗ１が表示される。図５の例は、与えられたトピックに対し、学習者が文章を自由記述した場合である。この例では、表示画面Ｗ１上には、トピック毎に、学習者が記述した複数の対象文Ｌ１を含む文章が表示される。また、これまでの処理により、対象文Ｌ１中において解説すべき箇所（トークン）が特定されているため、当該トークンがハイライト表示される。そして、ステップＳ６で生成された解説文Ｌ２が、これに対応する解説すべき箇所（トークン）に関連付けて表示される。図５の例では、トークンから解説文Ｌ２を結ぶ引き出し線が引かれている。なお、これまでの処理により、文単位又は文章単位で、或いは全ての文章に対し、解説すべき箇所（トークン）が検出されていない場合には、解説文Ｌ２に代えて、「誤りはありません」「特にコメントはありません」等のコメントが表示されてもよい。
【００４４】
以上の表示画面Ｗ１は、語学の学習者にライティングに関するヒントや説明等を与えることができ、どこが悪いのか、どのように改善したらよいのか等を理解する助けになる。よって、以上の表示画面Ｗ１は、語学の学習者のライティング技術の向上を効果的に支援することができる。表示画面Ｗ１の表示後、添削処理は終了する。
【００４５】
＜１−５．ニューラルネットワークモデルの学習処理の流れ＞
次に、ニューラルネットワークモデル２の学習処理の流れについて説明する。学習処理は、学習支援装置１で実行することもできるが、学習支援装置１が、別のコンピュータで学習されたニューラルネットワークモデル２を取得し、これを添削処理に使用してもよい。なお、解説文データベース４の作成処理、及びこれを作成するための第３ニューラルネットワーク２３の学習処理についても、同様である。
【００４６】
まず、学習のための教師データとして、語学の学習者が記述した多数の対象文Ｌ１を用意し、語学の教師等の手で、これに多数の解説文Ｌ２を付与していく。このとき、対象文Ｌ１において解説文Ｌ２を付与すべき箇所も設定する。なお、当然ながら、対象文Ｌ１及び解説文Ｌ２を用意するに当たっては、既存のコーパスを利用してもよい。本実施形態では、解説文Ｌ２が単語の抜けの誤りに関する場合、これが付与されるべき解説すべき箇所は、左隣りのトークンの位置に設定するが、右隣りとすることもできる。これにより、単語の抜けに対する解説か、その単語自身に対する解説かの間で曖昧性が生じるが、大抵の場合、解説文Ｌ２の内容からどちらのケースにあたるか判断できるため、問題となることは少ない。以下、以上のとおり用意された対象文Ｌ１と、対象文Ｌ１中の解説すべき箇所と、解説すべき箇所に関連付けられた解説文Ｌ２とを含むコーパスを、教師コーパスと呼ぶ。
【００４７】
次に、第３ニューラルネットワーク２３の学習を行う。このとき、教師コーパスから多数の解説文Ｌ２を抽出し、これを第３ニューラルネットワーク２３に順次入力する。そして、第３ニューラルネットワーク２３を、入力されるトークンから次のトークンを予測するように訓練する。次に、学習済の第３ニューラルネットワーク２３に、教師コーパスから抽出される多数の解説文Ｌ２を入力し、多数の解説文ベクトルＶ２を生成する。これにより、解説文データベース４が作成される。そして、ここで作成された解説文ベクトルＶ２を含むように、教師コーパスを更新する。このとき、教師コーパスに含まれる解説文Ｌ２と、解説文ベクトルＶ２とを関連付ける。
【００４８】
次に、更新された教師コーパスに基づいて、ニューラルネットワークモデル２の学習を行う。本実施形態では、第１ニューラルネットワーク２１及び第２ニューラルネットワーク２２は、同時に学習される。すなわち、解説すべき箇所の検出及び文脈ベクトルＶ１のマッピングからなるマルチタスク学習を行う。これに限定されないが、本実施形態では、第１ニューラルネットワーク２１の学習時の損失関数は、交差エントロピー損失関数であり、第２ニューラルネットワーク２２の損失関数は、二乗誤差関数である。また、これに限定されないが、本実施形態では、第２ニューラルネットワーク２２の学習は、第１ニューラルネットワーク２１で解説すべき箇所が検出された場合のみ行う。また、これに限定されないが、本実施形態では、ニューラルネットワークモデル２全体の損失関数は、（１−β）ｌs＋βｌmである。ｌs、ｌm、βは、それぞれ、系列ラベリングの損失関数、マッピングの損失関数、両者のバランスを調整するハイパパラメタである。以上により、学習処理が終了する。
【００４９】
＜２．第２実施形態＞
次に、第２実施形態に係る学習支援装置１０１について説明する。図６は、学習支援装置１０１の機能ブロック図であり、図７は、第２実施形態に係る添削処理で使用されるニューラルネットワークモデル１０２の構成を示す図である。第２実施形態と第１実施形態との主たる相違点は、第２実施形態では、対象文Ｌ１に付与される解説文Ｌ２が、予め用意された解説文Ｌ２の中から選択されるのではなく、自動生成される点である。そのため、第２実施形態に係る学習支援装置１０１では、解説文データベース４が省略される。また、第２実施形態に係るニューラルネットワークモデル１０２では、解説文データベース４を作成するための第３ニューラルネットワーク２３も、マッピングのための第２ニューラルネットワーク２２も省略される。そして、これらに代えて、第２実施形態に係るニューラルネットワークモデル１０２は、第１実施形態と同様の第１ニューラルネットワーク２１に加え、第２ニューラルネットワーク２４を含む。以下、第１実施形態との相違点を中心に、第２実施形態について説明する。第１及び第２実施形態で共通する要素には、同じ参照符号を付して説明を省略する。
【００５０】
これに限定されないが、第２ニューラルネットワーク２４は、再帰型ニューラルネットワーク（ＲＮＮ）であり、例えば、ＬＳＴＭ(Long short-term memory)やＧＲＵ（Gated Recurrent Unit）等とすることができる。本実施形態の第２ニューラルネットワーク２４は、ＬＳＴＭベースの言語モデル(Long short-term memory language model；ＬＳＴＭＬＭ)である。また、ＬＳＴＭを多層に重ねてもよい（Stacked LSTM）。
【００５１】
図７に示すように、第２ニューラルネットワーク２４には、第１ニューラルネットワーク２１から出力される文脈ベクトルＶ１が入力される。なお、第２ニューラルネットワーク２４は、図８に示すように、第１ニューラルネットワーク２１から出力される文脈ベクトルＶ１が各ノードに入力されるように構成してもよい。また、表現力を高めるために第１ニューラルネットワーク２１に注意機構を導入し、注意機構の出力を文脈ベクトルＶ１と合わせて第２ニューラルネットワーク２４に入力してもよい。第２ニューラルネットワーク２４は、文脈ベクトルＶ１が入力されたときに、これに付与されるべき解説文Ｌ２が生成されるように訓練される。なお、第２ニューラルネットワーク２４には、文脈ベクトルＶ１だけでなく、第１ニューラルネットワーク２１において当該文脈ベクトルＶ１が出力された位置（解説すべき箇所）を示す情報が入力されてもよい。
【００５２】
本実施形態では、第２ニューラルネットワーク２４の出力層の各ノードからは、解説文Ｌ２を構成するトークンが順次出力される。ただし、出力層のノードから、解説文Ｌ２を構成する文字が１文字ずつ出力されるようにしてもよい。なお、トークンは、第２ニューラルネットワーク２４内では分散表現に変換されて処理される。第２ニューラルネットワーク２４の学習も、第１実施形態と同様の教師トークンに基づいて行うことができる。ただし、解説文ベクトルＶ２の情報は、不要である。
【００５３】
図９は、第２実施形態に係る添削処理の流れを示すフローチャートである。同図に示すとおり、第２実施形態では、第１実施形態のステップＳ５及びＳ６の代わりに、ステップＳ１１が挿入される。ステップＳ１１も、ステップＳ３で検出された各解説すべき箇所、言い換えると、ステップＳ３で抽出された各文脈ベクトルＶ１に対し実行される。すなわち、ステップＳ１１の前に、ステップＳ３で導出された解説すべき箇所及び文脈ベクトルＶ１のセットが１つずつ選択され、現在選択されているセットに対し、ステップＳ１１が実行される。
【００５４】
ステップＳ１１では、解説文生成部１４ｂが、現在選択されている文脈ベクトルＶ１を第２ニューラルネットワーク２４に入力する。これにより、第２ニューラルネットワーク２４の出力として、現在選択されている解説すべき箇所に付与されるべき解説文Ｌ２が生成される。その余の処理は、第１実施形態と同様である。
【００５５】
＜３．変形例＞
以上、本発明の幾つかの実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて、種々の変更が可能である。例えば、以下の変更が可能である。また、以下の変形例の要旨は、適宜組み合わせることができる。
【００５６】
＜３−１＞
第１ニューラルネットワーク２１により作成されるデータ列Ｌ３を、０か１かの２値のラベルのデータ列ではなく、３つ以上の値をとり得るラベルのデータ列としてもよい。例えば、正解を表す０、誤り（その単語を削除）を表す１、誤り（その単語を別の単語に置換）を表す２、又は誤り（単語の抜け）を表す３の４つの値をとり得るラベルのデータ列としてもよい。この場合、単なる正誤ではなく、誤りの種類も判別可能になる。あるいは、第１ニューラルネットワーク２１を、対象文Ｌ１に含まれる誤りを訂正する正解を出力するように構成してもよい。また、第２ニューラルネットワーク２２及び２４に、文脈ベクトルＶ１だけでなく、第１ニューラルネットワーク２１から得られるその他の様々な値（例えば、データ列Ｌ３に含まれる対応箇所のラベルの値や、誤りを訂正する正解等）も入力するようにしてもよい。
【００５７】
＜３−２＞
第１ニューラルネットワーク２１、第３ニューラルネットワーク２３及び第２ニューラルネットワーク２４内で処理される分散表現は、これらのニューラルネットワークの学習の前に、事前訓練してもよい。
【００５８】
＜３−３＞
学習の対象となる言語は、任意に選択され得る。英語であってもよいし、日本語であってもよいし、その他の言語であってもよい。また、解説文Ｌ２は、対象文Ｌ１と異なる言語であってもよいし、同じ言語であってもよい。
【００５９】
＜３−４＞
第１ニューラルネットワーク２１に入力される対象文Ｌ１は、１文でなく、複数の文からなる文章であってもよい。
【００６０】
＜３−５＞
上記実施形態に係る解説文Ｌ２の付与のアルゴリズムは、前置詞誤りや文法誤り等の上述した例だけでなく、語彙選択、綴りの誤り、メカニクス（句読点の用法等）、文章構成等の様々な項目に対し解説文Ｌ２を付与することに適用することができる。
【００６１】
＜３−６＞
第１ニューラルネットワーク２１の他、第２ニューラルネットワーク２２、第３ニューラルネットワーク２３及び第２ニューラルネットワーク２４にも、注意機構（attention mechanism）を適用してもよい。
【００６２】
＜３−７＞
図５等にも示されているが、解説文Ｌ２に、＜＞やこれの二重括弧のような特殊記号を用いてもよい。この場合、このような特殊記号に基づいて、便利な機能を付与することができる。例えば、動詞、名詞、前置詞、完了形等の文法用語を＜＞で挟むようにする。そして、表示画面Ｗ１上においてこのような文法用語が表示されている部分をクリックすると、当該文法用語の意味を説明する情報にアクセスできるようにしてもよい。別の例では、対象文Ｌ１中に含まれることが想定されている用語については、＜＞の二重括弧で挟むようにする。そして、解説文Ｌ２中のそのような用語については、類似度の互い別の用語に置換することを許容する。これにより、解説文データベース４内に付与すべき解説文Ｌ２が存在しないトークンに対しても、解説文Ｌ２を付与することが可能になる。例えば、英単語のagreeは英単語のdisagreeと類似の解説文Ｌ２を付与し得る。このような場合に、解説文Ｌ２中の＜＞の二重括弧で挟まれているagreeをdisagreeに置換することで、予めagree用に用意されている解説文Ｌ２を、disagreeに付与することが可能になる。
【実施例】
【００６３】
以下、本発明の実施例について説明する。ただし、本発明は、以下の実施例に限定されない。
【００６４】
まず、評価実験のために上記実施形態で説明した教師コーパスと同様のコーパスを作成した。このとき、前置詞に関する解説文を人手で付与した（ウェイブサイトhttp://nlp.ii.konan-u.ac.jp/fc_corpus.html上で公開中）。また、ICNALE（Ishikawa, The ICNALE and Sophisticated Contrastive Interlanguage Analysis of Asian learners of English, pp.91-118, Kobe University, Kobe, 2013）のwritten essay を使用して、対象文を用意した。ICNALEでは、ライティングのトピックが「大学生のアルバイト」及び「レストランでの喫煙」の２種類に統制されている（以後、それぞれ、「アルバイト」「喫煙」と呼ぶ）。ICNALEから１０４０個の文章をサンプリングし、２名のプロのアノテータにより、日本語で解説文を付与した。いずれか１名のアノテータが１つの文章を担当した。解説の対象は、全ての前置詞誤りと、解説を加えたい箇所（例えば、より良くするための助言や意欲を向上させる励まし等）とした。前処理として、Stanford Statistical Natural Language Parser (ver.2.0.3)を使用して、文分割とトークン分割を行った。このデータの統計量を表１に示す。
【表１】
2020140183.tif 000003
【００６５】
以上のとおり構築したコーパスを使用して、第１実施形態と同じ添削処理を実装した（実施例）。英単語の分散表現は、事前訓練により、以下の１）〜５）の学習者コーパスと６）の母語話者コーパスから取得した。
１）CEEJUS［http://language.sakura.ne.jp/icnale/modules.html］
２）ETS [Blanchardら, "ETS corpus of non-native written English, LDC2014T06. web download", 2014]
３）ICLE [Granger, "The international corpus of learner English" in English language corpora: Design, analysis and exploitation, pp.57-69, Rodopi, 1993]
４）CLC FCE [Yannakoudakisら, "A new dataset and method for automatically grading ESOL texts", Proc. of 49th ACL, pp.180-189, 2011] 
５）NICE［Sugiuraら, "A discriminant analysis of non-native speakers and native speakers of English", Proc. of CL2007, pp.84-89, 2007］
６）EWT [Biesら, "English Web Treebank LDC2012T13. Web Download", 2012]
【００６６】
また、この分散表現を、解説文中に出現する英単語の分散表現としても使用した。その他の日本語単語については、ランダムな値で初期化した。日本語の形態素解析器として、MeCab（http://taku910.github.io/mecab/）を使用した。評価実験用に、以上のとおり構築したデータを、８：１：１の比率で訓練、開発、評価データに文章単位で割り当てた。訓練は、「アルバイト」と「喫煙」とで別々に行い、二種類の訓練結果を得た。ハイパパラメタは、開発データに基づいて決定した。具体的には、第３ニューラルネットワークのＬＳＴＭＬＭｓは、ＬＳＴＭの層数を２とし、隠れ状態の次元を６００とした。第１ニューラルネットワークのＢｉＬＳＴＭは、ＬＳＴＭの層数を１とし、隠れ状態の次元を１２００とした。第２ニューラルネットワークのＦＦＮＮは、層数を１とし、次元を１２００とした。共通ハイパパラメタは、未知語（<unk>）の頻度閾値を、英単語で５未満とし、日本語単語で２未満とした。バッチサイズは64とし、early stoppingは、エポック数を２００とし、patience１０とした。ドロップアウトレートは０．５とし、最適化アルゴリズムを、Adam（step size: ０．０１、first/second moment: ０．９／０．９９９）とした。余弦類似度の閾値を０．９７１（アルバイト）と０．９７６（喫煙）とした。損失関数の重みβ=０.９とした。
【００６７】
以上の結果を対応する評価データで評価した。訓練を５回行い，各生成結果の和集合を最終的な生成結果とした（同じ個所に複数の解説文が生成された場合、余弦類似度が最も高いものを選択した）。
【００６８】
比較例は，格フレームに基づいた手法(Nagataら, "Correcting preposition errors in learner English using error case frames and feedback messages", Proc. of 52nd ACL, pp.754-764, 2014)とした。
【００６９】
訓練データとして、次の１）及び２）の母語話者コーパスと、構築した訓練データと開発データ（学習者コーパス）を使用した。なお、この手法は開発データを必要としないため，開発データも訓練データとして使用した。
１）BNC [Burnard, Users Reference Guide for the British National Corpus. version 1.0, Oxford University Computing Services, Oxford, 1995]
２）EDR コーパス[Japan electronic dictionary research institute Ltd, "EDR electronic dictionary specifcations guide", 1993]
【００７０】
解説文の付与に携わった一人が、生成結果を主観評価した。各生成結果を、適切、部分的に適切、不適切の３種類に分類した。部分的に適切とは、生成結果の一部を修正することで適切な解説となる場合を指す。評価尺度として、recall(再現率)、precision（適合率）、Ｆ値を使用した。「適切」のみを正しい生成とみなした厳密評価と「部分的に適切」も正しい生成とみなした緩和評価の２種類を用いた。このときの評価結果を、表２に示す。表２中、括弧内が緩和評価を示す。
【表２】
2020140183.tif 000004
【００７１】
表２からは、実施例に係る手法は、比較例に係る手法の性能を大きく改善していることが分かる。比較例に係る手法は、そのrecallは非常に低い。また、実施例に係る手法は，同程度のprecisionを達成しつつ、recallを２〜５倍も改善している。この結果は、解説対象の英文と解説文とをベクトルとして抽象的に表現し、検索問題として解説文の生成を解く実施例に係る手法の有効性を示している。
【００７２】
次に、実施例に係る手法で、どのような問題が解けるのか（すなわち，どのような誤りに対して解説文が生成できるのか）を考察した。実施例に係る手法の生成結果を人手で分析したところ、典型的な誤りに対して適切な解説文が生成できることを確認した。具体的には、トピックに典型的な解説（図５のレストランの"smoke"）やエッセイライティングに典型的な解説（図５のアルバイトの"agree"）等である。なお、図５に示す「アルバイト」「レストラン」の結果は、全て本実施例に係る手法で実際に抽出した結果である。これらの典型的な誤りに対し、人手で作成した規則で対応しようとすると、英語の専門家と言語処理の専門家が必要となる。このとき、英語の専門家は、各トピックにおいて典型的な誤りとは何かを考慮しながら、誤り検出と解説文生成の基盤となる規則を考えなければならない。その後、言語処理の専門家が、その規則を計算機で扱える形で実装しなければならない。一方、実施例に係る手法では、何が典型的かということを特に意識する必要はなく、英語の専門家は、与えられたデータに解説文を付与するだけでよく、より効率的かつ効果的である。
【００７３】
更に、典型的な誤りではあるが、従来、対処が困難であった言語現象に対しても解説文が生成できることを確認した。具体例として、図５のレストランの"include"を挙げることができる。この誤り対して適切な解説文を生成するためには、"smoke"と"include"が、それぞれ動詞と前置詞として使用されていることを認識しなければならない。通常、単語の関係の認識には構文解析が用いられるが、見た目上、両単語とも動詞の形をしているため、解析に失敗する可能性が高く、解説文の生成に失敗し易い。構文解析に成功するためには、"include"が前置詞誤りであることを認識しなければならない。このように、構文解析が先か誤りの認識が先かというジレンマに陥る。実際、比較例に係る手法では、この例に対して解説文を生成できなかった。一方、本実施形態に係る手法では、類似した誤りから適切な解説文を選択していた。同様に、構文解析のミスを引き起こしそうな誤りに対して適切な解説文を生成できた例は、少なくとも５例あることを分析により確認した。以上の分析により、実施例に係る手法は、比較例に係る手法より柔軟かつ幅広い解説文の生成が可能であることが分かった。特に、典型的な誤りに対して適切な解説文を生成できることは学習支援としては有益である。学習支援の場面では、学習者が頻繁に間違える典型例から、まず解説すべきだからである。
【符号の説明】
【００７４】
１、１０１  学習支援装置
１４ａ  文脈ベクトル生成部
１４ｂ  解説文生成部
３  学習支援プログラム
４  解説文データベース
２１  第１ニューラルネットワーク
２２  第２ニューラルネットワーク
２３  第３ニューラルネットワーク
２４  第２ニューラルネットワーク
Ｌ１  対象文
Ｌ２  解説文
Ｖ１  文脈ベクトル
Ｖ２  解説文ベクトル
Ｖ３  変換文脈ベクトル
【図１】
2020140183.tif 000005
【図２】
2020140183.tif 000006
【図３】
2020140183.tif 000007
【図４】
2020140183.tif 000008
【図５】
2020140183.tif 000009
【図６】
2020140183.tif 000010
【図７】
2020140183.tif 000011
【図８】
2020140183.tif 000012
【図９】
2020140183.tif 000013