(57)【要約】【課題】辞書で定義することが困難な固有表現を、テキストデータから抽出すること。【解決手段】情報処理装置１００は、所定の対象を第１の固有表現で表記した第１入力文を第１学習モデルに入力した場合、第１学習モデルから出力される値が、第１入力文に対応する正解情報に近づくように、第１学習モデルの第１パラメータを学習する。情報処理装置１００は、第１入力文を第１学習モデルに入力した際に生成される中間表現と、所定の対象を第２の固有表現で表記した第２入力文とを第２学習モデルに入力した場合、第２学習モデルから出力される値が、第２入力文に対応する正解情報に近づくように、第１パラメータおよび第２学習モデルの第２パラメータを学習する。【選択図】図３
2020140676.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが実行する学習方法であって、
所定の対象を第１の固有表現で表記した第１入力文を第１学習モデルに入力した場合、前記第１学習モデルから出力される値が、前記第１入力文に対応する正解情報に近づくように、前記第１学習モデルの第１パラメータを学習し、
前記第１入力文を前記第１学習モデルに入力した際に生成される中間表現と、前記所定の対象を第２の固有表現で表記した第２入力文とを第２学習モデルに入力した場合、前記第２学習モデルから出力される値が、前記第２入力文に対応する正解情報に近づくように、前記第１パラメータおよび前記第２学習モデルの第２パラメータを学習する
処理を実行することを特徴とする学習方法。
【請求項２】
学習済みの前記第１パラメータを設定した前記第１学習モデルに、固有表現の抽出対象となる入力文を入力し、前記第１学習モデルから出力される値を基にして、前記入力文から固有表現を抽出する処理を更に実行することを特徴とする請求項１に記載の学習方法。
【請求項３】
前記第１学習モデルおよび前記第２学習モデルは、ＲＮＮ（Recurrent  Neural  Network）を有し、前記第１パラメータを学習する処理、前記第１パラメータおよび前記第２パラメータを学習する処理は、前記ＲＮＮのパラメータを学習することを特徴とする請求項１または２に記載の学習方法。
【請求項４】
前記所定の対象は、化合物、人物、会社を含むことを特徴とする請求項１、２または３に記載の学習方法。
【請求項５】
コンピュータが実行する抽出方法であって、
所定の対象を第１の固有表現で表記した第１入力文を第１学習モデルに入力した場合、前記第１学習モデルから出力される値が、前記第１入力文に対応する正解情報に近づくように、前記第１学習モデルの第１パラメータを学習し、
前記第１入力文を前記第１学習モデルに入力した際に生成される中間表現と、前記所定の対象を第２の固有表現で表記した第２入力文とを第２学習モデルに入力した場合、前記第２学習モデルから出力される値が、前記第２入力文に対応する正解情報に近づくように、前記第１パラメータおよび前記第２学習モデルの第２パラメータを学習し、
学習済みの前記第１パラメータを設定した前記第１学習モデルに、固有表現の抽出対象となる入力文を入力し、前記第１学習モデルから出力される値を基にして、前記入力文から固有表現を抽出する
処理を実行することを特徴とする抽出方法。
【請求項６】
コンピュータに、
所定の対象を第１の固有表現で表記した第１入力文を第１学習モデルに入力した場合、前記第１学習モデルから出力される値が、前記第１入力文に対応する正解情報に近づくように、前記第１学習モデルの第１パラメータを学習し、
前記第１入力文を前記第１学習モデルに入力した際に生成される中間表現と、前記所定の対象を第２の固有表現で表記した第２入力文とを第２学習モデルに入力した場合、前記第２学習モデルから出力される値が、前記第２入力文に対応する正解情報に近づくように、前記第１パラメータおよび前記第２学習モデルの第２パラメータを学習する
処理を実行させることを特徴とする学習プログラム。
【請求項７】
所定の対象を第１の固有表現で表記した第１入力文を第１学習モデルに入力した場合、前記第１学習モデルから出力される値が、前記第１入力文に対応する正解情報に近づくように、前記第１学習モデルの第１パラメータを学習する第１学習部と、
前記第１入力文を前記第１学習モデルに入力した際に生成される中間表現と、前記所定の対象を第２の固有表現で表記した第２入力文とを第２学習モデルに入力した場合、前記第２学習モデルから出力される値が、前記第２入力文に対応する正解情報に近づくように、前記第１パラメータおよび前記第２学習モデルの第２パラメータを学習する第２学習部と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習方法等に関する。
【背景技術】
【０００２】
テキストデータから、固有表現を抽出する技術がある。たとえば、固有表現は、人名や組織名などの固有名詞、日付、時間などの数値表現、化学物質、遺伝子名などの技術用語に対応するものである。
【０００３】
たとえば、抽出対象となる複数の固有表現を辞書に登録しておき、テキストデータと、辞書とを比較することで、テキストデータから、固有表現を抽出することができる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Jason  P.C  Chiu,  Eric  Nichols  "Named  Entity  Recognition  with  Bidirectional  LSTM-CNNs"  Transactions  of  the  Association  for  Computational  Linguistics,vol.4,pp.357−370,2016.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
固有表現は、常に増え続けている。たとえば、化合物であれば、１分間に１個増えると言われており、化合物が増える毎に、新たな化学物質名（固有表現）が現れる。
【０００６】
また、化合物に関しては、命名法が複数存在するため、一つの化合物が複数の名称をもつ場合がある。図１０は、一つの化合物が複数の固有表現をもつ一例を示す図である。図１０では、化合物「フェニルアラニン」に対応する複数の固有表現を示す。フェニルアラニンには、「Ｃ９Ｈ１１ＮＯ２」、「（Ｓ）−αアミノベンゼンプロパン酸」、「（Ｓ）−２−ベンジルグリシン」等、多数の固有表現がある。
【０００７】
図１１は、表記問題が起きる例を説明するための図である。図１１において、アクリル酸フェニルに、「tert-ブチル」が追加された構造は、「アクリル酸４-tret-ブチルフェニル」と命名される。一方、アクリル酸フェニルに、「２つのメチルと、１つのエチル（ジメチルエチル）」が追加された構造は、「アクリル酸（１、１-ジメチルエチル）フェニル」と命名される。ここで、「tert-ブチル」の構造は、「ジメチルエチル」の構造と同じであるため、「アクリル酸４-tret-ブチルフェニル」と、「アクリル酸（１、１-ジメチルエチル）フェニル」とは、同じ化合物を示す。
【０００８】
固有表現が増えるものは、上記の化合物に限らず、会社名や、人物名も該当する。また、会社名であれば、正式名称の代わりに、会社の略称が用いられるなど同一の会社名に異なる表記が用いられる場合がある。また、人物名であれば、同一の人物名に関して、異なるニックネームが用いられる場合がある。
【０００９】
すなわち、日々増え続ける固有表現を、辞書に登録することでテキストから抽出することは、難しいという問題がある。そこで、文脈情報も手掛かりに新規の固有表現を抽出するための固有表現抽出技術が用いられる。人名であれば、「さん」や「君」といった人名の出現を示す語彙が手掛かりとなる。
【００１０】
１つの側面では、本発明は、辞書で定義することが困難な固有表現を、テキストデータから抽出するができる学習方法、抽出方法、学習プログラムおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
第１の案では、コンピュータが次の処理を実行する。コンピュータは、所定の対象を第１の固有表現で表記した第１入力文を第１学習モデルに入力した場合、第１学習モデルから出力される値が、第１入力文に対応する正解情報に近づくように、第１学習モデルの第１パラメータを学習する。コンピュータは、第１入力文を第１学習モデルに入力した際に生成される中間表現と、所定の対象を第２の固有表現で表記した第２入力文とを第２学習モデルに入力した場合、第２学習モデルから出力される値が、第２入力文に対応する正解情報に近づくように、第１パラメータおよび第２学習モデルの第２パラメータを学習する。
【発明の効果】
【００１２】
辞書で定義することが困難な固有表現を、テキストデータから抽出するができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、第１学習フェーズの一例を説明するための図である。
【図２】図２は、第２学習フェーズの一例を説明するための図である。
【図３】図３は、本実施例に係る情報処理装置の構成を示す機能ブロック図である。
【図４】図４は、学習データ記憶部のデータ構造の一例を示す図である。
【図５】図５は、本実施例に係る学習処理を示すフローチャートである。
【図６】図６は、本実施例に係る抽出処理を示すフローチャートである。
【図７】図７は、学習可能なその他の固有表現の一例を説明するための図（１）である。
【図８】図８は、学習可能なその他の固有表現の一例を説明するための図（２）である。
【図９】図９は、本実施例に係る情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【図１０】図１０は、一つの化合物が複数の固有表現をもつ一例を示す図である。
【図１１】図１１は、表記問題が起きる例を説明するための図である。
【発明を実施するための形態】
【００１４】
以下に、本願の開示する学習方法、抽出方法、学習プログラムおよび情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１５】
本実施例に係る情報処理装置は、テキストデータから固有表現を抽出するためのエンコーダと、固有表現を言い換えた他の固有表現を生成するデコーダとの学習を行う。情報処理装置が行う学習には、エンコーダの学習を行う第１学習フェーズと、エンコーダおよびデコーダを同時に学習する第２学習フェーズが含まれる。そして、情報処理装置は、第１学習フェーズおよび第２学習フェーズで学習したエンコーダを用いて、処理対象となるテキストデータから、固有表現を抽出する。
【００１６】
図１は、第１学習フェーズの一例を説明するための図である。情報処理装置は、エンコーダ１０を実行する。エンコーダ１０には、ＷＥ（Word  Embeddings）１１ａ〜１１ｃと、ＬＳＴＭ（Long  Short-Term  Memory）１２ａ〜１２ｃと、固有表現出力層１３ａ〜１３ｃとを有する。適宜、ＷＥ１１ａ〜１１ｃをまとめてＷＥ１１と表記する。ＬＳＴＭ１２ａ〜１２ｃをまとめてＬＳＴＭ１２と表記する。固有表現出力層１３ａ〜１３ｃをまとめて、固有表現出力層１３と表記する。
【００１７】
図１の例では、簡単化のために、化合物だけを与えている。しかし、実際には、「化合物  Ｌ−  フェニル  アラニン  は・・・」のような文を与えて、「化合物」は固有表現以外（Ｏ），「Ｌ−」、「フェニル」、「アラニン」は、「Ｂ−ＣＨＥＭ（化合物の先頭の単語）」、「Ｉ−ＣＨＥＭ（化合物の中の単語）」、「Ｅ−ＣＨＥＭ（化合物の最後の単語）」、「は」は固有表現以外（Ｏ）という文を構成する単語列と各単語に付与されるラベルを与えて、学習する。他には、「カフェイン」のように、一つの単語で化合物名となる場合の「Ｓ−ＣＨＥＭ」も用いる。また、リカレントニューラルネット―ワーク（ＲＮＮ）の一つであるＬＳＴＭを例に説明する。
【００１８】
ＷＥ１１は、入力文から、入力文に含まれる各単語の分散表現（ベクトル）を生成するモデルである。本実施例では一例として、化合物の固有表現の文字列を、入力文として説明するがこれに限定されるものではない。たとえば、ＷＥ１１の初期値は、word2vecの仕組みを基にして、各単語のベクトルを生成した結果を利用する。
【００１９】
学習の際は、まず、入力文をエンコードする。たとえば、図１では、ＬＳＴＭ１２ａからＬＳＴＭ１２ｃを利用して、各単語に対応する出力を得る。単語「Ｌ−」に対応するＬＳＴＭは１２ａの出力となる。
【００２０】
その後、各単語のＬＳＴＭ１２での出力結果を基に、固有表現出力層（１３ａから１３ｃ）を用いて各単語に各ラベルが付与される確率を計算し、各単語の正解ラベルに高い確率が付与されるように、パラメータの更新を行う。
【００２１】
固有表現出力層（１３ａから１３ｃ）は、ＬＳＴＭ１２から入力される隠れ状態ベクトルを基にして、単語が先頭の単語「Ｂ−ＣＨＥＭ」である確率、中の単語「Ｉ−ＣＨＥＭ」である確率、終わりの単語「Ｅ−ＣＨＥＭ」、一つの単語で化合物名「Ｓ−ＣＨＥＭ」、固有表現以外（Ｏ）である確率をそれぞれ含む確率分布を算出する出力層である。すべての単語に対して、ラベル付与の確率計算が終わったのちに、各単語の正解ラベルに高い確率が付与されるように、パラメータの更新を行う。
【００２２】
この例での更新対象は、単語ベクトルＷＥ、エンコード用のＬＳＴＭ１２のパラメータθ１２、固有表現出力層のパラメータである。なお、ここでの例では文頭から文末の一方向にエンコードしているが、こちらの加えて、文末から文頭の方向のエンコードを行うＬＳＴＭの結果も併せて用いることもできる。
【００２３】
情報処理装置は、他の学習用の入力文と、正解タグとの組を基にして、上記処理を繰り返し実行することで、エンコーダ１０を学習する。
【００２４】
図２は、第２学習フェーズの一例を説明するための図である。情報処理装置は、エンコーダ１０およびデコーダ２０を実行する。情報処理装置は、図１で説明した第１フェーズで学習したパラメータを、ＷＥ１１およびＬＳＴＭ１２に設定する。
【００２５】
デコーダ２０には、ＷＥ２１ａ〜２１ｄと、ＬＳＴＭ２２ａ〜２２ｄと、言い換え出力層２３ａ〜２３ｄとを有する。適宜、ＷＥ２１ａ〜２１ｄをまとめてＷＥ２１と表記する。ＬＳＴＭ２２ａ〜２２ｄをまとめて、ＬＳＴＭ２２と表記する。言い換え出力層２３ａ〜２３ｄをまとめて、言い換え出力層２３と表記する。
【００２６】
ＷＥ２１は、言い換えの入力文に含まれる各単語の分散表現（ベクトル）を生成するモデルである。本実施例では一例として、化合物の固有表現（言い換えの固有表現）を、言い換えの入力として説明するがこれに限定されるものではない。部分的に言い換えられた文を入力として学習することも可能である。
【００２７】
ここで、「言い換えの入力」とは、エンコーダ１０に入力された入力文が示す化合物を言い換えた入力となる。たとえば、エンコーダ１０に入力された入力文「Ｌ−フェニルアラニン」に対応する複数の言い換えの入力文の内の一つは「（Ｓ）−フェニルアラニン」となる。「Ｌ−フェニルアラニン」および「（Ｓ）−フェニルアラニン」は、化合物「フェニルアラニン」を示す入力である。
【００２８】
ＬＳＴＭ２２は、ＬＳＴＭ１２から、入力の最後の単語ＣＨＥＭが入力された時刻の中間表現を受け付け、ＷＥ２１から、単語のベクトルの入力を受け付ける。ＬＳＴＭ２２は、中間表現と、単語のベクトルと、ＬＳＴＭ２２のパラメータθ２２に基づく計算を行って、隠れ状態ベクトルを算出する。ＬＳＴＭ２２は、隠れ状態ベクトルを言い換え出力層２３と次の単語のＬＳＴＭに渡す。ＬＳＴＭ２２は、単語のベクトルが入力される度に、上記処理を繰り返し実行する。
【００２９】
言い換え出力層２３ａは、ＬＳＴＭ２２から入力される隠れ状態ベクトルを基にして、各単語の確率分布を出力する出力層である。
【００３０】
図２では、学習用の入力文の単語「Ｌ−」、「フェニル」、「アラニン」に対して、言い換えの入力文の単語、「（Ｓ）−」、「フェニル」、「アラニン」を与える。また、情報処理装置は、ＷＥ２１に、言い換えの入力文の単語を順に入力する際に、たとえば、始めに文の先頭を示す単語として「ＢＯＳ（Begin  Of  Sentence）」を入力する。また、情報処理装置は、言い換え出力層２３から出力される確率分布との損失を算出する場合に比較する正解情報（言い換えの入力文）の最後を示す単語として、「ＥＯＳ（End  Of  Sentence）」を設定する。
【００３１】
情報処理装置は、学習用の入力文の単語「Ｌ−」、「フェニル」、「アラニン」を、エンコーダ１０のＷＥ１１に順に入力し、「アラニン」を入力した時点で、ＬＳＴＭ１２ｃにおいて更新される中間表現によって、ＬＳＴＭ２２の中間表現を更新したうえで、次の１時刻目〜４時刻目までの処理を順に実行する。
【００３２】
情報処理装置は、１時刻目に、エンコーダ１０のＬＳＴＭ１２の出力と、単語「ＢＯＳ」のベクトルをＬＳＴＭ２２ａに入力することで、隠れ状態ベクトルを算出する。情報処理装置は、隠れ状態ベクトルを言い換え出力層２３ａに入力し、各単語の確率分布を出力する。情報処理装置は、言い換え出力層２３ａから出力される確率分布と、正解単語「（Ｓ）−」とを比較して、１時刻目の損失を算出する。
【００３３】
情報処理装置は、２時刻目に、ひとつ前のＬＳＴＭ２２の出力と、単語「（Ｓ）−」のベクトルをＬＳＴＭ２２ｂに入力することで、隠れ状態ベクトルを算出する。情報処理装置は、隠れ状態ベクトルを言い換え出力層２３ｂに入力し、各単語の確率分布を出力する。情報処理装置は、言い換え出力層２３ｂから出力される確率分布と、正解単語「フェニル」とを比較して、２時刻目の損失を算出する。
【００３４】
情報処理装置は、３時刻目に、ひとつ前のＬＳＴＭ２２の出力と、単語「フェニル」のベクトルをＬＳＴＭ２２ｃに入力することで、隠れ状態ベクトル算出する。情報処理装置は、隠れ状態ベクトルを言い換え出力層２３ｃに入力し、各単語の確率分布を出力する。情報処理装置は、言い換え出力層２３ｃから出力される確率分布と、正解単語「アラニン」とを比較して、３時刻目の損失を算出する。
【００３５】
情報処理装置は、４時刻目に、ひとつ前のＬＳＴＭの出力と、情報処理装置は、単語「アラニン」のベクトルをＬＳＴＭ２２ｄに入力することで、隠れ状態ベクトルを算出する。情報処理装置は、隠れ状態ベクトルを言い換え出力層２３ｄに入力し、各単語の確率分布を出力する。情報処理装置は、言い換え出力層２３ｄから出力される確率分布と、正解単語「ＥＯＳ」とを比較して、４時刻目の損失を算出する。
【００３６】
情報処理装置は、１時刻目〜４時刻目に算出した損失が最小化されるように、ＬＳＴＭ１２のパラメータθ１２、ＷＥ１１のパラメータ、ＬＳＴＭ２２のパラメータθ２２、ＷＥ２１のパラメータを更新する。たとえば、情報処理装置は、１時刻目〜４時刻目の損失に基づいて、対数尤度の最適化を実行することにより、ＬＳＴＭ１２のパラメータθ１２、ＷＥ１１のパラメータ、ＬＳＴＭ２２のパラメータθ２２、ＷＥ２１のパラメータを更新する。
【００３７】
情報処理装置は、固有表現抽出の学習用データに加えて、言い換え対の入力、正解情報を基にして、上記処理を繰り返し実行することで、エンコーダ１０およびデコーダ２０を同時に学習する。
【００３８】
情報処理装置は、図１で説明した第１学習フェーズ、および、第２学習フェーズで学習したエンコーダ１０およびデコーダ２０のうち、エンコーダ１０を用いて、テキストデータから、各固有表現を抽出する処理を実行する。
【００３９】
たとえば、情報処理装置は、エンコーダ１０を実行し、第１学習フェーズおよび第２学習フェーズで学習したパラメータθ１２、ＷＥ１１のパラメータを、エンコーダ１０のパラメータとして設定する。情報処理装置は、入力文を受け付けると、入力文に含まれる各単語を順に、エンコーダ１０のＷＥ１１に入力し、固有表現出力層１３から出力される確率分布から、入力された単語が「Ｂ−ＣＨＥＭ」であるか、「Ｉ−ＣＨＥＭ」であるか、「Ｅ−ＣＨＥＭ」であるか、「Ｏ」（あるいは固有表現以外の単語であるか）を判定する。
【００４０】
情報処理装置は、「Ｂ−ＣＨＥＭ」が出力された際に、ＷＥ１１に入力した単語を先頭単語と判定する。情報処理装置は、「Ｅ−ＣＨＥＭ」が出力された際に、ＷＥ１１に入力した単語を、終わりの単語と判定する。情報処理装置は、入力文の先頭の単語から、終わりの単語までの各単語を、固有表現として抽出する。情報処理装置は、上記処理を繰り返し実行することで、入力文から、固有表現を抽出する。
【００４１】
上記のように、本実施例に係る情報処理装置は、第１学習フェーズにおいて、入力文と、入力文に対応する正解タグとを基にして、エンコーダ１０のパラメータを学習する。また、情報処理装置は、第２学習フェーズにおいて、入力文、言い換えの入力文を用いて、エンコーダ１０およびデコーダ２０のパラメータを同時に学習する。情報処理装置が、かかる学習を行うことで、言い換え対から表記が異なるが同一の意味となるパターンを学習することができ、これによって、同一の意味であるが、異なる表記の複数の固有表現を抽出することができる。
【００４２】
なお、本実施例では一例として、第１学習フェーズを行った後に、第２学習フェーズを行う場合について説明したが、第２学習フェーズを行った後に、第１学習フェーズを行ってもよいし、第１学習フェーズと、第２学習フェーズを交互に行ってもよい。
【００４３】
次に、本実施例に係る情報処理装置の構成について説明する。図３は、本実施例に係る情報処理装置の構成を示す機能ブロック図である。図３に示すように、情報処理装置１００は、学習処理部１１０と、抽出処理部１２０とを有する。
【００４４】
学習処理部１１０および抽出処理部１２０は、たとえば、下記のハードウェアプロセッサにより仮想的に実現される。このようなプロセッサの例として、ＧＰＧＰＵ（General-Purpose  computing  on  Graphics  Processing  Units）やＧＰＵクラスタの他、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）などが挙げられる。すなわち、プロセッサがＲＡＭ（Random  Access  Memory）等のメモリ上に、学習処理部１１０および抽出処理部１２０に対応するプログラムをプロセスとして展開することにより、上記の処理部が仮想的に実現される。ここでは、プロセッサの一例として、ＧＰＧＰＵやＧＰＵクラスタ、ＣＰＵ、ＭＰＵを例示したが、汎用型および特化型を問わず、任意のプロセッサにより上記の機能部が実現されることとしてもかまわない。この他、上記の処理部は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによって実現されてもよい。
【００４５】
また、学習データ記憶部１１１ａ、モデル記憶部１１１ｂは、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子や、ＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。
【００４６】
学習処理部１１０は、図１で説明した第１学習フェーズの学習、および、図２で説明した第２学習フェーズの学習を実行する処理部である。学習処理部１１０は、学習データ記憶部１１１ａ、モデル記憶部１１１ｂ、エンコーダ実行部１１２、デコーダ実行部１１３、第１学習部１１４、第２学習部１１５を有する。
【００４７】
学習データ記憶部１１１ａは、学習用の入力文（固有表現抽出用）と、入力文に含まれる各単語の正解タグとを対応付ける学習データを記憶する記憶部である。また、学習データ記憶部１１１ａは、学習用の言い換え前の入力文と、言い換え後の入力文とを対応付けた情報を保持する。
【００４８】
図４は、学習データ記憶部のデータ構造の一例を示す図である。図４に示すように、この学習データ記憶部１１１ａは、入力文（固有表現抽出用）に含まれる各単語と、正解タグとを対応付ける。たとえば、入力文「Ｌ−フェニルアラニン」には、単語「Ｌ−」、「フェニル」、「アラニン」が順に含まれる。また、単語「Ｌ−」の正解タグは「Ｂ−ＣＨＥＭ」、単語「フェニル」の正解タグは「Ｉ−ＣＨＥＭ」、単語「アラニン」の正解タグは「Ｅ−ＣＨＥＭ」である。
【００４９】
また、図４に示すように、学習データ記憶部１１１ａは、入力文と、言い換え対とを対応付ける。たとえば、入力文「Ｌ−フェニルアラニン」に対応付けられた言い換えの入力文は「（Ｓ）−フェニルアラニン」である。
【００５０】
モデル記憶部１１１ｂは、エンコーダ１０のＬＳＴＭ１２のパラメータθ１２、ＷＥ１１のパラメータ、デコーダ２０のＬＳＴＭ２２のパラメータθ２２、ＷＥ２１のパラメータを記憶する記憶部である。学習前において、モデル記憶部１１１ｂの各パラメータには、初期値が設定されている。
【００５１】
エンコーダ実行部１１２は、図１および図２で説明したエンコーダ１０を実行する処理部である。たとえば、エンコーダ実行部１１２は、ＷＥ１１、ＬＳＴＭ１２、固有表現出力層１３をワークエリア上に展開する。エンコーダ実行部１１２は、モデル記憶部１１１ｂに記憶されたＷＥ１１のパラメータおよびＬＳＴＭ１２のパラメータθ１２を、ＷＥ１１、ＬＳＴＭ１２に設定する。エンコーダ実行部１１２は、後述する第１学習部１１４、第２学習部１１５によって、ＬＳＴＭ１２のパラメータθ１２、ＷＥ１１のパラメータが更新された場合、更新されたＷＥ１１のパラメータ、ＬＳＴＭ１２のパラメータθ１２を、ＷＥ１１、ＬＳＴＭ１２にそれぞれ設定する。
【００５２】
デコーダ実行部１１３は、図２で説明したデコーダ２０を実行する処理部である。たとえば、デコーダ実行部１１３は、ＷＥ２１、ＬＳＴＭ２２、言い換え出力層２３をワークエリア上に展開する。デコーダ実行部１１３は、モデル記憶部１１１ｂに記憶されたＷＥ２１のパラメータおよびＬＳＴＭ２２のパラメータを、ＷＥ２１、ＬＳＴＭ２２に設定する。デコーダ実行部１１３は、後述する第１学習部１１４、第２学習部１１５によって、ＬＳＴＭ２２のパラメータθ２２、ＷＥ２１のパラメータが更新された場合、更新されたＷＥ２１のパラメータ、ＬＳＴＭ２２のパラメータθ２２を、ＷＥ２１、ＬＳＴＭ２２にそれぞれ設定する。
【００５３】
第１学習部１１４は、図１で説明した第１学習フェーズの学習を実行する処理部である。第１学習部１１４は、学習データ記憶部１１１ａから、学習用の入力文の各単語と、各正解タグとを取得する。第１学習部１１４は、エンコーダ実行部１１２に実行されたエンコーダ１０のＷＥ１１に入力文の各単語を入力し、ＬＳＴＭ１２を介して、固有表現出力層１３ａから出力される確率分布と、正解タグとを基にして、損失をそれぞれ算出する。
【００５４】
第１学習部１１４は、ＷＥ１１に対して、学習用の入力文の先頭の単語から、終わりの単語までの各単語を、先頭の単語から順に入力し、各時刻の損失を算出する。第１学習部１１４は、各時刻に算出した各損失が最小化されるように、ＬＳＴＭ１２のパラメータθ１２およびＷＥ１１のパラメータを学習する。第１学習部１１４は、学習したＬＳＴＭ１２のパラメータθ１２およびＷＥ１１のパラメータによって、モデル記憶部１１１ｂを更新する。
【００５５】
第２学習部１１５は、図２で説明した第２学習フェーズの学習を実行する処理部である。第２学習部１１５は、学習データ記憶部１１１ａから、学習用の入力文の各単語と、言い換えの入力文の各単語とを取得する。
【００５６】
まず、第２学習部１１５は、エンコーダ実行部１１２に実行されたエンコーダ１０のＷＥ１１に入力文の各単語（先頭の単語から、終わりの単語まで）を順に入力し、終わりの単語を入力した時刻におけるＬＳＴＭ１２の中間表現を算出する。以下の説明では、終わりの単語を入力した時刻におけるＬＳＴＭ１２の中間表現を「入力文中間表現」と表記する。
【００５７】
続いて、第２学習部１１５は、デコーダ実行部１１３に実行されたデコーダ２０のＬＳＴＭ２２に、入力文中間表現を設定する。第２学習部１１５は、デコーダ２０のＷＥ２１に、言い換えの入力文の各単語（先頭に単語「ＢＯＳ」を追加した各単語）を入力し、ＬＳＴＭ２２を介して、言い換え出力層２３から出力される確率分布と、正解タグとを基にして、損失を算出する。第２学習部１１５が損失計算時に利用する各正解タグは、言い換えの入力文の各単語の最後に、単語「ＥＯＳ」を加えたものとなる。
【００５８】
第２学習部１１５は、ＷＥ２１に対して、言い換えの入力文の先頭の単語「ＢＯＳ」から、終わりの単語までの各単語を、先頭の単語から順に入力し、各時刻の損失を算出する。第２学習部１１５は、各時刻に算出した各損失が最小化されるように、ＬＳＴＭ２２のパラメータθ２２およびＷＥ２１のパラメータ、ＬＳＴＭ１２のパラメータθ１２およびＷＥ１１のパラメータを同時に学習する。第２学習部１１５は、学習したＬＳＴＭ２２のパラメータθ２２およびＷＥ２１のパラメータ、ＬＳＴＭ１２のパラメータθ１２およびＷＥ１１のパラメータによって、モデル記憶部１１１ｂを更新する。
【００５９】
上記のように、第１学習部１１４および第２学習部１１５が処理を実行することで、モデル記憶部１１１ｂの各パラメータが学習される。
【００６０】
抽出処理部１２０は、学習処理部１１０によって学習されたエンコーダ１０のパラメータを基にして、処理対象となる入力文（テキストデータ）から、固有表現を抽出する処理部である。抽出処理部１２０は、取得部１２１、エンコーダ実行部１２２、抽出部１２３を有する。
【００６１】
取得部１２１は、固有表現の抽出対象となる入力文（テキストデータ）を取得する処理部である。取得部１２１は、キーボード等の入力装置から、入力文を取得してもよいし、ネットワークを介して、外部装置から、入力文を取得してもよい。また、取得部１２１は、ＵＳＢ（Universal  Serial  Bus）メモリ等の携帯可能な記憶装置が、情報処理装置１００に接続された際に、携帯可能な記憶装置に格納された入力文を取得してもよい。取得部１２１は、取得した入力文の情報を、抽出部１２３に出力する。
【００６２】
エンコーダ実行部１２２は、エンコーダ１０を実行する処理部である。たとえば、エンコーダ実行部１２２は、ＷＥ１１、ＬＳＴＭ１２、固有表現出力層１３をワークエリア上に展開する。エンコーダ実行部１２２は、モデル記憶部１１１ｂに記憶されたＷＥ１１のパラメータおよびＬＳＴＭ１２のパラメータθ１２を、ＷＥ１１、ＬＳＴＭ１２に設定する。なお、モデル記憶部１１１ｂに記憶されたＷＥ１１のパラメータおよびＬＳＴＭ１２のパラメータθ１２は、学習処理部１１０によって学習済みとする。
【００６３】
抽出部１２３は、取得部１２１から入力文を受け付けると、入力文に含まれる各単語を順に、エンコーダ実行部１２２に実行されたエンコーダ１０のＷＥ１１に入力する。抽出部１２３は、固有表現出力層１３から出力される確率分布から、入力した各単語が「Ｂ−ＣＨＥＭ」であるか、「Ｉ−ＣＨＥＭ」であるか、「Ｅ−ＣＨＥＭ」であるか、（あるいは他の単語であるか）をそれぞれ判定する。
【００６４】
抽出部１２３は、「Ｂ−ＣＨＥＭ」が出力された際に、ＷＥ１１に入力した単語を先頭単語と判定する。抽出部１２３は、「Ｅ−ＣＨＥＭ」が出力された際に、ＷＥ１１に入力した単語を、終わりの単語と判定する。抽出部１２３は、入力文の先頭の単語から、終わりの単語までの各単語を、固有表現として抽出する。情報処理装置は、上記処理を繰り返し実行することで、入力文から、固有表現を抽出する。抽出部１２３は、抽出した各固有表現を、図示しない表示装置に出力して表示してもよいし、入力文と、抽出した各固有表現とを対応付けた情報を生成して、図示しない記憶部に格納してもよい。また、抽出部１２３は、入力文から抽出した各固有表現の情報を、外部装置に出力してもよい。
【００６５】
次に、本実施例に係る情報処理装置１００の処理手順の一例について説明する。図５は、本実施例に係る学習処理を示すフローチャートである。図５の処理を行う前に、エンコーダ実行部１１２は、エンコーダ１０を実行して、パラメータの初期値を設定する。デコーダ実行部１１３は、デコーダ２０を実行して、パラメータの初期値を設定する。
【００６６】
図５に示すように、情報処理装置１００の第１学習部１１４は、学習データ記憶部１１１ａから、入力文（固有表現抽出用）と、正解タグとを取得する（ステップＳ１０１）。第１学習部１１４は、入力文（固有表現抽出用）と、正解タグとを用いて、エンコーダ１０のパラメータを学習し、モデル記憶部１１１ｂのパラメータを更新する（ステップＳ１０２）。
【００６７】
情報処理装置１００の第２学習部１１５は、学習データ記憶部１１１ａから、対となる、入力文（固有表現抽出用）と、言い換え対用とを取得する（ステップＳ１０３）。第２学習部１１５は、入力文（固有表現抽出用）と、言い換え対とを基にして、エンコーダ１０のパラメータと、デコーダ２０のパラメータとを学習し、モデル記憶部１１１ｂのパラメータを更新する（ステップＳ１０４）。
【００６８】
情報処理装置１００は、学習データ記憶部１１１ａに未処理のデータがある場合には（ステップＳ１０５，Ｙｅｓ）、ステップＳ１０１に移行する。一方、情報処理装置１００は、学習データ記憶部１１１ａに未処理のデータがない場合には（ステップＳ１０５，Ｎｏ）、処理を終了する。
【００６９】
図６は、本実施例に係る抽出処理を示すフローチャートである。図６の処理を行う前に、エンコーダ実行部１２２は、エンコーダ１０を実行して、モデル記憶部１１１ｂに格納された学習済みのパラメータを、エンコーダ１０に設定する。固有表現抽出時は、学習時と同様に、文全体をエンコードし、各単語に各ラベルが付与される確率を計算する。その後、「Ｂ−ＣＨＥＭ」の後には、「Ｉ−ＣＨＥＭ」か「Ｅ−ＣＨＥＭ」しか接続できないといったラベルの連接制約を満たす入力に対するラベル列のうち、確率を基に計算されるスコアが最大となるものを選択する。この制約を満たしたラベル列の選択は、一般的に、Viterbiアルゴリズムを応用して計算が可能であることが知られている。
【００７０】
図６に示すように、情報処理装置１００の取得部１２１は、入力文（単語列）を受け取る（ステップＳ２０１）。情報処理装置１００の抽出部１２３は、入力文をエンコードし、各単語に各ラベルが付与される確率を計算する（ステップＳ２０２）。
【００７１】
抽出部１２３は、ビタビアルゴリズムでラベルの連接制約を考慮して、ラベル連接制約を満たす入力に対するラベル列のうち、確率を基に計算されるスコアが最大となるものを選択する（ステップＳ２０３）。なお、抽出部１２３は、文献（Andrew  J.  Viterbi.  Error  bounds  for  convolutional  codes  and  an  asymptotically  optimum  decoding  algorithm,  IEEE  Transactions  on  Information  Theory  13(2):260−269,  April  1967.）に記載された技術に基づいて、ビタビアルゴリズムを実行する。
【００７２】
抽出部１２３は、Ｂ−ＣＨＥＭからＥ−ＣＨＥＭの間の単語列か、Ｓ−ＣＨＥＭの単語を、科学物質名を表す固有表現として抽出する（ステップＳ２０４）。
【００７３】
次に、本実施例に係る情報処理装置１００の効果について説明する。本実施例に係る情報処理装置１００は、第１学習フェーズにおいて、入力文と、入力文に対応する正解タグとを基にして、エンコーダ１０のパラメータを学習する。また、情報処理装置１００は、第２学習フェーズにおいて、入力文、言い換えの入力文を用いて、エンコーダ１０およびデコーダ２０のパラメータを同時に学習する。情報処理装置１００が、かかる学習を行うことで、固有表現抽出用の学習と、言い換え対からの異なる表記だが同一の実態のパターンを学習することができる。結果、固有表現抽出においても異なる表記で同一の実態に対応できるようになる。
【００７４】
情報処理装置１００は、第１学習フェーズおよび第２学習フェーズで学習したエンコーダ１０に入力文（テキストデータ）を入力することで、同一の意味であるが、異なる表記の複数の固有表現を抽出することができる。
【００７５】
ところで、本実施例では一例として、化合物に関する入力文と、言い換えの入力文とを用いて、学習処理部１１０が、エンコーダ１０およびデコーダ２０を学習する場合について説明したがこれに限定されるものではない。たとえば、対象が同じものについて、複数の固有表現が存在するもので、好ましくは、各固有表現にパターンが存在するものであれば、化合物の固有表現と同様にして、学習することが可能である。
【００７６】
図７および図８は、学習可能なその他の固有表現の一例を説明するための図である。図７に示すように、会社名は、略称でテキストに記載される場合がある。たとえば、学習処理部１１０は、入力文（会社名）と、言い換え入力文（略語）とを用いて、エンコーダ１０およびデコーダ２０のパラメータを学習してもよい。これの学習によって、会社名に関する固有表現を抽出することが可能になる。
【００７７】
図８に示すように、Ｗｅｂページのリンクの文字列と、対応先のページの固有表現とが対応付けられる場合がある。たとえば、「＜a  href=’xx.com’>＞（株）ＣＣＣ＜／a＞」は、「株式会社ＣＣＣ」というタイトルのページをリンクしているとする。そうすると、言い換え対、「（株）ＣＣＣ＜／a＞」」と「株式会社ＣＣＣ」を獲得でき、学習処理部１１０は、エンコーダ１０およびデコーダ２０のパラメータの学習に利用できる。このように学習することで、コード５０をエンコードすることで、コード５０から固有表現を抽出することができる。
【００７８】
また、図示を省略するが、学習可能なその他の固有表現には、人物名が含まれる。たとえば、ＳＮＳ（Social  Network  Service）等でやり取りされるテキストデータには、同一の人物に対して、正式な氏名と、ニックネームとが与えられる場合が多い。学習処理部１１０は、入力文（氏名）と、言い換え入力文（ニックネーム）とを用いて、エンコーダ１０およびデコーダ２０のパラメータを学習してもよい。
【００７９】
次に、本実施例に示した情報処理装置１００と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図９は、本実施例に係る情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【００８０】
図９に示すように、コンピュータ３００は、各種演算処理を実行するＣＰＵ３０１と、ユーザからのデータの入力を受け付ける入力装置３０２と、ディスプレイ３０３とを有する。また、コンピュータ３００は、記憶媒体からプログラム等を読み取る読み取り装置３０４と、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行うインタフェース装置３０５とを有する。コンピュータ３００は、各種情報を一時記憶するＲＡＭ３０６と、ハードディスク装置３０７とを有する。そして、各装置３０１〜３０７は、バス３０８に接続される。
【００８１】
ハードディスク装置３０７は、学習処理プログラム３０７ａ、抽出処理プログラム３０７ｂを有する。ＣＰＵ３０１は、学習処理プログラム３０７ａ、抽出処理プログラム３０７ｂを読み出してＲＡＭ３０６に展開する。
【００８２】
学習処理プログラム３０７ａは、学習処理プロセス３０６ａとして機能する。抽出処理プログラム３０７ｂは、抽出処理プロセス３０６ｂとして機能する。
【００８３】
学習処理プロセス３０６ａの処理は、学習処理部１１０の処理に対応する。抽出処理プロセス３０６ｂの処理は、抽出処理部１２０の処理に対応する。
【００８４】
なお、各プログラム３０７ａ、３０７ｂついては、必ずしも最初からハードディスク装置３０７に記憶させておかなくてもよい。例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ３００が各プログラム３０７ａ、３０７ｂを読み出して実行するようにしてもよい。
【００８５】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００８６】
（付記１）コンピュータが実行する学習方法であって、
所定の対象を第１の固有表現で表記した第１入力文を第１学習モデルに入力した場合、前記第１学習モデルから出力される値が、前記第１入力文に対応する正解情報に近づくように、前記第１学習モデルの第１パラメータを学習し、
前記第１入力文を前記第１学習モデルに入力した際に生成される中間表現と、前記所定の対象を第２の固有表現で表記した第２入力文とを第２学習モデルに入力した場合、前記第２学習モデルから出力される値が、前記第２入力文に対応する正解情報に近づくように、前記第１パラメータおよび前記第２学習モデルの第２パラメータを学習する
処理を実行することを特徴とする学習方法。
【００８７】
（付記２）学習済みの前記第１パラメータを設定した前記第１学習モデルに、固有表現の抽出対象となる入力文を入力し、前記第１学習モデルから出力される値を基にして、前記入力文から固有表現を抽出する処理を更に実行することを特徴とする付記１に記載の学習方法。
【００８８】
（付記３）前記第１学習モデルおよび前記第２学習モデルは、ＲＮＮ（Recurrent  Neural  Network）を有し、前記第１パラメータを学習する処理、前記第１パラメータおよび前記第２パラメータを学習する処理は、前記ＲＮＮのパラメータを学習することを特徴とする付記１または２に記載の学習方法。
【００８９】
（付記４）前記所定の対象は、化合物、人物、会社を含むことを特徴とする付記１、２または３に記載の学習方法。
【００９０】
（付記５）コンピュータが実行する抽出方法であって、
所定の対象を第１の固有表現で表記した第１入力文を第１学習モデルに入力した場合、前記第１学習モデルから出力される値が、前記第１入力文に対応する正解情報に近づくように、前記第１学習モデルの第１パラメータを学習し、
前記第１入力文を前記第１学習モデルに入力した際に生成される中間表現と、前記所定の対象を第２の固有表現で表記した第２入力文とを第２学習モデルに入力した場合、前記第２学習モデルから出力される値が、前記第２入力文に対応する正解情報に近づくように、前記第１パラメータおよび前記第２学習モデルの第２パラメータを学習し、
学習済みの前記第１パラメータを設定した前記第１学習モデルに、固有表現の抽出対象となる入力文を入力し、前記第１学習モデルから出力される値を基にして、前記入力文から固有表現を抽出する
処理を実行することを特徴とする抽出方法。
【００９１】
（付記６）コンピュータに、
所定の対象を第１の固有表現で表記した第１入力文を第１学習モデルに入力した場合、前記第１学習モデルから出力される値が、前記第１入力文に対応する正解情報に近づくように、前記第１学習モデルの第１パラメータを学習し、
前記第１入力文を前記第１学習モデルに入力した際に生成される中間表現と、前記所定の対象を第２の固有表現で表記した第２入力文とを第２学習モデルに入力した場合、前記第２学習モデルから出力される値が、前記第２入力文に対応する正解情報に近づくように、前記第１パラメータおよび前記第２学習モデルの第２パラメータを学習する
処理を実行させることを特徴とする学習プログラム。
【００９２】
（付記７）学習済みの前記第１パラメータを設定した前記第１学習モデルに、固有表現の抽出対象となる入力文を入力し、前記第１学習モデルから出力される値を基にして、前記入力文から固有表現を抽出する処理を更に実行することを特徴とする付記６に記載の学習プログラム。
【００９３】
（付記８）前記第１学習モデルおよび前記第２学習モデルは、ＲＮＮ（Recurrent  Neural  Network）を有し、前記第１パラメータを学習する処理、前記第１パラメータおよび前記第２パラメータを学習する処理は、前記ＲＮＮのパラメータを学習することを特徴とする付記６または７に記載の学習プログラム。
【００９４】
（付記９）前記所定の対象は、化合物、人物、会社を含むことを特徴とする付記６、７または８に記載の学習プログラム。
【００９５】
（付記１０）所定の対象を第１の固有表現で表記した第１入力文を第１学習モデルに入力した場合、前記第１学習モデルから出力される値が、前記第１入力文に対応する正解情報に近づくように、前記第１学習モデルの第１パラメータを学習する第１学習部と、
前記第１入力文を前記第１学習モデルに入力した際に生成される中間表現と、前記所定の対象を第２の固有表現で表記した第２入力文とを第２学習モデルに入力した場合、前記第２学習モデルから出力される値が、前記第２入力文に対応する正解情報に近づくように、前記第１パラメータおよび前記第２学習モデルの第２パラメータを学習する第２学習部と
を有することを特徴とする情報処理装置。
【００９６】
（付記１１）学習済みの前記第１パラメータを設定した前記第１学習モデルに、固有表現の抽出対象となる入力文を入力し、前記第１学習モデルから出力される値を基にして、前記入力文から固有表現を抽出する抽出部を更に有することを特徴とする付記１０に記載の情報処理装置。
【００９７】
（付記１２）前記第１学習モデルおよび前記第２学習モデルは、ＲＮＮ（Recurrent  Neural  Network）を有し、前記第１学習部および前記第２学習部は、前記ＲＮＮのパラメータを学習することを特徴とする付記１０または１１に記載の情報処理装置。
【００９８】
（付記１３）前記所定の対象は、化合物、人物、会社を含むことを特徴とする付記１０、１１または１２に記載の情報処理装置。
【符号の説明】
【００９９】
１００    情報処理装置
１１０    学習処理部
１１１ａ  学習データ記憶部
１１１ｂ  モデル記憶部
１１２，１２２    エンコーダ実行部
１１３    デコーダ実行部
１１４    第１学習部
１１５    第２学習部
１２０    抽出処理部
１２１    取得部
１２３    抽出部
【図１】
2020140676.tif 000003
【図２】
2020140676.tif 000004
【図３】
2020140676.tif 000005
【図４】
2020140676.tif 000006
【図５】
2020140676.tif 000007
【図６】
2020140676.tif 000008
【図７】
2020140676.tif 000009
【図８】
2020140676.tif 000010
【図９】
2020140676.tif 000011
【図１０】
2020140676.tif 000012
【図１１】
2020140676.tif 000013