以下、図面を参照して本発明の実施形態を詳細に説明する。
<第1の実施形態に係るテキスト変換装置の構成>
次に、第1の実施形態に係るテキスト変換装置の構成について説明する。図1に示すように、第1の実施形態に係るテキスト変換装置100は、CPUと、RAMと、後述するテキスト変換処理ルーチンを実行するためのプログラムや各種データを記憶したROMと、を含むコンピュータで構成することができる。このテキスト変換装置は、機能的には図1に示すように入力部10と、演算部20と、出力部90とを含んで構成されている。
入力部10は、翻訳元の第1言語である日本語で記述された文字列からなる文を受け付ける。入力部10は、例えば、図2に示すような入力文を受け付ける。図2に示す入力文に含まれる部分文字列「(p_;)ヾ(´∀`)」は、非言語パターンであり、所謂「アスキーアート」や「顔文字」と呼ばれているものの一例である。第1の実施形態では「パターン文字列」と総称する。パターン文字列は、1文字乃至複数で構成され、文末や読点(「、」、「,」等)の後に出現することが多いが、文中の任意の場所に出現することもある。また、パターン文字列は、文の著者や文と関わる人物の情動を文に付与するために用いられるため、文中の他の単語と文法的なつながり無く出現する場合が多い。図2に示す文に含まれるパターン文字列「(p_;)ヾ(´∀`)」は、おそらく、入力文中の「彼」が、歌が苦手なことと、歌が苦手なことを慰める著者のイメージと推測されるが、他に多様な解釈をすることもできる。なお、第1の実施形態においては、入力される文は1つで有る場合について説明する。また、第1の実施形態においては、図2の入力文が入力されたとして、以下説明する。
演算部20は、パターン文字列変換規則記憶部22と、パターン文字列抽出部23と、追記対象記憶部24と、単語表記文字列正規化規則記憶部26と、単語表記正規化部28と、述部正規化規則記憶部30と、述部正規化部32と、対訳データ記憶部34と、機械翻訳部36と、パターン文字列追記部38と、を含んで構成されている。
パターン文字列変換規則記憶部22には、例えば、図3に示すように、パターン文字列、位置、及び翻訳パターン文字列の組み合わせがパターン文字列変換規則として記憶されている。パターン文字列変換規則の「位置」の欄の情報は、パターン文字列が存在する位置を表す。また、「翻訳パターン文字列」の欄の情報は、第1言語における対象のパターン文字列に対応する、翻訳先言語である第2言語におけるパターン文字列(削除されたパターン文字列に変換可能なパターン文字列(以下、翻訳パターン文字列とする。))を表す。なお、「翻訳パターン文字列」の欄の情報が「なし」である場合には、当該第1言語のパターン文字列に対応する第2言語のパターン文字列が存在しないことを表す。この場合、後述するパターン文字列追記部38において、翻訳後の文に翻訳パターン文字列を追記する処理を行わない。なお、以後、各情報の各欄の情報を、各情報の「各欄」として表す。例えば、パターン文字列変換規則の「位置」の欄の情報を、パターン文字列変換規則の「位置」として表す。なお、パターン文字列変換規則のうち、「翻訳パターン文字列」が存在するパターン文字列の「位置」は、文末、又は文頭の何れかである。
パターン文字列抽出部23は、入力部10において受け付けた第1言語の入力文について、パターン文字列変換規則記憶部22に記憶されているパターン文字列変換規則に基づいて、パターン文字列を削除し、単語表記正規化部28に出力する。具体的には、パターン文字列抽出部23は、パターン文字列変換規則記憶部22に記憶されているパターン文字列変換規則の各々について、当該パターン文字列変換規則の「パターン文字列」と一致する文字列が、入力部10において受け付けた第1言語の入力文の、当該パターン文字列変換規則の「位置」に対応する位置に含まれる場合、当該第1言語の入力文から、当該パターン文字列を削除する。また、パターン文字列抽出部23は、削除したパターン文字列に対応するパターン文字列変換規則の「翻訳パターン文字列」が存在する場合には、当該パターン文字列変換規則の「位置」に対応する位置と「翻訳パターン文字列」との組み合わせを追記対象として追記対象記憶部24に記憶する。なお、パターン文字列変換規則の「翻訳パターン文字列」が「なし」であるパターン文字列は、削除処理のみが対象となる。また、第1の実施形態においては、入力文中にパターン文字列「〜(p_;)ヾ(´∀`)」が含まれるため、パターン文字列抽出部23は、入力文から当該パターン文字列を削除し、削除された入力文「彼は歌が苦手なのかも知れないねぇ〜」を単語表記正規化部28に出力する。
追記対象記憶部24には、パターン文字列抽出部23から入力される追記対象が記憶されている。なお、対象の文について、パターン文字列追記部38の処理が終了した場合、追記対象記憶部24に記憶されている追記対象は削除されるものとする。
単語表記文字列正規化規則記憶部26には、例えば、図4に示すように、文字列、及び当該文字列に対して、文字又は記号の削除、挿入、又は置換を行うことにより正規化表現に変換した単語の表記である単語表記文字列の組み合わせが単語表記文字列正規化規則として記憶されている。ここで、正規化表現とは、単語表記を例えば、辞典の見出し語のような「正しい表記」に変換することを表す。また、単語表記文字列正規化規則の「単語表記文字列」は、当該単語表記文字列正規化規則の「文字列」が文に含まれる場合、当該「文字列」と置換する、単語表記文字列を表す。
単語表記正規化部28は、パターン文字列抽出部23から入力された第1言語の入力文について、単語表記文字列正規化規則記憶部26に記憶されている単語表記文字列正規化規則に基づいて、対象となる文字列を、当該文字列に対応する単語表記文字列に変換し、述部正規化部32に出力する。これは、単語の表記の揺れを正規化する処理となる。具体的には、単語表記正規化部28は、単語表記文字列正規化規則記憶部26に記憶されている単語表記文字列正規化規則の各々について、当該単語表記文字列正規化規則の「文字列」と一致する文字列が、パターン文字列抽出部23から入力された第1言語の入力文に含まれるか否か判定する。次に、単語表記正規化部28は、単語表記文字列正規化規則の「文字列」と一致する文字列が第1言語の文字列に含まれると判定した場合に、第1言語の当該文字列を、当該単語表記文字列正規化規則の「変換」の単語表記文字列に変換する。なお、第1の実施形態において、パターン文字列抽出部23から入力された入力文に文字列「ないねぇ〜」が含まれるため、単語表記正規化部28は、当該文字列を「ないね」に変換し、変換後の入力文「彼は歌が苦手なのかも知れないね」を、述部正規化部32に出力する。
述部正規化規則記憶部30には、例えば、図5に示すように、単語列、及び正規化述部の組み合わせが述部正規化規則として記憶されている。ここで、「単語列」は、述部を構成する、少なくとも1つの単語からなる単語列を表す。また、「正規化述部」は、正規化された述部を構成する、少なくとも1つの単語からなる単語列を表す。
述部正規化部32は、単語表記正規化部28から入力された第1言語の入力文について、述部正規化規則記憶部30に記憶されている述部正規化規則に基づいて、対象となる述部を構成する単語列を、正規化された述部を構成する単語列に変換し、機械翻訳部36に出力する。具体的には、まず、述部正規化部32は、単語表記正規化部28から入力された第1言語の入力文について形態素解析を行う。次に、述部正規化部32は、述部正規化規則記憶部30に記憶されている述部正規化規則の各々について、当該述部正規化規則の「単語列」と一致する単語列が、単語表記正規化部28から入力された第1言語の入力文に含まれるか否か判定する。次に、述部正規化部32は、述部正規化規則の「単語列」と一致する単語列が第1言語の入力文に含まれると判定した場合に、第1言語の当該単語列を、当該述部正規化規則の「正規化述部」の単語列に変換する。なお、述部正規化部32は、単語表記正規化部28と異なり、「苦手なのかも知れないね」のような文の「どうした」を表す一連の単語に対する処理である。また、述部正規化部32は、単語表記正規化部28と異なり、「苦手かも知れない」のように「なの」や「ね」のように単語の削除が含まれる。また、第1の実施形態において、単語表記正規化部28から入力された入力文に単語列「なのかも」と「ないね」とが含まれるので、述部正規化部32は、当該単語列を「かも」と「ない」とに変換し、変換後の入力文「彼は歌が苦手かも知れない」を機械翻訳部36に出力する。
対訳データ記憶部34には、例えば、図6に示すように、日本語文、及び対訳文の組み合わせが対訳データとして記憶されている。ここで、「日本語文」は、翻訳元の第1言語である日本語で記載された文を表す。また、「対訳文」は、第1言語で記載された文に対応する、第2言語で記載された文を表す。なお、第1の実施形態において用いる対訳データの「日本語文」は、パターン文字列が存在せず、予め、単語表記と述部とが正規化されているものとする。
機械翻訳部36は、述部正規化部32から入力された第1言語の入力文について、対訳データ記憶部34に記憶されている対訳データに基づいて、第2言語の文に変換し、パターン文字列追記部38に出力する。具体的には、機械翻訳部36は、対訳データ記憶部34に記憶されている対訳データの各々について、当該対訳データの「日本語文」と、述部正規化部32から入力された第1言語の入力文が一致するか否か判定する。次に、機械翻訳部36は、当該対訳データの「日本語文」と、第1言語の入力文が一致すると判定した場合に、当該対訳データの「対訳文」の文を、当該第1言語の翻訳文としてパターン文字列追記部38に出力する。一方、機械翻訳部36は、対訳データ記憶部34に記憶されている対訳データの各々の「日本語文」と、第1言語の入力文が一致しないと判定した場合に、翻訳不可の結果を出力部90に出力する。なお、第1の実施形態において、述部正規化部32から入力された入力文に対応する日本語文が対訳データに存在するため、当該対訳データの対訳文「He may be bad at singing.」を翻訳文としてパターン文字列追記部38に出力する。
パターン文字列追記部38は、機械翻訳部36から入力された第2言語の文について、追記対象記憶部24に記憶されている追記対象に基づいて、第2言語におけるパターン文字列を追記し、追記した結果を当該第1言語の入力文の翻訳結果として出力部90に出力する。具体的には、パターン文字列追記部38は、追記対象記憶部24に記憶されている追記対象の各々について、当該追記対象の位置、及び「翻訳パターン文字列」に基づいて、第2言語の翻訳文の対象となる位置に、対象となる翻訳パターン文字列を追記する。なお、第1の実施形態においては、追記対象記憶部24に追記対象は記憶されていないため、パターン文字列の追記は行わずに、機械翻訳部36から入力された文「He may be bad at singing.」をそのまま翻訳結果として出力部90に出力する。
<第1の実施形態に係るテキスト変換装置の作用>
次に、第1の実施形態に係るテキスト変換装置100の作用について説明する。入力部10において第1言語の入力文を受け付けると、テキスト変換装置100によって図7、図8、及び図9に示すテキスト変換処理ルーチンを実行する。
まず、図7のステップS100で、パターン文字列抽出部23は、パターン文字列変換規則記憶部22からパターン文字列変換規則を読み込む。
次に、ステップS102で、パターン文字列抽出部23は、単語表記文字列正規化規則記憶部26から、単語表記文字列正規化規則を読み込む。
次に、ステップS104で、パターン文字列抽出部23は、述部正規化規則記憶部30から、述部正規化規則を読み込む。
次に、ステップS106で、パターン文字列抽出部23は、対訳データ記憶部34から対訳データを読み込む。
次に、ステップS108で、パターン文字列抽出部23は、ステップS100において取得したパターン文字列変換規則に基づいて、入力部10において受け付けた第1言語の入力文からパターン文字列の抽出を行う。
次に、ステップS110で、パターン文字列抽出部23は、ステップS108においてパターン文字列が抽出されたか否かを判定する。パターン文字列抽出部23が、パターン文字列が抽出されたと判定した場合には、テキスト変換処理は、ステップS112へ移行する。一方、パターン文字列抽出部23が、パターン文字列が抽出されていないと判定した場合には、テキスト変換処理は、ステップS126へ移行する。
次に、ステップS112で、パターン文字列抽出部23は、ステップS108において抽出されたパターン文字列から、処理対象となるパターン文字列を決定する。
次に、ステップS114で、パターン文字列抽出部23は、ステップS100において取得したパターン文字列変換規則に基づいて、処理対象のパターン文字列に「翻訳パターン文字列」が存在するか否かを判定する。パターン文字列抽出部23が、処理対象のパターン文字列に「翻訳パターン文字列」が存在すると判定した場合には、テキスト変換処理は、ステップS116へ移行する。一方、パターン文字列抽出部23が、処理対象のパターン文字列に「翻訳パターン文字列」が存在しないと判定した場合には、テキスト変換処理は、ステップS122へ移行する。
次に、ステップS116で、パターン文字列抽出部23は、処理対象となるパターン文字列の位置を取得する。
次に、ステップS118で、パターン文字列抽出部23は、ステップS100において取得したパターン文字列変換規則に基づいて、処理対象となるパターン文字列の「翻訳パターン文字列」を取得する。
次に、ステップS120で、パターン文字列抽出部23は、処理対象となるパターン文字列について、ステップS116において取得した位置と、ステップS118において取得した「翻訳パターン文字列」との組み合わせを追記対象として追記対象記憶部24に記憶する。
次に、ステップS122で、パターン文字列抽出部23は、処理対象となるパターン文字列を、入力部10において受け付けた第1言語の入力文から削除する。
次に、ステップS124で、パターン文字列抽出部23は、ステップS108において取得したパターン文字列の全てについて、ステップS112〜ステップS122までの処理を終了したか否かを判定する。パターン文字列抽出部23が、取得したパターン文字列の全てについて、ステップS112〜ステップS122までの処理を終了したと判定した場合には、テキスト変換処理は、ステップS126へ移行する。一方、パターン文字列抽出部23が、取得したパターン文字列の全てについて、ステップS112〜ステップS122までの処理を終了していないと判定した場合には、テキスト変換処理は、ステップS112へ移行し、処理対象となるパターン文字列を変換し、ステップS114〜ステップS124までの処理を繰り返す。
次に、ステップS126で、単語表記正規化部28は、ステップS102において取得した単語表記文字列正規化規則に基づいて、入力部10において受け付けた第1言語の入力文、又はステップS122においてパターン文字列が削除された第1言語の入力文から単語表記文字列に変換する文字列を抽出する。
次に、図8のステップS130で、単語表記正規化部28は、ステップS126において単語表記文字列に変換する文字列が抽出されているか否かを判定する。単語表記正規化部28が、単語表記文字列に変換する文字列が抽出されていると判定した場合には、テキスト変換処理は、ステップS132へ移行する。一方、単語表記正規化部28が、単語表記文字列に変換する文字列が抽出されていないと判定した場合には、テキスト変換処理は、ステップS138へ移行する。
次に、ステップS132で、単語表記正規化部28は、ステップS128において抽出された文字列から、処理対象となる文字列を決定する。
次に、ステップS134で、単語表記正規化部28は、ステップS102において取得した単語表記文字列正規化規則に基づいて、処理対象となる文字列を、当該文字列に対応する単語表記文字列に変換する。
次に、ステップS136で、単語表記正規化部28は、ステップS126において取得した文字列の全てについて、ステップS132〜ステップS134までの処理を終了したか否かを判定する。単語表記正規化部28が、取得した文字列の全てについて、ステップS132〜ステップS134までの処理を終了したと判定した場合には、テキスト変換処理は、ステップS138へ移行する。一方、単語表記正規化部28が、取得した文字列の全てについて、ステップS132〜ステップS134までの処理を終了していないと判定した場合には、テキスト変換処理は、ステップS132へ移行し、処理対象となる文字列を変換し、ステップS134〜ステップS136までの処理を繰り返す。
次に、ステップS138で、述部正規化部32は、入力部10において受け付けた第1言語の入力文、ステップS122においてパターン文字列が削除された第1言語の入力文、又は、ステップS134において単語表記文字列に変換された第1言語の入力文を形態素解析する。
次に、ステップS139で、述部正規化部32は、ステップS104において取得した述部正規化規則に基づいて、ステップS138において形態素解析された第1言語の入力文から正規化対象の述部を構成する単語列を抽出する。
次に、ステップS140で、述部正規化部32は、ステップS139において正規化対象の述部を構成する単語列が抽出されているか否かを判定する。述部正規化部32が、正規化対象の述部を構成する単語列が抽出されていると判定した場合には、テキスト変換処理は、ステップS142へ移行する。一方、述部正規化部32が、正規化対象の述部を構成する単語列が抽出されていないと判定した場合には、テキスト変換処理は、ステップS148へ移行する。
次に、ステップS142で、述部正規化部32は、ステップS139において取得した正規化対象の述部を構成する単語列から、処理対象となる単語列を決定する。
次に、ステップS144で、述部正規化部32は、ステップS104において取得した述部正規化規則に基づいて、処理対象となる単語列を、当該単語列に対応する述部正規化規則の「正規化述部」である正規化された述部を構成する単語列に変換する。
次に、ステップS146で、述部正規化部32は、ステップS139において取得した単語列の全てについて、ステップS142〜ステップS144までの処理を終了したか否かを判定する。述部正規化部32が、取得した単語列の全てについて、ステップS142〜ステップS144までの処理を終了したと判定した場合には、テキスト変換処理は、ステップS148へ移行する。一方、述部正規化部32が、取得した単語列の全てについて、ステップS142〜ステップS144までの処理を終了していないと判定した場合には、テキスト変換処理は、ステップS142へ移行し、処理対象となる単語列を変換し、ステップS144〜ステップS146までの処理を繰り返す。
次に、ステップS148で、機械翻訳部36は、ステップS106において取得した対訳データに基づいて、入力部10において受け付けた第1言語の入力文、ステップS122において取得した第1言語の入力文、ステップS134において取得した第1言語の入力文、又はステップS144において取得した第1言語の入力文と一致する、対訳データの「日本語文」があるか否か判定する。機械翻訳部36は、一致する「日本語文」があると判定した場合には、ステップS152へ移行する。一方、機械翻訳部36は、一致する「日本語文」がないと判定した場合には、ステップS154へ移行する。
次に、ステップS152で、機械翻訳部36は、ステップS106において取得した対訳データに基づいて、ステップS138、又はステップS144において取得した第1言語の入力文に対応する対訳データの「対訳文」を翻訳文とする。
ステップS154で、機械翻訳部36は、翻訳不可の結果を出力部90に出力して、テキスト変換処理を終了する。
図9のステップS160で、パターン文字列追記部38は、追記対象記憶部24に追記対象が記憶されているか否か判定する。パターン文字列追記部38が、追記対象が記憶されていると判定した場合には、テキスト変換処理は、ステップS162へ移行する。一方、パターン文字列追記部38が、追記対象が記憶されていないと判定した場合には、テキスト変換処理を終了する。
次に、ステップS162で、パターン文字列追記部38は、追記対象記憶部24から追記対象を読み込む。
次に、ステップS164で、パターン文字列追記部38は、処理対象となる追記対象を決定する。
次に、ステップS166で、パターン文字列追記部38は、処理対象となる追記対象を、ステップS152において取得した翻訳文に追記する。
次に、ステップS168で、パターン文字列追記部38は、ステップS162において取得した全ての追記対象についてステップS164〜ステップS166までの処理を終了したか否かを判定する。パターン文字列追記部38が、取得した全ての追記対象についてステップS164〜ステップS166までの処理を終了したと判定した場合には、テキスト変換処理は、ステップS170へ移行する。一方、パターン文字列追記部38が、取得した全ての追記対象についてステップS164〜ステップS166までの処理を終了していないと判定した場合には、テキスト変換処理は、ステップS164へ移行し、処理対象となる追記対象を変換し、ステップS166〜ステップS168までの処理を繰り返す。
次に、ステップS170で、パターン文字列追記部38は、追記対象記憶部24に記憶されている追記対象を削除し、ステップS166において取得したパターン文字列を追記した翻訳文を、翻訳結果として出力部90に出力して、テキスト変換処理を終了する。
以上説明したように、第1の実施形態に係るテキスト変換装置によれば、入力された第1言語の文字列から、パターン文字列を削除し、第1言語の文字列の部分文字列であって、文字又は記号の削除、挿入、又は置換を行うことにより表記を正規化表現に変換可能な部分文字列を、正規化表現に変換し、第1言語の文字列に含まれる述部を構成する単語列を、正規化された述部を構成する単語列に変換し、変換された第1言語の文字列を、第1言語とは異なる第2言語の文字列へと翻訳することにより、精度良く翻訳を行うことができる。
また、CGMテキストのような多様で、非言語的な文字列が多数含まれる言語表現の文を機械翻訳する際に、既存の新聞記事等の対訳データや述部正規化技術を用いて適当に行うことができる。
また、入力文からパターン文字列情報を一時削除し、単語表記を正規化した上で述部を正規化するので、入力文の言語表現が多様であっても適切に機械翻訳処理を行うことができる。
また、入力文の単語の表記の揺れを正規化してから、述部を構成する単語列の表記の揺れを正規化するため、より翻訳の精度を向上させることができる。
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
例えば、第1の実施形態においては、入力される文は1つで有る場合について説明したが、これに限定されるものではなく、入力される文が個々に独立な複数の文であってもよい。その場合、テキスト変換装置100は、1文ずつ読み込み処理を行うものとする。また、複数の文を一括で読み込みテキスト変換装置内部に一時的に蓄積し1文ずつ処理する等の、1文の処理を独立に複数回繰り返す機能を備えておれば、どのようなものであってもよい。
また、第1の実施形態においては、パターン文字列変換規則を固定的な変換規則とし、予めデータとしてテキスト変換装置に記憶されている場合について説明したが、これに限定されるものではない。例えば、パターン文字列変換規則をテキスト変換装置外部から入力、追加してもよく、パターン文字列検出装置を内蔵して利用する方法(特許文献4:特開2010−108239号公報)等、パターン文字列を自動抽出できる手段であればどのようなものであってもよい。
また、第1の実施形態においては、パターン文字列変換規則において、パターン文字列毎に位置を予め設定している場合について説明しているが、これに限定されるものではない。例えば、パターン文字列の多くは文末に出現する可能性が高いので、パターン文字列の全てについて「位置」を「文末」として予め設定する方法や、任意の出現位置とする方法等、位置に関する情報が記載されていればどのようなものであってもよい。
また、第1の実施形態においては、削除したパターン文字列に対応する翻訳パターン文字列が存在する場合にのみ、翻訳後の文に翻訳パターン文字列を追加する場合について説明したが、これに限定されるものではない。例えば、削除したパターン文字列を、翻訳後の文に追加してもよい。
また、第1の実施形態においては、単語表記文字列正規化規則を固定的な変換規則とし、予めデータとしてテキスト変換装置に記憶されている場合について説明したが、これに限定されるものではない。例えば、単語表記文字列正規化規則をテキスト変換装置外部から都度入力、追加してもよい。また、日本語文を単語列に分解する形態素解析プログラムを単語表記正規化部に内蔵しておき入力文を分析し、分析結果中に形態素解析プログラムが内蔵する単語辞書の標準表記がある場合は、これを正規化表記に変換する方法(非特許文献1:MeCab: Yet Another Part-of-Speech and Morphological Analyzer, https://code.google.com/p/mecab/)を用いてもよい。また、機械学習を用いて単語の形態素解析と正規化表記変換を同時に行う方法(非特許文献2:Itsumi Saito, K. Sadamitsu, H. Asano, and Y. Matsuo, “Morphological Analysis for Japanese noisy text based on character-level and word-level normalization,” in COLING 2014, 2014.)を内蔵して用いる方法等、同一の音の単語であるが表記する文字の平仮名・片仮名・漢字の組合せ方が異なる場合や、単語中の読みの撥音や促音化によって類似した音の単語の表記を正規化された表記に変える方法であり単語の追加や削除を行なわない方法であれば、どのようなものを用いてもよい。
また、第1の実施形態においては、述部正規化規則を固定的な変換規則とし、予めデータとしてテキスト変換装置に記憶されている場合について説明したが、これに限定されるものではない。例えば、述部正規化規則をテキスト変換装置外部から都度入力、追加してもよい。
また、第1の実施形態においては、入力文中の文字列が述部正規化規則の「単語列」のいずれかと一致した場合に、テキスト変換装置は、当該述部正規化規則の「正規化述部」で変換を行う場合について説明したが、これに限定されるものではない。例えば、上述の特許文献1のような述部正規化方法等を用いてもよい。
また、第1の実施形態においては、対訳データを固定的な変換規則とし、予めデータとしてテキスト変換装置に記憶されている場合について説明したが、これに限定されるものではない。例えば、対訳データをテキスト変換装置外部から都度入力、追加してもよい。
また、第1の実施形態においては、対訳データに基づいて、第1言語の文を第2言語の文に翻訳する場合について説明したが、これに限定されるものではない。例えば、対訳対と翻訳先言語の文複数を用いて機械学習して言語モデルと対訳モデルを作成し、これを用いて入力文を翻訳する統計機械翻訳システムを用いてもよい(特許文献5:特開2013−054607号公報)。
また、第1の実施形態においては、翻訳元の第1の言語を日本語とし、翻訳先の第2の言語を英語とする場合について説明したが、これに限定されるものではない。例えば、第1言語と第2言語が異なれば、他の言語を用いてもよい。この場合、機械翻訳部が当該言語に対応し、対訳文が当該言語で記述できる必要がある。
また、第1の実施形態においては、パターン文字列抽出部、単語表記正規化部、及び述部正規化部の処理の全てを行った結果に対して、翻訳を行う場合について説明したが、これに限定されるものではない。例えば、パターン文字列抽出部、単語表記正規化部、及び述部正規化部の処理の少なくとも1つの処理を行った結果に対して、翻訳を行うようにしてもよい。
また、第1の実施形態においては、対象となる文字列を対応する単語表記文字列に変換することにより、単語の表記揺れを正規化する場合について説明したが、これに限定されるものではない。例えば、対象となる文字列に含まれる文字又は記号の削除、挿入、または置換を行うことにより、対象となる文字列を対応する単語表記文字列に変換し、単語の表記揺れを正規化してもよい。
次に、第2の実施形態に係るテキスト変換装置について説明する。
第2の実施形態においては、対訳データの第1言語にあたる「日本語文」が、図10に示すようにパターン文字列、正規化表現に変換した単語の表記でない部分文字列、又は、正規化されていない述部を含む点、及び機械翻訳部が、テキスト変換を行い表記を変換した対訳データを用いる点が第1の実施形態と異なる。なお、第1の実施形態に係るテキスト変換装置と同様の構成及び作用については、同一の符号を付して説明を省略する。
<第2の実施形態に係るテキスト変換装置の構成>
次に、第2の実施形態に係るテキスト変換装置の構成について説明する。図11に示すように、第2の実施形態に係るテキスト変換装置200は、CPUと、RAMと、後述する対訳データテキスト変換処理ルーチン、及びテキスト変換処理ルーチンを実行するためのプログラムや各種データを記憶したROMと、を含むコンピュータで構成することができる。このテキスト変換装置は、機能的には図11に示すように入力部210と、演算部220と、出力部90とを含んで構成されている。
入力部210は、翻訳元の第1言語である日本語で記述された文字列からなる文を受け付ける。また、入力部210は、図10に示すような、日本語文、及び対訳文の組み合わせからなる対訳データの各々を受け付け、対訳データ記憶部221に記憶する。なお、第2の実施形態においては、入力部210において受け付ける対訳データは、当該対訳データの「日本語文」として、パターン文字列を含む場合、文字列が正規化表現に変換した単語の表記でない場合、及び述部が正規化されていない場合の少なくとも1つの場合を含んでもよい。
演算部220は、対訳データ記憶部221と、パターン文字列変換規則記憶部22と、パターン文字列抽出部23と、学習用パターン文字列抽出部223と、追記対象記憶部24と、単語表記文字列正規化規則記憶部26と、単語表記正規化部28と、学習用単語表記正規化部228と、述部正規化規則記憶部30と、述部正規化部32と、学習用述部正規化部232と、変換済み対訳データ記憶部233と、翻訳学習部235と、機械翻訳部236と、パターン文字列追記部38と、を含んで構成されている。なお、第2の実施形態においては、対訳データの各々について、当該対訳データの「日本語文」について、学習用パターン文字列抽出部223、学習用単語表記正規化部228、学習用述部正規化部232、及び翻訳学習部235の処理を行い、当該結果と、対応する対訳文との組み合わせを変換済み対訳データ記憶部233に記憶してから、入力部210において受け付けた入力文について処理を行うものとする。
対訳データ記憶部221には、入力部210において受け付けた対訳データの各々が記憶されている。
学習用パターン文字列抽出部223は、対訳データ記憶部221に記憶されている対訳データの各々について、当該対訳データの「日本語文」を、第1の実施形態のパターン文字列抽出部23と同様に、パターン文字列変換規則記憶部22に記憶されているパターン文字列変換規則に基づいて、パターン文字列を削除し、単語表記正規化部28に出力する。第2の実施形態において、図10の対訳データについて以下説明する。この場合、当該対訳データの日本語文「彼は歌が苦手かも知れないねぇヾ(´∀`)」にパターン文字列「ヾ(´∀`)」が含まれているので、当該パターン文字列が削除された日本語文「彼は歌が苦手かも知れないねぇ」と対訳文との組み合わせが、学習用単語表記正規化部228に出力される。
学習用単語表記正規化部228は、学習用パターン文字列抽出部223から入力された対訳データの「日本語文」について、第1の実施形態における単語表記正規化部28と同様に、単語表記文字列正規化規則記憶部26に記憶されている単語表記文字列正規化規則に基づいて、対象となる文字列を、当該文字列に対応する単語表記文字列に変換し、学習用述部正規化部232に出力する。第2の実施形態において、学習用パターン文字列抽出部223から入力された対訳データの「日本語文」に文字列「ないねぇ」が含まれるため、学習用単語表記正規化部228は、当該文字列を「ないね」に変換し、変換後の日本語文「彼は歌が苦手なのかも知れないね」を、対訳データの「日本語文」として学習用述部正規化部232に出力する。
学習用述部正規化部232は、学習用単語表記正規化部228から入力された対訳データの「日本語文」について、第1の実施形態における述部正規化部32と同様に、述部正規化規則記憶部30に記憶されている述部正規化規則に基づいて、対象となる述部を構成する単語列を、正規化された述部を構成する単語列に変換し、翻訳学習部235に出力する。第2の実施形態において、学習用単語表記正規化部228から入力された対訳データの「日本語文」に単語列「ないね」が含まれるため、学習用述部正規化部232は、当該単語列を「ない」に変換し、変換後の日本語文「彼は歌が苦手かも知れない」を、翻訳学習部235に出力する。
翻訳学習部235は、学習用述部正規化部232から入力された対訳データの「日本語文」と、当該対訳データの「対訳文」との組み合わせを変換済みの対訳データ(翻訳モデル)として、変換済み対訳データ記憶部233に記憶する。第2の実施の形態において、学習用述部正規化部232から入力された「日本語文」は「彼は歌が苦手かも知れない」であるので、当該「日本語文」と、当該対訳データの「対訳文」「He may be bad at singing.」との組み合わせを変換済みの対訳データとして、変換済み対訳データ記憶部233に記憶する。
機械翻訳部236は、述部正規化部32から入力された入力部210において受け付けた第1言語の入力文について、変換済み対訳データ記憶部233に記憶されている変換済み対訳データに基づいて、第2言語の文に変換し、パターン文字列追記部38に出力する。なお、機械翻訳部236は、第1の実施形態の機械翻訳部36と、変換済み対訳データを用いる点のみが異なるため、詳細は省略する。
<第2の実施形態に係るテキスト変換装置の作用>
次に、第2の実施形態に係るテキスト変換装置200の作用について説明する。まず、入力部210において対訳データを受け付け、対訳データ記憶部221に記憶する。次に、テキスト変換装置200によって、対訳データ記憶部221から対訳データの各々を読み込むと、図12、及び13に示す対訳データテキスト変換処理ルーチンが実行される。対訳データテキスト変換処理ルーチン後に、入力部210において第1言語の入力文を受け付けると、テキスト変換装置200によって図9、14、及び15に示すテキスト変換処理ルーチンを実行する。
まず、図12、及び図13に示す対訳データテキスト変換処理ルーチンについて説明する。
図12のステップS200で、学習用パターン文字列抽出部223は、パターン文字列変換規則記憶部22からパターン文字列変換規則を読み込む。
次に、ステップS202で、学習用パターン文字列抽出部223は、単語表記文字列正規化規則記憶部26から、単語表記文字列正規化規則を読み込む。
次に、ステップS204で、学習用パターン文字列抽出部223は、述部正規化規則記憶部30から、述部正規化規則を読み込む。
次に、ステップS206で、学習用パターン文字列抽出部223は、読み込んだ対訳データの各々のうちから、処理対象となる対訳データを決定する。
次に、ステップS208で、学習用パターン文字列抽出部223は、ステップS200において取得したパターン文字列変換規則に基づいて、処理対象の対訳データの「日本語文」から、パターン文字列を抽出する。
次に、ステップS210で、学習用パターン文字列抽出部223は、ステップS208においてパターン文字列が抽出されたか否かを判定する。学習用パターン文字列抽出部223が、パターン文字列が抽出されたと判定した場合には、対訳データテキスト変換処理は、ステップS212へ移行する。一方、学習用パターン文字列抽出部223が、パターン文字列が抽出されなかったと判定した場合には、対訳データテキスト変換処理は、ステップS218へ移行する。
次に、ステップS212で、学習用パターン文字列抽出部223は、ステップS208において取得したパターン文字列から、処理対象となるパターン文字列を決定する。
次に、ステップS214で、学習用パターン文字列抽出部223は、処理対象となる対訳データの「日本語文」から、処理対象となるパターン文字列を削除する。
次に、ステップS216で、学習用パターン文字列抽出部223は、ステップS208において取得したパターン文字列の全てについてステップS214の処理を終了したか否かを判定する。学習用パターン文字列抽出部223が、取得したパターン文字列の全てについてステップS214の処理を終了したと判定した場合には、対訳データテキスト変換処理は、ステップS218へ移行する。一方、学習用パターン文字列抽出部223が、取得した全てのパターン文字列についてステップS214の処理を終了していないと判定した場合には、ステップS212へ移行し、処理対象となるパターン文字列を変換し、ステップS214〜ステップS216の処理を繰り返す。
次に、ステップS218で、学習用単語表記正規化部228は、ステップS202において取得した単語表記文字列正規化規則に基づいて、処理対象となる対訳データの「日本語文」に含まれる単語表記文字列に対応する文字列を抽出する。
次に、ステップS220で、学習用単語表記正規化部228は、ステップS218において単語表記文字列に対応する文字列が抽出されたか否かを判定する。学習用単語表記正規化部228が、単語表記文字列に対応する文字列を抽出したと判定した場合には、対訳データテキスト変換処理は、ステップS222へ移行する。一方、学習用単語表記正規化部228が、単語表記文字列に対応する文字列を抽出していないと判定した場合には、対訳データテキスト変換処理は、ステップS228へ移行する。
次に、ステップS222で、学習用単語表記正規化部228は、ステップS218において取得した単語表記文字列に対応する文字列のうち、処理対象となる文字列を決定する。
次に、ステップS224で、学習用単語表記正規化部228は、ステップS202において取得した単語表記文字列正規化規則に基づいて、処理対象となる文字列を対応する単語表記文字列に変換する。
次に、ステップS226で、学習用単語表記正規化部228は、ステップS218において取得した全ての、処理対象の文字列について、ステップS224の処理を終了したか否かを判定する。学習用単語表記正規化部228が、取得した全ての、処理対象の文字列について、ステップS224の処理を終了したと判定した場合には、ステップS228へ移行する。一方、学習用単語表記正規化部228が、取得した全ての、処理対象の文字列について、ステップS224の処理を終了していないと判定した場合には、ステップS222へ移行し、処理対象となる文字列を変換し、ステップS224〜ステップS226までの処理を繰り返す。
次に、ステップS228で、学習用述部正規化部232は、処理対象となる対訳データの「日本語文」を形態素解析する。
次に、図13のステップS230で、学習用述部正規化部232は、ステップS228において取得した形態素解析済みの対訳データの「日本語文」から、ステップS204において取得した、述部正規化規則に基づいて、正規化対象の述部の単語列を抽出する。
次に、ステップS231で、学習用述部正規化部232は、ステップS230において正規化対象の述部の単語列が抽出されたか否かを判定する。学習用述部正規化部232が、ステップS230において正規化対象の単語列が抽出されたと判定する場合には、対訳データテキスト変換処理は、ステップS232へ移行する。一方、学習用述部正規化部232が、ステップS230において正規化対象の単語列が抽出されていないと判定した場合には、対訳データテキスト変換処理は、ステップS238へ移行する。
次に、ステップS232で、学習用述部正規化部232は、ステップS230において取得した正規化対象の単語列から、処理対象となる正規化対象の単語列を決定する。
次に、ステップS234で、学習用述部正規化部232は、ステップS204において取得した述部正規化規則に基づいて、処理対象となる単語列を、当該単語列に対応する単語列に変換する。
次に、ステップS236で、学習用述部正規化部232は、ステップS230において取得した単語列の全てについてステップS234の処理を終了したか否かを判定する。学習用述部正規化部232が、取得した全ての単語列についてステップS234の処理を終了したと判定した場合には、対訳データテキスト変換処理は、ステップS238へ移行する。一方、学習用述部正規化部232が、取得した全ての単語列についてステップS234の処理を終了していないと判定した場合には、対訳データテキスト変換処理は、ステップS232へ移行し、処理対象となる単語列を決定し、ステップS234〜ステップS236の処理を繰り返す。
次に、ステップS238で、翻訳学習部235は、ステップS208〜ステップS231、又はステップS236までの処理が行われた、処理対象となる対訳データの「日本語文」と、当該対訳データの「対訳文」との組み合わせを、変換済み対訳データとして、変換済み対訳データ記憶部233に記憶する。
次に、ステップS240で、翻訳学習部235は、読み込んだ全ての対訳データについて、ステップS208〜ステップS238までの処理を終了したか否かを判定する。学習用述部正規化部232が、読み込んだ全ての対訳データについて、ステップS208〜ステップS238までの処理を終了したと判定した場合には、対訳データテキスト変換処理を終了する。一方、学習用述部正規化部232が、読み込んだ全ての対訳データについて、ステップS208〜ステップS238までの処理を終了していないと判定した場合には、対訳データテキスト変換処理は、ステップ206へ移行し、処理対象となる対訳データを変換し、ステップS208〜ステップS240までの処理を繰り返す。
次に、図9、図14、図15のテキスト変換処理について説明する。
図14のステップS300で、パターン文字列抽出部23は、変換済み対訳データを読み込む。
図15のステップS302で、機械翻訳部236は、ステップS300において取得した変換済み対訳データに基づいて、入力部210において受け付けた第1言語の入力文が変換済み対訳データの「日本語文」と一致する「日本語文」が存在するか否か判定する。機械翻訳部236が、入力部210において受け付けた第1言語の入力文が変換済み対訳データの「日本語文」と一致する「日本語文」が存在すると判定した場合には、テキスト変換処理は、ステップS304へ移行する。一方、機械翻訳部236は、入力部210において受け付けた第1言語の入力文が変換済み対訳データの「日本語文」と一致する「日本語文」が存在しないと判定した場合には、ステップS154へ移行する。
次に、ステップS304で、機械翻訳部236は、ステップS300において取得した変換済み対訳データに基づいて、入力部210において受け付けた第1言語の入力文に対応する対訳文を翻訳文とする。そして、上記図9のステップS160へ移行する。
以上説明したように、第2の実施形態に係るテキスト変換装置によれば、入力された第1言語の文字列から、パターン文字列を削除し、第1言語の文字列の部分文字列であって、文字又は記号の削除、挿入、又は置換を行うことにより正規化表現に変換可能な部分文字列を、正規化表現に変換し、第1言語の文字列に含まれる述部を構成する単語列を、正規化された述部を構成する単語列に変換し、変換された第1言語の文字列を、対訳データに基づいて、第1言語とは異なる第2言語の文字列へと翻訳することにより、精度良く翻訳を行うことができる
また、入力された第1言語の文字列と第1言語の文字列を第1言語とは異なる第2言語で表現した第2言語の文字列との組み合わせの各々について、組み合わせに含まれる第1言語の文字列の部分文字列であって、文字又は記号の削除、挿入、又は置換を行うことにより表記を正規化表現に変換可能な部分文字列を、正規化表現に変換し、組み合わせの各々における、変換された第1言語の文字列と、第2言語の文字列とに基づいて、第1言語の文字列を第2言語の文字列に翻訳するための対訳データを学習することにより、精度良く翻訳を行うことができる対訳データを学習することができる。
また、翻訳処理に用いる対訳データにも正規化されていない表現が含まれている場合には、入力文と同様に正規化処理を行った上で、翻訳処理において用いることにより、新聞記事のような入力文と言語表現の傾向が異なる対訳データでも利用可能となる。
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
例えば、第2の実施形態においては、パターン文字列抽出部、単語表記正規化部、及び述部正規化部の処理の全てを行って、変換済み対訳データを取得する場合について説明したが、これに限定されるものではない。例えば、パターン文字列抽出部、単語表記正規化部、及び述部正規化部の処理の少なくとも1つの処理を行って、変換済み対訳データを取得するようにしてもよい。
また、第2の実施形態においては、変換済み対訳データをそのまま翻訳モデルとして用いて翻訳する場合について説明したがこれに限定されるものではない。例えば、変換済み対訳データを用いて機械学習して言語モデルと対訳モデルを作成し、これを用いて入力文を翻訳する統計機械翻訳システムを用いてもよい。
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能であるし、ネットワークを介して提供することも可能である。