(57)【要約】【課題】解析履歴全体に基づく素性を考慮した高精度な文の構文構造を解析することができる句構造解析装置を実現する。【解決手段】句構造解析装置１０００は、文データを解析するためのアクションを設定するアクション設定部１と、素性テンプレートに基づいて各アクションが実行されたときの第１スコアを取得する第１スコア取得部３と、ＲＮＮにより各アクションが実行されたときの第２スコアを取得する第２スコア取得部４とを備える。句構造解析装置１０００では、スコア統合部５が第１スコアと第２スコアを統合して取得した統合スコアにより、文データを解析処理における各段階の最適なアクションを特定する。そして、句構造解析装置１０００では、特定されたアクション系列により、入力された文データの句構造解析結果が取得される。【選択図】図１
2018109862.tif 000002
【特許請求の範囲】
【請求項１】
アクションを時系列に実行することで文章の句構造を解析する句構造解析装置であって、
文章の句構造を解析するためのアクションを設定するアクション設定部と、
文章についてのデータである文データを入力し保持するキューメモリと、
前記キューメモリから出力されるデータを保持するスタックメモリと、
前記アクション設定部により設定されたアクションが実行されたとき、前記キューメモリに保持されているデータと前記スタックメモリに保持されているデータとを参照し、所定の素性についての評価値を取得することで素性ベクトルを取得し、取得した前記素性ベクトルに基づいて、第１スコアを取得する第１スコア取得部と、
入力層と、隠れ層と、出力層と、隠れ層の出力を保持する保持部と、を含む再帰型ニューラルネットワークを有する第１ＲＮＮ部を含み、再帰型ニューラルネットワークを用いて取得した第２スコアを取得する第２スコア取得部と、
前記第１スコアと前記第２スコアとを統合することで統合スコアを取得するスコア統合部と、
前記統合スコアに基づいて、文章の句構造の解析の各段階のアクションを決定するアクション決定部と、
を備え、
前記第１ＲＮＮ部の入力層は、前記アクション設定部により設定されたアクションの情報と、前記アクションが実行されたときの前記キューメモリに保持されているデータおよび前記アクションが実行されたときの前記スタックに保持されているデータの少なくとも１つと、を入力とし、入力されたデータから前記第１ＲＮＮ部の前記隠れ層に出力するためのデータを取得し、
前記第１ＲＮＮ部の隠れ層は、前記第１ＲＮＮ部の前記入力層により取得されたデータと前記保持部により保持されているデータとに基づいて、前記第１ＲＮＮ部の前記出力層に出力するためのデータを取得し、
前記第１ＲＮＮ部の出力層は、前記第１ＲＮＮ部の前記隠れ層により取得されたデータに基づいて、第２スコアを取得する、
句構造解析装置。
【請求項２】
前記第１スコア取得部は、さらに、
前記文データの素性を評価するための素性ベクトルを取得するために参照する素性テンプレートを保持する素性テンプレート格納部と、
前記アクション設定部により設定されたアクションが実行されたとき、前記素性テンプレートに基づいて、前記キューメモリに保持されているデータと前記スタックメモリに保持されているデータとを参照し、所定の素性についての評価値を取得することで素性ベクトルを取得する素性ベクトル取得部と、
前記素性テンプレートに基づいて、文データを用いて機械学習することで取得した素性ベクトル用のパラメータを保持するパラメータ保持部と、
前記素性ベクトルと前記パラメータとを用いて第１スコアを算出する第１スコア算出部と、
を備える、
請求項１に記載の句構造解析装置。
【請求項３】
前記第２スコア取得部は、
第２〜第ＮＲＮＮ部と、第２スコア統合部と、をさらに備え、
第ｋＲＮＮ部（ｋ：自然数、１≦ｋ≦Ｎ）は、入力層と、隠れ層と、出力層と、隠れ層の出力を保持する保持部と、を含む再帰型ニューラルネットワークを有し、
前記第ｋＲＮＮ部の入力層は、前記アクション設定部により設定されたアクションの情報と、前記アクションが実行されたときの前記キューメモリに保持されているデータおよび前記アクションが実行されたときの前記スタックに保持されているデータの少なくとも１つと、を入力とし、入力されたデータから前記第ｋＲＮＮ部の前記隠れ層に出力するためのデータを取得し、
前記第ｋＲＮＮ部の隠れ層は、前記第ｋＲＮＮ部の前記入力層により取得されたデータと前記保持部により保持されているデータとに基づいて、前記第ｋＲＮＮ部の前記出力層に出力するためのデータを取得し、
前記第ｋＲＮＮ部の出力層は、前記第ｋＲＮＮ部の前記隠れ層により取得されたデータに基づいて、第ｋＲＮＮスコアを取得し、
前記第２スコア統合部は、
前記アクションをアクションａｉ（ｊ）とし、アクションａｉ（ｊ）が実行されたときに前記第ｋＲＮＮ部の出力層により取得される第ｋＲＮＮスコアをｓｃｒ＿ＲＮＮｋ（ａｉ（ｊ））とし、ｓｃｒ＿ＲＮＮｋ（ａｉ（ｊ））の重み付け係数をλｋとし、前記第２スコアをｓｃｒ＿ＲＮＮ（ａｉ（ｊ））とすると、
2018109862.tif 000005
により、前記第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））を取得する、
請求項２に記載の句構造解析装置。
【請求項４】
文章についてのデータである文データを入力し保持するキューメモリと、
前記キューメモリから出力されるデータを保持するスタックメモリと、
前記文データの素性を評価するための素性ベクトルを取得するために参照する素性テンプレートを保持する素性テンプレート格納部と、
を備える句構造解析装置に用いられ、
アクションを時系列に実行することで文章の句構造を解析する句構造解析方法をコンピュータに実行させるためのプログラムであって、
文章の句構造を解析するためのアクションを設定するアクション設定ステップと、
前記アクション設定ステップにより設定されたアクションが実行されたとき、前記素性テンプレートに基づいて、前記キューメモリに保持されているデータと前記スタックメモリに保持されているデータとを参照し、所定の素性についての評価値を取得することで素性ベクトルを取得し、取得した前記素性ベクトルに基づいて、第１スコアを取得する第１スコア取得ステップと、
入力層用処理ステップと、隠れ層用処理ステップと、出力層用処理ステップと、隠れ層用処理ステップの出力を保持する保持ステップと、を含む再帰型ニューラルネットワーク用処理を実行する第１ＲＮＮステップを含み、前記再帰型ニューラルネットワーク用処理を実行して取得した第２スコアを取得する第２スコア取得ステップと、
前記第１スコアと前記第２スコアとを統合することで統合スコアを取得するスコア統合ステップと、
前記統合スコアに基づいて、文章の句構造の解析の各段階のアクションを決定するアクション決定ステップと、
を備え、
前記第１ＲＮＮステップの入力層用処理ステップでは、前記アクション設定ステップにより設定されたアクションの情報と、前記アクションが実行されたときの前記キューメモリに保持されているデータおよび前記アクションが実行されたときの前記スタックに保持されているデータの少なくとも１つと、を入力とし、入力されたデータから前記第１ＲＮＮステップの前記隠れ層用処理ステップで使用するためのデータを取得し、
前記第１ＲＮＮステップの隠れ層用処理ステップでは、前記第１ＲＮＮステップの前記入力層用処理ステップにより取得されたデータと前記保持ステップにより保持されているデータとに基づいて、前記第１ＲＮＮステップの前記出力層用処理ステップで使用するためのデータを取得し、
前記第１ＲＮＮステップの出力層用処理ステップでは、前記第１ＲＮＮステップの前記隠れ層処理用ステップにより取得されたデータに基づいて、第２スコアを取得する、
句構造解析方法をコンピュータに実行させるためのプログラム。
【請求項５】
前記第１スコア取得ステップは、さらに、
前記アクション設定ステップにより設定されたアクションが実行されたとき、前記素性テンプレートに基づいて、前記キューメモリに保持されているデータと前記スタックメモリに保持されているデータとを参照し、所定の素性についての評価値を取得することで素性ベクトルを取得する素性ベクトル取得ステップと、
前記素性テンプレートに基づいて、文データを用いて機械学習することで取得した素性ベクトル用のパラメータを保持するパラメータ保持ステップと、
前記素性ベクトルと前記パラメータとを用いて第１スコアを算出する第１スコア算出ステップと、
を備え、
前記第２スコア取得ステップは、
第２〜第ＮＲＮＮステップと、第２スコア統合ステップと、をさらに備え、
第ｋＲＮＮステップ（ｋ：自然数、１≦ｋ≦Ｎ）は、入力層と、隠れ層と、出力層と、隠れ層の出力を保持する保持部と、を含む再帰型ニューラルネットワークを用いた処理を実行し、
前記第ｋＲＮＮステップの入力層での処理は、前記アクション設定ステップにより設定されたアクションの情報と、前記アクションが実行されたときの前記キューメモリに保持されているデータおよび前記アクションが実行されたときの前記スタックに保持されているデータの少なくとも１つと、を入力とし、入力されたデータから前記第ｋＲＮＮステップの前記隠れ層に出力するためのデータを取得する処理であり、
前記第ｋＲＮＮステップの隠れ層での処理は、前記第ｋＲＮＮステップの前記入力層の処理により取得されたデータと前記保持部により保持されているデータとに基づいて、前記第ｋＲＮＮステップの前記出力層に出力するためのデータを取得する処理であり、
前記第ｋＲＮＮステップの出力層での処理は、前記第ｋＲＮＮステップの前記隠れ層の処理により取得されたデータに基づいて、第ｋＲＮＮスコアを取得する処理であり、
前記第２スコア統合ステップは、
前記アクションをアクションａｉ（ｊ）とし、アクションａｉ（ｊ）が実行されたときに前記第ｋＲＮＮステップの出力層での処理により取得される第ｋＲＮＮスコアをｓｃｒ＿ＲＮＮｋ（ａｉ（ｊ））とし、ｓｃｒ＿ＲＮＮｋ（ａｉ（ｊ））の重み付け係数をλｋとし、前記第２スコアをｓｃｒ＿ＲＮＮ（ａｉ（ｊ））とすると、
2018109862.tif 000006
により、前記第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））を取得する、
請求項４に記載の句構造解析方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文の構文構造を解析する技術に関し、特に遷移型句構造解析を用いる技術に関する。
【背景技術】
【０００２】
近年、文の構文構造を解析する技術として、遷移型句構造解析による手法が開発されている。
【０００３】
例えば、非特許文献１に開示されている技術（遷移型句構造解析による手法を用いた技術）では、予め人により定められた素性テンプレートを用いて、文の構文構造を解析する。
【０００４】
非特許文献１の技術では、まず、解析対象の単語、解析対象の品詞、親ノードの単語、親ノードの品詞、子ノードの単語、子ノードの品詞、２つ先の親ノードの単語、２つ先の親ノードの品詞等を考慮して、素性テンプレートを人が作成する。
【０００５】
そして、非特許文献１の技術では、上記のようにして生成された素性テンプレートを用いて、文の構文解析を行う。
【先行技術文献】
【特許文献】
【０００６】
【非特許文献１】Muhua  Zhu,  Yue  Zhang,  Wenliang  Chen,  Min  Zhang,  and  Jingbo  Zhu.  2013.  Fast  and  accurate  shift-reduce  constituent  parsing.  In  Proceedings  of  the  51st  Annual  Meeting  of  the  Association  for  Computational  Linguistics,  pages  434-443.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、非特許文献１の技術では、予め用意された素性テンプレートを用いるため、解析履歴の情報として限定的な情報（素性テンプレートに定められたパターンの履歴情報）しか活用することができない。その結果、非特許文献１の技術では、解析履歴全体に基づく素性を考慮した高精度な文の構文構造を解析することは困難である。
【０００８】
本発明は上記課題に鑑み、解析履歴全体に基づく素性を考慮した高精度な文の構文構造を解析することができる句構造解析装置およびプログラムを実現することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために第１の発明は、アクションを時系列に実行することで文章の句構造を解析する句構造解析装置であって、アクション設定部と、キューメモリと、スタックメモリと、第１スコア取得部と、第２スコア取得部と、スコア統合部と、アクション決定部と、を備える。
【００１０】
キューメモリは、文章についてのデータである文データを入力し保持する。
【００１１】
スタックメモリは、キューメモリから出力されるデータを保持する。
【００１２】
第１スコア取得部は、アクション設定部により設定されたアクションが実行されたとき、キューメモリに保持されているデータとスタックメモリに保持されているデータとを参照し、所定の素性についての評価値を取得することで素性ベクトルを取得し、取得した素性ベクトルに基づいて、第１スコアを取得する。
【００１３】
第２スコア取得部は、入力層と、隠れ層と、出力層と、隠れ層の出力を保持する保持部と、を含む再帰型ニューラルネットワークを有する第１ＲＮＮ部を含み、再帰型ニューラルネットワークを用いて取得した第２スコアを取得する。
【００１４】
スコア統合部は、第１スコアと第２スコアとを統合することで統合スコアを取得する。
【００１５】
アクション決定部は、統合スコアに基づいて、文章の句構造の解析の各段階のアクションを決定する。
【００１６】
第１ＲＮＮ部の入力層は、アクション設定部により設定されたアクションの情報と、アクションが実行されたときのキューメモリに保持されているデータおよびアクションが実行されたときのスタックに保持されているデータの少なくとも１つと、を入力とし、入力されたデータから第１ＲＮＮ部の隠れ層に出力するためのデータを取得する。
【００１７】
第１ＲＮＮ部の隠れ層は、第１ＲＮＮ部の入力層により取得されたデータと保持部により保持されているデータとに基づいて、第１ＲＮＮ部の出力層に出力するためのデータを取得する。
【００１８】
第１ＲＮＮ部の出力層は、第１ＲＮＮ部の隠れ層により取得されたデータに基づいて、第２スコアを取得する。
【００１９】
この句構造解析装置では、素性テンプレートを用いて取得した第１スコアと、ＲＮＮにより取得した第２スコアとを統合した統合スコアを用いて、句構造解析のために最適なアクションを決定することができる。この句構造解析装置では、第２スコア取得部の隠れ層に、句構造解析の各段階において選択された決定アクション（過去の全ての決定アクション）を反映しているデータが入力されている。
【００２０】
従って、この句構造解析装置では、第２スコア取得部により、過去の全ての決定アクション（過去の全ての解析履歴）を考慮した第２スコアを取得することができる。このように、この句構造解析装置では、人手により決定された素性テンプレートを用いて取得するだけでは取得することができない過去の全ての解析履歴を考慮した第２スコアを取得でき、第２スコアを用いて、各段階の最適なアクションを決定することができる。
【００２１】
その結果、この句構造解析装置では、人手により決定された素性テンプレートを用いたスコアのみにより句構造解析の各段階の最適アクションを決定する場合に比べて、高精度に最適アクションを決定することができる。つまり、この句構造解析装置では、解析履歴全体に基づく素性を考慮した高精度な文の構文構造を解析することができる。
【００２２】
第２の発明は、第１の発明であって、第１スコア取得部は、さらに、素性テンプレート格納部と、素性ベクトル取得部と、パラメータ保持部と、第１スコア算出部と、を備える。
【００２３】
素性テンプレート格納部は、文データの素性を評価するための素性ベクトルを取得するために参照する素性テンプレートを保持する。
【００２４】
素性ベクトル取得部は、アクション設定部により設定されたアクションが実行されたとき、素性テンプレートに基づいて、キューメモリに保持されているデータとスタックメモリに保持されているデータとを参照し、所定の素性についての評価値を取得することで素性ベクトルを取得する。
【００２５】
パラメータ保持部は、素性テンプレートに基づいて、文データを用いて機械学習することで取得した素性ベクトル用のパラメータを保持する。
【００２６】
第１スコア算出部は、素性ベクトルと前記パラメータとを用いて第１スコアを算出する。
【００２７】
第３の発明は、第２の発明であって、第２スコア取得部は、第２〜第ＮＲＮＮ部と、第２スコア統合部と、をさらに備える。
【００２８】
第ｋＲＮＮ部（ｋ：自然数、１≦ｋ≦Ｎ）は、入力層と、隠れ層と、出力層と、隠れ層の出力を保持する保持部と、を含む再帰型ニューラルネットワークを有する。
【００２９】
第ｋＲＮＮ部の入力層は、アクション設定部により設定されたアクションの情報と、アクションが実行されたときのキューメモリに保持されているデータおよびアクションが実行されたときのスタックに保持されているデータの少なくとも１つと、を入力とし、入力されたデータから第ｋＲＮＮ部の隠れ層に出力するためのデータを取得する。
【００３０】
第ｋＲＮＮ部の隠れ層は、第ｋＲＮＮ部の入力層により取得されたデータと保持部により保持されているデータとに基づいて、第ｋＲＮＮ部の出力層に出力するためのデータを取得する。
【００３１】
第ｋＲＮＮ部の出力層は、第ｋＲＮＮ部の隠れ層により取得されたデータに基づいて、第ｋＲＮＮスコアを取得する。
【００３２】
第２スコア統合部は、アクションをアクションａｉ（ｊ）とし、アクションａｉ（ｊ）が実行されたときに第ｋＲＮＮ部の出力層により取得される第ｋＲＮＮスコアをｓｃｒ＿ＲＮＮｋ（ａｉ（ｊ））とし、ｓｃｒ＿ＲＮＮｋ（ａｉ（ｊ））の重み付け係数をλｋとし、第２スコアをｓｃｒ＿ＲＮＮ（ａｉ（ｊ））とすると、
【数１】
2018109862.tif 000003
により、第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））を取得する。
【００３３】
この句構造解析装置では、素性テンプレートを用いて取得した第１スコアと、Ｎ個（Ｎ：自然数）のＲＮＮにより取得した第２スコアとを統合した統合スコアを用いて、句構造解析のために最適なアクションを決定することができる。この句構造解析装置では、第１〜第ＮＲＮＮ部の各隠れ層に、句構造解析の各段階において選択された決定アクション（過去の全ての決定アクション）を反映しているデータが入力されている。
【００３４】
従って、この句構造解析装置では、過去の全ての決定アクション（過去の全ての解析履歴）を考慮した第２スコア（第１〜第ＮＲＮＮスコアを統合したスコア）を取得することができる。このように、この句構造解析装置では、人手により決定された素性テンプレートを用いて取得するだけでは取得することができない過去の全ての解析履歴を考慮した第２スコアを取得でき、第２スコアを用いて、各段階の最適なアクションを決定することができる。
【００３５】
その結果、この句構造解析装置では、人手により決定された素性テンプレートを用いたスコアのみにより句構造解析の各段階の最適アクションを決定する場合に比べて、高精度に最適アクションを決定することができる。つまり、この句構造解析装置では、解析履歴全体に基づく素性を考慮した高精度な文の構文構造を解析することができる。
【００３６】
さらに、この句構造解析装置では、異なるアクション系列データにより学習し最適化した複数のＲＮＮを用いて、各アクションの評価を行うことができる。各ＲＮＮを多様な句構造解析に応じて最適化させることで、この句構造解析装置では、多様な文のデータに対しても最適なアクション系列を高精度に取得し、その結果、高精度の句構造解析を実現することができる。
【００３７】
なお、「第２〜第ＮＲＮＮ部」という表記は、第２番目のＲＮＮ部（第２ＲＮＮ部）から第Ｎ番目のＲＮＮ部（第ＮＲＮＮ部）の合計（Ｎ−１）個のＲＮＮ部を表している。
【００３８】
第４の発明は、文章についてのデータである文データを入力し保持するキューメモリと、キューメモリから出力されるデータを保持するスタックメモリと、文データの素性を評価するための素性ベクトルを取得するために参照する素性テンプレートを保持する素性テンプレート格納部と、を備える句構造解析装置に用いられる句構造解析方法をコンピュータに実行させるためのプログラムである。
【００３９】
句構造解析方法は、アクションを時系列に実行することで文章の句構造を解析する方法であって、アクション設定ステップと、素性ベクトル取得ステップと、パラメータ保持ステップと、第１スコア算出ステップと、第２スコア取得ステップと、スコア統合ステップと、アクション決定ステップと、を備える。
【００４０】
アクション設定ステップは、文章の句構造を解析するためのアクションを設定する。
【００４１】
第１スコア取得ステップは、アクション設定ステップにより設定されたアクションが実行されたとき、素性テンプレートに基づいて、キューメモリに保持されているデータとスタックメモリに保持されているデータとを参照し、所定の素性についての評価値を取得することで素性ベクトルを取得し、取得した前記素性ベクトルに基づいて、第１スコアを取得する。
【００４２】
第２スコア取得ステップは、入力層用処理ステップと、隠れ層用処理ステップと、出力層用処理ステップと、隠れ層用処理ステップの出力を保持する保持ステップと、を含む再帰型ニューラルネットワーク用処理を実行する第１ＲＮＮステップを含み、再帰型ニューラルネットワーク用処理を実行して取得した第２スコアを取得する。
【００４３】
スコア統合ステップは、第１スコアと第２スコアとを統合することで統合スコアを取得する。
【００４４】
アクション決定ステップは、統合スコアに基づいて、文章の句構造の解析の各段階のアクションを決定する。
【００４５】
第１ＲＮＮステップの入力層用処理ステップでは、アクション設定ステップにより設定されたアクションの情報と、アクションが実行されたときのキューメモリに保持されているデータおよびアクションが実行されたときのスタックに保持されているデータの少なくとも１つと、を入力とし、入力されたデータから第１ＲＮＮステップの隠れ層用処理ステップで使用するためのデータを取得する。
【００４６】
第１ＲＮＮステップの隠れ層用処理ステップでは、第１ＲＮＮステップの入力層用処理ステップにより取得されたデータと保持ステップにより保持されているデータとに基づいて、第１ＲＮＮステップの出力層用処理ステップで使用するためのデータを取得する。
【００４７】
第１ＲＮＮステップの出力層用処理ステップでは、第１ＲＮＮステップの隠れ層処理用ステップにより取得されたデータに基づいて、第２スコアを取得する。
【００４８】
これにより、第１の発明と同様の効果を奏する句構造解析方法をコンピュータに実行させるためのプログラムを実現することができる。
【００４９】
第５の発明は、第４の発明であって、第１スコア取得ステップは、さらに、素性ベクトル取得ステップと、パラメータ保持ステップと、第１スコア算出ステップと、を備える。
【００５０】
素性ベクトル取得ステップは、アクション設定ステップにより設定されたアクションが実行されたとき、素性テンプレートに基づいて、キューメモリに保持されているデータとスタックメモリに保持されているデータとを参照し、所定の素性についての評価値を取得することで素性ベクトルを取得する。
【００５１】
パラメータ保持ステップは、素性テンプレートに基づいて、文データを用いて機械学習することで取得した素性ベクトル用のパラメータを保持する。
【００５２】
第１スコア算出ステップは、素性ベクトルとパラメータとを用いて第１スコアを算出する。
【００５３】
第２スコア取得ステップは、第２〜第ＮＲＮＮステップと、第２スコア統合ステップと、をさらに備える。
【００５４】
第ｋＲＮＮステップ（ｋ：自然数、１≦ｋ≦Ｎ）は、入力層と、隠れ層と、出力層と、隠れ層の出力を保持する保持部と、を含む再帰型ニューラルネットワークを用いた処理を実行する。
【００５５】
第ｋＲＮＮステップの入力層での処理は、アクション設定ステップにより設定されたアクションの情報と、アクションが実行されたときのキューメモリに保持されているデータおよびアクションが実行されたときの前記スタックに保持されているデータの少なくとも１つと、を入力とし、入力されたデータから第ｋＲＮＮステップの隠れ層に出力するためのデータを取得する処理である。
【００５６】
第ｋＲＮＮステップの隠れ層での処理は、第ｋＲＮＮステップの入力層の処理により取得されたデータと保持部により保持されているデータとに基づいて、第ｋＲＮＮステップの出力層に出力するためのデータを取得する処理である。
【００５７】
第ｋＲＮＮステップの出力層での処理は、第ｋＲＮＮステップの隠れ層の処理により取得されたデータに基づいて、第ｋＲＮＮスコアを取得する処理である。
【００５８】
第２スコア統合ステップは、アクションをアクションａｉ（ｊ）とし、アクションａｉ（ｊ）が実行されたときに第ｋＲＮＮステップの出力層での処理により取得される第ｋＲＮＮスコアをｓｃｒ＿ＲＮＮｋ（ａｉ（ｊ））とし、ｓｃｒ＿ＲＮＮｋ（ａｉ（ｊ））の重み付け係数をλｋとし、前記第２スコアをｓｃｒ＿ＲＮＮ（ａｉ（ｊ））とすると、
【数２】
2018109862.tif 000004
により、第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））を取得する。
【００５９】
これにより、第３の発明と同様の効果を奏する句構造解析方法をコンピュータに実行させるためのプログラムを実現することができる。
【発明の効果】
【００６０】
本発明によれば、解析履歴全体に基づく素性を考慮した高精度な文の構文構造を解析することができる句構造解析装置およびプログラムを実現することができる。
【図面の簡単な説明】
【００６１】
【図１】第１実施形態に係る句構造解析装置１０００の概略構成図。
【図２】第１実施形態に係る第１スコア取得部３の概略構成図。
【図３】第１実施形態に係る第２スコア取得部４の概略構成図。
【図４】句構造解析装置１０００で実行される句構造解析処理のフローチャート。
【図５】句構造解析装置１０００で句構造解析処理を実行したときのスタックＭｓとキューＭｑの状態を模式的に示す図。
【図６】木構造の解析結果を示す図。
【図７】第２実施形態に係る句構造解析装置２０００の概略構成図。
【図８】第２実施形態に係る第２スコア取得部４Ａの概略構成図。
【図９】第２実施形態に係る第２ＲＮＮ部４２の概略構成図。
【図１０】第２実施形態に係る第３ＲＮＮ部４３の概略構成図。
【図１１】句構造解析装置２０００で句構造解析処理を実行したときのスタックＭｓおよびキューＭｑの状態と、決定アクションａｉ＿ｄｅｔに対応するアクションであって第２ＲＮＮ部４２に入力されたアクションとを模式的に示す図。
【図１２】句構造解析装置２０００で句構造解析処理を実行したときのスタックＭｓおよびキューＭｑの状態と、決定アクションａｉ＿ｄｅｔに対応するアクションであって第３ＲＮＮ部４３に入力されたアクションとを模式的に示す図。
【図１３】木構造の解析結果を示す図。
【図１４】ＣＰＵバス構成を示す図。
【発明を実施するための形態】
【００６２】
［第１実施形態］
第１実施形態について、図面を参照しながら、以下説明する。
【００６３】
＜１．１：句構造解析装置の構成＞
図１は、第１実施形態に係る句構造解析装置１０００の概略構成図である。
【００６４】
図２は、第１実施形態に係る第１スコア取得部３の概略構成図である。
【００６５】
図３は、第１実施形態に係る第２スコア取得部４の概略構成図である。
【００６６】
句構造解析装置１０００は図１に示すように、キューメモリＭｑ（Ｆｉｒｓｔ−ｉｎ−Ｆｉｒｓｔ−ｏｕｔ型のメモリ：以下、「キューＭｑ」とという）と、スタックメモリＭｓ（Ｌａｓｔ−ｉｎ−Ｆｉｒｓｔ−ｏｕｔ型のメモリ：以下、「スタックＭｓ」という）と、アクション設定部１と、現状態保持部２と、第１スコア取得部３と、第２スコア取得部４と、スコア統合部５と、スコア保持部６と、アクション決定部７と、解析結果出力部８と、スタック状態記憶部９とを備える。
【００６７】
キューＭｑは、文章のデータＤｉｎを入力する。また、キューＭｑは、アクション設定部１から出力される制御信号Ｃｔｌ＿ｑｕｅｕｅを入力する。キューＭｑは、制御信号Ｃｔｌ＿ｑｕｅｕｅに従い、保持しているデータを、第１スコア取得部３にデータＤ１＿ｑｕｅｕｅとして出力し、また、第２スコア取得部４にデータＤ２＿ｑｕｅｕｅとして出力する。
【００６８】
また、キューＭｑは、第１スコア取得部３から出力される信号Ｒｅｑ＿ｑｕｅｕｅを入力し、入力された信号Ｒｅｑ＿ｑｕｅｕｅに従い、保持しているデータを、第１スコア取得部３にデータＤ１＿ｑｕｅｕｅとして出力する。
【００６９】
また、キューＭｑは、データＤ１＿ｑｕｅｕｅをスタックＭｓに出力する。
【００７０】
キューＭｑは、キューＭｑの現在の状態を示す情報を含む信号を現状態保持部２に出力する。また、キューＭｑは、現状態保持部２から所定の状態に戻す指令信号を受信した場合、当該指令信号に従い、キューＭｑの状態を所定の状態に戻す。
【００７１】
スタックＭｓは、キューＭｑから出力されるデータＤ１＿ｑｕｅｕｅを入力する。また、スタックＭｓは、アクション設定部１から出力される制御信号Ｃｔｌ＿ｓｔａｃｋを入力する。スタックＭｓは、制御信号Ｃｔｌ＿ｓｔａｃｋに従い、保持しているデータを、第１スコア取得部３にデータＤ１＿ｓｔａｃｋとして出力し、また、第２スコア取得部４にデータＤ２＿ｓｔａｃｋとして出力する。
【００７２】
また、スタックＭｓは、第１スコア取得部３から出力される信号Ｒｅｑ＿ｓｔａｃｋを入力し、入力された信号Ｒｅｑ＿ｓｔａｃｋに従い、保持しているデータを、第１スコア取得部３にデータＤ１＿ｓｔａｃｋとして出力する。
【００７３】
スタックＭｓは、スタックＭｓの現在の状態を示す情報を含む信号を現状態保持部２に出力する。また、スタックＭｓは、現状態保持部２から所定の状態に戻す指令信号を受信した場合、当該指令信号に従い、スタックＭｓの状態を所定の状態に戻す。
【００７４】
アクション設定部１は、文の構文構造を解析するときのｉ番目（ｉ：自然数、１≦ｉ≦Ｎ）のアクションａｉ（＝ａｉ＿ｄｅｔ）を決定するためにＪ個のアクションの中から選んだ１つのアクションａｉ（ｊ）（１≦ｊ≦Ｊ、Ｊ：自然数）の情報を第１スコア取得部３および第２スコア取得部４に出力する。
【００７５】
また、アクション設定部１は、アクションａｉ（ｊ）に応じて、キューＭｑを操作するための制御信号Ｃｔｌ＿ｑｕｅｕｅおよびスタックＭｓを操作するための制御信号Ｃｔｌ＿ｓｔａｃｋを生成する。そして、アクション設定部１は、生成した制御信号Ｃｔｌ＿ｑｕｅｕｅをキューＭｑに出力するとともに、生成した制御信号Ｃｔｌ＿ｓｔａｃｋをスタックＭｓに出力する。
【００７６】
また、アクション設定部１は、スコア保持部６に制御信号Ｃｔｌ＿ｅｎｄを出力する。制御信号Ｃｔｌ＿ｅｎｄは、アクション設定部１がＪ個のアクションａｉ（ｊ）の情報を全て出力し終わったときにスコア保持部６を制御するための信号である。
【００７７】
現状態保持部２は、キューＭｑから出力されるキューＭｑの現在の状態を示す情報を含む信号を入力したとき、現在有効なアクションと組み合わせて、当該キューＭｑの現在の状態を示す情報を保持する。また、現状態保持部２は、スタックＭｓから出力されるスタックＭｓの現在の状態を示す情報を含む信号を入力したとき、当該スタックＭｓの現在の状態を示す情報を保持する。
【００７８】
また、現状態保持部２は、スコア保持部６から出力される制御信号Ｃｔｌ＿ｎｅｘｔを入力する。現状態保持部２は、制御信号Ｃｔｌ＿ｎｅｘｔが入力されたとき、当該制御信号Ｃｔｌ＿ｎｅｘｔに従い、アクションａｉ（ｊ）を実行する前の状態にキューＭｑおよびスタックＭｓを戻すための信号を生成し、キューＭｑおよびスタックＭｓに出力する。
【００７９】
また、現状態保持部２は、アクション決定部７から出力される制御信号Ｃｔｌ＿ｒｅｓｔｏｒｅ（ａｉ＿ｄｅｔ）を入力する。現状態保持部２は、制御信号Ｃｔｌ＿ｒｅｓｔｏｒｅ（ａｉ＿ｄｅｔ）が入力されたとき、当該制御信号Ｃｔｌ＿ｒｅｓｔｏｒｅ（ａｉ＿ｄｅｔ）に従い、アクションａｉ＿ｄｅｔが実行されたときの状態にキューＭｑおよびスタックＭｓを戻すための信号を生成する。そして、現状態保持部２は、生成した信号をキューＭｑおよびスタックＭｓに出力する。
【００８０】
また、現状態保持部２は、制御信号Ｃｔｌ＿ｒｅｓｔｏｒｅ（ａｉ＿ｄｅｔ）が入力されたとき、アクションａｉ＿ｄｅｔが実行されたときのスタックＭｓの状態（スタックＭｓに記憶されているデータ）をスタック状態記憶部９に記憶する。
【００８１】
第１スコア取得部３は、図２に示すように、素性ベクトル取得部３１と、素性テンプレート格納部３２と、パラメータ保持部３４と、第１スコア算出部３３とを備える。
【００８２】
素性ベクトル取得部３１は、素性テンプレート格納部３２から素性テンプレートのデータと、アクション設定部１から出力されるアクションａｉ（ｊ）の情報とを入力する。また、素性ベクトル取得部３１は、スタックＭｓから出力されるデータＤ１＿ｓｔａｃｋと、キューＭｑから出力されるデータＤ１＿ｑｕｅｕｅとを入力する。
【００８３】
また、素性ベクトル取得部３１は、スタックＭｓから所定のデータを取り出すための信号Ｒｅｑ＿ｓｔａｃｋをスタックＭｓに出力し、キューＭｑから所定のデータを取り出すための信号Ｒｅｑ＿ｑｕｅｕｅをキューＭｑに出力する。
【００８４】
素性ベクトル取得部３１は、アクションａｉ（ｊ）の素性ベクトルΦ（ａｉ（ｊ））（アクションａｉ（ｊ）についての素性ベクトル）を取得し、第１スコア算出部３３に出力する。
【００８５】
素性テンプレート格納部３２は、素性テンプレートのデータを格納する。素性テンプレート格納部３２は、素性ベクトル取得部３１からの要求に従い、素性テンプレート格納部３２に格納されている素性テンプレートのデータを素性ベクトル取得部３１に出力する。
【００８６】
パラメータ保持部３４は、素性ベクトル取得部３１から出力される素性ベクトルΦ（ａｉ（ｊ））と内積をとるためのパラメータθ（ベクトルデータ）を保持しており、パラメータθのデータを第１スコア算出部３３に出力する。
【００８７】
第１スコア算出部３３は、素性ベクトル取得部３１から出力される素性ベクトルΦ（ａｉ（ｊ））のデータと、パラメータ保持部３４から出力されるパラメータθのデータとを入力する。そして、第１スコア算出部３３は、素性ベクトルΦ（ａｉ（ｊ））とパラメータθとを用いて内積により第１スコアｓｃｒ＿ｆｒ（ａｉ（ｊ））を取得し、スコア統合部５に出力する。
【００８８】
第２スコア取得部４は、図３に示すように、ＲＮＮ（Ｒｅｃｕｒｒｅｎｔ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）を用いて構成される第１ＲＮＮ部４１を備える。
【００８９】
第１ＲＮＮ部４１は、入力層４１１と、隠れ層４１２と、保持部４１３と、ＨＬ現状態保持部４１４と、出力層４１５とを備える。
【００９０】
入力層４１１は、アクション設定部１から出力されるアクションａｉ（ｊ）のデータと、スタックＭｓから出力されるデータＤ２＿ｓｔａｃｋと、キューＭｑから出力されるデータＤ２＿ｑｕｅｕｅとを入力する。入力層４１１は、入力されたアクションａｉ（ｊ）、スタックＭｓのデータＤ２＿ｓｔａｃｋ、および、キューＭｑのデータＤ２＿ｑｕｅｕｅに基づいて、データｘｉ（ｊ）を取得し、隠れ層４１２に出力する。
【００９１】
隠れ層４１２は、入力層４１１から出力されるデータｘｉ（ｊ）と、保持部４１３から出力されるデータｙｉ−１とを入力として、下記に相当する処理を行い、データｙｉを取得する。
ｙｉ（ｊ）＝ｆ（Ｈ×ｘｉ（ｊ）＋Ｒ×ｙｉ−１＋Ｂ）
ｆ（）：活性化関数
Ｈ：｜ｙｉ（ｊ）｜×｜ｘｉ（ｊ）｜の行列
Ｒ：｜ｙｉ（ｊ）｜×｜ｙｉ−１｜の行列
Ｂ：｜ｙｉ（ｊ）｜×１の行列
なお、データｙｉ−１は、ｉ−１番目のアクションａｉ−１（＝ａｉ−１＿ｄｅｔ）が入力層４１１に入力されているときに隠れ層４１２から出力されるデータと同じデータである。
【００９２】
また、｜ｘ｜は、ｘ（ｘ：ベクトル）の要素数を示している。
【００９３】
隠れ層４１２は、上記のようにして取得したデータｙｉ（ｊ）を保持部４１３および出力層４１５に出力する。
【００９４】
保持部４１３は、隠れ層４１２から出力されるデータｙｉ（ｊ）を入力し保持する。そして、保持部４１３は、隠れ層４１２にアクションａｉ（ｊ）に対応するデータｘｉ（ｊ）が入力されるときに、ｉ−１番目（１つ前のアクション）のアクションａｉ−１（＝ａｉ−１＿ｄｅｔ）に対応するデータｘｉ−１から取得したデータｙｉ−１を隠れ層４１２に出力する。
【００９５】
また、保持部４１３は、隠れ層４１２の現在の出力状態を示す情報を含む信号をＨＬ現状態保持部４１４に出力する。
【００９６】
ＨＬ現状態保持部４１４は、保持部４１３から出力される隠れ層４１２の現在の出力状態を示す情報を含む信号が入力されたとき、当該隠れ層４１２の現在の出力状態を示す情報を保持する。
【００９７】
また、ＨＬ現状態保持部４１４は、スコア保持部６から出力される制御信号Ｃｔｌ＿ｎｅｘｔを入力する。ＨＬ現状態保持部４１４は、制御信号Ｃｔｌ＿ｎｅｘｔが入力されたとき、当該制御信号Ｃｔｌ＿ｎｅｘｔに従い、ｉ−１番目のアクションａｉ−１が実行された後の状態に保持部４１３を戻すための信号を生成し、保持部４１３に出力する。
【００９８】
また、ＨＬ現状態保持部４１４は、アクション決定部７から出力される制御信号Ｃｔｌ＿ｒｅｓｔｏｒｅ（ａｉ＿ｄｅｔ）を入力する。ＨＬ現状態保持部４１４は、制御信号Ｃｔｌ＿ｒｅｓｔｏｒｅ（ａｉ＿ｄｅｔ）が入力されたとき、当該制御信号Ｃｔｌ＿ｒｅｓｔｏｒｅ（ａｉ＿ｄｅｔ）に従い、アクションａｉ＿ｄｅｔが実行されたときに隠れ層４１２から出力されていたデータｙｉ（ｊ）を保持する。そして、ＨＬ現状態保持部４１４は、ｉ＋１番目のアクションを決定する処理が実行されるときに、保持したデータｙｉ（ｊ）（ｊは、ａｉ（ｊ）＝ａｉ＿ｄｅｔを満たすｊ）を保持部４１３から出力させる信号を保持部４１３に出力する。
【００９９】
出力層４１５は、隠れ層４１２から出力されるデータｙｉ（ｊ）を入力する。出力層４１５は、以下の処理により第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））を取得する。
ｓｃｒ＿ＲＮＮ（ａｉ（ｊ））＝Ｏ×ｙｉ（ｊ）＋ＢＯ
Ｏ：１×｜ｙｉ（ｊ）｜の行列
ＢＯ：バイアス項
出力層４１５は、上記処理により取得した第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））をスコア統合部５に出力する。
【０１００】
図１を参照して、スコア統合部５は、第１スコア取得部３から出力される第１スコアｓｃｒ＿ｆｒ（ａｉ（ｊ））と、第２スコア取得部４から出力される第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））を入力する。スコア統合部５は、第１スコアｓｃｒ＿ｆｒ（ａｉ（ｊ））および第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））を統合する処理を行い統合スコアｓｃｒ（ａｉ（ｊ））を取得し、スコア保持部６に出力する。
【０１０１】
スコア保持部６は、スコア統合部５から出力される統合スコアｓｃｒ（ａｉ（ｊ））を入力し保持する。スコア保持部６は、スコア統合部５から統合スコアｓｃｒ（ａｉ（ｊ））が入力されたとき、制御信号Ｃｔｌ＿ｎｅｘｔを生成し、アクション設定部１、現状態保持部２および第２スコア取得部４の中のＨＬ現状態保持部４１４に出力する。
【０１０２】
また、スコア保持部６は、アクション設定部１から制御信号Ｃｔｌ＿ｅｎｄが入力されたとき、保持しているＪ個の統合スコアｓｃｒ（ａｉ（ｊ））をアクション決定部７に出力する。
【０１０３】
アクション決定部７は、スコア保持部６から出力されるＪ個の統合スコアｓｃｒ（ａｉ（ｊ））を入力する。アクション決定部７は、Ｊ個の統合スコアｓｃｒ（ａｉ（ｊ））の中で最大値をとる統合スコアを決定スコアｓｃｒ（ａｉ＿ｄｅｔ）として取得し、設定（決定）する。
【０１０４】
アクション決定部７は、取得した決定スコアｓｃｒ（ａｉ＿ｄｅｔ）を解析結果出力部８に出力する。
【０１０５】
また、アクション決定部７は、スタックＭｓおよびキューＭｑを決定アクションａｉ＿ｄｅｔが実行されたときの状態に戻すための制御信号Ｃｔｌ＿ｒｅｓｔｏｒｅ（ａｉ＿ｄｅｔ）を現状態保持部２および第２スコア取得部４に出力する。
【０１０６】
解析結果出力部８は、アクション決定部７から出力される決定スコアｓｃｒ（ａｉ＿ｄｅｔ）を入力する。解析結果出力部８は、決定スコアｓｃｒ（ａｉ＿ｄｅｔ）を積算し、入力された文のスコアを取得する。また、解析結果出力部８は、スタック状態記憶部９から各アクションが実行されたときのスタックＭｓの状態（スタックＭｓに記憶されているデータ）を解析することで、句構造解析装置１０００に入力された文の構造を示すデータを取得する。
【０１０７】
解析結果出力部８は、上記のようにして取得した文のスコアおよび文の構造を示すデータを含むデータをデータＤｏｕｔとして出力する。
【０１０８】
スタック状態記憶部９は、アクションａｉ＿ｄｅｔが実行されたときのスタックＭｓの状態（スタックＭｓに記憶されているデータ）を記憶する。具体的には、スタック状態記憶部９は、現状態保持部２に制御信号Ｃｔｌ＿ｒｅｓｔｏｒｅ（ａｉ＿ｄｅｔ）が入力されたときに現状態保持部２がスタックＭｓから取得したアクションａｉ＿ｄｅｔが実行されたときのスタックＭｓの状態（スタックＭｓに記憶されているデータ）を記憶する。
【０１０９】
＜１．２：句構造解析装置の動作＞
以上のように構成された句構造解析装置１０００の動作について、図面を参照しながら以下説明する。
【０１１０】
図４は、句構造解析装置１０００で実行される句構造解析処理のフローチャートである。
【０１１１】
図５は、句構造解析装置１０００で句構造解析処理を実行したときのスタックＭｓとキューＭｑの状態を模式的に示す図である。
【０１１２】
以下では文章のデータＤｉｎとして「John  has  a  dog  .」という英文が品詞付きで入力された場合の句構造解析装置１０００の動作について説明する。
【０１１３】
なお、句構造解析装置１０００に入力されるデータＤｉｎを「John:N  has:VB  a:DT  dog:N  .」と表現する。ここで「N」は名詞を表し、「VB」は動詞を表し、「DT」は限定詞を表している。
【０１１４】
また、以下では句構造解析装置１０００で用いられるアクションが以下のものである場合について説明する。
（１）SHIFT：キューＭｑから１語を取り出しスタックＭｓに入力するアクション。
（２）REDUCE-L/R-X：スタックＭｓから２つのデータを取り出し（ＰＯＰ動作を２回行い）、取り出した２つのデータを結合しラベルＸを付し、新たなデータとしてスタックＭｓに戻す。なお、「REDUCE-L-X」の場合、スタックＭｓから取り出す２つのデータは、スタックＭｓのボトムの２つのデータである。「REDUCE-R-X」の場合、スタックＭｓから取り出す２つのデータは、スタックＭｓのトップの２つのデータである。
（３）UNARY-X：スタックＭｓからスタックＭｓのトップのデータを取り出し（ＰＯＰ動作を１回行い）、取り出したデータにラベルＸを付し、新たなデータとしてスタックＭｓに戻す。
（４）FINISH：キューＭｑからルートノードを取り出し、句構造解析を終了させる。
（５）IDLE：状態を保持し、ステップを１つ進める。
【０１１５】
なお、上記においてラベルXとして、例えば、「NP」（名詞句）、「VP」（動詞句）、「S」（センテンス）、「S*」（文の構造解析結果を２分木データとして維持させるために用いられる暫定ノード用ラベル）等が付与される。
【０１１６】
（ステップＳ１）：
句構造解析装置１０００のキューＭ１にデータＤｉｎ（「John:N  has:VB  a:DT  dog:N  .」）が入力される。
【０１１７】
（ステップＳ２）：
現状態保持部２は、キューＭｑからキューＭｑの現在の状態（現状態ｓｔａｔｅ＿ｎｏｗ１）を示す情報を含む信号を入力し当該キューＭｑの現在の状態を示す情報を保持する。また、現状態保持部２は、スタックＭｓからスタックＭｓの現在の状態を示す情報を含む信号を入力し当該スタックＭｓの現在の状態を示す情報を保持する。
【０１１８】
（ステップＳ３）：
第１ＲＮＮ部４１のＨＬ現状態保持部４１４は、保持部４１３から出力される隠れ層４１２の現在の出力状態（隠れ層４１２の現状態ｓｔａｔｅ＿ｎｏｗ２）を示す情報を含む信号が入力し、当該隠れ層４１２の現在の出力状態を示す情報を保持する。
【０１１９】
（ステップＳ４）：
アクション設定部１は、アクションａｉ（ｊ）を選択し、選択したアクションａｉ（ｊ）の情報を第１スコア取得部３および第２スコア取得部４に出力する。
【０１２０】
（ステップＳ５）：
第１スコア取得部３は、第１スコアを取得する処理を実行する。
【０１２１】
ここでステップＳ５の詳細な動作について説明する。素性ベクトル取得部３１は、素性テンプレート格納部３２から素性テンプレートのデータと、アクション設定部１から出力されるアクションａｉ（ｊ）の情報とを入力する。また、素性ベクトル取得部３１は、スタックＭｓから出力されるデータＤ１＿ｓｔａｃｋと、キューＭｑから出力されるデータＤ１＿ｑｕｅｕｅと、アクション設定部１から出力されるアクションａｉ（ｊ）の情報を入力する。
【０１２２】
素性ベクトル取得部３１は、アクションａｉ（ｊ）の素性ベクトルΦ（ａｉ（ｊ））を取得する。例えば、素性テンプレートが以下の素性の評価を行うことを示している場合、アクションａｉ（ｊ）が実行されたときのスタックＭｓおよびキューＭｑのデータを取得し以下の素性（例えば、以下に示す（１）〜（８）の素性）を評価し、評価値をベクトルの要素とする素性ベクトルΦ（ａｉ（ｊ））を取得する。
（１）解析対象の単語
（２）解析対象の品詞
（３）親ノードの単語
（４）親ノードの品詞
（５）子ノードの単語
（６）子ノードの品詞
（７）親ノードの親ノードの単語
（８）親ノードの親ノードの品詞
素性ベクトル取得部３１は、上記により取得した素性ベクトルΦ（ａｉ（ｊ））のデータを第１スコア算出部３３に出力する。
【０１２３】
なお、素性ベクトルΦ（ａｉ（ｊ））を取得するための素性テンプレートによる評価対象は、上記（上記（１）〜（８）を用いる場合）に限定されない。
【０１２４】
また、素性ベクトル取得部３１は、素性テンプレートに示されている素性を評価するために、必要に応じてスタックＭｓから所定のデータを取り出すための信号Ｒｅｑ＿ｓｔａｃｋをスタックＭｓに出力し、キューＭｑから所定のデータを取り出すための信号Ｒｅｑ＿ｑｕｅｕｅをキューＭｑに出力する。これにより、素性ベクトル取得部３１は、素性テンプレートに示されている素性を評価するために必要なデータをスタックＭｓおよびキューＭｑから取り出す。
【０１２５】
第１スコア算出部３３は、素性ベクトルΦ（ａｉ（ｊ））とパラメータθとを用いて内積により第１スコアｓｃｒ＿ｆｒ（ａｉ（ｊ））を取得する。つまり、第１スコア算出部３３は、
ｓｃｒ＿ｆｒ（ａｉ（ｊ））＝Φ（ａｉ（ｊ））・θ
に相当する処理を実行することにより、第１スコアｓｃｒ＿ｆｒ（ａｉ（ｊ））を取得する。
【０１２６】
なお、パラメータθは、ベクトルであり、素性ベクトルΦの各要素の重みを要素とする。パラメータθは、例えば、学習データ（例えば、品詞付き文章のデータとその構文構造の対の集合）を用いて、各アクションを実行させて学習させて取得されたパラメータ（機械学習により取得されたパラメータ）である。
【０１２７】
上記のようにして取得された第１スコアｓｃｒ＿ｆｒ（ａｉ（ｊ））は、第１スコア算出部３３からスコア統合部５に出力される。
【０１２８】
（ステップＳ６）：
第２スコア取得部４の第１ＲＮＮ部４１は、第２スコアを取得する処理を実行する。
【０１２９】
ここでステップＳ６の詳細な動作について説明する。第１ＲＮＮ部４１の入力層４１１は、入力されたアクションａｉ（ｊ）、スタックＭｓのデータＤ２＿ｓｔａｃｋ、および、キューＭｑのデータＤ２＿ｑｕｅｕｅに基づいて、例えば、ＬＵＴ（ルックアップテーブル）によりデータｘｉ（ｊ）を取得し、隠れ層４１２に出力する。
【０１３０】
隠れ層４１２は、入力層４１１から出力されるデータｘｉ（ｊ）と、保持部４１３から出力されるデータｙｉ−１とを入力する。なお、最初のアクションが実行されるとき、データｙｉ−１は、データが存在しない状態（全ての要素が「０」の状態）である。
【０１３１】
隠れ層４１２は、下記に相当する処理を行い、データｙｉを取得する。
ｙｉ（ｊ）＝ｆ（Ｈ×ｘｉ（ｊ）＋Ｒ×ｙｉ−１＋Ｂ）
ｆ（）：活性化関数（例えば、シグモイド関数やＳｏｆｔｍａｘ関数）
Ｈ：｜ｙｉ（ｊ）｜×｜ｘｉ（ｊ）｜の行列
Ｒ：｜ｙｉ（ｊ）｜×｜ｙｉ−１｜の行列
Ｂ：｜ｙｉ（ｊ）｜×１の行列
隠れ層４１２は、上記のようにして取得したデータｙｉ（ｊ）を保持部４１３および出力層４１５に出力する。
【０１３２】
保持部４１３は、隠れ層４１２から出力されるデータｙｉ（ｊ）を入力し保持する。そして、保持部４１３は、隠れ層４１２にアクションａｉ（ｊ）に対応するデータｘｉ（ｊ）が入力されるときに、ｉ−１番目（１つ前のアクション）のアクションａｉ−１（＝ａｉ−１＿ｄｅｔ）に対応するデータｘｉ−１から取得したデータｙｉ−１を隠れ層４１２に出力する。
【０１３３】
また、保持部４１３は、隠れ層４１２の現在の出力状態を示す情報を含む信号をＨＬ現状態保持部４１４に出力する。
【０１３４】
ＨＬ現状態保持部４１４は、当該隠れ層４１２の現在の出力状態を示す情報を保持する。
【０１３５】
出力層４１５は、隠れ層４１２から出力されるデータｙｉ（ｊ）を入力する。出力層４１５は、以下の処理により第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））を取得する。
ｓｃｒ＿ＲＮＮ（ａｉ（ｊ））＝Ｏ×ｙｉ（ｊ）＋ＢＯ
Ｏ：１×｜ｙｉ（ｊ）｜の行列
ＢＯ：バイアス項
出力層４１５は、上記処理により取得した第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））をスコア統合部５に出力する。
【０１３６】
なお、行列Ｈ、Ｒ、Ｂ、Ｏ、ＢＯは、学習データ（例えば、品詞付き文章のデータとその構文構造の対の集合）を用いて、各アクションを実行させて学習させて取得されたパラメータにより決定される値を行列の要素としている。
【０１３７】
（ステップＳ７）：
スコア統合部５は、第１スコアｓｃｒ＿ｆｒ（ａｉ（ｊ））および第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））を統合する処理を行う。例えば、スコア統合部５は、
ｓｃｒ（ａｉ（ｊ））＝ｓｃｒ＿ｆｒ（ａｉ（ｊ））＋λ×ｓｃｒ＿ＲＮＮ（ａｉ（ｊ））
λ：重み付け値
により統合スコアｓｃｒ（ａｉ（ｊ））を取得し、スコア保持部６に出力する。
【０１３８】
なお、λの値は、λ≧０を満たす値であり、好ましくは、１０−６≦λ≦１０−１を満たす値である。
【０１３９】
（ステップＳ８）：
スコア保持部６は、スコア統合部５から出力される統合スコアｓｃｒ（ａｉ（ｊ））を記憶保持する。
【０１４０】
（ステップＳ９）：
スコア保持部６は、アクション設定部１から制御信号Ｃｔｌ＿ｅｎｄが入力された場合、全てのアクションａｉ（ｊ）が選択されたと判定し（Ｙｅｓ）、アクション設定部１から制御信号Ｃｔｌ＿ｅｎｄが入力されていない場合、選択されていないアクションａｉ（ｊ）が残っていると判定する（Ｎｏ）。
【０１４１】
１回目のアクションａｉ（ｊ）が実行されたとき、未だ選択されていないアクションがアクションａｉ（ｊ）に残っているので、スコア保持部６は、統合スコアｓｃｒ（ａｉ（ｊ））を記憶すると、制御信号Ｃｔｌ＿ｎｅｘｔをアクション設定部１、現状態保持部２およびＨＬ現状態保持部４１４に出力し、句構造解析装置１０００で次のアクションａｉ（ｊ）が実行されるように制御する。
【０１４２】
（ステップＳ１０）：
現状態保持部２は、スコア保持部６から出力される制御信号Ｃｔｌ＿ｎｅｘｔを入力すると、アクションａｉ（ｊ）を実行する前の状態（ステップＳ２の状態ｓｔａｔｅ＿ｎｏｗ１）にキューＭｑおよびスタックＭｓを戻すための信号を生成し、キューＭｑおよびスタックＭｓに出力する。これにより、スタックＭｓおよびキューＭｑの状態がアクションａｉ（ｊ）を実行する前の状態に戻る。
【０１４３】
（ステップＳ１１）：
ＨＬ現状態保持部４１４は、スコア保持部６から出力される制御信号Ｃｔｌ＿ｎｅｘｔを入力すると、ｉ−１番目のアクションａｉ−１が実行された後の状態（ステップＳ３の状態ｓｔａｔｅ＿ｎｏｗ２）に保持部４１３を戻すための信号を生成し、保持部４１３に出力する。これにより、保持部４１３からｉ−１番目のアクションａｉ−１が実行された後の状態において出力されていたデータｙｉ−１が出力される状態に戻る。
【０１４４】
上記処理の後、アクション設定部１は、次のアクションａｉ（ｊ）を選択し、ステップＳ４〜Ｓ１１の処理が繰り返し実行される。
【０１４５】
ステップＳ９において、全てのアクションが選択されたと判定された場合（ステップＳ９でＹｅｓ）、処理はステップＳ１２に進む。
【０１４６】
（ステップＳ１２）：
全てのアクションが選択されたと判定された場合、アクション設定部１からスコア保持部６に信号Ｃｔｌ＿ｅｎｄが出力される。そして、スコア保持部６は、アクション設定部１から信号Ｃｔｌ＿ｅｎｄを受信すると、アクション決定部７にＪ個の統合スコアｓｃｒ（ａｉ（ｊ））を出力する。
【０１４７】
アクション決定部７は、Ｊ個の統合スコアｓｃｒ（ａｉ（ｊ））の中で最大値をとる統合スコアを決定スコアｓｃｒ（ａｉ＿ｄｅｔ）として取得する。また、アクション決定部７は、Ｊ個の統合スコアｓｃｒ（ａｉ（ｊ））の中で最大値をとるアクションａｉ（ｊ）を決定アクションａｉ＿ｄｅｔに設定（決定）する。例えば、図５は、ｉ＝１のとき、アクションとして「SHIFT」を選択したときのｓｃｒ（ａｉ（ｊ））が最大値をとると判定された場合を示している。この場合、ｉ＝１のときの決定アクションａ１（ｊ）＿ｄｅｔは、アクション「SHIFT」に決定される。
【０１４８】
（ステップＳ１３）：
解析結果出力部８は、スコアの積算処理を行う。例えば、解析結果出力部８は、
ｓｕｍ＝ｓｕｍ＋ｓｃｒ（ａｉ（ｊ））
により積算値ｓｕｍを取得する。
【０１４９】
なお、ｓｕｍの初期値は「０」である。
【０１５０】
（ステップＳ１４）：
アクション決定部７は、スタックＭｓおよびキューＭｑを決定アクションａｉ＿ｄｅｔが実行されたときの状態に戻すための制御信号Ｃｔｌ＿ｒｅｓｔｏｒｅ（ａｉ＿ｄｅｔ）を現状態保持部２および第２スコア取得部４のＨＬ現状態保持部４１４に出力する。
【０１５１】
現状態保持部２は、制御信号Ｃｔｌ＿ｒｅｓｔｏｒｅ（ａｉ＿ｄｅｔ）が入力されると、当該制御信号Ｃｔｌ＿ｒｅｓｔｏｒｅ（ａｉ＿ｄｅｔ）に従い、アクションａｉ＿ｄｅｔが実行されたときの状態にキューＭｑおよびスタックＭｓを戻すための信号を生成し、キューＭｑおよびスタックＭｓに出力する。これにより、キューＭｑおよびスタックＭｓは、アクションａｉ＿ｄｅｔが実行されたときの状態に戻る。ｉ＝１の場合は、アクションａ１＿ｄｅｔが「SHIFT」なので、キューＭｑの状態およびスタックＭｓの状態は、アクション「SHIFT」が実行されたときのキューＭｑの状態およびスタックＭｓの状態に戻る。
【０１５２】
（ステップＳ１５）：
スタック状態記憶部９は、アクションａｉ＿ｄｅｔが実行されたときのスタックＭｓの状態（スタックＭｓに記憶されているデータ）を記憶する。具体的には、スタック状態記憶部９は、現状態保持部２に制御信号Ｃｔｌ＿ｒｅｓｔｏｒｅ（ａｉ＿ｄｅｔ）が入力されると、現状態保持部２がスタックＭｓから取得したアクションａｉ＿ｄｅｔが実行されたときのスタックＭｓの状態（スタックＭｓに記憶されているデータ）を記憶する。ｉ＝１の場合は、アクションａ１＿ｄｅｔが「SHIFT」なので、スタック状態記憶部９は、アクション「SHIFT」が実行されたときのスタックＭｓの状態を記憶する。
【０１５３】
（ステップＳ１６）：
句構造解析装置１０００では、図５に示すように、キューＭｑに入力されたデータＤｉｎの解析が終了するまで、上記処理（Ｓ２〜Ｓ１６）を繰り返し実行する。例えば、データＤｉｎ「John:N  has:VB  a:DT  dog:N  .」が入力された場合、当該データＤｉｎ「John:N  has:VB  a:DT  dog:N  .」の句構造解析するためのデータが、スタックＭｓおよびキューＭｑに存在しない状態となるまで、上記処理（Ｓ２〜Ｓ１６）を繰り返し実行する。
【０１５４】
句構造解析装置１０００では、図５に示すように、句構造解析処理の終了を示すアクション「FINISH」が決定アクションａｉ＿ｄｅｔとして選択された場合、句構造解析処理を終了させる（ステップＳ１６でＮｏ）。
【０１５５】
（ステップＳ１７）：
解析結果出力部８は、句構造解析処理の終了を示すアクション「FINISH」が決定アクションａｉ＿ｄｅｔとして選択された場合、スコアの積算処理により取得した積算値ｓｕｍを入力された文のスコアとして取得する。
【０１５６】
また、解析結果出力部８は、スタック状態記憶部９から各アクションが実行されたときのスタックＭｓの状態（スタックＭｓに記憶されているデータ）を解析することで、句構造解析装置１０００に入力された文の構造を示すデータを取得する。
【０１５７】
例えば、図５に示す場合、句構造解析装置１０００で取得される決定アクションａｉ＿ｄｅｔは以下の通りである。
ａ１＿ｄｅｔ＝「SHIFT」
ａ２＿ｄｅｔ＝「UNARY_NP」
ａ３＿ｄｅｔ＝「SHIFT」
ａ４＿ｄｅｔ＝「SHIFT」
ａ５＿ｄｅｔ＝「SHIFT」
ａ６＿ｄｅｔ＝「REDUCE-R-NP」
ａ７＿ｄｅｔ＝「REDUCE-R-VP」
ａ８＿ｄｅｔ＝「SHIFT」
ａ９＿ｄｅｔ＝「REDUCE-L-S*」
ａ１０＿ｄｅｔ＝「REDUCE-R-S」
ａ１１＿ｄｅｔ＝「FINISH」
解析結果出力部８は、上記のようにして取得された決定アクションａｉ＿ｄｅｔが実行されたときのスタック状態をスタック状態記憶部９から読み出し、入力データの文の構造を示すデータ（句構造解析結果データ）を取得する。
【０１５８】
具体的には、解析結果出力部８は、図５の場合、スタックの状態をｉ＝１１のときの状態からｉ＝１のときの状態へと順番に辿ることで、入力データＤｉｎ（「John:N  has:VB  a:DT  dog:N  .」）の文の構造を示すデータ（句構造解析結果データ）を取得する。このようにして取得した解析結果を図６に示す。
【０１５９】
ｉ＝１０のときの決定アクションａ１０＿ｄｅｔ（＝「REDUCE-R-S」）、スタックの状態、および、ｉ＝９のときの決定アクションａ９＿ｄｅｔ（＝「REDUCE-L-S*」）、スタックの状態から、ラベル「S」（センテンス）の子ノードが「S*」と「.」であると決定される。
【０１６０】
ｉ＝９のときの決定アクションａ９＿ｄｅｔ（＝「REDUCE-L-S*」）、スタックの状態、および、ｉ＝８のときの決定アクションａ８＿ｄｅｔ（＝「SHIFT」）、スタックの状態から、ラベル「S*」の子ノードが「NP」と「VP」であると決定される。
【０１６１】
ｉ＝７のときの決定アクションａ７＿ｄｅｔ（＝「REDUCE-L-VP」）、スタックの状態、および、ｉ＝６のときの決定アクションａ６＿ｄｅｔ（＝「REDUCE-R-NP」）、スタックの状態から、ラベル「VP」の子ノードが「has:VB」と「NP」であると決定される。
【０１６２】
ｉ＝６のときの決定アクションａ６＿ｄｅｔ（＝「REDUCE-R-NP」）、スタックの状態、および、ｉ＝５のときの決定アクションａ５＿ｄｅｔ（＝「SHIFT」）、スタックの状態から、ラベル「NP」の子ノードが「a:DT」と「dog:N」であると決定される。
【０１６３】
ｉ＝５のときの決定アクションａ５＿ｄｅｔ（＝「SHIFT」）、スタックの状態、および、ｉ＝４のときの決定アクションａ４＿ｄｅｔ（＝「SHIFT」）、スタックの状態から、ノードの関係を特定するデータがないと判断する。
【０１６４】
ｉ＝４のときの決定アクションａ４＿ｄｅｔ（＝「SHIFT」）、スタックの状態、および、ｉ＝３のときの決定アクションａ３＿ｄｅｔ（＝「SHIFT」）、スタックの状態から、ノードの関係を特定するデータがないと判断する。
【０１６５】
ｉ＝３のときの決定アクションａ３＿ｄｅｔ（＝「SHIFT」）、スタックの状態、および、ｉ＝３のときの決定アクションａ２＿ｄｅｔ（＝「SHIFT」）、スタックの状態から、ノードの関係を特定するデータがないと判断する。
【０１６６】
ｉ＝２のときの決定アクションａ２＿ｄｅｔ（＝「UNARY_NP」）、スタックの状態、および、ｉ＝１のときの決定アクションａ１＿ｄｅｔ（＝「SHIFT」）、スタックの状態から、ラベル「NP」の子ノードが「John:N」であると決定される。
【０１６７】
このようにして、句構造解析装置１０００では、入力データＤｉｎ（「John:N  has:VB  a:DT  dog:N  .」）の文の構造を示すデータ（句構造解析結果データ）を図６に示すデータとして取得することができる。
【０１６８】
以上のように、句構造解析装置１０００では、素性テンプレートを用いて取得した第１スコアと、ＲＮＮにより取得した第２スコアとを統合した統合スコアを用いて、句構造解析のために最適なアクションを決定することができる。句構造解析装置１０００では、第２スコア取得部４の隠れ層４１２に、句構造解析の各段階において選択された決定アクションａｉ＿ｄｅｔ（過去の全ての決定アクションａｉ＿ｄｅｔ）を反映しているデータｙｉ−１が入力されている。例えば、図５の場合において、ｉ＝１１のとき、ｉ＝１〜１０までの全ての決定アクションａｉ＿ｄｅｔを反映しているデータｙｉ−１が第２スコア取得部４の隠れ層４１２に入力される。
【０１６９】
従って、句構造解析装置１０００では、第２スコア取得部４により、過去の全ての決定アクションａｉ＿ｄｅｔ（過去の全ての解析履歴）を考慮した第２スコアを取得することができる。このように、句構造解析装置１０００では、人手により決定された素性テンプレートを用いて取得するだけでは取得することができない過去の全ての解析履歴を考慮した第２スコアを取得でき、第２スコアを用いて、各段階の最適なアクションを決定することができる。
【０１７０】
その結果、句構造解析装置１０００では、人手により決定された素性テンプレートを用いたスコアのみにより句構造解析の各段階の最適アクションを決定する場合に比べて、高精度に最適アクションを決定することができる。つまり、句構造解析装置１０００では、解析履歴全体に基づく素性を考慮した高精度な文の構文構造を解析することができる。
【０１７１】
［第２実施形態］
次に、第２実施形態について、説明する。
【０１７２】
＜２．１：構造解析装置の構成＞
本実施形態において、第１実施形態と同様の部分については、同一符号を付し、詳細な説明を省略する。
【０１７３】
図７は、第２実施形態に係る句構造解析装置２０００の概略構成図である。
【０１７４】
図８は、第２実施形態に係る第２スコア取得部４Ａの概略構成図である。
【０１７５】
図９は、第２実施形態に係る第２ＲＮＮ部４２の概略構成図である。
【０１７６】
図１０は、第２実施形態に係る第３ＲＮＮ部４３の概略構成図である。
【０１７７】
本実施形態の句構造解析装置２０００は、図７に示すように、第１実施形態の句構造解析装置１０００において、第２スコア取得部４を第２スコア取得部４Ａに置換した構成を有している。
【０１７８】
第２スコア取得部４Ａは、図８に示すように、第１ＲＮＮ部４１と、第２ＲＮＮ部４２と、第３ＲＮＮ部４３と、第１変換部４４と、第２変換部４５と、第２スコア統合部４６とを備える。
【０１７９】
第１ＲＮＮ部４１は、第１実施形態の第１ＲＮＮ部４１と同様の構成を有している。
【０１８０】
第２ＲＮＮ部４２は、図９に示すように、ＲＮＮを用いて構成されており、入力層４２１と、隠れ層４２２と、保持部４２３と、ＨＬ現状態保持部４２４と、出力層４２５とを備える。
【０１８１】
入力層４２１は、第１変換部４４からから出力されるアクションａｉ（ｊ）’のデータ（アクションａｉ（ｊ）を第１変換部４４が変換したアクションのデータ）と、スタックＭｓから出力されるデータＤ２＿ｓｔａｃｋと、キューＭｑから出力されるデータＤ２＿ｑｕｅｕｅとを入力する。入力層４２１は、入力されたアクションａｉ（ｊ）’、スタックＭｓのデータＤ２＿ｓｔａｃｋ、および、キューＭｑのデータＤ２＿ｑｕｅｕｅに基づいて、データｘｉ（ｊ）’を取得し、隠れ層４２２に出力する。
【０１８２】
隠れ層４２２は、入力層４２１から出力されるデータｘｉ（ｊ）’と、保持部４２３から出力されるデータｙｉ−１’とを入力する。隠れ層４２２は、下記に相当する処理を行い、データｙｉ（ｊ）’を取得する。
ｙｉ（ｊ）’＝ｆ（Ｈ’×ｘｉ（ｊ）’＋Ｒ’×ｙｉ−１’＋ＢＨ’）
ｆ（）：活性化関数
Ｈ’：｜ｙｉ（ｊ）’｜×｜ｘｉ（ｊ）’｜の行列
Ｒ’：｜ｙｉ（ｊ）’｜×｜ｙｉ−１’｜の行列
ＢＨ’：｜ｙｉ（ｊ）’｜×１の行列
なお、データｙｉ−１’は、ｉ−１番目のアクションａｉ−１（＝ａｉ−１＿ｄｅｔ）が入力層４２１に入力されているときに隠れ層４２２から出力されるデータと同じデータである。
【０１８３】
隠れ層４２２は、上記のようにして取得したデータｙｉ（ｊ）’を保持部４２３および出力層４２５に出力する。
【０１８４】
保持部４２３は、隠れ層４２２から出力されるデータｙｉ（ｊ）’を入力し保持する。そして、保持部４２３は、隠れ層４２２にアクションａｉ（ｊ）に対応するデータｘｉ（ｊ）’が入力されるときに、ｉ−１番目（１つ前のアクション）のアクションａｉ−１（＝ａｉ−１＿ｄｅｔ）に対応するデータｘｉ−１’から取得したデータｙｉ−１’を隠れ層４２２に出力する。
【０１８５】
また、保持部４２３は、隠れ層４２２の現在の出力状態を示す情報を含む信号をＨＬ現状態保持部４２４に出力する。
【０１８６】
ＨＬ現状態保持部４２４は、保持部４２３から出力される隠れ層４２２の現在の出力状態を示す情報を含む信号が入力されたとき、当該隠れ層４２２の現在の出力状態を示す情報を保持する。
【０１８７】
また、ＨＬ現状態保持部４２４は、スコア保持部６から出力される制御信号Ｃｔｌ＿ｎｅｘｔを入力する。ＨＬ現状態保持部４２４は、制御信号Ｃｔｌ＿ｎｅｘｔが入力されたとき、当該制御信号Ｃｔｌ＿ｎｅｘｔに従い、ｉ−１番目のアクションａｉ−１が実行された後の状態に保持部４２３を戻すための信号を生成する。そして、ＨＬ現状態保持部４２４は、生成した信号を保持部４２３に出力する。
【０１８８】
また、ＨＬ現状態保持部４２４は、アクション決定部７から出力される制御信号Ｃｔｌ＿ｒｅｓｔｏｒｅ（ａｉ＿ｄｅｔ）を入力する。ＨＬ現状態保持部４２４は、制御信号Ｃｔｌ＿ｒｅｓｔｏｒｅ（ａｉ＿ｄｅｔ）が入力されたとき、当該制御信号Ｃｔｌ＿ｒｅｓｔｏｒｅ（ａｉ＿ｄｅｔ）に従い、アクションａｉ＿ｄｅｔが実行されたときに隠れ層４２２から出力されていたデータｙｉ（ｊ）’を保持する。そして、ＨＬ現状態保持部４２４は、ｉ＋１番目のアクションを決定する処理が実行されるときに、保持したデータｙｉ（ｊ）’（ｊは、ａｉ（ｊ）＝ａｉ＿ｄｅｔを満たすｊ）を保持部４２３から出力させる信号を保持部４２３に出力する。
【０１８９】
出力層４２５は、隠れ層４２２から出力されるデータｙｉ（ｊ）’を入力する。出力層４２５は、以下の処理により第２ＲＮＮスコアｓｃｒ＿ＲＮＮ２（ａｉ（ｊ））を取得する。
ｓｃｒ＿ＲＮＮ２（ａｉ（ｊ））＝Ｏ’×ｙｉ（ｊ）’＋ＢＯ’
Ｏ’：１×｜ｙｉ（ｊ）’｜の行列
ＢＯ’：バイアス項
出力層４２５は、上記処理により取得した第２ＲＮＮスコアｓｃｒ＿ＲＮＮ２（ａｉ（ｊ））を第２スコア統合部４６に出力する。
【０１９０】
第１変換部４４は、アクション設定部１から出力されるアクションａｉ（ｊ）の情報を含むデータを入力し、所定の変換を行い、変換後のアクションａｉ（ｊ）’の情報を含むデータを取得する。そして、第１変換部４４は、取得した変換後のアクションａｉ（ｊ）’の情報を含むデータを第２ＲＮＮ部４２に出力する。
【０１９１】
第３ＲＮＮ部４３は、図１０に示すように、ＲＮＮを用いて構成されており、入力層４３１と、隠れ層４３２と、保持部４３３と、ＨＬ現状態保持部４３４と、出力層４３５とを備える。
【０１９２】
入力層４３１は、第２変換部４５からから出力されるアクションａｉ（ｊ）’’のデータ（アクションａｉ（ｊ）を第２変換部４５が変換したアクションのデータ）と、スタックＭｓから出力されるデータＤ２＿ｓｔａｃｋと、キューＭｑから出力されるデータＤ２＿ｑｕｅｕｅとを入力する。入力層４３１は、入力されたアクションａｉ（ｊ）’’、スタックＭｓのデータＤ２＿ｓｔａｃｋ、および、キューＭｑのデータＤ２＿ｑｕｅｕｅに基づいて、データｘｉ（ｊ）’’を取得し、隠れ層４３２に出力する。
【０１９３】
隠れ層４３２は、入力層４３１から出力されるデータｘｉ（ｊ）’’と、保持部４３３から出力されるデータｙｉ−１’’とを入力する。隠れ層４３２は、下記に相当する処理を行い、データｙｉ（ｊ）’’を取得する。
ｙｉ（ｊ）’’＝ｆ（Ｈ’’×ｘｉ（ｊ）’’＋Ｒ’’×ｙｉ−１’’＋ＢＨ’’）
ｆ（）：活性化関数
Ｈ’’：｜ｙｉ（ｊ）’’｜×｜ｘｉ（ｊ）’’｜の行列
Ｒ’’：｜ｙｉ（ｊ）’’｜×｜ｙｉ−１（ｊ）’’｜の行列
ＢＨ’’：｜ｙｉ（ｊ）’’｜×１の行列
なお、データｙｉ−１’’は、ｉ−１番目のアクションａｉ−１（＝ａｉ−１＿ｄｅｔ）が入力層４３１に入力されているときに隠れ層４３２から出力されるデータと同じデータである。
【０１９４】
隠れ層４３２は、上記のようにして取得したデータｙｉ（ｊ）’’を保持部４３３および出力層４３５に出力する。
【０１９５】
保持部４３３は、隠れ層４３２から出力されるデータｙｉ（ｊ）’’を入力し保持する。そして、保持部４３３は、隠れ層４３２にアクションａｉ（ｊ）に対応するデータｘｉ（ｊ）’’が入力されるときに、ｉ−１番目（１つ前のアクション）のアクションａｉ−１（＝ａｉ−１＿ｄｅｔ）に対応するデータｘｉ−１’’から取得したデータｙｉ−１’’を隠れ層４３２に出力する。
【０１９６】
また、保持部４３３は、隠れ層４３２の現在の出力状態を示す情報を含む信号をＨＬ現状態保持部４３４に出力する。
【０１９７】
ＨＬ現状態保持部４３４は、保持部４３３から出力される隠れ層４３２の現在の出力状態を示す情報を含む信号が入力されたとき、当該隠れ層４３２の現在の出力状態を示す情報を保持する。
【０１９８】
また、ＨＬ現状態保持部４３４は、スコア保持部６から出力される制御信号Ｃｔｌ＿ｎｅｘｔを入力する。ＨＬ現状態保持部４３４は、制御信号Ｃｔｌ＿ｎｅｘｔが入力されたとき、当該制御信号Ｃｔｌ＿ｎｅｘｔに従い、ｉ−１番目のアクションａｉ−１が実行された後の状態に保持部４３３を戻すための信号を生成し、保持部４３３に出力する。
【０１９９】
また、ＨＬ現状態保持部４３４は、アクション決定部７から出力される制御信号Ｃｔｌ＿ｒｅｓｔｏｒｅ（ａｉ＿ｄｅｔ）を入力する。ＨＬ現状態保持部４３４は、制御信号Ｃｔｌ＿ｒｅｓｔｏｒｅ（ａｉ＿ｄｅｔ）が入力されたとき、当該制御信号Ｃｔｌ＿ｒｅｓｔｏｒｅ（ａｉ＿ｄｅｔ）に従い、アクションａｉ＿ｄｅｔが実行されたときに隠れ層４３２から出力されていたデータｙｉ（ｊ）’を保持する。そして、ＨＬ現状態保持部４３４は、ｉ＋１番目のアクションを決定する処理が実行されるときに、保持したデータｙｉ（ｊ）’’（ｊは、ａｉ（ｊ）＝ａｉ＿ｄｅｔを満たすｊ）を保持部４２３から出力させる信号を保持部４３３に出力する。
【０２００】
出力層４３５は、隠れ層４３２から出力されるデータｙｉ（ｊ）’’を入力する。出力層４３５は、以下の処理により第３ＲＮＮスコアｓｃｒ＿ＲＮＮ３（ａｉ（ｊ））を取得する。
ｓｃｒ＿ＲＮＮ３（ａｉ（ｊ））＝Ｏ’’×ｙｉ（ｊ）’’＋ＢＯ’’
Ｏ’’：１×｜ｙｉ（ｊ）’’｜の行列
ＢＯ’’：バイアス項
出力層４３５は、上記処理により取得した第３ＲＮＮスコアｓｃｒ＿ＲＮＮ３（ａｉ（ｊ））を第２スコア統合部４６に出力する。
【０２０１】
第２変換部４５は、アクション設定部１から出力されるアクションａｉ（ｊ）の情報を含むデータを入力し、所定の変換を行い、変換後のアクションａｉ（ｊ）’’の情報を含むデータを取得し、第３ＲＮＮ部４３に出力する。
【０２０２】
第２スコア統合部４６は、第１ＲＮＮ部４１から出力される第１ＲＮＮスコアｓｃｒ＿ＲＮＮ１（ａｉ（ｊ））と、第２ＲＮＮ部４２から出力される第２ＲＮＮスコアｓｃｒ＿ＲＮＮ２（ａｉ（ｊ））と、第３ＲＮＮ部４３から出力される第３ＲＮＮスコアｓｃｒ＿ＲＮＮ３（ａｉ（ｊ））とを入力する。
【０２０３】
第１ＲＮＮスコアｓｃｒ＿ＲＮＮ１（ａｉ（ｊ））は、第１実施形態と同様に以下の数式に相当する処理により取得される。
ｙｉ（ｊ）＝ｆ（Ｈ×ｘｉ（ｊ）＋Ｒ×ｙｉ−１＋Ｂ）
ｆ（）：活性化関数（例えば、シグモイド関数やＳｏｆｔｍａｘ関数）
Ｈ：｜ｙｉ（ｊ）｜×｜ｘｉ（ｊ）｜の行列
Ｒ：｜ｙｉ（ｊ）｜×｜ｙｉ−１｜の行列
Ｂ：｜ｙｉ（ｊ）｜×１の行列
ｓｃｒ＿ＲＮＮ１（ａｉ（ｊ））＝Ｏ×ｙｉ（ｊ）＋ＢＯ
Ｏ：１×｜ｙｉ（ｊ）｜の行列
ＢＯ：バイアス項
第２ＲＮＮスコアｓｃｒ＿ＲＮＮ２（ａｉ（ｊ））は、第１実施形態と同様に以下の数式に相当する処理により取得される。
ｙｉ（ｊ）＝ｆ（Ｈ２×ｘｉ（ｊ）＋Ｒ２×ｙｉ−１＋Ｂ２）
ｆ（）：活性化関数（例えば、シグモイド関数やＳｏｆｔｍａｘ関数）
Ｈ２：｜ｙｉ（ｊ）｜×｜ｘｉ（ｊ）｜の行列
Ｒ２：｜ｙｉ（ｊ）｜×｜ｙｉ−１｜の行列
Ｂ２：｜ｙｉ（ｊ）｜×１の行列（ベクトル）
ｓｃｒ＿ＲＮＮ２（ａｉ（ｊ））＝Ｏ２×ｙｉ（ｊ）＋ＢＯ２
Ｏ：１×｜ｙｉ（ｊ）｜の行列
ＢＯ２：バイアス項
第３ＲＮＮスコアｓｃｒ＿ＲＮＮ３（ａｉ（ｊ））は、第１実施形態と同様に以下の数式に相当する処理により取得される。
ｙｉ（ｊ）＝ｆ（Ｈ３×ｘｉ（ｊ）＋Ｒ３×ｙｉ−１＋Ｂ３）
ｆ（）：活性化関数（例えば、シグモイド関数やＳｏｆｔｍａｘ関数）
Ｈ３：｜ｙｉ（ｊ）｜×｜ｘｉ（ｊ）｜の行列
Ｒ３：｜ｙｉ（ｊ）｜×｜ｙｉ−１｜の行列
Ｂ３：｜ｙｉ（ｊ）｜×１の行列（ベクトル）
ｓｃｒ＿ＲＮＮ３（ａｉ（ｊ））＝Ｏ３×ｙｉ（ｊ）＋ＢＯ３
Ｏ：１×｜ｙｉ（ｊ）｜の行列
ＢＯ３：バイアス項
第２スコア統合部４６は、第１ＲＮＮスコアｓｃｒ＿ＲＮＮ１（ａｉ（ｊ））、第２ＲＮＮスコアｓｃｒ＿ＲＮＮ２（ａｉ（ｊ））および第３ＲＮＮスコアｓｃｒ＿ＲＮＮ３（ａｉ（ｊ））に対して統合処理を行い、第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））を取得する。例えば、第２スコア統合部４６は、
ｓｃｒ＿ＲＮＮ（ａｉ（ｊ））＝λ１×ｓｃｒ＿ＲＮＮ１（ａｉ（ｊ））＋
λ２×ｓｃｒ＿ＲＮＮ２（ａｉ（ｊ））＋
λ３×ｓｃｒ＿ＲＮＮ３（ａｉ（ｊ））
λ１、λ２、λ３：係数
により第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））を取得する。
【０２０４】
第２スコア統合部４６は、取得した第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））をスコア統合部５に出力する。
【０２０５】
＜２．２：句構造解析装置の動作＞
以上のように構成された第２実施形態に係る句構造解析装置２０００の動作について、図面を参照しながら以下説明する。
【０２０６】
なお、第１実施形態と同様の部分については、詳細な説明を省略する。
【０２０７】
第２実施形態の句構造解析装置２０００では、３つのＲＮＮを用いて第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））を取得する。
【０２０８】
句構造解析装置２０００では、第１ＲＮＮ部４１で用いられるＲＮＮと、第２ＲＮＮ部４２で用いられるＲＮＮと、第３ＲＮＮ部４３で用いられるＲＮＮとは、異なるモデルにより構築されている。つまり、文の構造データをアクションのシーケンスとして取得するための線形化手法が、第１ＲＮＮ部４１で用いられるＲＮＮと、第２ＲＮＮ部４２で用いられるＲＮＮと、第３ＲＮＮ部４３で用いられるＲＮＮとで異なる。
【０２０９】
本実施形態では、第２ＲＮＮ部４２に入力されるアクションは、第１ＲＮＮ部４１に入力されるアクションに付加情報を追加したものである。
【０２１０】
具体的には、第２ＲＮＮ部４２に入力されるアクションは、第１ＲＮＮ部４１に入力されるアクションに子ノードの情報を付加したものである。
【０２１１】
つまり、第１ＲＮＮ部４１に入力されるアクションである（１）SHIFT、（２）REDUCE-L/R-X、（３）UNARY-X、（４）FINISH、（５）IDLEのうち、（２）REDUCE-L/R-X、（３）UNARY-Xについて、子ノードの情報を付与する。例えば、子ノードが句である場合、当該句を表すラベルを付加し、子ノードが語である場合、その語の品詞にかかわらずシンボル「LEAF」を付加する。
【０２１２】
なお、アクションに子ノードの情報を付加する処理は、第１変換部４４で実行される。
【０２１３】
本実施形態では、第３ＲＮＮ部４３に入力されるアクションは、（１）SHIFT、（２）REDUCE-X、（３）UNARY-X、（４）FINISH、（５）IDLEである。つまり、第３ＲＮＮ部４３に入力されるアクションは、第１ＲＮＮ部４１に入力されるアクションである（２）REDUCE-L/R-Xの代わりに「REDUCE-X」を用いる。このアクション「REDUCE-X」は、スタックＭｓからトップのＮ個のデータを取り出し（ＰＯＰ動作をＮ回行い）、取り出したＮ個のデータを結合しラベルＸを付し、新たなデータとしてスタックＭｓに戻す。つまり、第３ＲＮＮ部４３で用いられるＲＮＮは、文の構造データをアクションのシーケンス（アクションの系列）として取得するための線形化手法として２分木データを前提としていない。すなわち、第３ＲＮＮ部４３で用いられるＲＮＮを最適化したときに使用したデータ（学習データ）は、２分木データを前提としていない線形化手法により生成されたアクションのシーケンス（アクションの系列のデータ）である。
【０２１４】
アクション「REDUCE-X」は、例えば、子ノードの数が「２」である場合、「REDUCE-X-2」と表記して、ラベルXが付されたノードの子ノードが２つであることを示す。
【０２１５】
なお、アクションに子ノードの情報を付加する処理は、第２変換部４５で実行される。
【０２１６】
句構造解析装置２０００の動作では、第１実施形態の句構造解析装置１０００の動作を示すフローチャート（図４）においてステップＳ６の処理が異なる。
【０２１７】
句構造解析装置２０００では、第１実施形態の句構造解析装置１０００がステップＳ６において、第１ＲＮＮ部４１が取得した第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））を使用するのに対し、句構造解析装置２０００では、第１ＲＮＮ部４１が取得した第１ＲＮＮスコアｓｃｒ＿ＲＮＮ１（ａｉ（ｊ））、第２ＲＮＮ部４２が取得した第２ＲＮＮスコアｓｃｒ＿ＲＮＮ２（ａｉ（ｊ））、および、第３ＲＮＮ部４３が取得した第３ＲＮＮスコアｓｃｒ＿ＲＮＮ３（ａｉ（ｊ））を統合して取得した第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））を使用する点が異なる。
【０２１８】
以下、句構造解析装置２０００が動作するときのステップＳ６の処理について説明する。
【０２１９】
（ステップＳ６）：
第１ＲＮＮ部４１の動作は、第１実施形態と同様であるので説明を省略する。
【０２２０】
第１変換部４４は、入力されたアクションａｉ（ｊ）が子ノードの情報を拡張すべきアクションであるか否かを判定する。第１変換部４４は、子ノードの情報を拡張すべきアクションであると判定した場合、子ノードの情報を拡張したアクションａｉ（ｊ）’を取得し、第２ＲＮＮ部４２に出力する。第１変換部４４は、子ノードの情報を拡張すべきアクションではないと判定した場合、アクションａｉ（ｊ）をアクションａｉ（ｊ）’として第２ＲＮＮ部に出力する。
【０２２１】
第２ＲＮＮ部４２は、第２ＲＮＮスコアを取得する処理を実行する。
【０２２２】
第２ＲＮＮ部４２の入力層４２１は、入力されたアクションａｉ（ｊ）’、スタックＭｓのデータＤ２＿ｓｔａｃｋ、および、キューＭｑのデータＤ２＿ｑｕｅｕｅに基づいて、例えば、ＬＵＴ（ルックアップテーブル）によりデータｘｉ（ｊ）’を取得し、隠れ層４２２に出力する。
【０２２３】
隠れ層４２２は、入力層４２１から出力されるデータｘｉ（ｊ）’と、保持部４２３から出力されるデータｙｉ−１’とを入力する。なお、最初のアクションが実行されるとき、データｙｉ−１’は、データが存在しない状態（全ての要素が「０」の状態）である。
【０２２４】
隠れ層４２２は、下記に相当する処理を行い、データｙｉ’を取得する。
ｙｉ（ｊ）’＝ｆ（Ｈ’×ｘｉ（ｊ）’＋Ｒ’×ｙｉ−１’＋ＢＨ’）
ｆ（）：活性化関数（例えば、シグモイド関数やＳｏｆｔｍａｘ関数）
Ｈ’：｜ｙｉ（ｊ）’｜×｜ｘｉ（ｊ）’｜の行列
Ｒ’：｜ｙｉ（ｊ）’｜×｜ｙｉ−１’｜の行列
ＢＨ’：｜ｙｉ（ｊ）’｜×１の行列
隠れ層４２２は、上記のようにして取得したデータｙｉ（ｊ）’を保持部４２３および出力層４２５に出力する。
【０２２５】
保持部４２３は、隠れ層４２２から出力されるデータｙｉ（ｊ）’を入力し保持する。そして、保持部４２３は、隠れ層４２２にアクションａｉ（ｊ）に対応するデータｘｉ（ｊ）’が入力されるときに、ｉ−１番目（１つ前のアクション）のアクションａｉ−１（＝ａｉ−１＿ｄｅｔ）に対応するデータｘｉ−１’から取得したデータｙｉ−１’を隠れ層４２２に出力する。
【０２２６】
また、保持部４２３は、隠れ層４２２の現在の出力状態を示す情報を含む信号をＨＬ現状態保持部４２４に出力する。
【０２２７】
ＨＬ現状態保持部４２４は、当該隠れ層４２２の現在の出力状態を示す情報を保持する。
【０２２８】
出力層４２５は、隠れ層４２２から出力されるデータｙｉ（ｊ）’を入力する。出力層４２５は、以下の処理により第２ＲＮＮスコアｓｃｒ＿ＲＮＮ２（ａｉ（ｊ））を取得する。
ｓｃｒ＿ＲＮＮ２（ａｉ（ｊ））＝Ｏ’×ｙｉ（ｊ）’＋ＢＯ’
Ｏ’：１×｜ｙｉ（ｊ）’｜の行列
ＢＯ’：バイアス項
出力層４２５は、上記処理により取得した第２ＲＮＮスコアｓｃｒ＿ＲＮＮ２（ａｉ（ｊ））を第２スコア統合部４６に出力する。
【０２２９】
なお、行列Ｈ’、Ｒ’、ＢＨ’、Ｏ’、ＢＯ’は、学習データ（例えば、品詞付き文章のデータとその構文構造の対の集合）を用いて、各アクションを実行させて学習させて取得されたパラメータにより決定される値を行列の要素としている。行列Ｈ’、Ｒ’、ＢＨ’、Ｏ’、ＢＯ’を取得するために用いたアクションは、（１）SHIFT、（２）REDUCE-L/R-X、（３）UNARY-X、（４）FINISH、（５）IDLEであり、このうち、（２）REDUCE-L/R-X、（３）UNARY-Xは、子ノードの情報を付与したアクションである。
【０２３０】
第２変換部４５は、入力されたアクションａｉ（ｊ）を必要に応じて変換する。第２変換部４５は、入力されたアクションａｉ（ｊ）が（１）SHIFT、（３）UNARY-X、（４）FINISH、（５）IDLEのいずれかである場合、アクションａｉ（ｊ）をアクションａｉ（ｊ）’’として第３ＲＮＮ部に出力する。
【０２３１】
第２変換部４５は、入力されたアクションａｉ（ｊ）が「REDUCE-R-X」である場合、「REDUCE-X-k」（k：子ノードの数）に拡張して、拡張した当該アクション「REDUCE-X-k」をアクションａｉ（ｊ）’’として第３ＲＮＮ部に出力する。
【０２３２】
第２変換部４５は、入力されたアクションａｉ（ｊ）が「REDUCE-L-X」である場合、対応するアクションが存在しないため「IDLE」をアクションａｉ（ｊ）’’として第３ＲＮＮ部に出力する。
【０２３３】
第３ＲＮＮ部４３は、第３ＲＮＮスコアを取得する処理を実行する。
【０２３４】
第３ＲＮＮ部４３の入力層４３１は、入力されたアクションａｉ（ｊ）’’、スタックＭｓのデータＤ２＿ｓｔａｃｋ、および、キューＭｑのデータＤ２＿ｑｕｅｕｅに基づいて、例えば、ＬＵＴ（ルックアップテーブル）によりデータｘｉ（ｊ）’’を取得し、隠れ層４３２に出力する。
【０２３５】
隠れ層４３２は、入力層４３１から出力されるデータｘｉ（ｊ）’’と、保持部４３３から出力されるデータｙｉ−１’’とを入力する。なお、最初のアクションが実行されるとき、データｙｉ−１’’は、データが存在しない状態（全ての要素が「０」の状態）である。
【０２３６】
隠れ層４３２は、下記に相当する処理を行い、データｙｉ’’を取得する。
ｙｉ（ｊ）’’＝ｆ（Ｈ’’×ｘｉ（ｊ）’’＋Ｒ’’×ｙｉ−１’’＋ＢＨ’’）
ｆ（）：活性化関数（例えば、シグモイド関数やＳｏｆｔｍａｘ関数）
Ｈ’’：｜ｙｉ（ｊ）’’｜×｜ｘｉ（ｊ）’’｜の行列
Ｒ’’：｜ｙｉ（ｊ）’’｜×｜ｙｉ−１’’｜の行列
ＢＨ’’：｜ｙｉ（ｊ）’’｜×１の行列
隠れ層４３２は、上記のようにして取得したデータｙｉ（ｊ）’’を保持部４３３および出力層４３５に出力する。
【０２３７】
保持部４３３は、隠れ層４３２から出力されるデータｙｉ（ｊ）’’を入力し保持する。そして、保持部４３３は、隠れ層４３２にアクションａｉ（ｊ）に対応するデータｘｉ（ｊ）’’が入力されるときに、ｉ−１番目（１つ前のアクション）のアクションａｉ−１（＝ａｉ−１＿ｄｅｔ）に対応するデータｘｉ−１’’から取得したデータｙｉ−１’’を隠れ層４３２に出力する。
【０２３８】
また、保持部４３３は、隠れ層４３２の現在の出力状態を示す情報を含む信号をＨＬ現状態保持部４３４に出力する。
【０２３９】
ＨＬ現状態保持部４３４は、当該隠れ層４３２の現在の出力状態を示す情報を保持する。
【０２４０】
出力層４３５は、隠れ層４３２から出力されるデータｙｉ（ｊ）’’を入力する。出力層４３５は、以下の処理により第３ＲＮＮスコアｓｃｒ＿ＲＮＮ３（ａｉ（ｊ））を取得する。
ｓｃｒ＿ＲＮＮ３（ａｉ（ｊ））＝Ｏ’’×ｙｉ（ｊ）’’＋ＢＯ’’
Ｏ’’：１×｜ｙｉ（ｊ）’｜の行列
ＢＯ’’：バイアス項
出力層４３５は、上記処理により取得した第３ＲＮＮスコアｓｃｒ＿ＲＮＮ３（ａｉ（ｊ））を第２スコア統合部４６に出力する。
【０２４１】
なお、行列Ｈｄ’’、Ｒｄ’’、ＢｄＨ’’、Ｏ’’、ＢＯ’’は、学習データ（例えば、品詞付き文章のデータとその構文構造の対の集合）を用いて、各アクションを実行させて学習させて取得されたパラメータにより決定される値を行列の要素としている。行列Ｈｄ’’、Ｒｄ’’、ＢｄＨ’’、Ｏ’’、ＢＯ’’を取得するために用いたアクションは、（１）SHIFT、（２）REDUCE-X、（３）UNARY-X、（４）FINISH、（５）IDLEであり、このうち、（２）REDUCE-Xは、子ノードの数の情報を付与したアクションである。
【０２４２】
第２スコア統合部４６は、第１ＲＮＮスコアｓｃｒ＿ＲＮＮ１（ａｉ（ｊ））、第２ＲＮＮスコアｓｃｒ＿ＲＮＮ２（ａｉ（ｊ））および第３ＲＮＮスコアｓｃｒ＿ＲＮＮ３（ａｉ（ｊ））に対して統合処理を行い、第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））を取得する。例えば、第２スコア統合部４６は、
ｓｃｒ＿ＲＮＮ（ａｉ（ｊ））＝λ１×ｓｃｒ＿ＲＮＮ１（ａｉ（ｊ））＋
λ２×ｓｃｒ＿ＲＮＮ２（ａｉ（ｊ））＋
λ３×ｓｃｒ＿ＲＮＮ３（ａｉ（ｊ））
λ１、λ２、λ３：係数
により第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））を取得する。
【０２４３】
第２スコア統合部４６は、取得した第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））をスコア統合部５に出力する。
【０２４４】
以降の処理は、第１実施形態と同様である。
【０２４５】
図１１は、句構造解析装置２０００で句構造解析処理を実行したときのスタックＭｓおよびキューＭｑの状態と、決定アクションａｉ＿ｄｅｔに対応するアクションであって第２ＲＮＮ部４２に入力されたアクションとを模式的に示す図である。
【０２４６】
図１２は、句構造解析装置２０００で句構造解析処理を実行したときのスタックＭｓおよびキューＭｑの状態と、決定アクションａｉ＿ｄｅｔに対応するアクションであって第３ＲＮＮ部４３に入力されたアクションとを模式的に示す図である。
【０２４７】
図１１、図１２から分かるように、句構造解析装置２０００では、入力データＤｉｎ（「John:N  has:VB  a:DT  dog:N  .」）の文の構造を示すデータ（句構造解析結果データ）が正確に取得されている。つまり、図１１のスタック状態を解析することで、図６に示す木構造の解析結果が取得されていることが分かり、図１２のスタック状態を解析することで、図１３に示す木構造の解析結果が取得されていることが分かる。なお、図１３では、２分木を前提としない線形化手法によるＲＮＮを用いた解析結果から取得した句構造解析結果であるため、ルートノードの子ノードが３つ存在している。
【０２４８】
以上のように、句構造解析装置２０００では、素性テンプレートを用いて取得した第１スコアと、３つのＲＮＮにより取得した第２スコアとを統合した統合スコアを用いて、句構造解析のために最適なアクションを決定することができる。句構造解析装置２０００では、第１ＲＮＮ部４１、第２ＲＮＮ部４２、第３ＲＮＮ部４３の各隠れ層に、句構造解析の各段階において選択された決定アクションａｉ＿ｄｅｔ（過去の全ての決定アクションａｉ＿ｄｅｔ）を反映しているデータｙｉ−１、ｙｉ−１’およびｙｉ−１’’が入力されている。例えば、図５の場合において、ｉ＝１１のとき、ｉ＝１〜１０までの全ての決定アクションａｉ＿ｄｅｔを反映しているデータｙｉ−１、ｙｉ−１’およびｙｉ−１’’が第１ＲＮＮ部４１、第２ＲＮＮ部４２、第３ＲＮＮ部４３の各隠れ層に入力される。
【０２４９】
従って、句構造解析装置２０００では、過去の全ての決定アクションａｉ＿ｄｅｔ（過去の全ての解析履歴）を考慮した第２スコア（第１ＲＮＮスコア、第２ＲＮＮスコアおよび第３ＲＮＮスコアを統合したスコア）を取得することができる。このように、句構造解析装置２０００では、人手により決定された素性テンプレートを用いて取得するだけでは取得することができない過去の全ての解析履歴を考慮した第２スコアを取得でき、第２スコアを用いて、各段階の最適なアクションを決定することができる。
【０２５０】
その結果、句構造解析装置２０００では、人手により決定された素性テンプレートを用いたスコアのみにより句構造解析の各段階の最適アクションを決定する場合に比べて、高精度に最適アクションを決定することができる。つまり、句構造解析装置２０００では、解析履歴全体に基づく素性を考慮した高精度な文の構文構造を解析することができる。
【０２５１】
さらに、句構造解析装置２０００では、異なるアクション系列データにより学習し最適化した複数のＲＮＮを用いて、各アクションの評価を行うことができる。各ＲＮＮを多様な句構造解析に応じて最適化させることで、句構造解析装置２０００では、多様な文のデータに対しても最適なアクション系列を高精度に取得し、その結果、高精度の句構造解析を実現することができる。
【０２５２】
［他の実施形態］
上記実施形態の句構造解析装置では、第１ＲＮＮ部、第２ＲＮＮ部、第３ＲＮＮ部では、隠れ層が１つである場合について説明したが、これに限定されることはなく隠れ層の数は「２」以上であってもよい。
【０２５３】
また、上記実施形態の句構造解析装置では、ＲＮＮを含む機能部が３つである場合について説明したが、これに限定されることはなく、第２スコア取得部がＮ個（Ｎ：自然数）のＲＮＮ部を含むものであってもよい。Ｎ個のＲＮＮ部を含む場合、句構造解析装置において、第１ＲＮＮ部、第２ＲＮＮ部、第３ＲＮＮ部、・・・、第ｋＲＮＮ部、・・・、第ＮＲＮＮ部が設けられる構成とすればよい。なお、「第２〜第ＮＲＮＮ部」という表記は、第２番目のＲＮＮ部（第２ＲＮＮ部）から第Ｎ番目のＲＮＮ部（第ＮＲＮＮ部）の合計（Ｎ−１）個のＲＮＮ部を表している。
【０２５４】
また、上記実施形態において、スコア統合部５が第１スコアｓｃｒ＿ｆｒ（ａｉ（ｊ））および第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））を統合する処理は上記実施形態の例に限定されることなく、例えば、内分処理、外分処理等により、第１スコアｓｃｒ＿ｆｒ（ａｉ（ｊ））および第２スコアｓｃｒ＿ＲＮＮ（ａｉ（ｊ））を統合するようにしてもよい。
【０２５５】
句構造解析装置１０００、２０００を構成する各機能部は、例えばネットワークを介して接続されるものであってもよい。
【０２５６】
また上記実施形態の句構造解析装置１０００、２０００は、複数の装置により実現されるものであってもよい。
【０２５７】
また上記実施形態で説明した句構造解析装置１０００、２０００において、各ブロックは、ＬＳＩなどの半導体装置により個別に１チップ化されても良いし、一部または全部を含むように１チップ化されても良い。
【０２５８】
なおここではＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０２５９】
また集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセサで実現してもよい。ＬＳＩ製造後にプログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【０２６０】
また上記各実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして上記各実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置（ＣＰＵ）により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ＲＯＭなどの記憶装置に格納されており、ＲＯＭにおいて、あるいはＲＡＭに読み出されて実行される。
【０２６１】
また上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア（ＯＳ（オペレーティングシステム）、ミドルウェア、あるいは所定のライブラリとともに実現される場合を含む。）により実現してもよい。さらにソフトウェアおよびハードウェアの混在処理により実現しても良い。
【０２６２】
例えば上記実施形態の各機能部をソフトウェアにより実現する場合、図１４に示したハードウェア構成（例えばＣＰＵ、ＲＯＭ、ＲＡＭ、入力部、出力部、通信部、記憶部（例えば、ＨＤＤ、ＳＳＤ等により実現される記憶部）、外部メディア用ドライブ等をバスＢｕｓにより接続したハードウェア構成）を用いて各機能部をソフトウェア処理により実現するようにしてもよい。
【０２６３】
また上記実施形態の各機能部をソフトウェアにより実現する場合、当該ソフトウェアは、図１４に示したハードウェア構成を有する単独のコンピュータを用いて実現されるものであってもよいし、複数のコンピュータを用いて分散処理により実現されるものであってもよい。
【０２６４】
また上記実施形態における処理方法の実行順序は、必ずしも上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【０２６５】
前述した方法をコンピュータに実行させるコンピュータプログラム、及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここでコンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、大容量ＤＶＤ、次世代ＤＶＤ、半導体メモリを挙げることができる。
【０２６６】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限らず、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【０２６７】
なお本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【産業上の利用可能性】
【０２６８】
本発明によれば、解析履歴全体に基づく素性を考慮した高精度な文の構文構造を解析することができる句構造解析装置およびプログラムを実現することができる。このため本発明は、自然言語処理関連産業分野において有用であり、当該分野において実施することができる。
【符号の説明】
【０２６９】
１０００、２０００  句構造解析装置
Ｍｓ  スタックメモリ
Ｍｑ  キューメモリ
１  アクション設定部
３  第１スコア取得部
４  第２スコア取得部
５  スコア統合部
７  アクション決定部
８  解析結果出力部
【図１】
2018109862.tif 000007
【図２】
2018109862.tif 000008
【図３】
2018109862.tif 000009
【図４】
2018109862.tif 000010
【図５】
2018109862.tif 000011
【図６】
2018109862.tif 000012
【図７】
2018109862.tif 000013
【図８】
2018109862.tif 000014
【図９】
2018109862.tif 000015
【図１０】
2018109862.tif 000016
【図１１】
2018109862.tif 000017
【図１２】
2018109862.tif 000018
【図１３】
2018109862.tif 000019
【図１４】
2018109862.tif 000020