(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024094499
(43)【公開日】2024-07-10
(54)【発明の名称】対訳コーパス生成プログラム、対訳コーパス生成方法および情報処理装置
(51)【国際特許分類】
G06F 40/237 20200101AFI20240703BHJP
G06F 40/295 20200101ALI20240703BHJP
【FI】
G06F40/237
G06F40/295
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022211073
(22)【出願日】2022-12-28
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】グェンレ アン
【テーマコード(参考)】
5B091
【Fターム(参考)】
5B091AB06
5B091CC00
(57)【要約】
【課題】対訳コーパスの量を増大させる。
【解決手段】情報処理装置10は、第1の言語の固有表現13aを含む第1の文と、固有表現13aに対応する第2の言語の固有表現13bを含む第2の文とを対応付けた対訳コーパス13を取得する。情報処理装置10は、第1の言語の複数の固有表現を含む辞書データ15から、固有表現13aとの類似度が閾値を超える固有表現14aを抽出する。情報処理装置10は、第1の言語の固有表現と第2の言語の固有表現との対応を示す辞書データ16を用いて、固有表現14aに対応する固有表現14bを特定する。情報処理装置10は、第1の文に含まれる固有表現13aを固有表現14aに置換し、第2の文に含まれる固有表現13bを固有表現14bに置換することで、対訳コーパス14を生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
第1の言語の第1の固有表現を含む第1の文と、前記第1の固有表現に対応する第2の言語の第2の固有表現を含む第2の文とを対応付けた第1の対訳コーパスを取得し、
前記第1の言語の複数の固有表現を含む第1の辞書データから、前記第1の固有表現との類似度が閾値を超える前記第1の言語の第3の固有表現を抽出し、
前記第1の言語の固有表現と前記第2の言語の固有表現との対応を示す第2の辞書データを用いて、前記第3の固有表現に対応する前記第2の言語の第4の固有表現を特定し、
前記第1の文に含まれる前記第1の固有表現を前記第3の固有表現に置換し、前記第2の文に含まれる前記第2の固有表現を前記第4の固有表現に置換することで、前記第1の対訳コーパスと異なる第2の対訳コーパスを生成する、
処理をコンピュータに実行させる対訳コーパス生成プログラム。
【請求項2】
訓練済みの固有表現認識モデルを用いて、前記第1の固有表現の固有表現クラスを判定し、異なる固有表現を含む前記第1の辞書データの中から、前記固有表現クラスに基づいて前記第1の辞書データを選択する処理を、前記コンピュータに更に実行させる、
請求項1記載の対訳コーパス生成プログラム。
【請求項3】
前記第3の固有表現の抽出は、前記第1の固有表現を示す文字列と前記第3の固有表現を示す文字列との間で、文字列間類似度を前記類似度として算出する処理を含む、
請求項1記載の対訳コーパス生成プログラム。
【請求項4】
前記第2の辞書データは、概念を識別する識別子と対応付けて、前記概念を表す複数の言語の固有表現を記載した多言語用語辞書データである、
請求項1記載の対訳コーパス生成プログラム。
【請求項5】
前記第4の固有表現の特定は、前記第2の辞書データが前記第3の固有表現と対応付けて複数の第4の固有表現を含む場合、前記第3の固有表現に含まれる単語の分散表現ベクトルと前記複数の第4の固有表現に含まれる単語の分散表現ベクトルとを用いて、前記複数の第4の固有表現の中から前記第4の固有表現を選択する処理を含む、
請求項1記載の対訳コーパス生成プログラム。
【請求項6】
前記第1の言語は、機械翻訳モデルに入力される原文に用いられる言語であり、前記第2の言語は、前記機械翻訳モデルから出力される翻訳文に用いられる言語である、
請求項1から5の何れか一項に記載の対訳コーパス生成プログラム。
【請求項7】
第1の言語の第1の固有表現を含む第1の文と、前記第1の固有表現に対応する第2の言語の第2の固有表現を含む第2の文とを対応付けた第1の対訳コーパスを取得し、
前記第1の言語の複数の固有表現を含む第1の辞書データから、前記第1の固有表現との類似度が閾値を超える前記第1の言語の第3の固有表現を抽出し、
前記第1の言語の固有表現と前記第2の言語の固有表現との対応を示す第2の辞書データを用いて、前記第3の固有表現に対応する前記第2の言語の第4の固有表現を特定し、
前記第1の文に含まれる前記第1の固有表現を前記第3の固有表現に置換し、前記第2の文に含まれる前記第2の固有表現を前記第4の固有表現に置換することで、前記第1の対訳コーパスと異なる第2の対訳コーパスを生成する、
処理をコンピュータが実行する対訳コーパス生成方法。
【請求項8】
第1の言語の第1の固有表現を含む第1の文と、前記第1の固有表現に対応する第2の言語の第2の固有表現を含む第2の文とを対応付けた第1の対訳コーパスと、前記第1の言語の複数の固有表現を含む第1の辞書データと、前記第1の言語の固有表現と前記第2の言語の固有表現との対応を示す第2の辞書データとを記憶する記憶部と、
前記第1の辞書データから、前記第1の固有表現との類似度が閾値を超える前記第1の言語の第3の固有表現を抽出し、前記第2の辞書データを用いて、前記第3の固有表現に対応する前記第2の言語の第4の固有表現を特定し、前記第1の文に含まれる前記第1の固有表現を前記第3の固有表現に置換し、前記第2の文に含まれる前記第2の固有表現を前記第4の固有表現に置換することで、前記第1の対訳コーパスと異なる第2の対訳コーパスを生成する処理部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は対訳コーパス生成プログラム、対訳コーパス生成方法および情報処理装置に関する。
【背景技術】
【0002】
コンピュータによる自然言語処理には、データベースとして対訳コーパスが使用されることがある。対訳コーパスは、ある自然言語で記載された文と、別の自然言語で記載された同等の意味をもつ文とを対応付けて記憶する。一例として、コンピュータは、事前に用意された対訳コーパスを訓練データとして用いて、一方の言語のテキストを他方の言語のテキストに変換するための機械翻訳モデルを訓練することがある。使用する対訳コーパスの量や品質は、機械翻訳などの自然言語処理タスクの品質に影響を与える。
【0003】
なお、ソース言語で記載されたソーステキストの中から固有表現を認識し、ソーステキストと固有表現情報とを入力データとして用いて、アテンション機構を含む機械翻訳モデルを訓練する機械学習方法が提案されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
対訳コーパスは、複数の言語を理解する者によって人手で作成されることが多い。このため、自然言語処理に使用する対訳コーパスを大量に収集することは容易でない。例えば、自然言語処理タスクが対象とする2つの言語のうちの少なくとも一方が、話者の少ない低リソース言語である場合、対訳コーパスが不足するおそれがある。また、例えば、自然言語処理タスクが特定の専門分野を対象とする場合、その専門分野に関する対訳コーパスを少量しか収集できないおそれがある。そこで、1つの側面では、本発明は、対訳コーパスの量を増大させることを目的とする。
【課題を解決するための手段】
【0006】
1つの態様では、以下の処理をコンピュータに実行させる対訳コーパス生成プログラムが提供される。第1の言語の第1の固有表現を含む第1の文と、第1の固有表現に対応する第2の言語の第2の固有表現を含む第2の文とを対応付けた第1の対訳コーパスを取得する。第1の言語の複数の固有表現を含む第1の辞書データから、第1の固有表現との類似度が閾値を超える第1の言語の第3の固有表現を抽出する。第1の言語の固有表現と第2の言語の固有表現との対応を示す第2の辞書データを用いて、第3の固有表現に対応する第2の言語の第4の固有表現を特定する。第1の文に含まれる第1の固有表現を第3の固有表現に置換し、第2の文に含まれる第2の固有表現を第4の固有表現に置換することで、第1の対訳コーパスと異なる第2の対訳コーパスを生成する。
【0007】
また、1つの態様では、コンピュータが実行する対訳コーパス生成方法が提供される。また、1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。
【発明の効果】
【0008】
1つの側面では、対訳コーパスの量が増大する。
【図面の簡単な説明】
【0009】
【
図1】第1の実施の形態の情報処理装置を説明するための図である。
【
図2】第2の実施の形態の情報処理装置のハードウェア例を示す図である。
【
図3】対訳コーパスの第1文からの固有表現の認識例を示す図である。
【
図4】固有表現認識モデルの構造例を示す図である。
【
図5】対訳コーパスの第2文からの固有表現の特定例を示す図である。
【
図6】多言語語句整列に用いられる類似度行列の例を示す図である。
【
図7】文字列が類似する他の固有表現の抽出例を示す図である。
【
図8】他の固有表現の訳語の抽出例を示す図である。
【
図11】情報処理装置の機能例を示すブロック図である。
【
図12】コーパス拡張の手順例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0011】
図1は、第1の実施の形態の情報処理装置を説明するための図である。
第1の実施の形態の情報処理装置10は、自然言語処理に使用される対訳コーパスの量を増大させる。情報処理装置10は、既存の対訳コーパスを部分的に修正することで、別の対訳コーパスを自動的に生成する。生成された対訳コーパスは、例えば、機械翻訳モデルを訓練するための訓練データとして使用される。ただし、生成された対訳コーパスが、機械翻訳以外の自然言語処理タスクに使用されてもよい。
【0012】
対訳コーパスを用いた機械学習や自然言語処理タスクは、情報処理装置10で実行されてもよいし、他の情報処理装置で実行されてもよい。情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置10が、コンピュータ、対訳コーパス生成装置、自然言語処理装置、機械学習装置または機械翻訳装置と呼ばれてもよい。
【0013】
情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。
【0014】
処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12が、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路を含んでもよい。プロセッサは、例えば、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
【0015】
記憶部11は、対訳コーパス13および辞書データ15,16を記憶する。対訳コーパス13は、第1の言語で記載された第1の文と第2の言語で記載された第2の文とを対応付ける。対訳コーパス13は、第1の文と第2の文のペアを複数含んでもよい。第1の文と第2の文とは意味的に同等であればよく、文の個数が異なってもよい。例えば、文の個数の比は、1対1、1対2、1対3、2対1、3対1などである。
【0016】
第1の言語および第2の言語は、異なる自然言語である。異なる自然言語では、文字セット、文法、および、文字列が表す意味の少なくとも1つが異なる。第1の言語は、話者が比較的多い高リソース言語であることが好ましい。例えば、第1の言語は英語であり、第2の言語は非ヨーロッパ系言語である。自然言語処理タスクが機械翻訳である場合、第1の文と第2の文の一方が原文に相当し、他方が翻訳文に相当する。例えば、第1の文が原文に相当し、第2の文が翻訳文に相当する。
【0017】
対訳コーパス13は、例えば、第1の言語および第2の言語を理解する者によって人手で作成される高品質な対訳コーパスである。対訳コーパス13は、生物医学分野などの特定の専門分野の用語を含む専門的テキストであってもよい。
【0018】
対訳コーパス13において、第1の文は固有表現13aを含み、第2の文は固有表現13aに対応する固有表現13bを含む。固有表現13bは、例えば、固有表現13aの訳語に相当し、固有表現13aと同等の意味をもつ。固有表現は、固有名詞、日付表現、時間表現などの表現である。1つの固有表現は、1つの単語から形成されていることもあるし、2以上の単語から形成されていることもある。固有表現は、その種類に応じて複数の固有表現クラスに分類されることがある。例えば、生物医学分野の固有表現は、遺伝子、薬品、疾患および突然変異に分類されることがある。
【0019】
情報処理装置10は、訓練済みの固有表現認識モデルを用いて、第1の文の中から固有表現13aを認識してもよい。また、情報処理装置10は、訓練済みの固有表現認識モデルを用いて、第2の文の中から固有表現13bを認識してもよい。また、情報処理装置10は、訓練済みの語句整列モデルを用いて、第1の文に含まれる固有表現13aに対応する句を、第2の文の中から検索してもよい。
【0020】
語句整列モデルは、言語が異なる2つの文の間で類似する語を検索するために、多言語分散表現ベクトルを用いてもよい。多言語分散表現は、意味が近い単語には類似するベクトルを割り当てるという単一言語の分散表現を、複数の言語に拡張したものである。多言語分散表現ベクトルは、例えば、BERT(Bidirectional Encoder Representations from Transformers)などの訓練済みの機械学習モデルによって算出される。
【0021】
辞書データ15は、第1の言語で記載された複数の固有表現を含む。辞書データ15は、固有表現クラス毎に分かれていてもよい。例えば、辞書データ15は、遺伝子名を含む辞書データ、薬品名を含む辞書データ、疾患名を含む辞書データ、および、突然変異名を含む辞書データに分かれていてもよい。
【0022】
辞書データ16は、第1の言語の固有表現と第2の言語の固有表現との対応を示す。辞書データ16は、概念を識別する識別子と対応付けて、その概念を表す複数の言語の固有表現を記載した多言語用語辞書データであってもよい。辞書データ16に含まれる固有表現は、専門家によって収集されて体系化されたものであってもよい。
【0023】
処理部12は、対訳コーパス13を取得する。処理部12は、辞書データ15から、固有表現13aとの類似度が閾値を超える、第1の言語の固有表現14aを抽出する。処理部12は、固有表現14aとして複数の固有表現を抽出してもよい。固有表現13aと固有表現14aとの類似度は、例えば、文字列間の類似度である。
【0024】
処理部12は、編集距離(レーベンシュタイン距離)を類似度の指標として使用してもよい。また、処理部12は、コサイン類似度を類似度の指標として使用してもよい。コサイン類似度を使用する場合、例えば、処理部12は、各固有表現の文字列をn-gramに分解し、複数種類のn-gramそれぞれが文字列の中に含まれているか否かを示すベクトルを生成する。処理部12は、2つの固有表現に対応する2つのベクトルの間でコサイン類似度を算出する。コサイン類似度は、2つのベクトルの内積を2つのベクトルそれぞれの大きさで割ったものであり、-1以上1以下の値域をもつ。
【0025】
処理部12は、辞書データ16を用いて、固有表現14aに対応する第2の言語の固有表現14bを特定する。辞書データ16には、固有表現14aと同じ概念をもつ第2の言語の固有表現が複数記載されていることがある。その場合、処理部12は、固有表現14aに対応する全ての固有表現を固有表現14bとして特定してもよい。また、処理部12は、それら複数の固有表現の一部を固有表現14bとして選択してもよい。
【0026】
固有表現14bの選択には、多言語分散表現ベクトルが用いられてもよい。例えば、処理部12は、固有表現14aに含まれる単語の多言語分散表現ベクトルと、固有表現14bに含まれる単語の多言語分散表現ベクトルとを用いて、固有表現14aと固有表現14bとの類似度を算出する。処理部12は、例えば、固有表現14a,14bの類似度が閾値を超える場合、固有表現14bを採用する。
【0027】
処理部12は、対訳コーパス13の第1の文に含まれる固有表現13aを、固有表現14aに置換する。また、処理部12は、対訳コーパス13の第2の文に含まれる固有表現13bを、固有表現14bに置換する。これにより、処理部12は、対訳コーパス13と異なる対訳コーパス14を生成する。このとき、第1の文の固有表現13a以外の部分と、第2の文の固有表現13b以外の部分は、対訳コーパス13と同じでもよい。処理部12は、固有表現14a,14bが異なる複数通りの文のペアを生成してもよい。
【0028】
処理部12は、生成された対訳コーパス14を出力する。処理部12は、対訳コーパス14を不揮発性ストレージに保存してもよいし、情報処理装置10に接続された表示装置に表示してもよいし、他の情報処理装置に送信してもよい。
【0029】
以上説明したように、第1の実施の形態の情報処理装置10は、第1の言語の複数の固有表現を含む辞書データ15から、対訳コーパス13の第1の文に含まれる固有表現13aとの類似度が閾値を超える固有表現14aを抽出する。情報処理装置10は、第1の言語の固有表現と第2の言語の固有表現との対応を示す辞書データ16を用いて、固有表現14aに対応する固有表現14bを特定する。情報処理装置10は、第1の文の固有表現13aを固有表現14aに置換し、対訳コーパス13の第2の文に含まれる固有表現13bを固有表現14bに置換することで、対訳コーパス14を生成する。
【0030】
これにより、対訳コーパスの量が増大する。その結果、対訳コーパスを使用した機械学習や自然言語処理タスクの精度が向上する。特に、話者の少ない低リソース言語や専門性の高い特定の専門分野について、対訳コーパスの量が増大する。
【0031】
また、文字列の置換は、固有表現が記載された辞書データを参照して固有表現単位で行われる。これにより、実在しない固有表現が創作されるリスクが低下する。特に、生物医学分野のように、固有表現に複合語や入れ子構造が多い場合であっても、当該リスクが低下する。また、動詞が名詞に置換されるといった品詞の変化のリスクが低下する。よって、対訳コーパス14の品質が向上する。また、対訳コーパス13の外部にある辞書データ15,16が参照される。これにより、元の対訳コーパス13に含まれない固有表現が対訳コーパス14に挿入される可能性があり、対訳コーパスが充実する。
【0032】
なお、情報処理装置10は、訓練済みの固有表現認識モデルを用いて、固有表現13aの固有表現クラスを判定してもよく、異なる固有表現を含む複数の辞書データの中から、固有表現クラスに基づいて辞書データ15を選択してもよい。これにより、意味的に自然な文が生成される可能性が高くなる。また、情報処理装置10は、固有表現13aを示す文字列と固有表現14aを示す文字列との間で、文字列間類似度を算出してもよい。これにより、固有表現14aが固有表現13aと類似する概念をもつ可能性が高くなる。
【0033】
また、辞書データ16は、概念を識別する識別子と対応付けて、概念を表す複数の言語の固有表現を記載した多言語用語辞書データであってもよい。これにより、固有表現14aの訳語に相当する固有表現14bが高精度に特定される。また、情報処理装置10は、辞書データ16が固有表現14aと対応付けて複数の固有表現を含む場合、固有表現14aに含まれる単語の分散表現ベクトルと固有表現14bに含まれる単語の分散表現ベクトルとを用いて、固有表現14bを選択してもよい。これにより、固有表現14aと意味的に近い固有表現14bが選択される。
【0034】
また、第1の言語は、機械翻訳モデルに入力される原文に用いられる言語であってもよく、第2の言語は、機械翻訳モデルから出力される翻訳文に用いられる言語であってもよい。これにより、機械翻訳モデルの精度が向上して機械翻訳の品質が向上する。
【0035】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
第2の実施の形態の情報処理装置100は、生物医学分野の対訳コーパスに対してデータ拡張を行って、対訳コーパスの量を増大させる。また、情報処理装置100は、データ拡張後の対訳コーパスを訓練データとして用いて、機械翻訳モデルを訓練する。また、情報処理装置100は、訓練された機械翻訳モデルを用いて機械翻訳を行う。ただし、データ拡張、機械学習および機械翻訳が、異なる情報処理装置によって行われてもよい。
【0036】
情報処理装置100は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置100が、コンピュータ、データ拡張装置、対訳コーパス生成装置、自然言語処理装置、機械学習装置または機械翻訳装置と呼ばれてもよい。第2の実施の形態の情報処理装置100は、第1の実施の形態の情報処理装置10に対応する。
【0037】
図2は、第2の実施の形態の情報処理装置のハードウェア例を示す図である。
情報処理装置100は、バスに接続されたCPU101、RAM102、HDD103、GPU104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0038】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムおよびデータをRAM102にロードし、プログラムを実行する。情報処理装置100は、複数のプロセッサを有してもよい。
【0039】
RAM102は、CPU101で実行されるプログラムおよびCPU101で演算に使用されるデータを一時的に記憶する揮発性半導体メモリである。情報処理装置100は、RAM以外の種類の揮発性メモリを有してもよい。
【0040】
HDD103は、オペレーティングシステム(OS:Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラムと、データとを記憶する不揮発性ストレージである。情報処理装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の不揮発性ストレージを有してもよい。
【0041】
GPU104は、CPU101と連携して画像処理を行い、情報処理装置100に接続された表示装置111に画像を出力する。表示装置111は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイまたはプロジェクタである。情報処理装置100に、プリンタなどの他の種類の出力デバイスが接続されてもよい。
【0042】
また、GPU104は、GPGPU(General Purpose Computing on Graphics Processing Unit)として使用されてもよい。GPU104は、CPU101からの指示に応じてプログラムを実行し得る。情報処理装置100は、RAM102以外の揮発性半導体メモリをGPUメモリとして有してもよい。
【0043】
入力インタフェース105は、情報処理装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112は、例えば、マウス、タッチパネルまたはキーボードである。情報処理装置100に複数の入力デバイスが接続されてもよい。
【0044】
媒体リーダ106は、記録媒体113に記録されたプログラムおよびデータを読み取る読み取り装置である。記録媒体113は、例えば、磁気ディスク、光ディスクまたは半導体メモリである。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)およびHDDが含まれる。光ディスクには、CD(Compact Disc)およびDVD(Digital Versatile Disc)が含まれる。媒体リーダ106は、記録媒体113から読み取られたプログラムおよびデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、CPU101によって実行されることがある。
【0045】
記録媒体113は、可搬型記録媒体であってもよい。記録媒体113は、プログラムおよびデータの配布に用いられることがある。また、記録媒体113およびHDD103が、コンピュータ読み取り可能な記録媒体と呼ばれてもよい。
【0046】
通信インタフェース107は、ネットワーク114を介して他の情報処理装置と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0047】
次に、対訳コーパスのデータ拡張について説明する。第2の実施の形態では、機械翻訳モデルが英語から日本語への機械翻訳を行うものとし、対訳コーパスは英語の文と日本語の文とを含む。ただし、第2の実施の形態のデータ拡張は、他の自然言語にも応用可能である。例えば、第2の実施の形態のデータ拡張は、英語から非ヨーロッパ系言語への機械翻訳のための対訳コーパスに好適である。また、第2の実施の形態では、翻訳対象が生物医学分野であり、対訳コーパスは生物医学分野のテキストである。
【0048】
図3は、対訳コーパスの第1文からの固有表現の認識例を示す図である。
情報処理装置100は、対訳コーパス131を取得する。対訳コーパス131は、例えば、生物医学分野の専門家によって人手で作成される。情報処理装置100は、生物医学分野の論文から対訳コーパス131を抽出してもよい。
【0049】
対訳コーパス131は、英文と、英文の翻訳に相当する和文とを含む。意味的に同等な英文と和文のペアにおいて、文の個数の比は1対1であることが多い。ただし、文の個数の比は、1対2、1対3、2対1または3対1であってもよい。対訳コーパス131は、英文と和文のペアを2以上含んでもよい。生物医学分野の英文と和文とを対応付けた対訳コーパス131を大量に収集することは容易でない。そこで、情報処理装置100は、対訳コーパス131に対してデータ拡張を行い、対訳コーパスの量を増やす。
【0050】
まず、情報処理装置100は、対訳コーパス131に含まれる英文に対して固有表現認識タスクを実行し、英文に含まれる固有表現を認識する。固有表現認識タスクには、訓練済みの固有表現認識モデルが使用される。情報処理装置100は、英文を単語に分割し、単語をトークンとして扱う。情報処理装置100は、固有表現認識モデルにトークン列を入力し、各トークンに付与されるタグを決定する。
【0051】
タグは、固有表現の種類に相当する固有表現クラスを表す記号と、固有表現の中でのトークンの相対位置を表す記号とを含む。固有表現クラスには、遺伝子(Gene)、薬品(Drug)、疾患(Disease)、突然変異(Mutation)およびその他(Other)が含まれる。
【0052】
相対位置には、単独(S:Single)、先頭(B:Beginning)、中間(I:Inside)および末尾(E:Ending)が含まれる。Sは、そのトークン単独で固有表現を形成していることを示す。Bは、そのトークンが固有表現を形成する複数のトークンの先頭であることを示す。Iは、そのトークンが固有表現を形成する複数のトークンの中間であることを示す。Eは、そのトークンが固有表現を形成する複数のトークンの末尾であることを示す。ただし、末尾のトークンにIが付与されることもある。
【0053】
固有表現情報141は、対訳コーパス131に含まれる英文の中から認識された「ischemic heart disease」という1つの固有表現を示す。この固有表現の固有表現クラスは、疾患名であることを表すDiseaseである。固有表現認識については、例えば、次の非特許文献にも記載されている。An Nguyen Le, Hajime Morita and Tomoya Iwakura, "Learning Entity-Likeness with Multiple Approximate Matches for Biomedical NER", Proc. of the International Conference on Recent Advances in Natural Language, (RANLP2021), pp. 1040-1049, September 2021。
【0054】
図4は、固有表現認識モデルの構造例を示す図である。
自然言語で記述されたテキスト151が与えられると、情報処理装置100は、テキスト151に含まれる文字列をトークンw
1,w
2,w
3,…,w
Nに分割する。トークンへの分割には、形態素解析などの自然言語処理技術が用いられてもよい。
【0055】
情報処理装置100は、各トークンを分散表現の単語ベクトルに変換することで、トークンw1,w2,w3,…,wNを単語ベクトルW1,W2,W3,…,WNに変換する。単語ベクトルは、所定の次元数の数値を列挙した数値ベクトルである。単語ベクトルの次元数は、例えば、300次元である。単語ベクトルW1,W2,W3,…,WNは、訓練済みの多層ニューラルネットワークを用いて算出される。
【0056】
情報処理装置100は、単語ベクトルW1,W2,W3,…,WNを、BioBERT(Bidirectional Encoder Representations from Transformers for Biomedical Text Mining)152に入力して、単語ベクトルT1,T2,T3,…,TNに変換する。BioBERT152は、生物医学分野のテキストを訓練データとして用いて機械学習により訓練された、訓練済みの多層ニューラルネットワークである。BioBERT152は、直列的に重ねられた24層のTransformerを含む。各Transformerは、入力されたベクトルを別のベクトルに変換する多層ニューラルネットワークである。
【0057】
また、情報処理装置100は、単語ベクトルT1,T2,T3,…,TNとは別に、トークンw1,w2,w3,…,wNに対応するマッチングベクトルD1,D2,D3,…,DNを算出する。各トークンのマッチングベクトルは、既知の固有表現が記載された固有表現辞書と当該トークンとの間のマッチング状態を示すマッチング情報を、分散表現ベクトルに変換したものである。マッチングベクトルは以下のように算出される。
【0058】
情報処理装置100は、トークンw1,w2,w3,…,wNから、n個の連続するトークンを示すn-gramを網羅的に生成する。n=1,2,3,…,Nである。トークンw1,w2,w3,…,wNから、1-gramはN通り生成され、2-gramはN-1通り生成され、3-gramはN-2通り生成される。
【0059】
情報処理装置100は、n-gramそれぞれについて、予め用意した固有表現辞書との間で近似文字列照合を行う。固有表現辞書は、遺伝子名、薬品名、疾患名、突然変異名などの既知の固有表現とその固有表現が属する固有表現クラスとを記載したものである。近似文字列照合では、情報処理装置100は、固有表現辞書に記載された1つの固有表現と1つのn-gramとの間で、編集距離を算出する。編集距離は、2つの文字列が一致するために行われる1文字の追加、1文字の置換または1文字の削除の回数である。編集距離=0は、2つの文字列が完全一致していることを意味する。
【0060】
情報処理装置100は、編集距離が閾値未満である場合、当該固有表現と当該n-gramとが類似すると判定する。n-gramに類似する固有表現が見つかると、情報処理装置100は、そのn-gramに含まれるトークンそれぞれに対してマッチング情報を生成する。マッチング情報は、クラス、適合度および位置の3つの要素を含む。
【0061】
クラスは、既知の固有表現が属する固有表現クラスである。適合度は、n-gramと既知の固有表現とが、完全一致関係(Exact)であるか近似関係(Approximate)であるかを示すフラグである。位置は、n-gramの中における着目するトークンの相対位置である。位置は、S,B,I,Eの何れかである。
【0062】
トークンw1,w2,w3,…,wNの中には、マッチング情報が1つのみ得られるトークンもあれば、マッチング情報が2つ以上得られるトークンもあれば、マッチング情報が1つも得られないトークンもある。マッチング情報が1つも得られないトークンに対しては、クラスがその他クラスであるダミーのマッチング情報が生成される。
【0063】
情報処理装置100は、各マッチング情報をマッチングベクトルに変換する。異なるマッチング情報のパターン(マッチングパターン)は少数であることから、マッチングパターンとその分散表現とを対応付けたマッチングパターン辞書が予め用意される。例えば、情報処理装置100は、各マッチングパターンに識別番号を付与し、識別番号を入力および出力に用いる多層ニューラルネットワークを機訓練する。情報処理装置100は、あるマッチングパターンの識別番号を入力層に与えたときに中間層で算出される数値を列挙した特徴ベクトルを、そのマッチングパターンに対応するマッチングベクトルとして採用する。マッチングベクトルの次元数は、例えば、100次元である。
【0064】
情報処理装置100は、1つのトークンに対して異なるパターンのマッチング情報が生成された場合、異なるマッチング情報に対応する2以上のマッチングベクトルを、プーリング処理によって1つのマッチングベクトルに集約する。プーリング処理は、2以上のベクトルの間で次元毎に数値演算を行うことで、次元数が同じ単一のベクトルを生成する処理である。プーリング処理として、最大プーリング(Max Pooling)や平均プーリング(Average Pooling)が挙げられる。最大プーリングは、次元毎に、2以上のベクトルの中で最大の数値を選択するプーリング処理である。平均プーリングは、次元毎に、2以上のベクトルに含まれる数値の平均値を算出するプーリング処理である。
【0065】
このようにして、トークンw1,w2,w3,…,wNに対応するマッチングベクトルD1,D2,D3,…,DNが算出される。情報処理装置100は、単語ベクトルT1,T2,T3,…,TNとマッチングベクトルD1,D2,D3,…,DNとを合成して、結合ベクトルV1,V2,V3,…,VNを生成する。ここでは、トークン毎に、単語ベクトルの後ろにマッチングベクトルを連結する。例えば、結合ベクトルは400次元である。
【0066】
情報処理装置100は、結合ベクトルV1,V2,V3,…,VNをラベル予測層153に入力して、トークンw1,w2,w3,…,wNに対応するタグスコアs1,s2,s3,…,sNを算出する。タグスコアは、複数のタグそれぞれの確信度を含む。情報処理装置100は、タグスコアs1,s2,s3,…,sNに基づいて、トークンw1,w2,w3,…,wNそれぞれに付与するタグを決定する。情報処理装置100は、トークン毎に、複数のタグのうち確信度が最大のタグを選択してもよい。
【0067】
ラベル予測層153は、多層ニューラルネットワークである。例えば、ラベル予測層153は、双方向LSTM(Long Short Term Memory)である。LSTMは、内部状態を保持する多層ニューラルネットワークである。内部状態を保持することから、複数の結合ベクトルを連続的にLSTMに入力すると、ある結合ベクトルに対するタグスコアは、その結合ベクトルだけでなくそれ以前の結合ベクトルにも依存する。
【0068】
双方向LSTMは、複数の結合ベクトルが順方向に入力される順方向LSTMと、複数の結合ベクトルが逆方向に入力される逆方向LSTMとを含む。双方向LSTMは、同じトークンに対応する順方向LSTMの出力ベクトルと逆方向LSTMの出力ベクトルとを合成して、当該トークンに対する最終的なタグスコアを算出する。
【0069】
図5は、対訳コーパスの第2文からの固有表現の特定例を示す図である。
次に、情報処理装置100は、認識された英語の固有表現に対応する日本語の固有表現を、対訳コーパス131に含まれる和文の中から特定する。このとき、情報処理装置100は、言語が異なる文の間で語句の対応を判定する語句整列モデルを使用する。
【0070】
情報処理装置100は、英文のトークン列と和文のトークン列とを、訓練済みの語句整列モデルに入力することで、英文のトークンと和文のトークンとの対応を示す語対応情報142を生成する。英文のトークンは単語に相当し、和文のトークンは形態素に相当する。語対応情報142は、トークン番号のペアを複数含む。ペアの1番目のトークン番号は、英文の中でのトークンの位置を示す。ペアの2番目のトークン番号は、和文の中でのトークンの位置を示す。ペアは、英文のトークンに対応する和文のトークンを示す。例えば、語対応情報142は、「ischemic」が「虚」「血」「性」に対応し、「heart」が「心」に対応し、「disease」が「疾患」に対応することを示す。
【0071】
情報処理装置100は、語対応情報142に基づいて、和文に含まれる複数の句それぞれが、認識された英語の固有表現に対応する確率を算出する確率計算を行う。これにより、情報処理装置100は、句対応情報143を生成する。句は、連続する1以上のトークンを含む。例えば、句対応情報143は、「虚血性心疾患」が「ischemic heart disease」に対応する確率が0.8145であり、「虚血性心疾患の」が「ischemic heart disease」に対応する確率が0.7985であることを示す。
【0072】
情報処理装置100は、句対応情報143の中から確率が最大の句を選択することで、固有表現情報144を生成する。固有表現情報144は、対訳コーパス131に含まれる英語の固有表現に対応する、対訳コーパス131に含まれる日本語の固有表現を示す。例えば、固有表現情報144は、「虚血性心疾患」を示す。
【0073】
語句整列については、例えば、次の非特許文献にも記載されている。Zi-Yi Dou and Graham Neubig, "Word Alignment by Fine-tuning Embeddings on Parallel Corpora", Proc. of the 16th Conference of the European Chapter of the Association for Computational Linguistics (EACL2021), pp. 2112-2128, April 2021。
【0074】
図6は、多言語語句整列に用いられる類似度行列の例を示す図である。
多言語語句整列においては、情報処理装置100は、英文のトークンそれぞれの多言語分散表現ベクトルと、和文のトークンそれぞれの多言語分散表現ベクトルとを算出する。多言語分散表現ベクトルの算出には、例えば、訓練済みの多言語BERTが使用される。多言語BERTは、類似する意味をもつ英単語と日本語単語とからは、類似する分散表現ベクトルが算出されるように訓練されている。
【0075】
情報処理装置100は、英文に含まれる1つのトークンと和文に含まれる1つのトークンとの間で、多言語分散表現ベクトルのコサイン類似度を算出する。コサイン類似度は、2つのベクトルの内積を2つのベクトルそれぞれの大きさで割ったものであり、-1以上1以下の値域をもつ。コサイン類似度が大きいほど、類似度が高いことを表す。
【0076】
類似度行列145は、英文に含まれる複数のトークンと和文に含まれる複数のトークンとの間で網羅的に算出されたコサイン類似度を示す。類似度行列145の列x1,x2,…,x8は、英文のトークンに対応する。類似度行列145の行y1,y2,…,y8は、和文のトークンに対応する。情報処理装置100は、類似度行列145に基づいて、英文の各トークンに対応付ける和文のトークンを決定する。
【0077】
情報処理装置100は、原則として、類似度行列145の列毎に、コサイン類似度が最大の行を選択する。これにより、英文のトークン毎に、最も類似する和文のトークンが選択される。ただし、情報処理装置100は、言語の特性を考慮して、英文の同一のトークンに対応付ける和文のトークンの個数を制限してもよく、和文の同一のトークンに対応付ける英文のトークンの個数を制限してもよい。
【0078】
また、情報処理装置100は、英文上で隣接するトークンには、和文上で隣接するトークンを優先的に対応付けてもよい。この場合、類似度行列145の対角成分が選択されやすくなる。情報処理装置100は、列を左から右に向かって走査する順方向走査と、列を右から左に向かって走査する逆方向走査を通じて、トークンの対応を決定してもよい。
【0079】
図7は、文字列が類似する他の固有表現の抽出例を示す図である。
次に、情報処理装置100は、生物医学分野の英語の専門用語辞書を参照して、対訳コーパス131に含まれる英語の固有表現に対して、類似文字列リスト146を生成する。類似文字列リスト146は、英語の固有表現に類似する英語の他の固有表現を示す。
【0080】
情報処理装置100は、固有表現クラス毎に英語の専門用語辞書を記憶している。よって、情報処理装置100は、遺伝子名の専門用語辞書、薬品名の専門用語辞書、疾患名の専門用語辞書および突然変異名の専門用語辞書を記憶している。情報処理装置100は、固有表現認識で判定された固有表現クラスに対応する専門用語辞書を選択する。
【0081】
情報処理装置100は、選択した専門用語辞書から、対訳コーパス131に含まれる英語の固有表現と類似する文字列をもつ英語の他の固有表現を検索する。情報処理装置100は、対訳コーパス131に含まれる英語の固有表現を、文字を単位とするn-gramに分解する。また、情報処理装置100は、専門用語辞書に含まれる英語の固有表現それぞれを、文字を単位とするn-gramに分解する。
【0082】
情報処理装置100は、異なるn-gramに異なる次元を割り当てたベクトルを規定する。情報処理装置100は、対訳コーパス131の固有表現に対して、出現するn-gramに対応する次元を1とし、その他の次元を0とするベクトルを生成する。また、情報処理装置100は、専門用語辞書の固有表現それぞれに対して、出現するn-gramに対応する次元を1とし、その他の次元を0とするベクトルを生成する。
【0083】
情報処理装置100は、対訳コーパス131の固有表現と専門用語辞書の固有表現との間で、ベクトルのコサイン類似度を算出する。情報処理装置100は、コサイン類似度が閾値を超える固有表現を、専門用語辞書から抽出する。ただし、情報処理装置100は、編集距離などの他の類似度指標を用いてもよい。
【0084】
情報処理装置100は、専門用語辞書から抽出した固有表現を含む類似文字列リスト146を生成する。類似文字列リスト146は、対訳コーパス131の固有表現と固有表現クラスが同じで、かつ、文字列が類似する英語の固有表現を示す。
【0085】
図8は、他の固有表現の訳語の抽出例を示す図である。
次に、情報処理装置100は、生物医学分野の多言語の専門用語辞書132を参照して、類似文字列リスト146に含まれる英語の固有表現それぞれに対して、訳語リスト147を生成する。訳語リスト147は、英語の固有表現に対応する日本語の固有表現を示す。英語の1つの固有表現に対して、日本語の2以上の固有表現が存在することがある。類似固有表現の抽出に参照する専門用語辞書と訳語の特定に参照する専門用語辞書132とは、原則として異なる辞書である。ただし、両者が同一の辞書であってもよい。
【0086】
専門用語辞書132は、生物医学分野の専門家によって体系化された多言語の専門用語を示す辞書である。専門用語辞書132は、例えば、UMLS(Unified Medical Language System)である。専門用語辞書132は、複数のレコードを含む。各レコードは、概念を識別する識別子を示すカラムと、自然言語を示すカラムと、固有表現を示すカラムとを含む。専門用語辞書132は、同一の概念をもつ異なる言語の固有表現を含む。専門用語辞書132は、同一の概念をもつ同一の自然言語の固有表現を複数含むことがある。
【0087】
例えば、英語の固有表現「ischemic heart disease」、「ischemic heart disease, NOS」および「myocardial ischemia」と、日本語の固有表現「虚血性心疾患」、「虚血性心筋症」および「虚血性心筋疾患」は、同一の概念を表す固有表現である。
【0088】
情報処理装置100は、類似文字列リスト146に含まれる英語の固有表現を専門用語辞書132から検索する。情報処理装置100は、その固有表現と同一の概念をもつ日本語の固有表現を、専門用語辞書132から抽出する。情報処理装置100は、抽出された日本語の固有表現を含む訳語リスト147を生成する。
【0089】
このとき、情報処理装置100は、同一の概念をもつ全ての日本語の固有表現を専門用語辞書132から抽出してもよいし、日本語の固有表現を絞り込んでもよい。例えば、情報処理装置100は、英語の固有表現に含まれる単語の多言語分散表現ベクトルと、日本語の固有表現の候補に含まれる単語の多言語分散表現ベクトルとを算出する。情報処理装置100は、多言語分散表現ベクトルを用いて、英語の固有表現と日本語の固有表現の候補との間の類似度を算出する。情報処理装置100は、類似度が閾値を超える日本語の固有表現のみを、専門用語辞書132から抽出する。
【0090】
図9は、拡張対訳コーパスの例を示す図である。
情報処理装置100は、類似文字列リスト146から英語の固有表現を1つ選択し、訳語リスト147から日本語の固有表現を1つ選択することで、英語の固有表現と日本語の固有表現のペアを1つ生成する。情報処理装置100は、このようにして、英語の固有表現と日本語の固有表現のペアを複数生成する。
【0091】
情報処理装置100は、対訳コーパス131に含まれる英語の固有表現を、生成した固有表現ペアに含まれる英語の固有表現に置換する。また、情報処理装置100は、対訳コーパス131に含まれる日本語の固有表現を、同一の固有表現ペアに含まれる日本語の固有表現に置換する。これにより、情報処理装置100は、複数の固有表現ペアを用いて、英文と和文のペアを複数含む拡張対訳コーパス133を生成する。
【0092】
なお、専門用語辞書132が、対訳コーパス131に含まれる英語の固有表現に対応する日本語の2以上の固有表現を含むことがある。その場合、情報処理装置100は、対訳コーパス131の英語の固有表現を変更せず、対訳コーパス131の日本語の固有表現のみを変更した英文と和文のペアを生成することも可能である。
【0093】
例えば、拡張対訳コーパス133は、対訳コーパス131の「虚血性心疾患」を「虚血性心筋症」または「虚血性心筋疾患」に置換した文ペアを含む。また、拡張対訳コーパス133は、対訳コーパス131の「ischemic heart disease」を「ischemic heart disease, NOS」に置換した文ペアを含む。また、拡張対訳コーパス133は、更に対訳コーパス131の「虚血性心疾患」を「虚血性心筋症」または「虚血性心筋疾患」に置換した文ペアを含む。また、拡張対訳コーパス133は、対訳コーパス131の「ischemic heart disease」を「myocardial ischemia」に置換した文ペアを含む。また、拡張対訳コーパス133は、更に対訳コーパス131の「虚血性心疾患」を「虚血性心筋症」または「虚血性心筋疾患」に置換した文ペアを含む。
【0094】
ここで、生物医学分野の専門用語は、複合語であることがあり、入れ子構造をもつこともある。そのため、ある単語を別の単語に単純に置換すると、実在しない専門用語が創作されてしまうことがある。これに対して、情報処理装置100は、対訳コーパス131の外部の専門用語辞書を参照して、固有表現単位で文字列を置換する。これにより、実在しない固有表現が創作されるリスクが低下し、拡張対訳コーパス133の品質が向上する。
【0095】
また、名詞と動詞の置換など、文字列の置換によって品詞が変化してしまうリスクが低下する。これにより、拡張対訳コーパス133の品質が向上する。また、情報処理装置100は、外部の専門用語辞書を参照することで、元の対訳コーパス131に含まれない新たな固有表現を拡張対訳コーパス133に追加することができる。これにより、文ペアのバリエーションの幅が広がり、拡張対訳コーパス133が充実する。
【0096】
図10は、機械翻訳モデルの構造例を示す図である。
情報処理装置100は、拡張対訳コーパス133を用いて機械翻訳モデルを訓練する。機械翻訳モデルには、Transformerが使用される。機械翻訳モデルは、分散表現モデル161,162、位置エンコーダ163、エンコーダ164、デコーダ165および線形変換層166を含む。エンコーダ164は、自己アテンション層171およびフィードフォワード層172を含む。デコーダ165は、自己アテンション層173,174およびフィードフォワード層175を含む。
【0097】
分散表現モデル161は、英語のトークンを分散表現ベクトルに変換する。分散表現モデル161には、原文を示す英語のトークン列が入力される。分散表現モデル162は、日本語のトークンを分散表現ベクトルに変換する。分散表現モデル162には、翻訳文の一部分を示す日本語のトークン列が入力される。分散表現モデル162に入力されるトークン列は、翻訳文のうち既に訳語が決定された部分であり、翻訳文の先頭から、現在翻訳しようとしているトークンの1つ前までの範囲である。
【0098】
位置エンコーダ163は、文の中での各トークンの位置を示すトークン番号を、分散表現ベクトルに変換する。トークン番号から分散表現ベクトルへの変換には、例えば、サイン関数またはコサイン関数が用いられる。位置エンコーダ163は、分散表現モデル161が出力する原文のトークンの分散表現ベクトルの後ろに、トークン番号の分散表現ベクトルを連結し、自己アテンション層171に入力する。また、位置エンコーダ163は、分散表現モデル162が出力する翻訳文のトークンの分散表現ベクトルの後ろに、トークン番号の分散表現ベクトルを連結し、自己アテンション層173に入力する。
【0099】
自己アテンション層171は、アテンション機構を用いて、原文の各トークンの分散表現ベクトルを変換する。自己アテンション層171は、訓練済みの係数を含む第1の行列を用いて、着目するトークンの分散表現ベクトルを、クエリと呼ばれるベクトルに変換する。また、自己アテンション層171は、訓練済みの係数を含む第2の行列を用いて、他のトークンの分散表現ベクトルを、キーと呼ばれるベクトルに変換する。また、自己アテンション層171は、訓練済みの係数を含む第3の行列を用いて、他のトークンの分散表現ベクトルを、バリューと呼ばれるベクトルに変換する。
【0100】
自己アテンション層171は、クエリとキーの内積を求めることで、着目するトークンにとっての他のトークンの重要度を示すアテンション重みを算出する。自己アテンション層171は、他のトークンのバリューをアテンション重みで重み付けして、着目するトークンのベクトルと合成することで、着目するトークンのベクトルを更新する。よって、自己アテンション層171は、各トークンのベクトルを他のトークンを参照して更新する。
【0101】
フィードフォワード層172は、自己アテンション層171が出力する各トークンの分散表現ベクトルを、訓練済みの係数を用いて変換する。フィードフォワード層172は、変換した分散表現ベクトルを自己アテンション層174に入力する。なお、機械翻訳モデルは、エンコーダ164を直列に複数個接続して使用することがある。
【0102】
自己アテンション層173は、自己アテンション層171と同様のアテンション機構を用いて、翻訳文の各トークンの分散表現ベクトルを変換する。自己アテンション層174は、フィードフォワード層172および自己アテンション層173から分散表現ベクトルを受け付け、アテンション機構を用いて分散表現ベクトルを変換する。フィードフォワード層175は、自己アテンション層174が出力する分散表現ベクトルを変換する。なお、機械翻訳モデルは、デコーダ165を直列に複数個接続して使用することがある。
【0103】
線形変換層166は、フィードフォワード層175から受け付けるベクトルを用いて、日本語の単語それぞれの確信度を算出する。機械翻訳モデルは、例えば、確信度が最大の単語を、翻訳文に含まれる次の単語として採用する。機械翻訳モデルは、ここで決定された訳語を分散表現モデル162に入力する。
【0104】
情報処理装置100は、誤差逆伝播法によって機械翻訳モデルを訓練する。情報処理装置100は、拡張対訳コーパス133に含まれる英文を機械翻訳モデルに入力し、機械翻訳モデルが出力する翻訳文を取得する。情報処理装置100は、拡張対訳コーパス133に含まれる和文と取得した翻訳文との間の誤差を算出し、誤差が小さくなるように、機械翻訳モデルに含まれる係数を更新する。情報処理装置100は、使用する文ペアを切り替えながら、誤差の算出と係数の更新とを繰り返す。
【0105】
情報処理装置100は、訓練された機械翻訳モデルを用いて、入力された英文を和文に翻訳する。対訳コーパス131に代えて拡張対訳コーパス133を用いて機械翻訳モデルを訓練することで、機械翻訳モデルの精度が向上する。一例として、対訳コーパス131を用いて訓練された機械翻訳モデルのBLEU(Bilingual Evaluation Understudy)スコアは14.0、拡張対訳コーパス133を用いて訓練された機械翻訳モデルのBLEUスコアは14.8である。BLEUスコアは、人手で作成された参照翻訳文と機械翻訳された翻訳文との類似度を示す指標であり、大きいほど高評価であることを表す。
【0106】
次に、情報処理装置100の機能および処理手順について説明する。
図11は、情報処理装置の機能例を示すブロック図である。
情報処理装置100は、コーパス記憶部121、モデル記憶部122、辞書記憶部123、固有表現認識部124、語句整列部125、辞書検索部126、コーパス拡張部127、機械学習部128および機械翻訳部129を有する。コーパス記憶部121、モデル記憶部122および辞書記憶部123は、例えば、RAM102またはHDD103を用いて実装される。固有表現認識部124、語句整列部125、辞書検索部126、コーパス拡張部127、機械学習部128および機械翻訳部129は、例えば、CPU101、GPU104およびプログラムを用いて実装される。
【0107】
コーパス記憶部121は、生物医学分野の日英の対訳コーパスを記憶する。また、コーパス記憶部121は、この対訳コーパスから生成された拡張対訳コーパスを記憶する。
モデル記憶部122は、各種の訓練済みの機械学習モデルを記憶する。訓練済みの機械学習モデルには、分散表現モデル、固有表現認識モデル、語句整列モデルなどが含まれる。また、モデル記憶部122は、訓練された機械翻訳モデルを記憶する。
【0108】
辞書記憶部123は、生物医学分野の専門用語辞書を記憶する。専門用語辞書には、固有表現クラス毎に分かれた英語の専門用語辞書が含まれる。また、専門用語辞書には、同一の概念を表す異なる言語の固有表現を収集した多言語の専門用語辞書が含まれる。
【0109】
固有表現認識部124は、コーパス記憶部121からデータ拡張前の対訳コーパスを読み出し、モデル記憶部122に記憶された固有表現認識モデルを用いて、対訳コーパスに含まれる英文から英語の固有表現を認識する。
【0110】
語句整列部125は、モデル記憶部122に記憶された語句整列モデルを用いて、対訳コーパスに含まれる英文と和文との間の語対応関係および句対応関係を判定する。語句整列部125は、句対応関係に基づいて、和文の中から、固有表現認識部124で認識された英語の固有表現に対応する日本語の固有表現を特定する。
【0111】
辞書検索部126は、固有表現認識部124で認識された英語の固有表現の固有表現クラスに対応する英語の専門用語辞書を、辞書記憶部123から読み出す。辞書検索部126は、認識された英語の固有表現とのコサイン類似度が閾値を超えるような英語の他の固有表現を、読み出された専門用語辞書から抽出する。これにより、辞書検索部126は、認識された英語の固有表現に対して、類似文字列リストを生成する。
【0112】
また、辞書検索部126は、辞書記憶部123から多言語の専門用語辞書を読み出す。辞書検索部126は、類似文字列リストに含まれる英語の固有表現と同じ概念を表す日本語の固有表現を、多言語の専門用語辞書から抽出する。これにより、辞書検索部126は、英語の他の固有表現に対して、訳語リストを生成する。
【0113】
コーパス拡張部127は、辞書検索部126で生成された類似文字列リストの中から英語の固有表現を1つ選択し、選択した英語の固有表現に対応する訳語リストの中から日本語の固有表現を1つ選択することで、固有表現ペアを生成する。コーパス拡張部127は、このようにして複数の固有表現ペアを生成する。
【0114】
コーパス拡張部127は、固有表現認識部124で認識された英文の固有表現と語句整列部125で特定された和文の固有表現とを、複数の固有表現ペアそれぞれを用いて置換する。これにより、コーパス拡張部127は、文ペアの個数が増えた拡張対訳コーパスを生成し、コーパス記憶部121に保存する。なお、コーパス拡張部127は、拡張対訳コーパスを表示装置111に表示してもよいし、他の情報処理装置に送信してもよい。
【0115】
機械学習部128は、コーパス記憶部121から拡張対訳コーパスを読み出す。機械学習部128は、拡張対訳コーパスを訓練データとして用いて、英語の原文を日本語の翻訳文に変換する機械翻訳モデルを訓練し、訓練された機械翻訳モデルをモデル記憶部122に保存する。なお、機械学習部128は、機械翻訳モデルを表示装置111に表示してもよいし、他の情報処理装置に送信してもよい。
【0116】
機械翻訳部129は、英語のテキストを受け付ける。英語のテキストは、ユーザから入力されてもよく、他の情報処理装置から受信されてもよい。機械翻訳部129は、モデル記憶部122から訓練済みの機械翻訳モデルを読み出し、受け付けた英語のテキストを機械翻訳モデルに入力する。機械翻訳部129は、機械翻訳モデルによって生成された日本語の翻訳文を出力する。機械翻訳部129は、翻訳文を不揮発性ストレージに保存してもよいし、表示装置111に表示してもよいし、他の情報処理装置に送信してもよい。
【0117】
図12は、コーパス拡張の手順例を示すフローチャートである。
(S10)固有表現認識部124は、固有表現認識モデルを用いて、対訳コーパスに含まれる第1言語の文の中から固有表現#1を認識する。
【0118】
(S11)語句整列部125は、対訳コーパスに含まれる第1言語の文および第2言語の文それぞれをトークンに分割する。語句整列部125は、語句整列モデルを用いて、第1言語のトークンと第2言語のトークンとの対応を判定する。
【0119】
(S12)語句整列部125は、トークンの対応関係から第1言語の句と第2言語の句との対応を判定し、固有表現#1に対応する第2言語の固有表現#2を特定する。
(S13)辞書検索部126は、ステップS10で認識された固有表現#1が属する固有表現クラスに関する第1言語の辞書#1を読み出す。
【0120】
(S14)辞書検索部126は、対訳コーパスに含まれる固有表現#1と辞書#1に含まれる複数の固有表現#3それぞれとの間で、文字列の類似度を算出する。
(S15)辞書検索部126は、ステップS14で算出された類似度が閾値を超える固有表現#3を、辞書#1から抽出する。
【0121】
(S16)辞書検索部126は、同一の概念を表す第1言語の固有表現および第2言語の固有表現を対応付けて記載した辞書#2を読み出す。
(S17)辞書検索部126は、辞書#2から固有表現#3を検索し、固有表現#3に対応する第2言語の固有表現#4を抽出する。
【0122】
(S18)コーパス拡張部127は、対訳コーパスに含まれる固有表現#1を固有表現#3に置換し、対訳コーパスに含まれる固有表現#2を固有表現#4に置換することで、新しい文ペアを生成する。これにより、コーパス拡張部127は、元の文ペアに加えて新しい文ペアを含む拡張対訳コーパスを生成する。なお、
図12において、第1言語の一例は英語であり、第2言語の一例は日本語である。
【0123】
以上説明したように、第2の実施の形態の情報処理装置100は、データ拡張により、元の対訳コーパスよりも文ペアが増えた拡張対訳コーパスを生成し、拡張対訳コーパスを用いて機械翻訳モデルを訓練する。これにより、機械翻訳モデルの精度が向上し、機械翻訳タスクの品質が向上する。特に、情報処理装置100は、大量の対訳コーパスを収集することが容易でない生物医学分野において、文ペアを増やすことができる。
【0124】
また、新しい文ペアは、固有表現単位で句を置換することで行われる。これにより、単純な文字列置換と比較して、実在しない固有表現が創作されるリスクが低下する。特に、複合語の固有表現や入れ子構造の固有表現が多い生物医学分野において、当該リスクが低下する。また、文字列置換によって品詞が変化してしまうリスクが低下する。よって、拡張対訳コーパスの品質が向上し、機械翻訳モデルの精度が向上する。
【0125】
また、データ拡張においては、元の対訳コーパスに加えて生物医学分野の専門用語辞書が参照される。これにより、元の対訳コーパスに含まれない固有表現が拡張対訳コーパスに挿入され、文ペアのバリエーションが増える。また、置換後の固有表現は、元の固有表現と同一の固有表現クラスに属し、かつ、コサイン類似度が閾値を超えるものである。これにより、言語的に不自然な文ペアが生成されてしまうリスクが低下する。
【符号の説明】
【0126】
10 情報処理装置
11 記憶部
12 処理部
13,14 対訳コーパス
13a,13b,14a,14b 固有表現
15,16 辞書データ