(57)【要約】【課題】任意のフレーズに対して適切なベクトルを作成することができる。【解決手段】ラティス構築部２１２が、入力されたテキストに対する形態素解析結果及び係り受け解析結果に基づいて、隣接する単語又はフレーズ候補間を結んだリンクからなるラティス構造を構築し、第１学習部２１３が、ラティス構造に基づいて、単語又はフレーズ候補から周辺の単語又はフレーズ候補を推定するニューラルネットワークＡを学習する。ベクトル生成部２１４が、ニューラルネットワークＡから、単語又はフレーズ候補の各々に対するベクトルを取得し、学習データとする。第２学習部が、学習データに基づいて、単語又はフレーズ候補をベクトル化するためのニューラルネットワークＢを学習する。【選択図】図３
2019144708.tif 000002
【特許請求の範囲】
【請求項１】
入力されたテキストに対する形態素解析結果及び係り受け解析結果に基づいて、単語又はフレーズ候補の列の順序に従って隣接する単語又はフレーズ候補間を結んだリンクからなるラティス構造を構築するラティス構築部と、
前記ラティス構造に基づいて、単語又はフレーズ候補から周辺の単語又はフレーズ候補を推定するニューラルネットワークＡを学習する第１学習部と、
を含むフレーズベクトル学習装置。
【請求項２】
前記ニューラルネットワークＡは、単語又はフレーズ候補の集合Ｍの各要素に対応させた入力層及び出力層を有し、
前記ニューラルネットワークＡの入力層が有する変換行列から、単語又はフレーズ候補の集合Ｍの各要素に対応する列ベクトルを抽出することにより、単語又はフレーズ候補の各々に対するベクトルを取得するベクトル生成部を更に含む請求項１記載のフレーズベクトル学習装置。
【請求項３】
前記ニューラルネットワークＡから、単語又はフレーズ候補の各々に対するベクトルを取得し、学習データとするベクトル生成部と、
前記学習データに基づいて、単語又はフレーズ候補をベクトル化するためのニューラルネットワークＢを学習する第２学習部と、
を更に含む請求項１又は２記載のフレーズベクトル学習装置。
【請求項４】
前記ニューラルネットワークＢは、bidirectional LSTMを用いて構成され、フレーズ候補をベクトル化する際には、フレーズ候補に含まれる各単語を入力とする請求項３記載のフレーズベクトル学習装置。
【請求項５】
ラティス構築部が、入力されたテキストに対する形態素解析結果及び係り受け解析結果に基づいて、単語又はフレーズ候補の列の順序に従って隣接する単語又はフレーズ候補間を結んだリンクからなるラティス構造を構築し、
第１学習部が、前記ラティス構造に基づいて、単語又はフレーズ候補から周辺の単語又はフレーズ候補を推定するニューラルネットワークＡを学習する
フレーズベクトル学習方法。
【請求項６】
コンピュータを、請求項１〜請求項４の何れか１項記載のフレーズベクトル学習装置を構成する各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フレーズベクトル学習装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
「フレーズ」を、複数（１つ以上）の単語からなるテキストと定義する。フレーズをベクトル化する際には、以下の2つの方法が考えられる。
【０００３】
(方法1) word2vec等で作成した単語ベクトルを用いる。処理対象となるフレーズに含まれる単語の単語ベクトルの平均をとってフレーズベクトルとする。
【０００４】
例えば、
v(とても暑い)=v(とても)+v(暑い)
である。ただし、v(w)は、単語wの単語ベクトルである。
【０００５】
(方法2)単語ベクトルを作成する際に、入力として用いるコーパスを、単語に分割後、所定のルールにより単語を結合してフレーズを作成（フレーズ化）する。そして、非特許文献１のskipgramなどを使い、フレーズを単語とみなしてベクトルを作成する。
【０００６】
（通常の入力例）：東京/都/の/委員/会/に/ 出席/ し/た
（フレーズ化した入力例）：東京都/の/委員会/に/出席/し/た
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Tomas Mikolov, etc..," Distributed Representations of Words and Phrases and their Compositionality ", arXiv:1310.4546v1, 16 Oct 2013.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来の方法１のように単語ベクトルの平均を用いる方法の場合、単語が類似しているフレーズが類似しやすい、という課題がある。例えば、「花粉が飛ぶ」と「空を飛ぶ」のベクトルが類似しやすい。
【０００９】
また、従来の方法２では、ベクトル作成に用いるコーパスに出現するフレーズのベクトル化は可能だが、コーパスに出現しないフレーズのベクトル化はできない、という課題がある。
【００１０】
本発明は、上記課題を解決するために成されたものであり、周辺の単語又はフレーズ候補を推定することができるフレーズベクトル学習装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明に係るフレーズベクトル学習装置は、入力されたテキストに対する形態素解析結果及び係り受け解析結果に基づいて、単語又はフレーズ候補の列の順序に従って隣接する単語又はフレーズ候補間を結んだリンクからなるラティス構造を構築するラティス構築部と、前記ラティス構造に基づいて、単語又はフレーズ候補から周辺の単語又はフレーズ候補を推定するニューラルネットワークＡを学習する第１学習部と、を含んで構成されている。
【００１２】
本発明に係るフレーズベクトル学習方法は、ラティス構築部が、入力されたテキストに対する形態素解析結果及び係り受け解析結果に基づいて、単語又はフレーズ候補の列の順序に従って隣接する単語又はフレーズ候補間を結んだリンクからなるラティス構造を構築し、第１学習部が、前記ラティス構造に基づいて、単語又はフレーズ候補から周辺の単語又はフレーズ候補を推定するニューラルネットワークＡを学習する。
【００１３】
本発明に係るプログラムは、コンピュータを、上記発明に係るフレーズベクトル学習装置の各部として機能させるためのプログラムである。
【発明の効果】
【００１４】
本発明のフレーズベクトル学習装置、方法、及びプログラムによれば、隣接する単語又はフレーズ候補間を結んだリンクからなるラティス構造に基づいて、周辺の単語又はフレーズ候補を推定するニューラルネットワークＡを学習することにより、周辺の単語又はフレーズ候補を推定することができる、という効果が得られる。
また、前記ニューラルネットワークＡから、単語又はフレーズ候補の各々に対するベクトルを取得し、学習データとして、単語又はフレーズ候補をベクトル化するためのニューラルネットワークＢを学習することにより、任意のフレーズに対して適切なベクトルを作成することができる、という効果が得られる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態に係るフレーズベクトル学習装置の構成を示すブロック図である。
【図２】入力されるテキストの一例を示す図である。
【図３】本発明の実施の形態に係るフレーズベクトル学習装置の学習データ生成部の構成を示すブロック図である。
【図４】形態素解析及び係り受け解析の結果の一例を示す図である。
【図５】ラティス構造の一例を示す図である。
【図６】ニューラルネットワークＡを説明するための図である。
【図７】学習データの一例を示す図である。
【図８】ニューラルネットワークＢを説明するための図である。
【図９】本発明の実施の形態に係るフレーズベクトル推定装置の構成を示すブロック図である。
【図１０】本発明の実施の形態に係るフレーズベクトル学習装置における学習データ生成処理ルーチンを示すフローチャートである。
【図１１】本発明の実施の形態に係るフレーズベクトル学習装置におけるフレーズベクトル学習処理ルーチンを示すフローチャートである。
【図１２】本発明の実施の形態に係るフレーズベクトル推定装置におけるフレーズベクトル推定処理ルーチンを示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００１７】
＜本発明の実施の形態の概要＞
本実施の形態は、テキストのベクトル化に関する。単語をベクトル化する手法としてword2vecなどが存在する。また、位置tの単語から、周辺t-1,t-2,t+1,t+2,…の単語を予測するようにベクトル空間を推定する方法が知られている（参考文献１）。この方法では、単語を固定次元のベクトル表現に射影することで、連続空間で類似度計算ができるようになる。
【００１８】
例：テーブル->[0,01, -0.02,….0.52]
例：椅子->[0.02,-0.04,…,0.31]
【００１９】
[参考文献１] Tomas Mikolov,"Efficient Estimation of Word Representations in Vector Space", arXiv:1301.3781v3 [cs.CL], 7 Sep 2013.
【００２０】
本実施の形態では、まず、係り受け解析器を用いて、事前に文を係り受け解析し、係り受けの結果から可能なフレーズ化の候補を複数含むラティス構造を構築する。そして、上記のラティス構造に対してすべてのフレーズ化候補を考慮しながら単語又はフレーズのベクトル表現を推定する。
【００２１】
そして、求めた単語又はフレーズのベクトル表現を再現するように単語又はフレーズをベクトル化するニューラルネットワークモデルを学習する。
【００２２】
＜本発明の実施の形態に係るフレーズベクトル学習装置の構成＞
次に、本発明の実施の形態に係るフレーズベクトル学習装置の構成について説明する。図１に示すように、本発明の実施の形態に係るフレーズベクトル学習装置１００は、ＣＰＵと、ＲＡＭと、後述する学習データ生成処理ルーチン及びフレーズベクトル学習処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することが出来る。このフレーズベクトル学習装置１００は、機能的には図１に示すように入力部１０と、演算部２０と、出力部４０とを備えている。
【００２３】
入力部１０は、テキストの集合を受け付ける。例えば、図２に示すようなテキストを含むテキストの集合を受け付ける。
【００２４】
演算部２０は、学習データ生成部２１と、第２学習部２２とを備えている。
【００２５】
学習データ生成部２１は、図３に示すように、基本解析部２１１と、ラティス構築部２１２と、第１学習部２１３と、ベクトル生成部２１４とを備えている。
【００２６】
基本解析部２１１は、各テキストに対して形態素解析及び係り受け解析を行う。
【００２７】
上記図２のテキストに対する形態素解析及び係り受け解析の結果の例を図４に示す。形態素解析、係り受け解析は任意のものを用いればよく、例えば、既知の形態素解析器であるCaboChaを利用する（https://taku910.github.io/cabocha/）。
【００２８】
ラティス構築部２１２は、各テキストに対する形態素解析及び係り受け解析の結果に基づいて、各テキストに対し、当該テキストから得られるフレーズ化可能なフレーズ候補の各々を含む、単語又はフレーズ候補の列の順序に従って隣接する単語又はフレーズ候補間を結んだリンクからなるラティス構造を構築する（図５）。
【００２９】
具体的には、まず、連続する係り受け文節をＮ個結合してフレーズ候補とする。連続する係り受け文節をいくつまで結合するか（=Nとする）は、任意に設定してよい。図５の例では、N=２とし、１文節から、最大２文節（フレーズ）まで結合し、ラティスのノードとしている。またこの際、動詞は原型（例における９列目）を使用するようにしてもよい（例：つけました→つける）。そして、単語とフレーズ候補をラティス構造のノードとして、ノードを文節位置ごとに結合したラティス構造を構築する。
【００３０】
第１学習部２１３は、各テキストについて構築されたラティス構造に基づいて、単語又はフレーズ候補から周辺の単語又はフレーズ候補を推定するニューラルネットワークＡを学習する（図６参照）。ここで、ニューラルネットワークＡは、単語又はフレーズ候補の集合Ｍの各要素に対応させた入力層及び出力層を有する。また、周辺の単語又はフレーズ候補とは、入力となる単語又はフレーズ候補より前の所定範囲に含まれる単語又はフレーズ候補と、入力となる単語又はフレーズ候補より後の所定範囲に含まれる単語又はフレーズ候補とである。
【００３１】
具体的には、以下のように行う。まず、入力されたテキストの集合から作成された全ラティス構造について、ラティス構造を構成する単語・フレーズの集合をＭ(語彙数I、i=1,…,Iは各語彙に振った番号)とする。
【００３２】
集合Ｍの各要素m_iに対応させた入力層と出力層を持つニューラルネットワークＡの学習を、上記参考文献１等の手法を用いて行う。
【００３３】
ただし、ニューラルネットワークＡの学習の際には、非特許文献１と異なり、複数のフレーズ候補を考慮しながら周辺ノードを推定するようにする。ここで、周辺ノードとは、該当ノードを構成する単語又はフレーズ候補の開始文字位置より前方の所定範囲内に存在するノードと、該当ノードを構成する単語又はフレーズ候補の終了文字位置より方向の所定範囲内に存在するノードの集合とする。ただし、当該ノードと、周辺ノードの範囲が重複するように設定してもよい。
【００３４】
ベクトル生成部２１４は、学習されたニューラルネットワークＡから、単語又はフレーズ候補の各々に対するベクトルを取得し、学習データとする。
【００３５】
具体的には、学習済みのニューラルネットワークＡの入力層の変換行列（Embedding matrix）から、Ｍの各要素m_iに対応する列ベクトルv_i（Embedding vector）を抽出し、m_iとv_iをペアとして、その集合を学習データとして出力する（図７参照）。v_iの次元数はd次元とし、dは任意の自然数とする。
【００３６】
第２学習部２２は、学習データ（m_iとv_iのペアの集合）に基づいて、単語又はフレーズ候補をベクトル化するためのニューラルネットワークＢを学習する。学習データのうち、全m_iを構成する単語またはフレーズの集合をＥ（語彙数J、j=1,…,J）とする。
【００３７】
ニューラルネットワークＢは、例えば、bidirectional LSTMを用いて構成され、フレーズ候補をベクトル化する際には、フレーズ候補に含まれる各単語を入力とする。入力層はEの各要素e_jに対応させる。出力層は学習データのv_iと同じd次元とし、入力される単語またはフレーズm_iのベクトルを推定したv_i_estが出力される。
【００３８】
学習方法は二乗誤差最小化など、一般的な方法でよい。入力されたm_iを単語に分割し、ニューラルネットワークＢに入力し、出力されるv_i_estがベクトルv_iを復元するようニューラルネットワークＢの学習を行う（図８参照）
【００３９】
＜本発明の実施の形態に係るフレーズベクトル推定装置の構成＞
次に、本発明の実施の形態に係るフレーズベクトル推定装置の構成について説明する。図９に示すように、本発明の実施の形態に係るフレーズベクトル推定装置１５０は、ＣＰＵと、ＲＡＭと、後述するフレーズベクトル推定処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することが出来る。このフレーズベクトル推定装置１５０は、機能的には図９に示すように入力部５０と、演算部６０と、出力部９０とを備えている。
【００４０】
入力部５０は、フレーズ（テキスト）を受け付ける。
【００４１】
演算部６０は、基本解析部６１と、推定部６２と、記憶部６３とを備える。
【００４２】
記憶部６３には、フレーズベクトル学習装置１００により学習されたニューラルネットワークＢのモデルが記憶される。
【００４３】
基本解析部６１は、入力されたテキストに対して形態素解析を行い、単語に分割する。
【００４４】
推定部６２は、記憶部６３に記憶されているニューラルネットワークＢのモデルを用いて、入力されたテキストの各単語を入力して、当該テキストのベクトルを推定し、出力部９０により出力する。
【００４５】
例えば、上記図８に示すように、入力されたテキストの各単語を、bidirectional LSTMに含まれる各符号化ユニットに入力し、bidirectional LSTMの出力から、Attention pooling層を経て、ベクトルの推定結果を出力する。
【００４６】
＜本発明の実施の形態に係るフレーズベクトル学習装置の作用＞
次に、本発明の実施の形態に係るフレーズベクトル学習装置１００の作用について説明する。入力部５０においてテキストの集合を受け付けると、フレーズベクトル学習装置１００は、図１０に示す学習データ生成処理ルーチンを実行する。
【００４７】
まず、ステップＳ１００で、各テキストに対して形態素解析及び係り受け解析を行う。
【００４８】
そして、ステップＳ１０２で、上記ステップＳ１００の解析結果に基づいて、各テキストに対してラティス構造を構築する。
【００４９】
ステップＳ１０４では、上記ステップＳ１０２で各テキストについて構築されたラティス構造に基づいて、単語又はフレーズ候補から周辺の単語又はフレーズ候補を推定するニューラルネットワークＡを学習する。
【００５０】
ステップＳ１０６では、学習されたニューラルネットワークＡから、単語又はフレーズ候補の各々に対するベクトルを取得し、学習データとする。
【００５１】
そして、フレーズベクトル学習装置１００は、図１１に示すフレーズベクトル学習処理ルーチンを実行する。
【００５２】
まず、ステップＳ１０８において、学習データとして、単語又はフレーズ候補とそのベクトルとのペアの集合を受け付ける。
【００５３】
そして、ステップＳ１１０において、単語又はフレーズ候補とそのベクトルとのペアの集合に基づいて、単語又はフレーズ候補をベクトル化するためのニューラルネットワークＢを学習する。
【００５４】
＜本発明の実施の形態に係るフレーズベクトル推定装置の作用＞
次に、本発明の実施の形態に係るフレーズベクトル推定装置１５０の作用について説明する。フレーズベクトル学習装置１００によって予め学習されたニューラルネットワークＢのモデルがフレーズベクトル推定装置１５０に入力されると、フレーズベクトル推定装置１５０は、ニューラルネットワークＢのモデルを記憶部６３へ格納する。そして、入力部５０が、フレーズであるテキストを受け付けると、フレーズベクトル推定装置１５０は、図１２に示すフレーズベクトル推定処理ルーチンを実行する。
【００５５】
ステップＳ１２０で、入力部５０により受け付けたテキストに対して形態素解析を行い、単語に分割する。
【００５６】
ステップＳ１２２では、記憶部６３に記憶されているニューラルネットワークＢのモデルを用いて、入力されたテキストの各単語を入力して、当該テキストのベクトルを推定し、出力部９０により出力し、フレーズベクトル推定処理ルーチンを終了する。
【００５７】
以上説明したように、本発明の実施の形態に係るフレーズベクトル学習装置によれば、隣接する単語又はフレーズ候補間を結んだリンクからなるラティス構造に基づいて、周辺の単語又はフレーズ候補を推定するニューラルネットワークＡを学習し、前記ニューラルネットワークＡから、単語又はフレーズ候補の各々に対するベクトルを取得し、学習データとして、単語又はフレーズ候補をベクトル化するためのニューラルネットワークＢを学習することにより、任意のフレーズに対して適切なベクトルを作成することができる。
【００５８】
また、係り受け解析の結果を使い、多数のフレーズ化候補を同時に考慮しながら単語・フレーズのベクトル表現を求めることで、入力コーパスに出現しない、または出現数が少ないフレーズに対して、より頑健なベクトル表現を求めることができる。
【００５９】
また、一度フレーズ単位で学習したニューラルネットワークのモデルから学習データを作成し、任意のフレーズをベクトル化可能なニューラルネットワークのモデルを学習する。これにより、人手の正解なしで、任意入力を受け付け可能で、かつフレーズの類似性を適切に反映したモデルを実現することができる。
【００６０】
また、本発明の実施の形態に係るフレーズベクトル推定装置によれば、任意のフレーズに対して適切なベクトルを作成することができる。
【００６１】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００６２】
例えば、上述した実施の形態では、フレーズベクトル推定装置１５０とフレーズベクトル学習装置１００とを別々の装置として構成する場合を例に説明したが、フレーズベクトル推定装置１５０とフレーズベクトル学習装置１００とを１つの装置として構成してもよい。
【００６３】
上述のフレーズベクトル学習装置及びフレーズベクトル推定装置は、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【符号の説明】
【００６４】
１０   入力部
２０   演算部
２１   学習データ生成部
２２   第２学習部
４０   出力部
５０   入力部
６０   演算部
６１   基本解析部
６２   推定部
６３   記憶部
９０   出力部
１００ フレーズベクトル学習装置
１５０ フレーズベクトル推定装置
２１１ 基本解析部
２１２ ラティス構築部
２１３ 第１学習部
２１４ ベクトル生成部
【図１】
2019144708.tif 000003
【図２】
2019144708.tif 000004
【図３】
2019144708.tif 000005
【図４】
2019144708.tif 000006
【図５】
2019144708.tif 000007
【図６】
2019144708.tif 000008
【図７】
2019144708.tif 000009
【図８】
2019144708.tif 000010
【図９】
2019144708.tif 000011
【図１０】
2019144708.tif 000012
【図１１】
2019144708.tif 000013
【図１２】
2019144708.tif 000014