(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-15
(45)【発行日】2024-04-23
(54)【発明の名称】エンコーディングプログラム、情報処理装置およびエンコーディング方法
(51)【国際特許分類】
G06F 40/216 20200101AFI20240416BHJP
G06F 40/279 20200101ALI20240416BHJP
G06F 40/30 20200101ALI20240416BHJP
【FI】
G06F40/216
G06F40/279
G06F40/30
(21)【出願番号】P 2020056889
(22)【出願日】2020-03-26
【審査請求日】2022-12-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】森田 一
【審査官】成瀬 博之
(56)【参考文献】
【文献】米国特許出願公開第2018/0300314(US,A1)
【文献】特開2017-076281(JP,A)
【文献】Zhiyang Teng 他1名,Head-Lexicalized Bidirectional Tree LSTMs,ACL Anthology,2017年,[2023年10月23日検索],インターネット<URL:https://aclanthology.org/Q17-1012.pdf>
【文献】辻村有輝 他2名,係り受け木上の不要な情報にマスクを行う関係分類,言語処理学会第25回年次大会 発表論文集,日本,言語処理学会,2019年03月04日,73-76頁
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/20-40/58
G06F 16/00-16/958
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
文に含まれる
複数の文節のうちの第1文節と第2文節
との関係性の判定に用いる前記複数の文節それぞれのベクトルを求める場合に、前記文から生成した係り受け木に含まれる2つのノード
を示す前記第1文節に対応する第1ノードと前記第2文節に対応する第2ノードとの
最短係り受け経路に含まれるノードであって、前記係り受け木における前記第1ノードと前記第2ノードとの共通の祖先ノードを特定し、
前記係り受け木に含まれる葉ノードのそれぞれから前記共通の祖先ノードに向かう経路に応じて前記係り受け木に含まれる各ノードをエンコーディングすることによって、前記共通の祖先ノードのベクトルを求め、
前記共通の祖先ノードのベクトルに基づいて、前記共通の祖先ノードから前記葉ノードに向かう経路に応じて前記係り受け木に含まれる各ノードをエンコーディングする、
処理をコンピュータに実行させることを特徴とするエンコーディングプログラム。
【請求項2】
前記共通の祖先ノードのベクトルを求める処理は、葉ノードのそれぞれから前記共通の祖先ノードに向かう経路に沿って各ノードの情報を前記共通の祖先ノードに集約することによって、前記共通の祖先ノードのベクトルを求める処理を含む、
ことを特徴とする請求項1に記載のエンコーディングプログラム。
【請求項3】
前記集約する処理は、葉ノードのそれぞれから前記共通の祖先ノードに向かう経路に沿って各ノードにおける、前記第1ノードとの位置関係および前記第2ノードとの位置関係を含む情報を前記共通の祖先ノードに集約する処理を含む、
ことを特徴とする請求項2に記載のエンコーディングプログラム。
【請求項4】
各ノードのエンコーディング結果を示すベクトルから前記文のベクトルを求め、
前記文のベクトルと前記文のベクトルに対応する正解ラベルとを入力し、前記入力に応じて機械学習モデルが出力する前記文に含まれる第1文節と第2文節との関係に対応する予測結果と前記正解ラベルとの差に基づいた機械学習によって前記機械学習モデルを更新する、
ことを特徴とする請求項1に記載のエンコーディングプログラム。
【請求項5】
他の文のベクトルを前記更新された機械学習モデルに入力し、前記他の文に含まれる第1文節と第2文節との関係に対応する予測結果を出力する、
ことを特徴とする請求項4に記載のエンコーディングプログラム。
【請求項6】
前記係り受け木における根に対応するノード以外のノードが、前記共通の祖先ノードとして特定されうる、
ことを特徴とする請求項1に記載のエンコーディングプログラム。
【請求項7】
文に含まれる
複数の文節のうちの第1文節と第2文節
との関係性の判定に用いる前記複数の文節それぞれのベクトルを求める場合に、前記文から生成した係り受け木に含まれる2つのノード
を示す前記第1文節に対応する第1ノードと前記第2文節に対応する第2ノードとの
最短係り受け経路に含まれるノードであって、前記係り受け木における前記第1ノードと前記第2ノードとの共通の祖先ノードを特定する特定部と、
前記係り受け木に含まれる葉ノードのそれぞれから前記共通の祖先ノードに向かう経路に応じて前記係り受け木に含まれる各ノードをエンコーディングすることによって前記共通の祖先ノードのベクトルを生成する第1のエンコーディング部と、
前記共通の祖先ノードのベクトルに基づいて、前記共通の祖先ノードから前記葉ノードに向かう経路に応じて前記係り受け木に含まれる各ノードをエンコーディングする第2のエンコーディング部と、
を有することを特徴とする情報処理装置。
【請求項8】
文に含まれる
複数の文節のうちの第1文節と第2文節
との関係性の判定に用いる前記複数の文節それぞれのベクトルを求める場合に、前記文から生成した係り受け木に含まれる2つのノード
を示す前記第1文節に対応する第1ノードと前記第2文節に対応する第2ノードとの
最短係り受け経路に含まれるノードであって、前記係り受け木における前記第1ノードと前記第2ノードとの共通の祖先ノードを特定し、
前記係り受け木に含まれる葉ノードのそれぞれから前記共通の祖先ノードに向かう経路に応じて前記係り受け木に含まれる各ノードをエンコーディングすることによって、前記共通の祖先ノードのベクトルを求め、
前記共通の祖先ノードのベクトルに基づいて、前記共通の祖先ノードから前記葉ノードに向かう経路に応じて前記係り受け木に含まれる各ノードをエンコーディングする、
処理をコンピュータが実行することを特徴とするエンコーディング方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、エンコーディング技術に関する。
【背景技術】
【0002】
自然言語処理では、文や文の中の単語(文節)をベクトル化してから処理することが多い。文や単語の特徴がうまく含まれるベクトルを生成することが重要になる。
【0003】
文や単語(文節)は、例えば、LSTM(Long Short-Term Memory)ネットワークによりベクトル化することが知られている。LSTMネットワークは、経時的に単語の情報をベクトルとして保持し、保持した情報を用いて単語のベクトルを生成することができる再帰的ニューラルネットワークである。
【0004】
また、文や単語は、例えば、木構造の(tree-structured)LSTMネットワークによりベクトル化することが知られている(例えば、非特許文献1参照)。木構造のLSTMネットワークは、チェーン構造のLSTMネットワークを木構造のネットワークトポロジに汎化したものである。
図12は、LSTMネットワークを示す参考図である。
図12上図には、チェーン構造のLSTMネットワークが表わされている。例えば、x1という単語を入力したLSTMは、入力した単語x1のベクトルy1を生成する。そして、x2という単語を入力したLSTMは、以前の単語x1のベクトルy1も用いて単語x2のベクトルy2を生成する。
図12下図には、任意の分岐因子を含む木構造の(tree-structured)LSTMネットワークが表わされている。
【0005】
文の中の単語間の係り受けを木構造のLSTMネットワーク(以降、LSTMネットワークを「LSTM」という)で表わした係り受け木を利用する技術が知られている。例えば、文に対する係り受け木の構造の全体の情報を利用して、文の中の単語間の関係を抽出する技術が知られている(例えば、非特許文献2参照)。例えば、「薬Aを無作為に抽出した病気Bの患者に投与したところ、効果があった」という文に対して、「薬A」と「病気B」との間の関係(「効果」)を抽出(判定)することができる。かかる技術では、文に対して、単語レベルの情報をLSTMでエンコードし、最短係り受け経路(Shortest Path:SP)のみの係り受け木レベルの情報を木構造のLSTMでエンコードし、関係を抽出する。ここでいうSPとは、関係を抽出したい単語と単語との間の係り受けの最短経路のことをいい、上記文では、「薬A」と「病気B」との間の経路のことをいう。また、関係の抽出に注目した実験では、文に対する全係り受け木を使った場合より、SPのみの係り受け木を使った方が、良い結果になった。
【先行技術文献】
【非特許文献】
【0006】
【文献】Kai Sheng Tai et al, 2015 “Improved Semantic Representations From Tree-Structured Long Short-Term Memory Networks”
【0007】
【文献】Miwa et al,2016 “End-To-End Relation Extraction usingLSTMs on Sequences and Tree Structures”
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、文に対して全体の係り受け木を使っても、最短係り受け経路(SP)のみの係り受け木を使っても、SP外の表現のエンコーディング時にSP内の情報を利用することが難しい。ここで、SP外の表現のエンコーディング時にSP内の情報を利用することが難しいことについて、
図13を参照して説明する。
図13は、SP外の表現のエンコーディングの参考例を示す図である。なお、上述した「薬Aを無作為に抽出した病気Bの患者に投与したところ、効果があった」という文に対して、「薬A」と「病気B」との間の関係(「効果」)を抽出(判定)する場合とする。
【0009】
図13に示すように、左図は係り受け木全体を示す。それぞれの四角のボックスはLSTMである。SPは、「薬A」と「病気B」との間の経路である。中図の木構造は「薬A」に対するエンコーディングを計算する際に参照される範囲である。右図の木構造は関係を示す「効果」に対するエンコーディングを計算する際に参照される範囲である。
【0010】
このような状況の下で、係り受け木全体では、文に対する全体の係り受け木の構造に沿ってエンコーディングするので、SP外すなわちSPと係り受け関係を持たない単語のエンコーディング時にSP内の単語の特徴を用いてエンコーディングすることが難しい。例えば、
図13では、関係を示す「効果」は、SP外の表現である。SP外すなわち係り受け関係を持たない単語「効果」のエンコーディング時には、参照される範囲は「あった」だけであり、「あった」配下のSP内の単語「薬A」などの特徴を用いてエンコーディングできない。言い換えれば、係り受け木のSP外の表現の重要性を判定するのが難しい。
【0011】
なお、SPのみの係り受け木を使った場合であっても、係り受け木全体を使った場合と同様に、SP外の表現のエンコーディング時にSP内の情報を利用することが難しいことには変わりがない。
【0012】
この結果、関係を示す重要な表現がSPの外にある場合、SP内の単語間の関係を抽出することが難しい。したがって、係り受け木のSP外に基づいた、文のエンコーディングを行うことができないという問題がある。
【0013】
本発明は、1つの側面では、係り受け木の最短係り受け経路(SP)外に基づいた、文のエンコーディングを行うことを目的とする。
【課題を解決するための手段】
【0014】
1つの態様では、エンコーディングプログラムは、文に含まれる第1文節と第2文節とに対し、前記文から生成した係り受け木に含まれる2つのノードであって前記第1文節に対応する第1ノードと前記第2文節に対応する第2ノードとの共通の祖先ノードを特定し、前記係り受け木に含まれる葉ノードのそれぞれから前記共通の祖先ノードに向かう経路に応じて前記係り受け木に含まれる各ノードをエンコーディングすることによって、前記共通の祖先ノードのベクトルを求め、前記共通の祖先ノードのベクトルに基づいて、前記共通の祖先ノードから前記葉ノードに向かう経路に応じて前記係り受け木に含まれる各ノードをエンコーディングする、処理をコンピュータに実行させる。
【発明の効果】
【0015】
1実施態様によれば、係り受け木の最短係り受け経路(SP)外に基づいた、文のエンコーディングを行うことができる。
【図面の簡単な説明】
【0016】
【
図1】
図1は、実施例1に係る機械学習装置の構成を示す機能ブロック図である。
【
図2】
図2は、実施例1に係る予測装置の構成を示す機能ブロック図である。
【
図3】
図3は、文の係り受けの一例を示す図である。
【
図4】
図4は、実施例1に係る木構造エンコーディングの一例を示す図である。
【
図5】
図5は、実施例1に係る関係抽出学習処理のフローチャートの一例を示す図である。
【
図6】
図6は、実施例1に係る関係抽出学習処理の一例を示す図である。
【
図7】
図7は、実施例1に係る関係抽出予測処理のフローチャートの一例を示す図である。
【
図8】
図8は、実施例2に係る機械学習装置の構成を示す機能ブロック図である。
【
図9】
図9は、実施例2に係る予測装置の構成を示す機能ブロック図である。
【
図10】
図10は、実施例2に係る木構造エンコーディングの一例を示す図である。
【
図11】
図11は、エンコーディングプログラムを実行するコンピュータの一例を示す図である。
【
図12】
図12は、LSTMネットワークを示す参考図である。
【
図13】
図13は、SP外の表現のエンコーディングの参考例を示す図である。
【発明を実施するための形態】
【0017】
以下に、本願の開示するエンコーディングプログラム、情報処理装置およびエンコーディング方法の実施例を図面に基づいて詳細に説明する。実施例では、情報処理装置として機械学習装置と予測装置とに分けて説明する。なお、本発明は、実施例により限定されるものではない。
【実施例1】
【0018】
[機械学習装置の構成]
図1は、実施例に係る機械学習装置の構成を示す機能ブロック図である。機械学習装置1は、文全体の係り受け木において、共通の祖先ノードに文全体の情報を集約して、集約した情報を用いて係り受け木の各ノードをエンコーディングする。機械学習装置1は、エンコーディングした結果を用いて、文に含まれる第1文節と第2文節の関係を学習する。ここでいう「係り受け木」とは、文の中の単語間の係り受けを木構造のLSTMネットワークで表わしたものである。なお、LSTMネットワークのことを、以降「LSTM」という。また、文節を単語という場合もある。
【0019】
ここで、文の係り受けの一例を、
図3を参照して説明する。
図3は、文の係り受けの一例を示す図である。
図3に示すように、文として「薬Aを無作為に抽出した病気Bの患者に投与したところ、効果があった」が示されている。かかる文では、「薬A」、「を」、「無作為」、「に」、「抽出」、「した」、「病気B」、「の」、「患者」、「に」、「投与」、「した」、「ところ」、「効果」、「が」、「あった」というように文節単位の列に分割される。
【0020】
「薬A」の係り受けは、「投与」である。「無作為」の係り受けは、「抽出」である。「抽出」および「病気B」の係り受けは、「患者」である。「患者」の係り受けは、「投与」である。「投与」の係り受けは、「ところ」である。「ところ」および「効果」の係り受けは、「あった」である。
【0021】
ここで、「薬A」と「病気B」との間の関係(「効果」)を抽出(判定)する場合には、「薬A」と「病気B」との間の経路が、最短係り受け経路(Shortest Path:SP)になる。ここでいうSPとは、関係を抽出したい単語「薬A」と単語「病気B」との間の係り受けの最短経路のことをいい、上記文では、「薬A」と「病気B」との間の経路のことをいう。関係を示す「効果」の単語は、かかる文の中のSPの外にある。
【0022】
また、「投与」は、「薬A」と「病気B」との共通の祖先ノード(Lowest Common Ancestor:LCA)になる。
【0023】
図1に戻って、機械学習装置1は、制御部10および記憶部20を有する。制御部10は、CPU(Central Processing Unit)などの電子回路により実現される。制御部10は、係り受け解析部11、木構造エンコーディング部12および関係抽出学習部13を有する。なお、木構造エンコーディング部12は、特定部、第1のエンコーディング部および第2のエンコーディング部の一例である。
【0024】
記憶部20は、例えば、RAM、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどにより実現される。記憶部20は、パラメタ21、エンコード結果22およびパラメタ23を有する。
【0025】
パラメタ21は、文の単語列のそれぞれの単語を木構造のLSTM(Tree LSTM)によりエンコーディングする際に各単語に対するLSTMが利用するパラメタの種類である。1つのLSTMは、1つの単語を、パラメタ21を用いてエンコーディングする。パラメタ21には、例えば、エンコーディングする方向が含まれる。エンコーディングする方向とは、ある単語をエンコーディングする場合に、直近の単語ベクトルの単語からある単語への方向を示す。エンコーディングする方向には、例えば、上や下が挙げられる。
【0026】
エンコード結果22は、それぞれの単語のエンコード結果(ベクトル)および文のエンコード結果(ベクトル)を示す。エンコード結果22は、木構造エンコーディング部12によって計算される。
【0027】
パラメタ23は、エンコード結果22を用いて単語間の関係を学習する際に用いられるパラメタである。なお、パラメタ23は、関係抽出学習部13によって用いられ、適宜修正される。
【0028】
係り受け解析部11は、文の係り受けを解析する。例えば、係り受け解析部11は、文に対して、形態素解析を実行し、形態素(文節単位)の列に分割する。係り受け解析部11は、分割した列について、文節単位の係り受け解析を行う。なお、係り受け解析は、いかなる構文解析ツールを用いても良い。
【0029】
木構造エンコーディング部12は、文節単位の係り受けからなる木構造に変換した木の木構造のLSTMを用いて、それぞれの文節をエンコーディングする。例えば、木構造エンコーディング部12は、係り受け解析部11によって解析された文節単位の係り受けを用いて、文節単位の係り受けからなる木構造の係り受け木に変換する。木構造エンコーディング部12は、文に含まれる第1文節と第2文節とに対し、変換した係り受け木に含まれる2つのノードであって第1文節に対応する第1ノードと第2文節に対応する第2ノードとの共通の祖先ノード(LCA)を特定する。木構造エンコーディング部12は、パラメタ21を用いて、係り受け木に含まれる葉ノードのそれぞれからLCAに向かう経路に沿って係り受け木に含まれる各ノードをエンコーディングすることによって、LCAのエンコーディング結果のベクトルを求める。すなわち、木構造エンコーディング部12は、葉ノードのそれぞれからLCAに向かう経路に沿って各ノードの情報をLCAに集約することによって、LCAのエンコーディング結果ベクトルを求める。そして、木構造エンコーディング部12は、LCAのエンコーディング結果ベクトルに基づいて、パラメタ21を用いて、LCAから葉ノードに向かう経路に沿って係り受け木に含まれる各ノードをエンコーディングする。つまり、木構造エンコーディング部12は、LCAに文全体の情報を集約した後に、集約した情報を逆向きに伝播させて、係り受け木の各ノードをエンコーディングする。
【0030】
また、木構造エンコーディング部12は、各ノードのエンコーディング結果のベクトルを用いて、文のベクトルを求める。
【0031】
関係抽出学習部13は、文のベクトルとすでに分かっている関係ラベル(正解ラベル)を入力すると、文に含まれる第1文節と第2文節との関係に対応する関係ラベルが入力した関係ラベルと一致するように機械学習モデルを学習する。例えば、関係抽出学習部13は、文のベクトルを機械学習モデルに入力すると、パラメタ23を用いて文に含まれる第1文節と第2文節との関係を出力する。そして、関係抽出学習部13は、出力された関係に対応する関係ラベルが既にわかっている関係ラベル(正解ラベル)と一致していなければ、情報の誤差を木構造エンコーディング部12に逆伝播させる。そして、関係抽出学習部13は、誤差を修正した各ノードのベクトルおよび修正したパラメタ23を用いて、機械学習モデルを学習する。言い換えれば、関係抽出学習部13は、文のベクトルと文のベクトルに対応する正解ラベルとを入力し、入力に応じて機械学習モデルが出力する文に含まれる第1文節と第2文節との関係に対応する予測結果と正解ラベルとの差に基づいた機械学習によって機械学習モデルを更新する。
【0032】
なお、機械学習モデルは、NN(Neural Network)やSVM(Support Vector Machine)が採用可能である。例えば、NNは、CNN(Convolutional Neural Network)やRNN(Recurrent Neural Network)であっても良い。また、機械学習モデルは、例えば、CNNとRNNとを組み合わせた機械学習モデルなど、複数の機械学習モデルを組み合わせることで実現される機械学習モデルであっても良い。
【0033】
[予測装置の構成]
図2は、実施例1に係る予測装置の構成を示す機能ブロック図である。予測装置3は、文全体の係り受け木において、共通の祖先ノードに文全体の情報を集約して、集約した情報を用いて係り受け木の各ノードをエンコーディングする。予測装置3は、エンコーディングした結果を用いて、文に含まれる第1文節と第2文節の関係を予測する。
【0034】
図1に戻って、予測装置3は、制御部30および記憶部40を有する。制御部30は、CPU(Central Processing Unit)などの電子回路により実現される。制御部30は、係り受け解析部11、木構造エンコーディング部12および関係抽出予測部31を有する。なお、係り受け解析部11および木構造エンコーディング部12は、
図1に示す機械学習装置1と同一の構成であるので、同一符号で示し、その重複する構成および動作の説明については省略する。また、木構造エンコーディング部12は、特定部、第1のエンコーディング部および第2のエンコーディング部の一例である。
【0035】
記憶部40は、例えば、RAM、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどにより実現される。記憶部40は、パラメタ41、エンコード結果42およびパラメタ23を有する。
【0036】
パラメタ41は、文の単語列のそれぞれの単語を木構造のLSTMによりエンコーディングする際に各単語に対するLSTMが利用するパラメタである。1つのLSTMは、1つの単語を、パラメタ41を用いてエンコーディングする。パラメタ41には、例えば、エンコーディングする方向が含まれる。エンコーディングする方向とは、ある単語をエンコーディングする場合に、使用される以前の単語ベクトルの単語からある単語への方向を示す。エンコーディングする方向には、例えば、上や下が挙げられる。なお、パラメタ41は、機械学習装置1のパラメタ21に対応する。
【0037】
エンコード結果42は、それぞれの単語のエンコード結果(ベクトル)および文のエンコード結果(ベクトル)を示す。エンコード結果42は、木構造エンコーディング部12によって計算される。なお、エンコード結果42は、機械学習装置1のエンコード結果22に対応する。
【0038】
パラメタ23は、エンコード結果42を用いて単語間の関係を予測する際に用いられるパラメタである。なお、パラメタ23には、機械学習装置1の機械学習によって最適化されたパラメタ23と同じパラメタが適用される。
【0039】
関係抽出予測部31は、文のベクトルを学習済みの機械学習モデルに入力すると、文に含まれる第1文節と第2文節の関係を予測する。例えば、関係抽出予測部31は、文のベクトルを学習済みの機械学習モデルに入力すると、パラメタ23を用いて文に含まれる第1文節と第2文節の関係を予測する。そして、関係抽出予測部31は、予測した関係に対応する関係ラベルを出力する。なお、学習済みの機械学習モデルは、機械学習装置1の関係抽出学習部13によって学習されたものである。
【0040】
[木構造エンコーディングの一例]
図4は、実施例1に係る木構造エンコーディングの一例を示す図である。なお、文が「薬Aを無作為に抽出した病気Bの患者に投与したところ、効果があった」である場合であって「薬A」と「病気B」との間の関係(「効果」)を抽出(判定)する場合であるとする。
【0041】
図4左図には、文における木構造の係り受け木が示されている。かかる係り受け木は、木構造エンコーディング部12によって変換される。すなわち、木構造エンコーディング部12は、係り受け解析部11によって解析された文における文節単位の係り受けを用いて、文節単位の係り受けからなる木構造の係り受け木に変換する。なお、
図4におけるそれぞれの四角のボックスはLSTMである。
【0042】
木構造エンコーディング部12は、文に含まれる「薬A」と「病気B」とに対し、変換した係り受け木に含まれる2つのノードであって「薬A」に対応するノードと「病気B」に対応するノードとの共通の祖先ノード(LCA)を特定する。特定されるLCAは、「投与」に対応するノードとなる。
【0043】
木構造エンコーディング部12は、パラメタ21を用いて、係り受け木に含まれる葉ノードのそれぞれからLCAに向かう経路に沿って係り受け木に含まれる各ノードをエンコーディングすることによって、LCAのエンコーディング結果のベクトルを求める。すなわち、木構造エンコーディング部12は、葉ノードのそれぞれからLCAに向かう経路に沿って各ノードの情報をLCAに集約する。左図では、「薬A」、「無作為」、「病気B」、「効果」に対応するノードが、葉ノードである。
【0044】
ここでは、左図に示すように、木構造エンコーディング部12は、「薬A」をLSTMに入力する。木構造エンコーディング部12は、LSTMによってエンコーディングされたエンコード結果(ベクトル)を、パラメタが示す「上」に位置する「投与」(LCA)のLSTMに出力する。
【0045】
また、木構造エンコーディング部12は、「無作為」をLSTMに入力する。木構造エンコーディング部12は、LSTMによってエンコーディングされたエンコード結果(ベクトル)をパラメタが示す「上」に位置する「抽出」のLSTMに出力する。また、木構造エンコーディング部12は、「抽出」と、「無作為」からのベクトルをLSTMに入力する。木構造エンコーディング部12は、LSTMによってエンコーディングされたエンコード結果(ベクトル)をパラメタが示す「上」に位置する「患者」のLSTMに出力する。
【0046】
また、木構造エンコーディング部12は、「病気B」をLSTMに入力する。木構造エンコーディング部12は、LSTMによってエンコーディングされたエンコード結果(ベクトル)をパラメタが示す「上」に位置する「患者」のLSTMに出力する。また、木構造エンコーディング部12は、「患者」と、「抽出」および「病気B」からのそれぞれのベクトルとをLSTMに入力する。木構造エンコーディング部12は、LSTMによってエンコーディングされたエンコード結果(ベクトル)をパラメタが示す「上」に位置する「投与」(LCA)のLSTMに出力する。
【0047】
一方、木構造エンコーディング部12は、「効果」をLSTMに入力する。木構造エンコーディング部12は、LSTMによってエンコーディングされたエンコード結果(ベクトル)を、パラメタが示す「上」に位置する「あった」のLSTMに出力する。また、木構造エンコーディング部12は、「あった」と、「効果」からのベクトルをLSTMに入力する。木構造エンコーディング部12は、LSTMによってエンコーディングされたエンコード結果(ベクトル)をパラメタが示す「下」に位置する「ところ」のLSTMに出力する。
【0048】
また、木構造エンコーディング部12は、「ところ」と、「あった」からのベクトルとをLSTMに入力する。木構造エンコーディング部12は、LSTMによってエンコーディングされたエンコード結果(ベクトル)をパラメタが示す「下」に位置する「投与」(LCA)のLSTMに出力する。
【0049】
そして、木構造エンコーディング部12は、「投与」と、「薬A」、「患者」および「ところ」からのそれぞれのエンコード結果(ベクトル)とをLSTMに入力する。木構造エンコーディング部12は、エンコーディングされたエンコード結果(ベクトル)を求める。すなわち、木構造エンコーディング部12は、葉ノードのそれぞれからLCAに向かう経路に沿って各ノードの情報をLCAに集約する。
【0050】
この後、木構造エンコーディング部12は、LCAのエンコード結果(ベクトル)に基づいて、パラメタ21を用いて、LCAから葉ノードに向かう経路に沿って係り受け木に含まれる各ノードをエンコーディングする。つまり、木構造エンコーディング部12は、LCAに文全体の情報を集約した後に、集約した情報を逆向きに伝播させて、係り受け木の各ノードをエンコーディングする。
【0051】
ここでは、右図に示すように、LCAのエンコード結果(ベクトル)は、hLCAであるとする。木構造エンコーディング部12は、hLCAを、葉ノードに向かう、パラメタが示す「下」に位置する「薬A」および「患者」のLSTMに出力する。木構造エンコーディング部12は、hLCAを、葉ノードに向かう、パラメタが示す「上」に位置する「ところ」のLSTMに出力する。
【0052】
木構造エンコーディング部12は、「薬A」と、hLCAとをLSTMに入力する。木構造エンコーディング部12は、LSTMによってエンコーディングされたエンコード結果(ベクトル)としてh薬Aを出力する。
【0053】
また、木構造エンコーディング部12は、「患者」と、hLCAとをLSTMに入力する。木構造エンコーディング部12は、LSTMによってエンコーディングされたエンコード結果(ベクトル)としてh患者を出力する。木構造エンコーディング部12は、h患者を、葉ノードに向かう、パラメタが示す「下」に位置する「抽出」および「病気B」のLSTMに出力する。
【0054】
また、木構造エンコーディング部12は、「病気B」と「患者」からのベクトルとをLSTMに入力する。木構造エンコーディング部12は、LSTMによってエンコーディングされたエンコード結果(ベクトル)としてh病気Bを出力する。また、木構造エンコーディング部12は、「抽出」と、「患者」からのベクトルとをLSTMに入力する。木構造エンコーディング部12は、LSTMによってエンコーディングされたエンコード結果(ベクトル)としてh抽出を出力する。木構造エンコーディング部12は、h抽出を、葉ノードに向かう、パラメタが示す「下」に位置する「無作為」のLSTMに出力する。
【0055】
また、木構造エンコーディング部12は、「無作為」と、「抽出」からのベクトルとをLSTMに入力する。木構造エンコーディング部12は、LSTMによってエンコーディングされたエンコード結果(ベクトル)としてh無作為を出力する。
【0056】
一方、木構造エンコーディング部12は、「ところ」と、hLCAとをLSTMに入力する。木構造エンコーディング部12は、LSTMによってエンコーディングされたエンコード結果(ベクトル)としてhところを出力する。木構造エンコーディング部12は、hところを、葉ノードに向かう、パラメタが示す「上」に位置する「あった」のLSTMに出力する。
【0057】
また、木構造エンコーディング部12は、「あった」と、「ところ」からのベクトルとをLSTMに入力する。木構造エンコーディング部12は、LSTMによってエンコーディングされたエンコード結果(ベクトル)としてhあったを出力する。木構造エンコーディング部12は、hあったを、葉ノードに向かう、パラメタが示す「下」に位置する「効果」のLSTMに出力する。
【0058】
また、木構造エンコーディング部12は、「効果」と、「あった」からのベクトルとをLSTMに入力する。木構造エンコーディング部12は、LSTMによってエンコーディングされたエンコード結果(ベクトル)としてh効果を出力する。
【0059】
そして、木構造エンコーディング部12は、各ノードのエンコード結果を示すベクトルを用いて文のベクトルを求める。ここでは、木構造エンコーディング部12は、以下のように、文のベクトルh文を求めることができる。
h文=[h薬A;h無作為;h抽出;h病気B;h患者;h投与;hところ;h効果;hあった;]
【0060】
これにより、木構造エンコーディング部12は、係り受け木における「薬A」および「病気B」のSP外に基づいた、文のエンコーディングを行なえる。すなわち、木構造エンコーディング部12は、係り受け木における「薬A」および「病気B」のSPのみならず、SP外に存在する関係を示す「効果」を含む各ノードの情報もLCAに集まるため、SP外に基づいた、文のエンコーディングを行なえる。この結果、関係抽出学習部13は、単語間の関係を抽出する場合に用いる精度の高い機械学習モデルを生成できる。加えて、関係抽出予測部31は、機械学習モデルを用いて単語間の関係を精度良く抽出することができる。
【0061】
[関係抽出学習処理のフローチャート]
図5は、実施例1に係る関係抽出学習処理のフローチャートの一例を示す図である。なお、
図6に示す実施例1に係る関係抽出学習処理の一例を、適宜参照しながら説明する。
【0062】
木構造エンコーディング部12は、係り受け解析の解析済みの文s
i、固有表現対n
i、既にわかっている関係ラベルを受け付ける(ステップS11)。
図6の符号a1に示すように、文s
iとして「薬Aを無作為に抽出した病気Bの患者に投与したところ、効果があった」、固有表現対として「薬A」および「病気B」が示されている。文s
iでは、単語間の係り受けが解析されている。固有表現対は、関係を学習するターゲットとなる単語の対である。それぞれの単語には、文の中でのインデックスの範囲が示されている。インデックスは単語が文の中で何個目かを示す情報である。インデックスは0から数える。「薬A」は、0から1の間にある。「病気B」は、6から7の間にある。なお、固有表現値n
iは、第1文節、第2文節に対応する。
【0063】
そして、木構造エンコーディング部12は、固有表現対n
iに対応するLCA(共通祖先ノード)としてlca
iを特定する(ステップS12)。
図6の符号a2に示すように、共通祖先ノードのインデックスlca
iは、「10」となる。すなわち、10個目の「投与」がLCAの単語となる。
【0064】
そして、木構造エンコーディング部12は、lcaiが根となる形に木構造のLSTMを接続する(ステップS13)。すなわち、木構造エンコーディング部12は、文節単位の係り受けを用いて、文節単位の係り受けからなる木構造の係り受け木に変換する。
【0065】
そして、木構造エンコーディング部12は、葉ノードの各単語からlca
iに向けてLSTMを辿る(ステップS14)。
図6の符号a3に示すように、例えば、薬Aのベクトルh
薬A´と患者のベクトルh
患者´と他の単語のベクトルとからLCAのエンコード結果ベクトルh
LCA´が求められる。すなわち、木構造エンコーディング部12は、葉ノードのそれぞれからLCAに向かう経路に沿って各ノードの情報をLCAに集約することによって、LCAのエンコーディング結果ベクトルを求める。
【0066】
そして、木構造エンコーディング部12は、lca
iから各単語に向けてLSTMを辿り、各単語位置にある単語wを表すベクトルh
wを生成する(ステップS15)。
図6の符号a4に示すように、例えば、薬Aのベクトルh
薬A、無作為のベクトルh
無作為が生成される。すなわち、木構造エンコーディング部12は、LCAに文全体の情報を集約した後に、集約した情報を逆向きに伝播させて、係り受け木の各ノードをエンコーディングする。
【0067】
そして、木構造エンコーディング部12は、各単語のベクトルh
wを収集して結合し、文を表すベクトルh
siを生成する(ステップS16)。
図6の符号a5に示すように、「薬A」のベクトルh
薬A、「無作為」のベクトルh
無作為、・・・を収集して、結合して文s
iのベクトルh
siが生成される。
【0068】
そして、関係抽出学習部13は、文のベクトルh
siを機械学習モデルに入力して、関係ラベルlp
iを抽出する(ステップS17)。
図6の符号a6に示すように、関係抽出学習部13は、関係ラベルl
piを抽出する。ここでは、関係無しであることを示す「0」、関係有りであるが効果ありであることを示す「1」、関係有りであるが効果無しであることを示す「2」のいずれかが抽出される。関係抽出学習部13は、関係ラベルlp
iが受け付けた関係ラベルと一致するか否かを判定する(ステップS18)。関係ラベルlp
iが受け付けた関係ラベルと一致しないと判定した場合には(ステップS18;No)、関係抽出学習部13は、パラメタ21およびパラメタ23を調整する(ステップS19)。そして、関係抽出学習部13は、さらに学習すべく、ステップS14に移行する。
【0069】
一方、関係ラベルlpiが受け付けた関係ラベルと一致すると判定した場合には(ステップS18;Yes)、関係抽出学習部13は、関係抽出学習処理を終了する。
【0070】
[関係抽出予測処理のフローチャート]
図7は、実施例1に係る関係抽出予測処理のフローチャートの一例を示す図である。木構造エンコーディング部12は、係り受け解析の解析済み文s
i、固有表現対n
iを受け付ける(ステップS21)。そして、木構造エンコーディング部12は、固有表現対n
iに対応するLCA(共通祖先ノード)としてlca
iを特定する(ステップS22)。
【0071】
そして、木構造エンコーディング部12は、lcaiが根となる形に木構造のLSTMを接続する(ステップS23)。すなわち、木構造エンコーディング部12は、文節単位の係り受けを用いて、文節単位の係り受けからなる木構造の係り受け木に変換する。
【0072】
そして、木構造エンコーディング部12は、葉ノードの各単語からlcaiに向けてLSTMを辿る(ステップS24)。すなわち、木構造エンコーディング部12は、葉ノードのそれぞれからLCAに向かう経路に沿って各ノードの情報をLCAに集約することによって、LCAのエンコーディング結果ベクトルを求める。
【0073】
そして、木構造エンコーディング部12は、lcaiから各単語に向けてLSTMを辿り、各単語位置にある単語wを表すベクトルhwを生成する(ステップS25)。すなわち、木構造エンコーディング部12は、LCAに文全体の情報を集約した後に、集約した情報を逆向きに伝播させて、係り受け木の各ノードをエンコーディングする。
【0074】
そして、木構造エンコーディング部12は、各単語のベクトルhwを収集して結合し、文を表すベクトルhsiを生成する(ステップS26)。そして、関係抽出予測部33は、文のベクトルhsiを学習済みの機械学習モデルに入力して、関係ラベルlpiを抽出して、抽出した関係ラベルlpiを出力する(ステップS27)。そして、関係抽出予測部33は、関係抽出予測処理を終了する。
【0075】
[実施例1の効果]
上記実施例1によれば、機械学習装置1および予測装置3を含む情報処理装置は、以下の処理を行う。情報処理装置は、文に含まれる第1文節と第2文節とに対し、当該文から生成した係り受け木に含まれる2つのノードであって第1文節に対応する第1ノードと第2文節に対応する第2ノードとの共通の祖先ノードを特定する。情報処理装置は、係り受け木に含まれる葉ノードのそれぞれから共通の祖先ノードに向かう経路に応じて係り受け木に含まれる各ノードをエンコーディングすることによって、共通の祖先ノードのベクトルを求める。情報処理装置は、共通の祖先ノードのベクトルに基づいて、共通の祖先ノードから葉ノードに向かう経路に応じて係り受け木に含まれる各ノードをエンコーディングする。これにより、情報処理装置は、係り受け木における第1文節および第2文節の最短係り受け経路外に基づいた、文のエンコーディングを行なえる。
【0076】
また、上記実施例1によれば、情報処理装置は、葉ノードのそれぞれから共通の祖先ノードに向かう経路に沿って各ノードの情報を共通の祖先ノードに集約することによって、共通の祖先ノードのベクトルを求める。これにより、情報処理装置は、係り受け木における第1文節および第2文節の最短係り受け経路のみならず、最短係り受け経路外にある関係を示す文節を含む各ノードの情報も共通の祖先ノードに集まるため、最短係り受け経路外に基づいた、文のエンコーディングを行なえる。言い換えれば、情報処理装置は、最短係り受け経路外の情報を適切に含むベクトルを生成することができるようになり、第1文節および第2文節の関係抽出の精度を向上できる。
【0077】
また、上記実施例1によれば、機械学習装置1は、各ノードのエンコーディング結果を示すベクトルから文のベクトルを求める。機械学習装置1は、文のベクトルと文のベクトルに対応する正解ラベルとを入力する。機械学習装置1は、入力に応じて機械学習モデルが出力する文に含まれる第1文節と第2文節との関係に対応する予測結果と正解ラベルとの差に基づいた機械学習によって機械学習モデルを更新する。これにより、機械学習装置1は、第1文節および第2文節の関係抽出の精度の高い機械学習モデルを生成できる。
【0078】
また、上記実施例1によれば、予測装置3は、他の文のベクトルを更新された機械学習モデルに入力し、他の文に含まれる第1文節と第2文節との関係に対応する予測結果を出力する。これにより、予測装置3は、第1文節および第2文節の関係を精度良く出力できる。
【実施例2】
【0079】
ところで、実施例1では、木構造エンコーディング部12が、単語をLSTMに入力し、LSTMがエンコーディングしたエンコード結果ベクトルを、パラメタが示す方向に位置する単語のLSTMに出力すると説明した。しかしながら、木構造エンコーディング部12は、これに限定されず、単語をLSTMに入力し、LSTMがエンコーディングしたエンコード結果ベクトルおよび当該単語の所定の位置ベクトル(PE:Position Encoding)を、パラメタが示す方向に位置する単語のLSTMに出力しても良い。ここでいう所定の位置ベクトル(PE)とは、文において関係を抽出したい第1文節と第2文節との係り受け距離のことをいう。所定の位置ベクトル(PE)の詳細は、後述する。
【0080】
[実施例2に係る機械学習装置の構成]
図8は、実施例2に係る機械学習装置の構成を示す機能ブロック図である。なお、
図1に示す機械学習装置1と同一の構成については同一符号を示すことで、その重複する構成および動作の説明については省略する。実施例1と実施例2とが異なるところは、制御部10にPE付与部51を追加した点にある。また、実施例1と実施例2とが異なるところは、制御部10の木構造エンコーディング部12を木構造エンコーディング部12Aに変更した点にある。
【0081】
PE付与部51は、文に含まれる文節ごとに、文に含まれる第1文節との位置関係および文に含まれる第2文節との位置関係を付与する。例えば、PE付与部51は、木構造の係り受け木を用いて、文節ごとに、第1文節と第2文節との係り受け距離を示すPEを求める。PEは、一例として、aを第1文節からの距離、bを第2文節からの距離とした場合には、(a,b)で表わされる。また、PEは、一例として、第1文節と第2文節との間でない場合には(Out)で表わされる。そして、PE付与部51は、文節ごとに、PEを付与する。
【0082】
木構造エンコーディング部12Aは、文節単位の係り受けからなる木構造に変換した木の木構造のLSTMを用いて、それぞれの文節をエンコーディングする。例えば、木構造エンコーディング部12Aは、係り受け解析部11によって解析された文節単位の係り受けを用いて、文節単位の係り受けからなる木構造の係り受け木に変換する。木構造エンコーディング部12Aは、文に含まれる第1文節と第2文節とに対し、変換した係り受け木に含まれる2つのノードであって第1文節に対応する第1ノードと第2文節に対応する第2ノードとの共通の祖先ノード(LCA)を特定する。木構造エンコーディング部12Aは、パラメタ21およびPEを用いて、係り受け木に含まれる葉ノードのそれぞれからLCAに向かう経路に沿って、係り受け木に含まれる各ノードをエンコーディングすることによって、LCAのエンコーディング結果のベクトルを求める。すなわち、木構造エンコーディング部12Aは、葉ノードのそれぞれからLCAに向かう経路に沿って各ノードのPEを含む情報をLCAに集約することによって、LCAのエンコーディング結果ベクトルを求める。そして、木構造エンコーディング部12Aは、LCAのエンコーディング結果ベクトルに基づいて、パラメタ21およびPEを用いて、LCAから葉ノードに向かう経路に沿って、係り受け木に含まれる各ノードをエンコーディングする。つまり、木構造エンコーディング部12Aは、LCAに文全体のPEを含む情報を集約した後に、集約した情報を逆向きに伝播させて、係り受け木の各ノードをエンコーディングする。
【0083】
また、木構造エンコーディング部12Aは、各ノードのエンコーディング結果のベクトルを用いて文のベクトルを求める。
【0084】
[実施例2に係る予測装置の構成]
図9は、実施例2に係る予測装置の構成を示す機能ブロック図である。なお、
図2に示す予測装置3と同一の構成については同一符号を示すことで、その重複する構成および動作の説明については省略する。実施例1と実施例2とが異なるところは、制御部10にPE付与部51を追加した点にある。また、実施例1と実施例2とが異なるところは、制御部10の木構造エンコーディング部12を木構造エンコーディング部12Aに変更した点にある。なお、PE付与部51および木構造エンコーディング部12Aは、
図8に示す機械学習装置1と同一の構成であるので、同一符号で示し、その重複する構成および動作の説明については省略する。
【0085】
[木構造エンコーディングの一例]
図10は、実施例2に係る木構造エンコーディングの一例を示す図である。なお、文が「薬Aを無作為に抽出した病気Bの患者に投与したところ、効果があった」である場であって「薬A」と「病気B」との間の関係(「効果」)を抽出(判定)する場合であるとする。
【0086】
図10左図には、文における木構造の係り受け木が示されている。かかる係り受け木は、木構造エンコーディング部12Aによって変換される。すなわち、木構造エンコーディング部12Aは、係り受け解析部11によって解析された文における文節単位の係り受けを用いて、文節単位の係り受けからなる木構造の係り受け木に変換する。なお、
図10におけるそれぞれの四角のボックスはLSTMである。
【0087】
加えて、PE付与部51は、木構造の係り受け木を用いて、文節ごとに、「薬A」と「病気B」との係り受け距離を示すPEを求めて、求めたPEを付与する。それぞれのLSTMの右横に、PEが示されている。ここでは、「薬A」のPEは、(0,3)である。すなわち、「薬A」からの距離は、自身であるので、「0」である。「病気B」からの距離は、「病気B」を「0」として「患者」→「投与」→「薬A」の「3」となる。また、「患者」のPEは、(2,1)である。すなわち、「薬A」からの距離は、「薬A」を「0」として「投与」→「患者」の「2」となる。「病気B」からの距離は、「病気B」を「0」として「1」となる。また、「病気B」のPEは、(3,0)である。すなわち、「薬A」からの距離は、「薬A」を「0」として「投与」→「患者」→「病気B」の「3」となる。「病気B」からの距離は、自身であるので、「0」である。また、「抽出」および「無作為」のPEは、「薬A」と「病気B」との間にないので、「Out」となる。同様に、「ところ」、「あった」および「効果」のPEは、「薬A」と「病気B」との間にないので、「Out」となる。
【0088】
木構造エンコーディング部12Aは、文に含まれる「薬A」と「病気B」とに対し、変換した係り受け木に含まれる2つのノードであって「薬A」に対応するノードと「病気B」に対応するノードとの共通の祖先ノード(LCA)を特定する。特定されるLCAは、「投与」に対応するノードとなる。
【0089】
木構造エンコーディング部12Aは、パラメタ21およびPEを用いて、係り受け木に含まれる葉ノードのそれぞれからLCAに向かう経路に沿って係り受け木に含まれる各ノードをエンコーディングすることによって、LCAのエンコーディング結果のベクトルを求める。すなわち、木構造エンコーディング部12Aは、葉ノードのそれぞれからLCAに向かう経路に沿って各ノードのPEを含む情報をLCAに集約する。左図では、葉ノードは、「薬A」、「無作為」、「病気B」、「効果」に対応するノードである。
【0090】
ここでは、左図に示すように、木構造エンコーディング部12Aは、「薬A」をLSTMに入力する。木構造エンコーディング部12Aは、LSTMによってエンコーディングされたエンコード結果(ベクトル)とPE(0,3)とを結合したベクトルを、パラメタが示す「上」に位置する「投与」(LCA)のLSTMに出力する。
【0091】
また、木構造エンコーディング部12Aは、「無作為」をLSTMに入力する。木構造エンコーディング部12Aは、LSTMによってエンコーディングされたエンコード結果(ベクトル)とPE(Out)とを結合したベクトルをパラメタが示す「上」に位置する「抽出」のLSTMに出力する。
【0092】
また、木構造エンコーディング部12Aは、「抽出」と、「無作為」からのベクトルをLSTMに入力する。木構造エンコーディング部12Aは、LSTMによってエンコーディングされたエンコード結果(ベクトル)と、PE(Out)とを結合したベクトルをパラメタが示す「上」に位置する「患者」のLSTMに出力する。
【0093】
また、木構造エンコーディング部12Aは、「病気B」をLSTMに入力する。木構造エンコーディング部12Aは、LSTMによってエンコーディングされたエンコード結果(ベクトル)とPE(3,0)とを結合したベクトルをパラメタが示す「上」に位置する「患者」のLSTMに出力する。
【0094】
また、木構造エンコーディング部12Aは、「患者」と、「抽出」からのベクトルと、「病気B」からのベクトルとをLSTMに入力する。木構造エンコーディング部12Aは、LSTMによってエンコーディングされたエンコード結果(ベクトル)とPE(2,1)とを結合したベクトルをパラメタが示す「上」に位置する「投与」(LCA)のLSTMに出力する。
【0095】
一方、木構造エンコーディング部12Aは、「効果」をLSTMに入力する。木構造エンコーディング部12Aは、LSTMによってエンコーディングされたエンコード結果(ベクトル)とPE(Out)とを結合したベクトルをパラメタが示す「上」に位置する「あった」のLSTMに出力する。
【0096】
また、木構造エンコーディング部12Aは、「あった」と、「効果」からのベクトルをLSTMに入力する。木構造エンコーディング部12Aは、LSTMによってエンコーディングされたエンコード結果(ベクトル)と、PE(Out)とを結合したベクトルをパラメタが示す「下」に位置する「ところ」のLSTMに出力する。
【0097】
また、木構造エンコーディング部12Aは、「ところ」と、「あった」からのベクトルをLSTMに入力する。木構造エンコーディング部12Aは、LSTMによってエンコーディングされたエンコード結果(ベクトル)と、PE(Out)とを結合したベクトルをパラメタが示す「下」に位置する「投与」(LCA)のLSTMに出力する。
【0098】
そして、木構造エンコーディング部12Aは、「投与」と、「ところ」からのベクトルと、「薬A」からのベクトルと、「患者」からのベクトルとをLSTMに入力する。木構造エンコーディング部12Aは、LSTMによってエンコーディングされたエンコード結果(ベクトル)をLCAのエンコード結果(ベクトル)として求める。すなわち、木構造エンコーディング部12Aは、葉ノードのそれぞれからLCAに向かう経路に沿って各ノードの情報をLCAに集約する。
【0099】
この後、木構造エンコーディング部12Aは、LCAのエンコード結果(ベクトル)に基づいて、パラメタ21およびPEを用いて、LCAから葉ノードに向かう経路に沿って係り受け木に含まれる各ノードをエンコーディングする。つまり、木構造エンコーディング部12Aは、LCAに文全体の情報を集約した後に、集約したPEを含む情報を逆向きに伝播させて、係り受け木の各ノードをエンコーディングする。
【0100】
ここでは、右図に示すように、LCAのエンコード結果(ベクトル)は、hLCAであるとする。木構造エンコーディング部12Aは、hLCAを、葉ノードに向かう、パラメタが示す「下」に位置する「薬A」および「患者」のLSTMに出力する。木構造エンコーディング部12Aは、hLCAを、葉ノードに向かう、パラメタが示す「上」に位置する「ところ」のLSTMに出力する。
【0101】
木構造エンコーディング部12Aは、「薬A」と、hLCAとをLSTMに入力する。木構造エンコーディング部12Aは、LSTMによってエンコーディングされたエンコード結果(ベクトル)h薬Aを出力する。
【0102】
また、木構造エンコーディング部12Aは、「患者」と、hLCAとをLSTMに入力する。木構造エンコーディング部12Aは、LSTMによってエンコーディングされたエンコード結果(ベクトル)としてh患者を出力する。木構造エンコーディング部12Aは、h患者とPE(2,1)とを結合したベクトルをパラメタが示す「下」に位置する「抽出」と「病気B」のLSTMに出力する。
【0103】
また、木構造エンコーディング部12Aは、「抽出」と、「患者」からのベクトルとをLSTMに入力する。木構造エンコーディング部12Aは、LSTMによってエンコーディングされたエンコード結果(ベクトル)としてh抽出を出力する。木構造エンコーディング部12Aは、h抽出とPE(Out)とを結合したベクトルをパラメタが示す「下」に位置する「無作為」のLSTMに出力する。
【0104】
また、木構造エンコーディング部12Aは、「無作為」と、「抽出」からのベクトルとをLSTMに入力する。木構造エンコーディング部12Aは、LSTMによってエンコーディングされたエンコード結果(ベクトル)としてh無作為を出力する。
【0105】
また、木構造エンコーディング部12Aは、「病気B」と、「患者」からのベクトルとをLSTMに入力する。木構造エンコーディング部12Aは、LSTMによってエンコーディングされたエンコード結果(ベクトル)としてh病気Bを出力する。
【0106】
一方、木構造エンコーディング部12は、「ところ」と、hLCAとをLSTMに入力する。木構造エンコーディング部12Aは、LSTMによってエンコーディングされたエンコード結果(ベクトル)としてhところを出力する。木構造エンコーディング部12Aは、hところとPE(Out)とを結合したベクトルをパラメタが示す「上」に位置する「あった」のLSTMに出力する。
【0107】
また、木構造エンコーディング部12は、「あった」と、「ところ」からのベクトルとをLSTMに入力する。木構造エンコーディング部12Aは、LSTMによってエンコーディングされたエンコード結果(ベクトル)としてhあったを出力する。木構造エンコーディング部12Aは、hあったとPE(Out)とを結合したベクトルをパラメタが示す「下」に位置する「効果」のLSTMに出力する。
【0108】
また、木構造エンコーディング部12Aは、「効果」と、「あった」からのベクトルとをLSTMに入力する。木構造エンコーディング部12Aは、LSTMによってエンコーディングされたエンコード結果(ベクトル)としてh効果を出力する。
【0109】
そして、木構造エンコーディング部12Aは、各ノードのエンコード結果を示すベクトルから文のベクトルを求める。ここでは、木構造エンコーディング部12Aは、以下のように、文のベクトルh文を求めることができる。
h文=[h薬A;h無作為;h抽出;h病気B;h患者;h投与;hところ;h効果;hあった;]
【0110】
これにより、木構造エンコーディング部12Aは、各単語を表すベクトルにターゲット(ここでは、「薬A」および「病気B」)との位置関係(PE)を加えて明示することで、重要なSP内の情報とそうでない情報との扱いを変えることができる。この結果、木構造エンコーディング部12Aは、ターゲットと関係ある単語であるのかどうかについて、精度良くエンコーディングすることが可能となる。この結果、木構造エンコーディング部12Aは、係り受け木における「薬A」および「病気B」のSP外に基づいた、文のエンコーディングを精度良く行なうことが可能となる。
【0111】
[実施例2の効果]
上記実施例2によれば、木構造エンコーディング部12Aは、葉ノードのそれぞれから共通の祖先ノードに向かう経路に沿って各ノードにおける、第1ノードとの位置関係および第2ノードとの位置関係を含む情報を共通の祖先ノードに集約する処理を含む。これにより、木構造エンコーディング部12Aは、第1ノードおよび第2ノードに対して重要なノードと重要でないノードとの扱いを変えることができる。この結果、木構造エンコーディング部12Aは、第1ノードおよび第2ノードと関係があるノードであるのかどうかについて、精度良くエンコーディングすることが可能となる。
【0112】
[その他]
なお、実施例1,2では、機械学習装置1および予測装置3を含む情報処理装置が、日本語に対する文に関し、以下の処理を行うことについて説明した。すなわち、情報処理装置は、日本語に対する文全体の係り受け木において、共通の祖先ノードに文全体の情報を集約して、集約した情報を用いて係り受け木の各ノードをエンコーディングすることについて説明した。しかしながら、情報処理装置は、これに限定されず、英語に対する文に関する場合であっても良い。すなわち、情報処理装置は、英語に対する文全体の係り受け木において、共通の祖先ノードに文全体の情報を集約して、集約した情報を用いて係り受け木の各ノードをエンコーディングする場合であっても良い。
【0113】
また、図示した機械学習装置1や予測装置3の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、機械学習装置1や予測装置3の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、木構造エンコーディング部12を、各ノードの情報をLCAに集約する集約部と、LCAに集約した情報を逆向きに伝播させる逆向き伝播部とに分散しても良い。また、PE付与部51と、木構造エンコーディング部12とを1つの機能部として統合しても良い。また、記憶部20を機械学習装置1の外部装置としてネットワーク経由で接続するようにしても良い。また、記憶部40を予測装置3の外部装置としてネットワーク経由で接続するようにしても良い。
【0114】
また、上記実施例では、機械学習装置1と予測装置3とに分離する構成として説明した。しかしながら、情報処理装置が、機械学習装置1の機械学習処理と予測装置3の予測処理とを含む構成としても良い。
【0115】
また、上記実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、
図1に示した機械学習装置1や予測装置3と同様の機能を実現するエンコーディングプログラムを実行するコンピュータの一例を説明する。ここでは、機械学習装置1と同様の機能を実現するエンコーディングプログラムを一例として説明する。
図11は、エンコーディングプログラムを実行するコンピュータの一例を示す図である。
【0116】
図11に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラムなどを読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD(Hard Disk Drive)205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
【0117】
ドライブ装置213は、例えばリムーバブルディスク210用の装置である。HDD205は、エンコーディングプログラム205aおよびエンコーディング処理関連情報205bを記憶する。
【0118】
CPU203は、エンコーディングプログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、機械学習装置1の各機能部に対応する。エンコーディング処理関連情報205bは、パラメタ21、エンコード結果22およびパラメタ23に対応する。そして、例えばリムーバブルディスク210が、エンコーディングプログラム205aなどの各情報を記憶する。
【0119】
なお、エンコーディングプログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、光磁気ディスク、IC(Integrated Circuit)カードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらからエンコーディングプログラム205aを読み出して実行するようにしても良い。
【符号の説明】
【0120】
1 機械学習装置
10,30 制御部
11 係り受け解析部
12,12A 木構造エンコーディング部
13 関係抽出学習部
20,40 記憶部
21 パラメタ
22,42 エンコード結果
23 パラメタ
3 予測装置
31 関係抽出予測部
51 PE付与部