(57)【特許請求の範囲】
【請求項１】
助詞の誤りを含む形態素解析済みの日本語助詞誤り作文と、前記日本語助詞誤り作文の前記助詞の誤りを修正した形態素解析済みの日本語修正文とのペアを複数記憶した助詞誤りコーパス記憶手段と、
誤った助詞のフレーズと、前記フレーズの助詞の誤りの修正結果との組からなる誤りパターンを格納したフレーズテーブルを記憶するフレーズテーブル記憶手段と、
前記フレーズテーブルに格納した前記誤りパターンに基づいて、形態素解析済みの複数の日本語文の各々に対して、予め設定した確率で、助詞の置換、助詞の挿入、及び助詞の削除を行って、助詞の誤りを発生させた疑似誤り文を各々生成する疑似誤り文生成手段と、
前記形態素解析済みの前記日本語文と、前記日本語文について生成された前記疑似誤り文とのペアを複数記憶した疑似誤りコーパス記憶手段と、
前記助詞誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの日本語助詞誤り作文のフレーズ列に対して、前記フレーズテーブルから得られる前記助詞の誤りの修正結果を示すフレーズを追加したフレーズ列を作成し、前記日本語助詞誤り作文のフレーズ列に前記修正結果を示すフレーズを追加したフレーズ列の順序に従って隣接するフレーズ間を結んだリンクからなる第１ラティス構造を各々構築すると共に、前記疑似誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの疑似誤り文のフレーズ列に対して、前記フレーズテーブルから得られる前記助詞の誤りの修正結果を示すフレーズを追加したフレーズ列を作成し、前記疑似誤り文のフレーズ列に前記修正結果を示すフレーズを追加したフレーズ列の順序に従って隣接するフレーズ間を結んだリンクからなる第２ラティス構造を各々構築するラティス構造構築手段と、
前記ラティス構造構築手段によって構築された前記第１ラティス構造の各々について、フレーズの助詞に関する素性を表わす素性関数を含む予め定められた複数の素性関数からなる第１素性関数群、及び前記第１素性関数群の前記複数の素性関数をコピーした複数の素性関数からなる第２素性関数群に含まれる各素性関数を、前記第１ラティス構造の各フレーズに対して計算し、
前記ラティス構造構築手段によって構築された前記第２ラティス構造の各々について、前記第１素性関数群、及び前記第１素性関数群の前記複数の素性関数をコピーした複数の素性関数からなる第３素性関数群に含まれる各素性関数を、前記第２ラティス構造の各フレーズに対して計算する素性計算手段と、
前記助詞誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの前記第１ラティス構造において前記ペアの日本語修正文と一致するフレーズ列の各フレーズについて計算された前記第１素性関数群及び前記第２素性関数群の前記素性関数の各々の値と、前記素性関数の各々の重みとに基づいて算出される尤度、前記疑似誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの前記第２ラティス構造において前記ペアの日本語文と一致するフレーズ列の各フレーズについて計算された前記第１素性関数群及び前記第３素性関数群の前記素性関数の各々の値と、前記素性関数の重みとに基づいて算出される尤度、並びに前記第１素性関数群、前記第２素性関数群、及び第３素性関数群の前記素性関数の各々の重みを用いて表される目的関数を最大化するように、前記第１素性関数群、前記第２素性関数群、及び第３素性関数群の前記素性関数の各々の重みを最適化する素性重み最適化手段と、
前記第１素性関数群及び前記第２素性関数群の前記素性関数の各々と、前記素性重み最適化手段によって最適化された前記第１素性関数群及び前記第２素性関数群の前記素性関数の各々の重みとに基づいて、入力された形態素解析済みの訂正対象の日本語作文の助詞の誤りを訂正する誤り訂正手段と、
を含む助詞誤り訂正装置。
【請求項２】
助詞誤りコーパス記憶手段と、フレーズテーブル記憶手段と、疑似誤り文生成手段と、疑似誤りコーパス記憶手段と、ラティス構造構築手段と、素性関数計算手段と、素性重み最適化手段と、誤り訂正手段とを含む助詞誤り訂正装置における助詞誤り訂正方法であって、
前記助詞誤りコーパス記憶手段に、助詞の誤りを含む形態素解析済みの日本語助詞誤り作文と、前記日本語助詞誤り作文の前記助詞の誤りを修正した形態素解析済みの日本語修正文とのペアを複数記憶し、
前記フレーズテーブル記憶手段に、誤った助詞のフレーズと、前記フレーズの助詞の誤りの修正結果との組からなる誤りパターンを格納したフレーズテーブルを記憶し、
前記疑似誤り文生成手段によって、前記フレーズテーブルに格納した前記誤りパターンに基づいて、形態素解析済みの複数の日本語文の各々に対して、予め設定した確率で、助詞の置換、助詞の挿入、及び助詞の削除を行って、助詞の誤りを発生させた疑似誤り文を各々生成し、
前記疑似誤りコーパス記憶手段に、前記形態素解析済みの前記日本語文と、前記日本語文について生成された前記疑似誤り文とのペアを複数記憶し、
前記ラティス構造構築手段によって、前記助詞誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの日本語助詞誤り作文のフレーズ列に対して、前記フレーズテーブルから得られる前記助詞の誤りの修正結果を示すフレーズを追加したフレーズ列を作成し、前記日本語助詞誤り作文のフレーズ列に前記修正結果を示すフレーズを追加したフレーズ列の順序に従って隣接するフレーズ間を結んだリンクからなる第１ラティス構造を各々構築すると共に、前記疑似誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの疑似誤り文のフレーズ列に対して、前記フレーズテーブルから得られる前記助詞の誤りの修正結果を示すフレーズを追加したフレーズ列を作成し、前記疑似誤り文のフレーズ列に前記修正結果を示すフレーズを追加したフレーズ列の順序に従って隣接するフレーズ間を結んだリンクからなる第２ラティス構造を各々構築し、
前記ラティス構造構築手段によって構築された前記第１ラティス構造の各々について、フレーズの助詞に関する素性を表わす素性関数を含む予め定められた複数の素性関数からなる第１素性関数群、及び前記第１素性関数群の前記複数の素性関数をコピーした前記複数の素性関数からなる第２素性関数群に含まれる各素性関数を、前記第１ラティス構造の各フレーズに対して計算し、
前記素性計算手段によって、前記ラティス構造構築手段によって構築された前記第２ラティス構造の各々について、前記第１素性関数群、及び前記第１素性関数群の前記複数の素性関数をコピーした前記複数の素性関数からなる第３素性関数群に含まれる各素性関数を、前記第２ラティス構造の各フレーズに対して計算し、
前記素性重み最適化手段によって、前記助詞誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの前記第１ラティス構造において前記ペアの日本語修正文と一致するフレーズ列の各フレーズについて計算された前記第１素性関数群及び前記第２素性関数群の前記素性関数の各々の値と、前記素性関数の各々の重みとに基づいて算出される尤度、前記疑似誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの前記第２ラティス構造において前記ペアの日本語文と一致するフレーズ列の各フレーズについて計算された前記第１素性関数群及び前記第３素性関数群の前記素性関数の各々の値と、前記素性関数の重みとに基づいて算出される尤度、並びに前記第１素性関数群、前記第２素性関数群、及び第３素性関数群の前記素性関数の各々の重みを用いて表される目的関数を最大化するように、前記第１素性関数群、前記第２素性関数群、及び第３素性関数群の前記素性関数の各々の重みを最適化し、
前記誤り訂正手段によって、前記第１素性関数群及び前記第２素性関数群の前記素性関数の各々と、前記素性重み最適化手段によって最適化された前記第１素性関数群及び前記第２素性関数群の前記素性関数の各々の重みとに基づいて、入力された形態素解析済みの訂正対象の日本語作文の助詞の誤りを訂正する
助詞誤り訂正方法。
【請求項３】
コンピュータを、
助詞の誤りを含む形態素解析済みの日本語助詞誤り作文と、前記日本語助詞誤り作文の前記助詞の誤りを修正した形態素解析済みの日本語修正文とのペアを複数記憶した助詞誤りコーパス記憶手段、
誤った助詞のフレーズと、前記フレーズの助詞の誤りの修正結果との組からなる誤りパターンを格納したフレーズテーブルを記憶するフレーズテーブル記憶手段、
前記フレーズテーブルに格納した前記誤りパターンに基づいて、形態素解析済みの複数の日本語文の各々に対して、予め設定した確率で、助詞の置換、助詞の挿入、及び助詞の削除を行って、助詞の誤りを発生させた疑似誤り文を各々生成する疑似誤り文生成手段、
前記形態素解析済みの前記日本語文と、前記日本語文について生成された前記疑似誤り文とのペアを複数記憶した疑似誤りコーパス記憶手段、
前記助詞誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの日本語助詞誤り作文のフレーズ列に対して、前記フレーズテーブルから得られる前記助詞の誤りの修正結果を示すフレーズを追加したフレーズ列を作成し、前記日本語助詞誤り作文のフレーズ列に前記修正結果を示すフレーズを追加したフレーズ列の順序に従って隣接するフレーズ間を結んだリンクからなる第１ラティス構造を各々構築すると共に、前記疑似誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの疑似誤り文のフレーズ列に対して、前記フレーズテーブルから得られる前記助詞の誤りの修正結果を示すフレーズを追加したフレーズ列を作成し、前記疑似誤り文のフレーズ列に前記修正結果を示すフレーズを追加したフレーズ列の順序に従って隣接するフレーズ間を結んだリンクからなる第２ラティス構造を各々構築するラティス構造構築手段、
前記ラティス構造構築手段によって構築された前記第１ラティス構造の各々について、フレーズの助詞に関する素性を表わす素性関数を含む予め定められた複数の素性関数からなる第１素性関数群、及び前記第１素性関数群の前記複数の素性関数をコピーした複数の素性関数からなる第２素性関数群に含まれる各素性関数を、前記第１ラティス構造の各フレーズに対して計算し、
前記ラティス構造構築手段によって構築された前記第２ラティス構造の各々について、前記第１素性関数群、及び前記第１素性関数群の前記複数の素性関数をコピーした複数の素性関数からなる第３素性関数群に含まれる各素性関数を、前記第２ラティス構造の各フレーズに対して計算する素性計算手段、
前記助詞誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの前記第１ラティス構造において前記ペアの日本語修正文と一致するフレーズ列の各フレーズについて計算された前記第１素性関数群及び前記第２素性関数群の前記素性関数の各々の値と、前記素性関数の各々の重みとに基づいて算出される尤度、前記疑似誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの前記第２ラティス構造において前記ペアの日本語文と一致するフレーズ列の各フレーズについて計算された前記第１素性関数群及び前記第３素性関数群の前記素性関数の各々の値と、前記素性関数の重みとに基づいて算出される尤度、並びに前記第１素性関数群、前記第２素性関数群、及び第３素性関数群の前記素性関数の各々の重みを用いて表される目的関数を最大化するように、前記第１素性関数群、前記第２素性関数群、及び第３素性関数群の前記素性関数の各々の重みを最適化する素性重み最適化手段、及び
前記第１素性関数群及び前記第２素性関数群の前記素性関数の各々と、前記素性重み最適化手段によって最適化された前記第１素性関数群及び前記第２素性関数群の前記素性関数の各々の重みとに基づいて、入力された形態素解析済みの訂正対象の日本語作文の助詞の誤りを訂正する誤り訂正手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、助詞誤り訂正装置、方法、及びプログラムに係り、特に、日本語作文の助詞誤りを、正しい日本語作文に修正する助詞誤り訂正装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
外国人日本語学習者は、誤りを含む日本語文を記述することがある。この誤りは、読みにくいだけでなく、意思疎通に重大な問題を引き起こす。たとえば、日本語では格助詞によって主語や目的語、時間などを表現するが、中国語には格助詞がないため、中国語を母語とする人が日本語を記述すると、しばしば誤った助詞を使用してしまう。以下はその一例である。
【０００３】
［例文1］
助詞が誤った日本語(学習者作文):  メールを届いたら削除おねがいします
正しい日本語(日本語修正文):   メールが届いたら削除をおねがいします
【０００４】
上記例では、格助詞「が」の代わりに、誤って格助詞「を」を使用していたり、格助詞「を」が欠落した誤りを起こしている。この中には許容可能な誤りもあるが、読み手が主語と目的語を混同するなど、意味が通じないものとなる場合も多い。
【０００５】
誤った日本語の訂正の一つとして、文字認識装置(OCR)の認識誤り訂正がある。これは、OCRが出力した文字単位の誤りを、正しい日本語に修正するものである。例えば、非特許文献１に記載の方法は、どの文字がどの文字に誤りやすいかを表す文字混同行列と、単語列が日本語としてどの程度自然かを表す言語モデルを利用し、以下の（１）式を満たす最も自然な日本語単語列＾eを探索することで、誤った日本語を修正する。これは、一般的には生成モデルと呼ばれる。
【０００６】
【数１】
0005635025.tif 000002
【０００７】
ここで、fは、誤りを含む文字列、eは、正しい日本語の単語列である。P(f|e)は、文字混同行列から算出される単語の誤り確率、P(e)は、言語モデルから算出される言語モデル確率である。文字混同行列は、訂正対象となるOCRの誤り傾向から、あらかじめ計算しておく。また、言語モデルには、一般的には大量の日本語テキストデータから構築したn-gramモデルが用いられる。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】永田昌明、「文字類似度と統計的言語モデルを用いた日本語文字認識誤り訂正法」、電子情報通信学会論文誌、J81-D-II(11):2624−2634、1998年11月
【発明の概要】
【発明が解決しようとする課題】
【０００９】
日本語の助詞誤りを訂正する方法として、誤りを含む実際の日本語学習者の作文と、それを正しく修正した日本語修正文を訓練データとして集めて学習を行うことにより、日本語の助詞誤りを訂正する方法が考えられる。しかし、この方法を用いる場合には、学習者が日本語に慣れているなどの理由で、誤りを含む日本語作文の量が少ない場合、大量の訓練データの収集が困難である、という問題がある。
【００１０】
本発明は、上記の事情に鑑みて成されたものであり、日本語助詞誤り作文が少量の場合であっても、日本語作文の助詞の誤りを精度良く訂正することができる助詞誤り訂正装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明の助詞誤り訂正装置は、助詞の誤りを含む形態素解析済みの日本語助詞誤り作文と、前記日本語助詞誤り作文の前記助詞の誤りを修正した形態素解析済みの日本語修正文とのペアを複数記憶した助詞誤りコーパス記憶手段と、誤った助詞のフレーズと、前記フレーズの助詞の誤りの修正結果との組からなる誤りパターンを格納したフレーズテーブルを記憶するフレーズテーブル記憶手段と、前記フレーズテーブルに格納した前記誤りパターンに基づいて、形態素解析済みの複数の日本語文の各々に対して、予め設定した確率で、助詞の置換、助詞の挿入、及び助詞の削除を行って、助詞の誤りを発生させた疑似誤り文を各々生成する疑似誤り文生成手段と、前記形態素解析済みの前記日本語文と、前記日本語文について生成された前記疑似誤り文とのペアを複数記憶した疑似誤りコーパス記憶手段と、前記助詞誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの日本語助詞誤り作文のフレーズ列に対して、前記フレーズテーブルから得られる前記助詞の誤りの修正結果を示すフレーズを追加したフレーズ列を作成し、前記日本語助詞誤り作文のフレーズ列に前記修正結果を示すフレーズを追加したフレーズ列の順序に従って隣接するフレーズ間を結んだリンクからなる第１ラティス構造を各々構築すると共に、前記疑似誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの疑似誤り文のフレーズ列に対して、前記フレーズテーブルから得られる前記助詞の誤りの修正結果を示すフレーズを追加したフレーズ列を作成し、前記疑似誤り文のフレーズ列に前記修正結果を示すフレーズを追加したフレーズ列の順序に従って隣接するフレーズ間を結んだリンクからなる第２ラティス構造を各々構築するラティス構造構築手段と、前記ラティス構造構築手段によって構築された前記第１ラティス構造の各々について、フレーズの助詞に関する素性を表わす素性関数を含む予め定められた複数の素性関数からなる第１素性関数群、及び前記第１素性関数群の前記複数の素性関数をコピーした複数の素性関数からなる第２素性関数群に含まれる各素性関数を、前記第１ラティス構造の各フレーズに対して計算し、前記ラティス構造構築手段によって構築された前記第２ラティス構造の各々について、前記第１素性関数群、及び前記第１素性関数群の前記複数の素性関数をコピーした複数の素性関数からなる第３素性関数群に含まれる各素性関数を、前記第２ラティス構造の各フレーズに対して計算する素性計算手段と、前記助詞誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの前記第１ラティス構造において前記ペアの日本語修正文と一致するフレーズ列の各フレーズについて計算された前記第１素性関数群及び前記第２素性関数群の前記素性関数の各々の値と、前記素性関数の各々の重みとに基づいて算出される尤度、前記疑似誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの前記第２ラティス構造において前記ペアの日本語文と一致するフレーズ列の各フレーズについて計算された前記第１素性関数群及び前記第３素性関数群の前記素性関数の各々の値と、前記素性関数の重みとに基づいて算出される尤度、並びに前記第１素性関数群、前記第２素性関数群、及び第３素性関数群の前記素性関数の各々の重みを用いて表される目的関数を最大化するように、前記第１素性関数群、前記第２素性関数群、及び第３素性関数群の前記素性関数の各々の重みを最適化する素性重み最適化手段と、前記第１素性関数群及び前記第２素性関数群の前記素性関数の各々と、前記素性重み最適化手段によって最適化された前記第１素性関数群及び前記第２素性関数群の前記素性関数の各々の重みとに基づいて、入力された形態素解析済みの訂正対象の日本語作文の助詞の誤りを訂正する誤り訂正手段と、を含んで構成されている。
【００１２】
本発明に係る助詞誤り訂正方法は、助詞誤りコーパス記憶手段と、フレーズテーブル記憶手段と、疑似誤り文生成手段と、疑似誤りコーパス記憶手段と、ラティス構造構築手段と、素性関数計算手段と、素性重み最適化手段と、誤り訂正手段とを含む助詞誤り訂正装置における助詞誤り訂正方法であって、前記助詞誤りコーパス記憶手段に、助詞の誤りを含む形態素解析済みの日本語助詞誤り作文と、前記日本語助詞誤り作文の前記助詞の誤りを修正した形態素解析済みの日本語修正文とのペアを複数記憶し、前記フレーズテーブル記憶手段に、誤った助詞のフレーズと、前記フレーズの助詞の誤りの修正結果との組からなる誤りパターンを格納したフレーズテーブルを記憶し、前記疑似誤り文生成手段によって、前記フレーズテーブルに格納した前記誤りパターンに基づいて、形態素解析済みの複数の日本語文の各々に対して、予め設定した確率で、助詞の置換、助詞の挿入、及び助詞の削除を行って、助詞の誤りを発生させた疑似誤り文を各々生成し、前記疑似誤りコーパス記憶手段に、前記形態素解析済みの前記日本語文と、前記日本語文について生成された前記疑似誤り文とのペアを複数記憶し、前記ラティス構造構築手段によって、前記助詞誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの日本語助詞誤り作文のフレーズ列に対して、前記フレーズテーブルから得られる前記助詞の誤りの修正結果を示すフレーズを追加したフレーズ列を作成し、前記日本語助詞誤り作文のフレーズ列に前記修正結果を示すフレーズを追加したフレーズ列の順序に従って隣接するフレーズ間を結んだリンクからなる第１ラティス構造を各々構築すると共に、前記疑似誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの疑似誤り文のフレーズ列に対して、前記フレーズテーブルから得られる前記助詞の誤りの修正結果を示すフレーズを追加したフレーズ列を作成し、前記疑似誤り文のフレーズ列に前記修正結果を示すフレーズを追加したフレーズ列の順序に従って隣接するフレーズ間を結んだリンクからなる第２ラティス構造を各々構築し、前記ラティス構造構築手段によって構築された前記第１ラティス構造の各々について、フレーズの助詞に関する素性を表わす素性関数を含む予め定められた複数の素性関数からなる第１素性関数群、及び前記第１素性関数群の前記複数の素性関数をコピーした前記複数の素性関数からなる第２素性関数群に含まれる各素性関数を、前記第１ラティス構造の各フレーズに対して計算し、前記素性計算手段によって、前記ラティス構造構築手段によって構築された前記第２ラティス構造の各々について、前記第１素性関数群、及び前記第１素性関数群の前記複数の素性関数をコピーした前記複数の素性関数からなる第３素性関数群に含まれる各素性関数を、前記第２ラティス構造の各フレーズに対して計算し、前記素性重み最適化手段によって、前記助詞誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの前記第１ラティス構造において前記ペアの日本語修正文と一致するフレーズ列の各フレーズについて計算された前記第１素性関数群及び前記第２素性関数群の前記素性関数の各々の値と、前記素性関数の各々の重みとに基づいて算出される尤度、前記疑似誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの前記第２ラティス構造において前記ペアの日本語文と一致するフレーズ列の各フレーズについて計算された前記第１素性関数群及び前記第３素性関数群の前記素性関数の各々の値と、前記素性関数の重みとに基づいて算出される尤度、並びに前記第１素性関数群、前記第２素性関数群、及び第３素性関数群の前記素性関数の各々の重みを用いて表される目的関数を最大化するように、前記第１素性関数群、前記第２素性関数群、及び第３素性関数群の前記素性関数の各々の重みを最適化し、前記誤り訂正手段によって、前記第１素性関数群及び前記第２素性関数群の前記素性関数の各々と、前記素性重み最適化手段によって最適化された前記第１素性関数群及び前記第２素性関数群の前記素性関数の各々の重みとに基づいて、入力された形態素解析済みの訂正対象の日本語作文の助詞の誤りを訂正する。
【００１３】
本発明に係るプログラムは、コンピュータを、助詞の誤りを含む形態素解析済みの日本語助詞誤り作文と、前記日本語助詞誤り作文の前記助詞の誤りを修正した形態素解析済みの日本語修正文とのペアを複数記憶した助詞誤りコーパス記憶手段、誤った助詞のフレーズと、前記フレーズの助詞の誤りの修正結果との組からなる誤りパターンを格納したフレーズテーブルを記憶するフレーズテーブル記憶手段、前記フレーズテーブルに格納した前記誤りパターンに基づいて、形態素解析済みの複数の日本語文の各々に対して、予め設定した確率で、助詞の置換、助詞の挿入、及び助詞の削除を行って、助詞の誤りを発生させた疑似誤り文を各々生成する疑似誤り文生成手段、前記形態素解析済みの前記日本語文と、前記日本語文について生成された前記疑似誤り文とのペアを複数記憶した疑似誤りコーパス記憶手段、前記助詞誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの日本語助詞誤り作文のフレーズ列に対して、前記フレーズテーブルから得られる前記助詞の誤りの修正結果を示すフレーズを追加したフレーズ列を作成し、前記日本語助詞誤り作文のフレーズ列に前記修正結果を示すフレーズを追加したフレーズ列の順序に従って隣接するフレーズ間を結んだリンクからなる第１ラティス構造を各々構築すると共に、前記疑似誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの疑似誤り文のフレーズ列に対して、前記フレーズテーブルから得られる前記助詞の誤りの修正結果を示すフレーズを追加したフレーズ列を作成し、前記疑似誤り文のフレーズ列に前記修正結果を示すフレーズを追加したフレーズ列の順序に従って隣接するフレーズ間を結んだリンクからなる第２ラティス構造を各々構築するラティス構造構築手段、前記ラティス構造構築手段によって構築された前記第１ラティス構造の各々について、フレーズの助詞に関する素性を表わす素性関数を含む予め定められた複数の素性関数からなる第１素性関数群、及び前記第１素性関数群の前記複数の素性関数をコピーした複数の素性関数からなる第２素性関数群に含まれる各素性関数を、前記第１ラティス構造の各フレーズに対して計算し、前記ラティス構造構築手段によって構築された前記第２ラティス構造の各々について、前記第１素性関数群、及び前記第１素性関数群の前記複数の素性関数をコピーした複数の素性関数からなる第３素性関数群に含まれる各素性関数を、前記第２ラティス構造の各フレーズに対して計算する素性計算手段、前記助詞誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの前記第１ラティス構造において前記ペアの日本語修正文と一致するフレーズ列の各フレーズについて計算された前記第１素性関数群及び前記第２素性関数群の前記素性関数の各々の値と、前記素性関数の各々の重みとに基づいて算出される尤度、前記疑似誤りコーパス記憶手段に記憶された前記ペアの各々について、前記ペアの前記第２ラティス構造において前記ペアの日本語文と一致するフレーズ列の各フレーズについて計算された前記第１素性関数群及び前記第３素性関数群の前記素性関数の各々の値と、前記素性関数の重みとに基づいて算出される尤度、並びに前記第１素性関数群、前記第２素性関数群、及び第３素性関数群の前記素性関数の各々の重みを用いて表される目的関数を最大化するように、前記第１素性関数群、前記第２素性関数群、及び第３素性関数群の前記素性関数の各々の重みを最適化する素性重み最適化手段、及び前記第１素性関数群及び前記第２素性関数群の前記素性関数の各々と、前記素性重み最適化手段によって最適化された前記第１素性関数群及び前記第２素性関数群の前記素性関数の各々の重みとに基づいて、入力された形態素解析済みの訂正対象の日本語作文の助詞の誤りを訂正する誤り訂正手段として機能させるためのプログラムである。
【発明の効果】
【００１４】
以上説明したように、本発明の助詞誤り訂正装置、方法、及びプログラムによれば、複数の日本語文の各々に対して、助詞の誤りを発生させた疑似誤り文を各々生成し、助詞誤りコーパスについて計算される複数の素性関数の値と、疑似誤りコーパスについて計算される複数の素性関数の値とを合わせて、素性関数の重みを最適化し、最適化された素性関数の重みと、素性関数の値とを用いて、日本語作文の助詞の誤りを訂正することにより、日本語助詞誤り作文が少量の場合であっても、日本語作文の助詞の誤りを精度良く訂正することができる、という効果が得られる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態の助詞誤り訂正装置の機能構成を示すブロック図である。
【図２】本発明の実施の形態の助詞誤り訂正装置のコーパス作成部の機能構成を示すブロック図である。
【図３】学習者作文及び日本語修正文の形態素解析結果の一例を示す図である。
【図４】学習者作文及び日本語修正文のフレーズの対応の一例を示す図である。
【図５】学習者作文及び日本語修正文のフレーズ列の対の一例を示す図である。
【図６】本発明の実施の形態の助詞誤り訂正装置の疑似誤りコーパス作成部の機能構成を示すブロック図である。
【図７】フレーズテーブルの一例を示す図である。
【図８】日本語文及び疑似誤り文のフレーズ列の対の一例を示す図である。
【図９】本発明の実施の形態の助詞誤り訂正装置の学習部の機能構成を示すブロック図である。
【図１０】ラティス構造の一例を示す図である。
【図１１】素性テンプレートの一例を示す図である。
【図１２】転移学習を説明するための図である。
【図１３】パラメータテーブルの一例を示す図である。
【図１４】本発明の実施の形態の助詞誤り訂正装置の訂正部の機能構成を示すブロック図である。
【図１５】誤り訂正対象の学習者作文の形態素解析結果の一例を示す図である。
【図１６】本発明の実施の形態の助詞誤り訂正装置におけるコーパス作成処理ルーチンの内容を示すフローチャートである。
【図１７】本発明の実施の形態の助詞誤り訂正装置におけるフレーズテーブル作成処理ルーチンの内容を示すフローチャートである。
【図１８】本発明の実施の形態の助詞誤り訂正装置における疑似コーパス作成処理ルーチンの内容を示すフローチャートである。
【図１９】本発明の実施の形態の助詞誤り訂正装置における学習処理ルーチンの内容を示すフローチャートである。
【図２０】本発明の実施の形態の助詞誤り訂正装置における誤り訂正処理ルーチンの内容を示すフローチャートである。
【図２１】トライグラム以上のn-gramを用いた場合におけるラティス構造の一例を示す図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００１７】
＜助詞誤り訂正装置の構成＞
次に、日本語学習者の学習者作文及び日本語修正文から作成される助詞誤りコーパスを訓練データとして、素性関数の重みを学習し、日本語作文の助詞の誤りを訂正する助詞誤り訂正装置に本発明を適用した場合を例にして、本実施の形態を説明する。
【００１８】
本実施の形態の助詞誤り訂正装置１００は、ＣＰＵと、ＲＡＭと、後述するコーパス作成処理ルーチン、フレーズテーブル作成処理ルーチン、疑似誤りコーパス作成処理ルーチン、学習処理ルーチン、誤り訂正処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することができる。このコンピュータは、機能的には、図１に示すように、入力部１０と、演算部２０と、出力部３０とを備えている。
【００１９】
入力部１０は、キーボードなどの入力装置から、日本語学習者の学習者作文と当該学習者作文を正しい日本語に修正した日本語修正文とのペアの集合を受け付ける。また、入力部１０は、助詞の誤りがない正しい日本語文の集合を受け付ける。また、入力部１０は、誤り訂正対象となる学習者作文を受け付ける。なお、入力部１０は、ネットワーク等を介して外部から入力されたものを受け付けるようにしてもよい。
【００２０】
演算部２０は、学習者作文データベース２１、コーパス作成部２２、助詞誤りコーパス記憶部２３、日本語文データベース２４、疑似誤りコーパス作成部２５、疑似誤りコーパス記憶部２６、学習部２７、フレーズテーブル記憶部２８、パラメータテーブル記憶部２９、言語モデル記憶部３１、及び訂正部３２を備えている。
【００２１】
学習者作文データベース２１には、入力部１０により受け付けた学習者作文と日本語修正文とのペアの集合を記憶している。
【００２２】
コーパス作成部２２は、図２に示すように、形態素解析部２２１、形態素解析部２２２、フレーズアライメント部２２３、及び助詞誤り抽出部２２４を備えている。
【００２３】
形態素解析部２２１は、学習者作文データベース２１から取得した学習者作文と日本語修正文とのペアのうちの学習者作文に対して形態素解析を行い、品詞情報つきの単語列を生成する。形態素解析部２２２は、学習者作文データベース２１から取得した学習者作文と日本語修正文とのペアのうちの日本語修正文に対して形態素解析を行い、品詞情報つきの単語列を生成する。形態素解析器には、公知のものを使用する。たとえば、上記の例文1を形態素解析すると、図３に示す単語列が得られる。
【００２４】
フレーズアライメント部２２３は、形態素解析部２２１により生成された学習者作文の単語列と、形態素解析部２２２により生成された日本語修正文の単語列の対応箇所を決定する。対応付け方法には、動的計画法によるDPマッチングを用いる。たとえば、置換(SUB)コスト、挿入(INS)コスト、削除(DEL)コストをそれぞれ1とし、単語が同一であるとき(EQ)のコストを0としてDPマッチングを行い、最もコストの低い対応列を取得する。上記の例文1の形態素解析結果に対してＤＰマッチングを行った場合には、図４に示す単語対応と編集操作が得られる。
【００２５】
また、フレーズアライメント部２２３は、EQ以外の編集操作が連続している部分（単語）をまとめて、1つのフレーズとする。編集操作EQが与えられた単語に関しては、そのまま1つのフレーズとする。なお、フレーズとは、学習者作文と日本語修正文のそれぞれにおいて連続した0個以上の単語列である。上記の例文1の場合、EQ以外の編集操作が連続している部分はないので、単語の対応関係がそのままフレーズの対応関係になり、図５に示すような一対のフレーズ列が得られる。もし挿入操作INSが2つ連続しているなどした場合は複数の単語がまとまって1つのフレーズとなる。
【００２６】
助詞誤り抽出部２２４は、フレーズアライメント部２２３によって得られた一対のフレーズ列から、助詞誤りのフレーズ（助詞のフレーズであって、編集操作SUB、INS、DELが与えられたフレーズ）のみを残し、それ以外の誤りを正しい日本語（日本語修正文）に修正する。助詞誤りか否かは、フレーズの学習者作文側、日本語修正文側の単語が異なり、それぞれ1単語で、かつどちらも助詞相当品詞であるかどうかで判断する。もし、助詞誤りではないと判断された場合、フレーズの日本語修正文側の単語列を学習者作文側にコピーすることにより、学習者作文の当該フレーズを修正する。これは、学習部２７でパラメータ推定を行う際、助詞以外の誤りによってパラメータがずれることを防止するために行う。
【００２７】
上記例文1の場合、格助詞、係助詞を助詞相当品詞とした場合、「を/格助詞」→「が/格助詞」のフレーズ、「」→「を/格助詞」のフレーズは、どちらも助詞誤りのフレーズと判断されるため、修正は行わない。もし、「メール/名詞」の学習者作文側の単語列（フレーズ）が「マイル/名詞」となっていたら、これは助詞誤りではない誤りであるため、学習者作文側の単語列を「メール/名詞」に修正する。
【００２８】
助詞誤り抽出部２２４は、助詞以外の誤りを修正した学習者作文及び日本語修正文のフレーズ列の対を、助詞誤りコーパス記憶部２３に格納する。
【００２９】
上述した形態素解析部２２１、２２２、フレーズアライメント部２２３、助詞誤り抽出部２２４の処理を、学習者作文データベース２１に記憶されたすべての学習者作文及び日本語修正文の対に対して施し、助詞以外の誤りを修正した学習者作文及び日本語修正文のフレーズ列の対の集合を、助詞誤りコーパス記憶部２３に格納する。
【００３０】
日本語文データベース２４には、入力部１０により受け付けた正しい日本語文の集合を記憶している。一般的に、日本語を母語とする人が記述した文であれば、助詞の誤りを含まないため、正しい日本語文の収集は容易である。
【００３１】
疑似誤りコーパス作成部２５は、図６に示すように、形態素解析部２５１及び誤り発生部２５２を備えている。
【００３２】
形態素解析部２５１は、日本語文データベース２４から取得した日本語文に対して形態素解析を行い、品詞情報つきの単語列を生成する。
【００３３】
誤り発生部２５２は、誤りパターンに基づいて、形態素解析部２５１により生成された日本語文の単語列に対して、予め設定した確率で、助詞の置換、助詞の挿入、及び助詞の削除を行って助詞の誤りを発生させ、当該助詞の誤りを含む疑似誤り文を生成する。誤りパターンは、日本語学習者がどの助詞をどのように誤るかを記述したものであり、本実施の形態では、フレーズテーブル記憶部２８に記憶されている後述するフレーズテーブルを、誤りパターンとして用いる。すわなち、フレーズテーブルには、学習者作文の助詞誤りをどのように修正するか、助詞誤りの修正パターンが記録されているため、フレーズテーブルを逆方向に適用することにより、疑似的な助詞の誤りを発生させる。
【００３４】
例えば、図７に示すようなフレーズテーブルがフレーズテーブル記憶部２８に記憶されており、入力された日本語文が「メールが届いたら削除をお願いします」だった場合、図８に示すような疑似誤り文が生成される。これは学習者作文の誤りに類似している。
【００３５】
誤り発生部２５２では、日本語文と疑似誤り文の単語対応が付いているため、この対応をフレーズの対応として、日本語文と疑似誤り文のフレーズ列の対を、疑似誤りコーパス記憶部２６に格納する。なお、疑似誤り文が学習者作文、日本語文が日本語修正文に相当する。
【００３６】
上述した形態素解析部２５１、及び誤り発生部２５２の処理を、日本語文データベース２４に記憶されたすべての日本語文に対して施し、疑似誤り文及び日本語文のフレーズ列の対の集合を、疑似誤りコーパス記憶部２６に格納する。
【００３７】
図９に示すように、学習部２７は、フレーズテーブル作成部２７１、ラティス構築部２７２、素性計算部２７３、及び素性重み最適化部２７４を備えている。
【００３８】
フレーズテーブル作成部２７１は、助詞誤りコーパス記憶部２３に記憶された学習者作文及び日本語修正文のフレーズ列の対の集合に基づいて、フレーズテーブルを作成し、フレーズテーブル記憶部２８に格納する。
【００３９】
フレーズテーブルは、助詞の誤りを集約したものであり、助詞のフレーズに関して、学習者作文側における誤りとその修正候補を対にして格納したテーブルである。フレーズテーブルの例を上記図７に示す。たとえば、上記図７のフレーズテーブルの第１行は、学習者作文のフレーズ間に、フレーズ「の/格助詞」を挿入することで、日本語修正文にすることができるということを表す。同様に第３行は、学習者作文のフレーズ「が/格助詞」を、フレーズ「を/格助詞」に置換することで日本語修正文にすることができるということを表す。
【００４０】
フレーズテーブル作成部２７１は、助詞誤りコーパス記憶部２３に記憶された学習者作文及び日本語修正文のフレーズ列の対を全て読み込み、学習者作文側と日本語修正文側とでフレーズの単語列が異なるものだけを取り出し、フレーズテーブルに登録する。なお、助詞の誤りとその修正候補との対が同一となるフレーズが複数あった場合には、１つだけをフレーズテーブルに登録する。上記の例文１からは、上記図７のフレーズテーブルのうち、「を/格助詞」→「が/格助詞」、「」→「を/格助詞」が登録される。
【００４１】
学習部２７は、ラティス構築部２７２、素性計算部２７３、及び素性重み最適化部２７４により、助詞誤りコーパス記憶部２３に含まれるフレーズ列の対、及び疑似誤りコーパス記憶部２６に含まれるフレーズ列の対を正解として、識別学習を行い、素性関数とその重みをパラメータテーブル記憶部２９に格納する。
【００４２】
ラティス構築部２７２は、助詞誤りコーパス記憶部２３からフレーズ列を１対取得し、フレーズ列の対のうちの学習者作文側のフレーズ列と、フレーズテーブル記憶部２８に記憶されたフレーズテーブルとに基づいて、以下に説明するように、助詞を修正した文を表すフレーズ列の全ての候補を表すラティス構造を構築する。
【００４３】
まず、助詞誤りコーパス記憶部２３から取得したフレーズ列の対のうちの学習者作文側のフレーズ列の全てのフレーズと同一のフレーズ候補（すなわち，修正がないフレーズ）を作成し、当該学習者作文側のフレーズ列の順序で、ラティス構造に各々配置する。
【００４４】
次に、フレーズ列の対のうちの学習者作文側のフレーズ列に部分一致する、フレーズテーブルに登録された学習者作文側のフレーズをすべて取得し、取得した学習者作文側のフレーズに対する修正結果を示すフレーズ候補を作成し、当該学習者作文側のフレーズの出現位置に対応させて、ラティス構造に配置することにより、フレーズ候補を追加する。このとき、挿入操作に関するフレーズについては、学習者作文側のフレーズが空であるため、すべての位置に挿入可能性があるが、助詞は名詞に後続する場合が多いため、名詞直後のみに挿入フレーズを配置するようにしてもよい。図１０は、名詞直後に挿入フレーズを配置したときのラティス構造の例である。
【００４５】
また、ラティス構築部２７２は、疑似誤りコーパス記憶部２６からフレーズ列を１対取得し、フレーズ列の対のうちの疑似誤り作文側のフレーズ列と、フレーズテーブル記憶部２８に記憶されたフレーズテーブルとに基づいて、助詞誤りコーパスに対するラティス構造と同様に、助詞を修正した文を表すフレーズ列の全ての候補を表すラティス構造を構築する。
【００４６】
なお、助詞誤りコーパス記憶部２３からのフレーズ列について構築されたラティス構造が、第１ラティス構造の一例である。疑似誤りコーパス記憶部２６からのフレーズ列について構築されたラティス構造が、第２ラティス構造の一例である。
【００４７】
素性計算部２７３は、ラティス構築部２７２によって構築されたラティス構造毎に、当該ラティス構造の全てのフレーズ、及びフレーズ間を結ぶ全てのリンクについて、素性テンプレートに従って作成された多数の素性関数を計算し、各素性関数の値を得る。
【００４８】
本実施の形態で用いる素性関数は、マッピング素性とリンク素性の２種類である。また、素性関数の出力する値は、引数と完全一致したときのみ1を返し、それ以外は0を返す二値素性と、引数に従って計算された実数値を返す実数素性とがある。素性テンプレートの例を図１１に示す。
【００４９】
マッピング素性は、学習者作文又は疑似誤り文の当該フレーズ（部分単語列）と、日本語修正文又は日本語文側のフレーズ（部分単語列）とがどの程度対応するか、対応度を表すものである。たとえば、素性関数SW1は、引数として、学習者作文又は疑似誤り文側の当該フレーズの単語列と、日本語修正文又は日本語文側の対応するフレーズの単語列をとり、計算対象フレーズが完全一致したときに1、それ以外は0を返す二値関数である。つまり、二値関数は、同じ関数名を持つものであっても、実際には引数の種類数だけ別の関数がある。素性関数SG1は、引数として、日本語修正文又は日本語文側の当該フレーズの助詞の単語列と、学習者作文又は疑似誤り文側の当該フレーズ以外に特定の助詞（「は/格助詞」）が出現したか否かを示す二値とをとり、計算対象フレーズが完全一致し、かつ学習者作文又は疑似誤り文側の当該フレーズ以外における「は/格助詞」の出現有無が、当該二値と一致したときのみ1、それ以外は0を返す二値関数である。マッピング素性の素性関数は、フレーズを計算対象とする場合に用いられる。なお、素性関数ＳＧ１における一方の引数を、二値ではなく、特定の助詞の出現回数とし、当該フレーム以外における特定の助詞の出現回数が一致した否かに応じた値を返すようにしてもよい。
【００５０】
リンクを計算対象とする場合に用いられるリンク素性の素性関数は、日本語修正文又は日本語文の日本語としてのもっともらしさを表す。たとえば、素性関数LW1は、引数として、計算対象のリンクが結ぶ日本語修正文又は日本語文側の２つのフレーズが表すｎ個の単語をとり、そのn-gram確率の対数値を返す実数関数である。
【００５１】
たとえば、上記図１０が示すラティス構造の、学習者作文のフレーズ「を/格助詞」を「が/格助詞」に置換するフレーズを計算対象フレーズとした場合、素性関数SW1（フレーズ「を/格助詞」、フレーズ「が/格助詞」）だけが1を返し、それ以外のSW1素性関数値はすべて0になる。
【００５２】
素性関数SG1（ｔｒｕｅ、フレーズ「が/格助詞」）については、上記計算対象フレーズ以外の学習者作文に「は/格助詞」が出現しないため、素性関数値が０となるが、素性関数SG1（ｆａｌｓｅ、フレーズ「が/格助詞」）については、素性関数値が１となる。
【００５３】
素性関数LW1に関しては、当該計算対象フレーズの直前フレーズの単語として「メール/名詞」、「の/格助詞」、「を/格助詞」があるため、言語モデル記憶部３１に記憶されている言語モデル確率P(が/格助詞| メール/名詞)、P(が/格助詞| の/格助詞)、P(が/格助詞| を/格助詞)を各々取得し、その対数値を各リンクの素性関数値とする。なお、言語モデル記憶部３１には、言語モデルから得られる言語モデル確率（n-gram確率）が予め記憶されている。
【００５４】
素性関数ＳＷ１の引数の組み合わせとしては、フレーズとして考えうる単語列の全ての組み合わせである必要はなく、少なくとも、助詞の誤りを訂正するパターンにおける、学習者作文又は疑似誤り文側のフレーズの単語列、日本語修正文又は日本語文側のフレーズの単語列の組み合わせの各々を引数とする素性関数ＳＷ１が含まれていればよく、計算対象のフレーズについて、当該組み合わせと一致するか否かに応じて素性関数値を出力する。
【００５５】
また、素性関数ＳＷ２の引数の組み合わせとして、フレーズとして考えうる単語列の全ての組み合わせである必要はなく、少なくとも、助詞と、助詞の直前に出現するフレームの単語列との考えうる組み合わせの各々を引数とする素性関数ＳＷ２が含まれていればよく、計算対象のフレーズについて、当該組み合わせと一致するか否かに応じて素性関数値を出力する。
【００５６】
また、素性関数ＳＷ３の引数の組み合わせとして、フレーズとして考えうる単語列の全ての組み合わせである必要はなく、少なくとも、助詞と、助詞の直後に出現するフレームの単語列との考えうる組み合わせの各々を引数とする素性関数ＳＷ３が含まれていればよく、計算対象のフレーズについて、当該組み合わせと一致するか否かに応じて素性関数値を出力する。
【００５７】
また、素性関数SG1としては、考えうる助詞の各々を２つ目の引数とする素性関数ＳＧ１が含まれている。
【００５８】
なお、素性関数ＳＷ１が、第１素性関数の一例であり、素性関数ＳＷ２が、第２素性関数の一例である。素性関数ＳＷ３が、第３素性関数の一例であり、素性関数ＳＧ１が、第４素性関数の一例である。素性関数ＬＷ１が、リンク素性関数の一例である。
【００５９】
ここで、本実施の形態における学習の原理について説明する。
【００６０】
本実施の形態では、転移学習を用いて、助詞誤りコーパス（実際の誤り事例）の分布に近いモデルを、疑似誤りコーパスを含めたコーパスから学習する。転移学習法には、非特許文献２（Hal Daume III, "Frustratingly easy domain adaptation", In Proceedings of the 45th Annual Meeting of the Association of Computational Linguistics, pages 256−263, Prague, Czech Republic, June, 2007）に記載されたFeature Augmentation法を用いる。
【００６１】
Feature Augmentation 法は、助詞誤りコーパスをターゲットドメインとし、疑似誤りコーパスをソースドメインとして、ターゲットドメインのモデルを、ソースドメインを含めて学習するものである。Feature Augmentation法では、ドメイン毎に、多数の素性関数を複製することにより、ドメインを考慮した学習を行う。学習方法は何を使用してもよい。素性関数とその重みのイメージを図１２に示す。
【００６２】
例えば、ターゲットドメインの助詞誤りコーパスから、重みが１．０となる素性関数aとcが得られたとする。また、ソースドメインの疑似誤りコーパスからは、重みが１．０となる素性関数a,b,dが得られたとする。素性関数cとdは相反するものとする（たとえば、ターゲットドメインでは「を/格助詞」が必ず「が/格助詞」に修正されたが、ソースドメインでは必ず「に/格助詞」に修正されたような場合をいう）。Feature Augmentation法では、素性の種類の和集合をとり、素性関数a,b,c,dを取り扱う。そして、素性関数a,b,c,dを「共通」、「ターゲットドメイン」、および「ソースドメイン」の各々にコピーして、素性関数群を構築する。
【００６３】
学習時には、ラティス構造がターゲットドメイン（助詞誤りコーパス）から得られた場合、「共通」および「ターゲットドメイン」の素性関数を有効にして、素性関数の計算を行う。ラティス構造がソースドメイン（疑似誤りコーパス）から得られた場合、「共通」および「ソースドメイン」の素性関数を有効にして、素性関数の計算を行う。
【００６４】
このように計算された素性関数の値を用いて、各素性関数の重みを最適化すると、ターゲットドメイン、ソースドメインに共通して現れる素性関数は、「共通」における当該素性関数の重みが大きくなる。ターゲットドメイン、ソースドメインの片方にしか現れない素性関数についても、「共通」における当該素性関数の重みが付与される。一方、ターゲットドメインとソースドメインとで相反する素性関数については、「ターゲットドメイン」または「ソースドメイン」における当該素性関数の重みが大きくなるが、「共通」における当該素性関数の重みは0に近づく。
【００６５】
そこで、本実施の形態では、素性テンプレートに従って作成される多数の素性関数からなる素性関数群を、「共通」、「ターゲットドメイン」、および「ソースドメイン」の各々について同様に用意する。また、素性計算部２７３によって、ラティス構築部２７２により助詞誤りコーパスから構築されたラティス構造毎に、当該ラティス構造の全てのフレーズ、及びフレーズ間を結ぶ全てのリンクについて、「共通」における素性関数群及び「ターゲットドメイン」における素性関数群の各素性関数を計算し、「共通」及び「ターゲットドメイン」の各素性関数の値を得る。具体的には、「共通」における多数の素性関数を計算し、計算された多数の素性関数値を、「ターゲットドメイン」における多数の素性関数の値にコピーすればよい。なお、ドメイン「共通」に対する素性関数群が、第１素性関数群の一例であり、「ターゲットドメイン」に対する素性関数群が、第２素性関数群の一例であり、「ソースドメイン」に対する素性関数群が、第３素性関数群の一例である。
【００６６】
素性計算部２７３は、ラティス構築部２７２により疑似誤りコーパスから構築されたラティス構造毎に、当該ラティス構造の全てのフレーズ、及びフレーズ間を結ぶ全てのリンクについて、「共通」における素性関数群及び「ソースドメイン」における素性関数群の各素性関数を計算し、「共通」及び「ソースドメイン」の各素性関数の値を得る。具体的には、「共通」における多数の素性関数を計算し、計算された多数の素性関数値を、「ソースドメイン」における多数の素性関数の値にコピーすればよい。
【００６７】
素性重み最適化部２７４は、ラティス構築部２７２によって構築されたラティス構造毎に計算された当該ラティス構造のすべてのフレーズ候補の各素性関数の値、及びすべてのリンクの各素性関数の値に基づいて、以下の（２）式に示す目的関数＾Lを最大化するように、「共通」、「ターゲットドメイン」、及び「ソースドメイン」における全ての素性関数の各々に対する素性重みλkを最適化する。
【００６８】
【数２】
0005635025.tif 000003
【００６９】
なお、fjは、j番目のフレーズ列の対における学習者作文側のフレーズ列又は疑似誤り文側のフレーズ列であり、ejは、j番目のフレーズ列の対における日本語修正文側のフレーズ列又は日本語文側のフレーズ列である。Cはハイパーパラメータ（定数）であり、あらかじめ設定しておく。Ｐ（ｅ｜ｆ）は、以下の（３）式で表わされる確率であり、学習者作文側のフレーズ列ｆを修正したときの日本語修正文側のフレーズ列ｅの尤度、または、疑似誤り文側のフレーズ列ｆを修正したときの日本語文側のフレーズ列ｅの尤度である。
【００７０】
【数３】
0005635025.tif 000004
【００７１】
ただし、hk(e,f)は、日本語修正文側又は日本語文側のフレーズ列ｅに対応する、ラティス構造におけるフレーズ候補の列（パス）のｋ番目の素性関数の値の合計値であり、ｋ番目の素性関数の各値は、素性計算部２７３により算出済みである。また、ｋ番目の素性関数とは、「共通」、「ターゲットドメイン」、及び「ソースドメイン」の各素性関数群の和集合のうちの１つである。ただし、助詞誤りコーパスから構築されたラティス構造におけるフレーズ候補の列（パス）については、「共通」及び「ターゲットドメイン」の素性関数の値が有効な値となっており、「ソースドメイン」の素性関数の値は有効な値となっていない（すわなち、素性関数値が０）。一方、疑似誤りコーパスから構築されたラティス構造におけるフレーズ候補の列（パス）については、「共通」及び「ソースドメイン」の素性関数の値が有効な値となっており、「ターゲットドメイン」の素性関数の値は有効な値となっていない（すなわち、素性関数値が０）。また、λkは、ｋ番目の素性関数の重みである。なお、パラメータテーブルに当該素性関数がない場合は、当該の素性関数に対する素性重みを0とする。Zは、正規化定数である。
【００７２】
最適化は、準ニュートン法の一つであるLBFGSなどを使用することで行う。上記（２）式の目的関数を最大化することにより、ラティス構造中の正解パス（日本語修正文と一致するフレーズ候補の列、及び日本語文と一致するフレーズ候補の列）の確率は1.0に近づき、逆に正解以外のパスは確率0.0に近づく。最適化が完了したら、素性重みの最適値と素性関数とを対にして格納したパラメータテーブルを生成し、パラメータテーブル記憶部２９に格納する。パラメータテーブルの例を図１３に示す。パラメータテーブルには、「共通」、「ターゲットドメイン」、及び「ソースドメイン」毎の素性関数群の各素性関数に対して、素性重みの最適値が格納される。
【００７３】
図１４に示すように、訂正部３２は、形態素解析部３２１、ラティス構築部３２２、素性計算部３２３、及び最尤パス探索部３２４を備えている。
【００７４】
形態素解析部３２１は、入力された、誤り訂正対象の学習者作文に対して形態素解析を行い、品詞情報つきの単語列を生成する。たとえば、入力された学習者作文が「メールを届いたら削除おねがいします」であった場合、図１５に示すような単語列が得られる。また形態素解析部３２１によって生成された単語列の各単語を１フレーズとし、学習者作文側のフレーズ列とする。
【００７５】
ラティス構築部３２２は、誤り訂正対象の学習者作文のフレーズ列と、フレーズテーブル記憶部２８に記憶されたフレーズテーブルとに基づいて、ラティス構築部２７２と同様に、日本語修正文を表すフレーズ列の全ての候補を表すラティス構造を構築する。
【００７６】
素性計算部３２３は、ラティス構築部３２２によって構築されたラティス構造の全てのフレーズ、及びフレーズ間を結ぶ全てのリンクについて、素性計算部２７３と同様に、多数の素性関数を計算し、各素性関数の値を得る。ここで計算する素性関数は、素性計算部２７３とは異なり、「共通」及び「ターゲットドメイン」の素性関数群に含まれる全ての素性関数である。
【００７７】
最尤パス探索部３２４は、ラティス構築部３２２によって構築されたラティス構造のすべてのフレーズ候補の各素性関数の値、及びすべてのリンクの各素性関数の値、並びにパラメータテーブル記憶部２９に記憶された各素性関数の素性重みに基づいて、日本語修正文として最適なフレーズ候補の列を、条件付き確率場（ＣＲＦ）に従って探索する。条件付き確率場では、最適なフレーズ列は以下の（４）式で表される。
【００７８】
【数４】
0005635025.tif 000005
【００７９】
ただし、fは、誤り訂正対象の学習者作文のフレーズ列であり、eは、日本語修正文のラティス構造から得られるフレーズ候補の列である。また、Ｐ（ｅ｜ｆ）は、上記（３）式で表わされるフレーズ候補の列ｆの尤度であり、当該フレーズ候補の列について得られる各素性関数の値の合計値及び各素性関数の素性重みに基づいて算出される。なお、パラメータテーブルに当該素性関数がない場合は、素性重みは0とする。また、ここで用いられる素性関数の値及び素性重みは、素性重み最適化部２７４とは異なり、「共通」及び「ターゲットドメイン」の素性関数群に含まれる素性関数の値及び素性重みである。
【００８０】
上記（４）式を満たす最適なフレーズ列＾ｅは、動的計画法で探索できる。結果、学習者作文から日本語修正文へのフレーズの対応度と、日本語修正文の日本語らしさを考慮した最適な日本語修正文が探索される。探索された最適なフレーズ列が、日本語修正文として出力部３０により出力される。上記図１０の太線は、探索されたラティス構造上の最適なフレーズ候補の列のパスを示している。
【００８１】
＜助詞誤り訂正装置の作用＞
次に、本実施の形態に係る助詞誤り訂正装置１００の作用について説明する。日本語学習者の学習者作文と当該学習者作文を修正した日本語修正文とのペアの集合が、入力部１０により助詞誤り訂正装置１００に入力されると、学習者作文データベース２１に格納される。そして、助詞誤り訂正装置１００のＲＯＭに記憶されたコーパス作成プログラムを、ＣＰＵが実行することにより、図１６に示すコーパス作成処理ルーチンが実行される。
【００８２】
まず、ステップＳ１００において、学習者作文データベース２１から、学習者作文と日本語修正文のペアを１つ取り出す。ステップＳ１０１において、形態素解析部２２１によって、上記ステップＳ１００で取り出したペアの学習者作文に対して形態素解析を行う。次のステップＳ１０２では、形態素解析部２２２によって、上記ステップＳ１００で取り出したペアの日本語修正文に対して形態素解析を行う。
【００８３】
そして、ステップＳ１０３において、フレーズアライメント部２２３によって、上記ステップＳ１０１で得られた形態素解析結果と、上記ステップＳ１０２で得られた形態素解析結果とに基づいて、学習者作文のフレーズ列と日本語修正文のフレーズ列におけるフレーズアライメントを決定する。
【００８４】
ステップＳ１０４では、助詞誤り抽出部２２４によって、上記ステップＳ１０３でフレーズアライメントが決定された学習者作文のフレーズ列と日本語修正文のフレーズ列の対から、助詞誤りのフレーズを抽出し、助詞誤り以外の誤りがある学習者作文側のフレーズを修正する。ステップＳ１０５において、上記ステップＳ１０４で修正された学習者作文のフレーズ列と日本語修正文のフレーズ列の対を、助詞誤りコーパス記憶部２３に格納する。
【００８５】
そして、ステップＳ１０５において、学習者作文データベース２１に記憶された全てのペアについて、上記ステップＳ１００〜Ｓ１０５の処理を実行したか否かを判定し、上記ステップＳ１００〜Ｓ１０５の処理を実行していないペアが存在する場合には、上記ステップＳ１００へ戻り、当該ペアを取り出す。一方、上記ステップＳ１００〜Ｓ１０５の処理を全てのペアについて実行した場合には、コーパス作成処理ルーチンを終了する。
【００８６】
次に、助詞誤り訂正装置１００のＲＯＭに記憶されたフレーズテーブル作成プログラムを、ＣＰＵが実行することにより、図１７に示すフレーズテーブル作成処理ルーチンが実行される。
【００８７】
まず、ステップＳ１１０において、助詞誤りコーパス記憶部２３から、学習者作文のフレーズ列と日本語修正文のフレーズ列のペアを１つ取り出す。ステップＳ１１１において、フレーズテーブル作成部２７１によって、上記ステップＳ１１０で取り出したペアから、学習者作文側の助詞の誤りがあるフレーズと、日本語修正文側における当該誤りに対する修正結果のフレーズとの対を、フレーズテーブル記憶部２８によって記憶されたフレーズテーブルに登録する。なお、同一のフレーズの対が既にフレーズテーブルに登録されている場合には、重複して登録しない。
【００８８】
ステップＳ１１２において、助詞誤りコーパス記憶部２３に記憶された全てのペアについて、上記ステップＳ１１０〜Ｓ１１１の処理を実行したか否かを判定し、上記ステップＳ１１０〜Ｓ１１１の処理を実行していないペアが存在する場合には、上記ステップＳ１１０へ戻り、当該ペアを取り出す。一方、上記ステップＳ１１０〜Ｓ１１１の処理を全てのペアについて実行した場合には、フレーズテーブル作成処理ルーチンを終了する。
【００８９】
また、正しい日本語文の集合が、入力部１０により助詞誤り訂正装置１００に入力されると、日本語文データベース２４に格納される。そして、助詞誤り訂正装置１００のＲＯＭに記憶された疑似誤りコーパス作成プログラムを、ＣＰＵが実行することにより、図１８に示す疑似誤りコーパス作成処理ルーチンが実行される。
【００９０】
まず、ステップＳ１２０において、日本語文データベース２４から、日本語文を１つ取り出す。ステップＳ１２１において、形態素解析部２５１によって、上記ステップＳ１２０で取り出した日本語文に対して形態素解析を行う。次のステップＳ１２２では、誤り発生部２５２によって、上記ステップＳ１２１で得られた形態素解析結果と、フレーズテーブル記憶部２８に記憶されたフレーズテーブルとに基づいて、助詞の誤りを発生させて、助詞の誤りを含む疑似誤り文のフレーズ列を生成する。ステップＳ１２３において、上記ステップＳ１２２で生成された疑似誤り文のフレーズ列と日本語文のフレーズ列の対を、疑似誤りコーパス記憶部２６に格納する。
【００９１】
そして、ステップＳ１２４において、日本語文データベース２４に記憶された全ての日本語文について、上記ステップＳ１２０〜Ｓ１２３の処理を実行したか否かを判定し、上記ステップＳ１２０〜Ｓ１２３の処理を実行していない日本語文が存在する場合には、上記ステップＳ１２０へ戻り、当該日本語文を取り出す。一方、上記ステップＳ１２０〜Ｓ１２３の処理を全ての日本語文について実行した場合には、疑似コーパス作成処理ルーチンを終了する。
【００９２】
次に、助詞誤り訂正装置１００のＲＯＭに記憶された学習プログラムを、ＣＰＵが実行することにより、図１９に示す学習処理ルーチンが実行される。
【００９３】
まず、ステップＳ１３０において、助詞誤りコーパス記憶部２３から、学習者作文のフレーズ列と日本語修正文のフレーズ列のペアを１つ取り出す。ステップＳ１３１において、ラティス構築部２７２によって、上記ステップＳ１３０で取り出したペアのうちの学習者作文のフレーズ列から、ラティス構造を構築する。そして、ステップＳ１３２で、素性計算部２７３によって、上記ステップＳ１３１で構築されたラティス構造の全てのフレーズ候補、全てのリンクに対して、予め用意した「共通」の素性関数群の各素性関数の値、及び「ターゲットドメイン」の素性関数群の各素性関数の値を計算し、計算された素性関数値を、メモリ（図示省略）に保存する。
【００９４】
ステップＳ１３３において、助詞誤りコーパス記憶部２３に記憶された全てのペアについて、上記ステップＳ１３０〜Ｓ１３２の処理を実行したか否かを判定し、上記ステップＳ１３０〜Ｓ１３２の処理を実行していないペアが存在する場合には、上記ステップＳ１３０へ戻り、当該ペアを取り出す。一方、上記ステップＳ１３０〜Ｓ１３２の処理を全てのペアについて実行した場合には、ステップＳ１３４へ移行する。
【００９５】
ステップＳ１３４では、疑似誤りコーパス記憶部２６から、疑似誤り文のフレーズ列と日本語文のフレーズ列のペアを１つ取り出す。ステップＳ１３５において、ラティス構築部２７２によって、上記ステップＳ１３４で取り出したペアのうちの疑似誤り文のフレーズ列から、ラティス構造を構築する。そして、ステップＳ１３６で、素性計算部２７３によって、上記ステップＳ１３５で構築されたラティス構造の全てのフレーズ候補、全てのリンクに対して、予め用意した「共通」の素性関数群の各素性関数の値、及び「ソースドメイン」の素性関数群の各素性関数の値を計算し、計算された素性関数値を、メモリ（図示省略）に保存する。
【００９６】
ステップＳ１３７において、疑似誤りコーパス記憶部２６に記憶された全てのペアについて、上記ステップＳ１３４〜Ｓ１３６の処理を実行したか否かを判定し、上記ステップＳ１３４〜Ｓ１３６の処理を実行していないペアが存在する場合には、上記ステップＳ１３４へ戻り、当該ペアを取り出す。一方、上記ステップＳ１３４〜Ｓ１３６の処理を全てのペアについて実行した場合には、ステップＳ１３８へ移行する。
【００９７】
ステップＳ１３８において、素性重み最適化部２７４によって、上記ステップＳ１３１で構築された各ラティス構造の日本語修正文に対応するフレーズ候補の列（パス）における、上記ステップＳ１３２で計算された各素性関数の値と、上記ステップＳ１３５で構築された各ラティス構造の日本語文に対応するフレーズ候補の列（パス）における、上記ステップＳ１３６で計算された各素性関数の値とに基づいて、上記（２）式に従って、各素性関数の素性重みを最適化する。そして、ステップＳ１３９において、上記ステップＳ１３８で得られた各素性関数の素性重みの最適値を、パラメータテーブル記憶部２９のパラメータテーブルに格納して、学習処理ルーチンを終了する。
【００９８】
そして、誤り訂正対象となる日本語学習者の学習者作文が、入力部１０により助詞誤り訂正装置１００に入力されると、助詞誤り訂正装置１００のＲＯＭに記憶された誤り訂正プログラムを、ＣＰＵが実行することにより、図２０に示す誤り訂正処理ルーチンが実行される。
【００９９】
まず、ステップＳ１４０において、入力部１０により入力された誤り訂正対象の学習者作文を取得する。ステップＳ１４１において、形態素解析部３２１によって、上記ステップＳ１４０で取得した誤り訂正対象の学習者作文に対して形態素解析を行う。
【０１００】
そして、ステップＳ１４２において、ラティス構築部３２２によって、上記ステップＳ１４１で得られた形態素解析結果から得られる誤り訂正対象の学習者作文のフレーズ列から、ラティス構造を構築する。
【０１０１】
ステップＳ１４３において、素性計算部３２３によって、上記ステップＳ１４２で構築されたラティス構造の全てのフレーズ候補、及び全てのリンクに対して、予め用意した「共通」及び「ターゲットドメイン」の各々に対する多数の素性関数の値を計算し、計算された素性関数値を、メモリ（図示省略）に保存する。
【０１０２】
次のステップＳ１４４では、最尤パス探索部３２４によって、上記ステップＳ１４３で計算された、ラティス構造のフレーズ候補の列（パス）の各々における各素性関数の値と、パラメータテーブル記憶部２９に記憶された各素性関数の素性重みとに基づいて、上記（４）式に従って、最尤パスを探索する。そして、ステップＳ１４５において、上記ステップＳ１４４で得られた最尤パスが示すフレーズ候補の列から得られる日本語文を、誤り訂正対象の学習者作文の助詞誤りを訂正した結果として、出力部３０により出力して、誤り訂正処理ルーチンを終了する。
【０１０３】
以上説明したように、本実施の形態の助詞誤り訂正装置によれば、正しい複数の日本語文の各々に対して、助詞の誤りを発生させた疑似誤り文を各々生成して疑似誤りコーパスに記憶し、転移学習により、助詞誤りコーパスについて構築される各ラティス構造に対して計算される素性関数群の値と、疑似誤りコーパスについて構築される各ラティス構造に対して計算される素性関数群の値とを用いて、「共通」、「ターゲットドメイン」、及び「ソースドメイン」の素性関数群の各素性重みを最適化し、最適化された「共通」及び「ターゲットドメイン」の素性関数の重みと、素性関数の値とを用いて、日本語作文の助詞の誤りを訂正することにより、助詞の誤りを含む学習者作文が少量の場合であっても、日本語作文の助詞の誤りを精度良く訂正することができる。
【０１０４】
また、実際の誤り事例が少なくても、助詞の誤り事例から作成した誤りパターンを、大量の正しい日本語文に適用して、大量の疑似誤り文を自動生成し、少量の実際の助詞誤り文および大量の疑似誤り文を用いて、識別学習を行うことができる。このとき、疑似誤り文は、実際の誤り文とは若干分布が異なるが、転移学習を用いて実際の助詞誤りコーパスに適応させることができるため、実際の誤り事例と近い訂正ができる。
【０１０５】
また、誤り訂正対象の学習者作文のフレーズ列から構築されるラティス構造における複数のフレーズ候補の列から、助詞の誤りパターン、助詞の前後のフレーズ、助詞の出現回数、及び言語モデル確率を素性として用いて、尤度が最大となるフレーズ候補の列を探索し、助詞の誤りを訂正することにより、学習者作文の助詞の誤りを精度良く訂正することができる。
【０１０６】
また、素性重みの学習方法に識別モデルを使用しているため、助詞の誤りやすさだけでなく、助詞周辺の単語も素性として用いることができる。たとえば、「届く/動詞」の直前の助詞が「を/格助詞」に誤っていたとしても、「届く/動詞」を手がかりとして「が/格助詞」に修正することができる。
【０１０７】
また、文全体を見た特徴を素性とすることができる。たとえば、「は/係助詞」は１文に一度しか出現しないことが多いという特徴を素性として反映させることができ、すでに「は/係助詞」が出現している文の他の助詞を誤って「は/係助詞」に修正してしまうことを抑制できる。また、言語モデル確率を素性とすることができるので、生成モデルの精度を下回らずに、助詞の誤りを訂正することができる。
【０１０８】
なお、上記の実施の形態では、単純化のため、n-gram言語モデルとしてバイグラムを用いた場合を例に説明したが、これに限定されるものではなく、トライグラム以上のn-gramを用いてもよい。この場合、図２１に示すように、直前(n-1)単語で状態を作成し、ラティス構造を構築することにより、上述した各処理をバイグラムと同様に行うことができる。
【０１０９】
また、コーパス作成部、疑似誤りコーパス作成部、学習部、及び訂正部を備えた助詞誤り訂正装置について説明したが、コーパス作成部、疑似誤りコーパス作成部、学習部、及び訂正部が別々の装置で構成されていてもよい。
【０１１０】
また、上述の助詞誤り訂正装置は、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【０１１１】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【０１１２】
１０ 入力部
２０ 演算部
２１ 学習者作文データベース
２２ コーパス作成部
２３ 助詞誤りコーパス記憶部
２４ 日本語文データベース
２５ 疑似誤りコーパス作成部
２６ 疑似誤りコーパス記憶部
２７ 学習部
２８ フレーズテーブル記憶部
２９ パラメータテーブル記憶部
３０ 出力部
３１ 言語モデル記憶部
３２ 訂正部
１００ 助詞誤り訂正装置
２５２ 誤り発生部
２７２ ラティス構築部
２７３ 素性計算部
２７４ 素性最適化部
【図１】
0005635025.tif 000006
【図２】
0005635025.tif 000007
【図３】
0005635025.tif 000008
【図４】
0005635025.tif 000009
【図５】
0005635025.tif 000010
【図６】
0005635025.tif 000011
【図７】
0005635025.tif 000012
【図８】
0005635025.tif 000013
【図９】
0005635025.tif 000014
【図１１】
0005635025.tif 000015
【図１４】
0005635025.tif 000016
【図１５】
0005635025.tif 000017
【図１６】
0005635025.tif 000018
【図１７】
0005635025.tif 000019
【図１８】
0005635025.tif 000020
【図１９】
0005635025.tif 000021
【図２０】
0005635025.tif 000022
【図１０】
0005635025.tif 000023
【図１２】
0005635025.tif 000024
【図１３】
0005635025.tif 000025
【図２１】
0005635025.tif 000026