(57)【要約】【課題】構文構造と述語項構造とで整合のとれた構造解析を行う。【解決手段】形態素解析部１４は、自然言語で記述された入力文を単語に分割し、品詞の情報を付与する。構造解析部１６は、形態素解析部１４による形態素解析の結果に基づいて、単語間の統語的な依存関係を表すラベルを付与する依存構造解析と、述語と項との関係を同定する述語項構造解析とを行うにあたり、依存構造解析の現時点の結果、及び述語項構造解析の現時点の結果から抽出される素性と、依存構造解析に関するアクション及び述語項構造解析に関するアクションを含む複数のアクションのうち何れかを決定するための予め構築された解析モデルとを用いて、複数のアクションのうち何れかを決定して実行することを繰り返す。【選択図】図１
2019021096.tif 000002
【特許請求の範囲】
【請求項１】
自然言語で記述された入力文を単語に分割し、品詞の情報を付与する形態素解析を行う形態素解析部と、
前記形態素解析部による形態素解析の結果に基づいて、単語間の統語的な依存関係を表すラベルを付与する依存構造解析と、述語と項との関係を同定する述語項構造解析とを行う構造解析部と、
を含み、
前記構造解析部は、前記依存構造解析の現時点の結果、及び前記述語項構造解析の現時点の結果から抽出される素性と、前記依存構造解析に関するアクション及び前記述語項構造解析に関するアクションを含む複数のアクションのうち何れかを決定するための予め構築された解析モデルとを用いて、前記複数のアクションのうち何れかを決定して実行することを繰り返す言語解析装置。
【請求項２】
前記構造解析部は、前記述語項構造解析を行う際に、述語が取り得る格構造の情報が格納された格フレーム辞書を用いて、項の意味役割を付与する請求項１に記載の言語解析装置。
【請求項３】
自然言語で記述された入力文を単語に分割し、品詞の情報を付与する形態素解析を行い、
前記形態素解析の結果に基づいて、単語間の統語的な依存関係を表すラベルを付与する依存構造解析と、述語と項との関係を同定する述語項構造解析とを行うにあたり、前記依存構造解析の現時点の結果、及び前記述語項構造解析の現時点の結果から抽出される素性と、前記依存構造解析に関するアクション及び前記述語項構造解析に関するアクションを含む複数のアクションのうち何れかを決定するための予め構築された解析モデルとを用いて、前記複数のアクションのうち何れかを決定して実行することを繰り返す
言語解析方法。
【請求項４】
前記述語項構造解析を行う際に、述語が取り得る格構造の情報が格納された格フレーム辞書を用いて、項の意味役割を付与する請求項３に記載の言語解析方法。
【請求項５】
コンピュータを、請求項１又は請求項２に記載の言語解析装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、言語解析装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
自然言語処理では、処理対象の自然言語に対して、文の構造を同定する構文解析、及び述語と項とからなる意味的な構造を同定する述語項構造解析等の構造解析が行われる。
【０００３】
従来、この構造解析を行う際には、入力文を単語に分割して品詞を同定する形態素解析を行った後に、文節等を単位とした依存関係解析（係り受け解析）を行う構文解析と、動詞や形容詞により表現された述語とその項となる単語との関係を同定する述語項構造解析とが逐次的に行われている（例えば、非特許文献１、２参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Taku Kudo and Yuji Matsumoto: Japanese dependency analysis using cascaded chunking, In Proc. of CoNLL 2002, Vol. 20, pp.1-7 (2002).
【非特許文献２】Ryu Iida, Massimo Poesio: A Cross-Lingual ILP Solution to Zero Anaphora Resolution, In Proc. of ACL-HLT 2011, pp.804-813 (2011).
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、本来、構文構造と述語項構造とは独立したものではなく、相互に関連するものであるため、構文解析と述語項構造解析とを逐次的に行う処理では両者の構造を整合させることが難しい場合がある。特に、日本語においては、ある述語に対する項が省略されることが多いことや、複数の述語で項が共有されることが頻繁に生じる。
【０００６】
例えば、「太郎を見つけて話しかけた人に伝えた」という文では、「見つける」、「話しかける」、「伝える」という３つの述語があるが、「伝える」の動作主にあたる項が省略されている。また、この文では、「見つける」の対象にあたる項と「話しかける」の着点にあたる項として「太郎」が共有されている。従って、述語と項との関係を捉えずに先行して構文構造を同定することは簡単ではない。これに対し、「伝える」の動作主の項が省略されていることや、「見つける」の対象の項と「話しかける」の着点の項とが共有されていることが捉えられれば、構文構造を同定することが容易に可能となる。
【０００７】
本発明は、上記の点に鑑みてなされたものであり、構文構造と述語項構造とで整合のとれた構造解析を行うことができる言語解析装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明に係る言語解析装置は、自然言語で記述された入力文を単語に分割し、品詞の情報を付与する形態素解析を行う形態素解析部と、前記形態素解析部による形態素解析の結果に基づいて、単語間の統語的な依存関係を表すラベルを付与する依存構造解析と、述語と項との関係を同定する述語項構造解析とを行う構造解析部と、を含んで構成され、前記構造解析部は、前記依存構造解析の現時点の結果、及び前記述語項構造解析の現時点の結果から抽出される素性と、前記依存構造解析に関するアクション及び前記述語項構造解析に関するアクションを含む複数のアクションのうち何れかを決定するための予め構築された解析モデルとを用いて、前記複数のアクションのうち何れかを決定して実行することを繰り返す。
【０００９】
本発明に係る言語解析方法は、自然言語で記述された入力文を単語に分割し、品詞の情報を付与する形態素解析を行い、前記形態素解析の結果に基づいて、単語間の統語的な依存関係を表すラベルを付与する依存構造解析と、述語と項との関係を同定する述語項構造解析とを行うにあたり、前記依存構造解析の現時点の結果、及び前記述語項構造解析の現時点の結果から抽出される素性と、前記依存構造解析に関するアクション及び前記述語項構造解析に関するアクションを含む複数のアクションのうち何れかを決定するための予め構築された解析モデルとを用いて、前記複数のアクションのうち何れかを決定して実行することを繰り返す。
【００１０】
また、本発明のプログラムは、コンピュータを、上記の言語解析装置の各部として機能させるためのプログラムである。
【発明の効果】
【００１１】
以上説明したように、本発明の言語解析装置、方法、及びプログラムによれば、依存構造解析を行うと共に、述語項構造解析を行うことにより、構文構造と述語項構造とで整合のとれた構造解析を行うことができる、という効果が得られる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態に係る言語解析装置のブロック図である。
【図２】実施の形態に係る形態素解析の解析結果の一例を示す図である。
【図３】実施の形態に係る構文解析及び述語項構造解析に関するアクションの一例を示す図である。
【図４】実施の形態に係る解析処理の処理ルーチンを示すフローチャートである。
【図５】実施の形態に係る構文解析及び述語項構造解析の動作例を示す図である。
【図６】実施の形態に係る構文解析及び述語項構造解析の動作例を示す図である。
【図７】実施の形態に係る構文解析及び述語項構造解析の動作例を示す図である。
【図８】実施の形態に係る構文解析及び述語項構造解析の動作例を示す図である。
【図９】実施の形態に係る構文解析及び述語項構造解析の動作例を示す図である。
【図１０】実施の形態に係る構文解析及び述語項構造解析の動作例を示す図である。
【図１１】実施の形態に係る格フレームの一例を示す図である。
【図１２】実施の形態に係る格フレームの一例を示す図である。
【図１３】実施の形態に係る格フレームの一例を示す図である。
【図１４】実施の形態に係る構文解析及び述語項構造解析の解析結果の一例を示す図である。
【図１５】実施の形態に係る構文解析及び述語項構造解析の解析結果の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施の形態を詳細に説明する。なお、以下の実施の形態では、単語の定義として、下記の参考文献１（以下、「BCCWJ規定」という）の上巻p.3-8で規定している短単位（以下、単に「短単位」という）を使用した例について説明する。また、以下の実施の形態では、構文構造の定義として、下記の参考文献２で述べられている単語依存構造の定義を使用した例について説明する。なお、構文構造の定義として、下記の参考文献３で述べられているUniversal Dependenciesのような他の構文構造の定義を使用してもよい。
［参考文献１］小椋秀樹, 小磯花絵, 冨士池優美他：『現代日本語書き言葉均衡コーパス』形態論情報規程（上）（下）, 人間文化研究機構国立国語研究所(2011).
［参考文献２］Takaaki Tanaka and Masaaki Nagata: Word-based Japanese Typed Dependency Parsing with Grammatical Function Analysis, In Proceedings of the Association for Computational Linguistics 53rd Annual Meeting (ACL-2015), Vol.2, pp.237-242, (2015).
［参考文献３］金山博, 宮尾祐介, 田中貴秋, 森信介, 浅原正幸, 植松すみれ: 日本語Universal Dependencies の試案, 言語処理学会第21回年次大会発表論文集, E3-4, (2015).
【００１４】
＜言語解析装置の構成＞
本実施の形態に係る言語解析装置の構成について説明する。本実施の形態に係る言語解析装置１０は、ＣＰＵと、ＲＡＭと、後述する処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することができる。言語解析装置１０は、機能的には図１に示すように、入力部１２、形態素解析部１４、構造解析部１６、及び出力部１８を備えている。言語解析装置１０の所定の記憶領域には、解析モデル２０及び格フレーム辞書２２が記憶される。
【００１５】
入力部１２により入力された入力文に対して形態素解析部１４が形態素解析を行い、形態素の解析結果を構造解析部１６に出力する。構造解析部１６は、解析結果として形態素解析部１４から入力された単語列の情報と、解析モデル２０及び格フレーム辞書２２とに基づいて、単語間の統語的な依存関係の同定を行うと共に、格フレーム情報を含む述語構造の同定を行い、解析結果を出力部１８に出力する。以下、各機能部の詳細について説明する。
【００１６】
入力部１２は、自然言語で記述された入力文を受け付ける。形態素解析部１４は、入力部１２により受け付けられた入力文に対して形態素解析を実行し、入力文を単語に分割すると共に、各単語に対して品詞及び出現形等の素性を対応付ける。
【００１７】
図２に、「太郎を見つけて話しかけた人に伝えた」を入力文とした場合で、かつBCCWJ規定の短単位を単語単位とした場合の形態素解析部１４による解析結果の一例を示す。図２の各行は分割された単語単位を表す。図２に示すように、本実施の形態では、「太郎を見つけて話しかけた人に伝えた」という入力文は、「太郎」、「を」、「見つけ」、「て」、「話しかけ」、「た」、「人」、「に」、「伝え」、「た」の１０個の単語に分割される。
【００１８】
形態素解析部１４は、分割された単語毎に、ID#s、出現形w、標準形m、品詞t、及び述語候補を対応付けた解析結果を得る。ここで、ID#sは、入力文の先頭から順番に単語に付与した一意な番号を示し、出現形wは、入力文中に現れた形（BCCWJ規定における書字形に相当）を示す。また、標準形mは、単語が活用語である場合の基本形（BCCWJ規定における語彙素に相当）を示し、品詞tは、短単位の品詞情報を示す。また、述語候補は、述語項構造解析の対象となる述語であるか否かを示す情報を示す。図２の例では、述語候補となる単語には「PRED」が記述されている。なお、本実施の形態では、形態素解析部１４は、単語を述語候補とするか否かを品詞で判断し、品詞がVB（名詞）及びADJ（形容詞）の単語を述語候補とする。また、図２の例では、BCCWJ規定の品詞の分類を元に簡略化した品詞シンボルを用いているが、BCCWJ規定の品詞をそのまま用いてもよい。
【００１９】
構造解析部１６は、形態素解析部１４による解析結果から、単語間の依存構造による構文解析を行うと共に、述語と項との関係からなる述語項構造及び格フレームを同定する述語項構造解析を行う。本実施の形態では、構造解析部１６は、依存構造解析の現時点の結果、及び述語項構造解析の現時点の結果から抽出される素性と、依存構造解析に関するアクション及び述語項構造解析に関するアクションを含む複数のアクションのうち何れかを決定するための予め構築された解析モデル２０とを用いて、複数のアクションのうち何れかを決定して実行することを繰り返す。
【００２０】
本実施の形態に係る構造解析部１６は、MaltParser（参考文献４参照）等の既存の解析器で使用されているshift-reduce法を拡張した方法を用いて、構文解析及び述語項構造解析を行う。
［参考文献４］Joakim Nivre et al.: MaltParser: A language-independent system for data-driven dependency parsing, Natural Language Engineering, 13(2), pp.95-135 (2007).
【００２１】
基本となるshift-reduce法では、初期状態において、キューQに、入力文の単語列（w0,…,wn）を（q0,…,qn）として格納し、Shift及びReduceの何れかのアクションを行うステップを繰り返すことで解析を行う。ここでいうShiftとは、キューQの先頭要素q0をスタックSにpushすることを示し、Reduceとは、スタックSの最上位の要素s0と2番目の要素s1との間で弧を作ることを示す。
【００２２】
本実施形態では、構造解析部１６は、構文構造のためのスタック（以下、「構文スタック」という）Ss、及び述語項構造解析のためのスタック（以下、「フレームスタック」という）Sfの２種類のスタックを使用する。構文スタックSsには、依存構造解析の現時点の解析結果が格納され、フレームスタックSfには、述語項構造解析の現時点の解析結果が格納される。さらに、構造解析部１６は、shift-reduce法のアクションを拡張することにより、構文解析及び述語項構造解析を行うアクションを定義する。
【００２３】
また、構造解析部１６は、各ステップで何れのアクションを行うかを、解析モデル２０によって決定する。構造解析部１６は、構文解析については、構文スタックSsに対して、標準的なアクションのShift及びReduceを適用することによって構文解析を行う。この際に適用するReduceは弧の向きによって２種類存在する。一方、構造解析部１６は、述語項構造解析については、構文解析のアクションを適用した際、条件に応じて、フレームスタックSfに対して、格フレームの追加、及び項の追加等のアクションを適用することによって述語項構造解析を行う。
【００２４】
図３に、本実施形態で用いるshift-reduce法のアクションの一例を示す。構造解析部１６は、キューQの単語列を、Shiftによって順に構文スタックSsにpushし、ReduceL()又はReduceR()で単語間の弧を作り、構文構造を決定する。また、構造解析部１６は、構文スタックSsの最上位に、述語を主辞とする部分木（以下、「述語部分木」という）が構成された時点で、フレームスタックSfに、述語に対する格フレームを追加する。
【００２５】
その後、構造解析部１６は、ReduceL()又はReduceR()により述語部分木が関係する依存構造を構成するたびに、項の追加のアクション（InsARGNV()又はInsARGVN()）、あるいは、他のフレームからの項の継承のアクション（InheritARG()）を行う。構造解析部１６は、追加する項が存在しない場合も、格ラベルを空（φ）として、ダミーの追加アクションを行う。
【００２６】
本実施の形態では、構文スタックSsに部分的な依存構造（例えば部分木）を作りながら解析を行うので、素性として部分木のノードの情報を参照することができる。また、同時に、フレームスタックSfに部分的なフレーム構造を作りながら解析を行うので、フレームに関する意味役割や主辞の情報も参照することができる。各ステップにおいて、素性テンプレートに従って素性の値が決定される。
【００２７】
上記の解析に用いる解析モデル２０は、様々な例文について、構文解析及び述語項構造解析の正解データ（例えば、後述する図１４及び図１５参照）を学習データとして大量に用意することによって予め構築することができる。すなわち、解析モデル２０は、正解データから、解析の各ステップにおける素性の集合と正解のアクション（Shift、ReduceL()等）の組を抽出し、Support Vector Machine（SVM）や対数線形モデル等の一般的な分類モデルを構築する既知の方法によって予め構築される。
【００２８】
出力部１８は、構造解析部１６による解析結果を、例えば液晶ディスプレイ等の表示装置に出力する。なお、出力部１８は、構造解析部１６による解析結果を、不揮発性の記憶部に出力してもよいし、検索装置等の外部装置に出力してもよい。
【００２９】
＜言語解析装置の作用＞
次に、本実施の形態に係る言語解析装置１０の作用について説明する。解析対象の入力文が言語解析装置１０に入力されると、言語解析装置１０によって図４に示す解析処理ルーチンが実行される。
【００３０】
ステップＳ１０では、入力部１２は、解析対象の入力文を受け付ける。ステップＳ１２では、形態素解析部１４は、前述したように、ステップＳ１０で受け付けられた入力文に対して、形態素解析を実行する。
【００３１】
ステップＳ１４では、構造解析部１６は、構文スタックSs（＝（s0,…,sm））に構文構造の最上位を表す「ROOT」を格納（push）し、フレームスタックSf（＝（f0,…,fl））は空とする。また、構造解析部１６は、ステップＳ１２の処理により得られた単語群を、ID#sの順番でキューQ（＝（q0,…,qn））に格納する。
【００３２】
ステップＳ１６では、構造解析部１６は、Shiftを実行する。具体的には、構造解析部１６は、キューQの先頭の要素q0を取り出し（pop）、取り出した要素q0を構文スタックSsにpushする。ステップＳ１８では、構造解析部１６は、構文スタックSs、フレームスタックSf、及びキューQから抽出した素性と、解析モデル２０とに基づいて、アクション“Shift”、“AddFrame”、“ReduceL”、及び“ReduceR”の中から、次のアクションを決定する。
【００３３】
ステップＳ２０では、構造解析部１６は、ステップＳ１８で決定されたアクションを判定する。この判定結果に応じて、処理は次のステップに移行する。ステップＳ１８で決定されたアクションが“Shift”である場合、処理はステップＳ１６に戻る。また、ステップＳ１８で決定されたアクションが“AddFrame”である場合、処理はステップＳ２２に移行する。また、ステップＳ１８で決定されたアクションが“ReduceL”である場合、処理はステップＳ２４に移行する。また、ステップＳ１８で決定されたアクションが“ReduceR”である場合、処理はステップＳ２６に移行する。
【００３４】
ステップＳ２２では、構造解析部１６は、AddFrame(FID)を実行する。すなわち、構造解析部１６は、引数FIDで指定されたフレームIDの述語に関するフレームを生成し、フレームスタックSfにpushする。本実施形態では、構造解析部１６は、この述語に関するフレームを生成する際に、格フレーム辞書２２を用いる。なお、格フレーム辞書２２としては、例えば、下記の参考文献５、６に記載されている既存のデータベースを適用することができる。ステップＳ２２の処理が終了すると、処理はステップＳ１８に戻る。
［参考文献５］竹内孔一：動詞項構造シソーラスの構築，人工知能学会全国大会, 3H2-OS3-5, (2011).
［参考文献６］池原悟他：日本語語彙大系, 岩波書店(1997).
【００３５】
ステップＳ２４では、構造解析部１６は、ReduceL(dep)を実行する。すなわち、構造解析部１６は、構文スタックSsの最上位の要素s0,s1の間に単語間の関係ラベルdepを持つ左向きの弧を張る。ステップＳ２６では、構造解析部１６は、ReduceR(dep)を実行する。すなわち、構造解析部１６は、構文スタックSsの最上位の要素s0,s1の間に単語間の関係ラベルdepを持つ右向きの弧を張る。
【００３６】
次に、ステップＳ２８では、構造解析部１６は、構文スタックSs、フレームスタックSf、及びキューQから抽出した素性と、解析モデル２０とに基づいて、アクション“InheritARG”、“InsARGNV”、“InsARGVN”、及び“InsNoARGs”の中から、次のアクションを決定する。なお、ステップＳ２８では、アクション“ReduceL”及び“ReduceR”の実行後専用の解析モデルを用いて、次のアクションを決定する。ステップＳ３０では、構造解析部１６は、ステップＳ２８で決定されたアクションを判定する。この判定結果に応じて、処理は次のステップに移行する。ステップＳ２８で決定されたアクションが“InheritARG”である場合、処理はステップＳ３２に移行する。また、ステップＳ２８で決定されたアクションが“InsARGNV”である場合、処理はステップＳ３４に移行する。また、ステップＳ２８で決定されたアクションが“InsARGVN”である場合、処理はステップＳ３６に移行する。また、ステップＳ２８で決定されたアクションが“InsNoARGs”である場合、項は追加されずに、処理はステップＳ４０に移行する。
【００３７】
ステップＳ３２では、構造解析部１６は、InheritARG(fn,args,argt)を実行する。すなわち、構造解析部１６は、フレームスタックSfの最上位の要素f0の項argtに、要素fnの項argsの単語wを挿入する。また、ステップＳ３４では、構造解析部１６は、InsARGNV(arg)を実行する。すなわち、構造解析部１６は、フレームスタックSfの最上位の要素f0の項argに単語waを挿入し、フレームの主辞は述語wpとする。また、ステップＳ３６では、構造解析部１６は、InsARGVN(arg)を実行する。すなわち、構造解析部１６は、フレームスタックSfの最上位の要素f0の項argに単語waを挿入し、フレームの主辞は項の単語waとする。
【００３８】
次に、ステップＳ４０では、構造解析部１６は、終了条件を満たしたか否かを判定する。本実施の形態では、構造解析部１６は、構文スタックSsの最上位の要素s0のrootが“ROOT”であり、かつキューQが空（すなわち要素q0がNULL）であるか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ１８に戻り、肯定判定となった場合は、処理はステップＳ４２に移行する。
【００３９】
次に、ステップＳ４２では、構造解析部１６は、フレームスタックSfに存在する各要素の埋まっていない項に対して、空であることを示す記号φを格納する。ステップＳ４４では、出力部１８は、前述したように、以上の処理による解析結果を出力する。ステップＳ４４の処理が終了すると、解析処理ルーチンが終了する。
【００４０】
＜動作例＞
次に、図５〜図１０を参照して、入力文の一例として「太郎を見つけて話しかけた人に伝えた」が言語解析装置１０に入力された場合の図４に示した解析処理ルーチンのステップＳ１４〜ステップＳ４２で実行される処理プロセスの一例を説明する。なお、図５〜図１０において、Step列は処理を識別する番号であり、各StepでAction列に記載されたアクションが実行された後の構文スタックSs、フレームスタックSf、及びキューQの状態が各行に示されている。また、図５〜図１０では、構文スタックSsは要素s0から要素s2まで、フレームスタックSfは要素f0から要素f2まで、キューQは要素q0から要素q2までを記載している。
【００４１】
図５のステップ０は、上記ステップＳ１４が実行された後の状態（初期状態）に対応しており、構文スタックSsの最上位の要素s0に「ROOT」が格納され、フレームスタックSfは空の状態で生成されている。また、キューQには入力文に対して形態素解析が実行されることにより得られた分割された単語が、入力文における登場順に格納される。
【００４２】
ステップ１では、構造解析部１６は、Shiftを実行する（上記ステップＳ１６）。すなわち、構造解析部１６は、キューQの先頭の要素q0の「太郎」をキューQから取り出し、取り出した「太郎」を構文スタックSsにpushする。次に、ステップ２では、構造解析部１６は、ステップ１の状態の構文スタックSs、フレームスタックSf、及びキューQから抽出した素性と、解析モデル２０とに基づいて、次のアクションを決定する（上記ステップＳ１８）。次のアクションがShiftに決定されると、構造解析部１６は、Shiftを実行する（上記ステップＳ１６）。すなわち、構造解析部１６は、キューQの先頭の要素q0の「を」をキューQから取り出し、取り出した「を」を構文スタックSsにpushする。
【００４３】
次に、ステップ３では、構造解析部１６は、ステップ２の状態の構文スタックSs、フレームスタックSf、及びキューQから抽出した素性と、解析モデル２０とに基づいて、次のアクションを決定する（上記ステップＳ１８）。次のアクションがReduceL(pobj)に決定されると、構造解析部１６は、ReduceL(pobj)を実行する（上記ステップＳ２４）。すなわち、構造解析部１６は、構文スタックSsの最上位の要素s0「太郎」と要素s1「を」との間に単語間の関係ラベルpobjを持つ左向きの弧を張る（図５では
2019021096.tif 000003
と表記）。なお、関係ラベルpobjとは、単語間の依存構造を構成する関係を表している。また、ステップ３での構文スタックSsの要素s0は、２つの単語の「太郎」、「を」が関係ラベルpobjを持つ部分木を構成していることを示している。
【００４４】
次に、ステップ４では、構造解析部１６は、ステップ３の状態の構文スタックSs、フレームスタックSf、及びキューQから抽出した素性と、解析モデル２０とに基づいて、次のアクションを決定する（上記ステップＳ２８）。次のアクションがInsNoARGsに決定されると、構文スタックSs、フレームスタックSf、及びキューQに対する操作は行われない。そして、構文スタックSs及びキューQの状態に基づいた終了判定が実行される（上記ステップＳ４０）。ステップ４の構文スタックSs及びキューQの状態は終了条件を満たさないため、ステップ５では、構造解析部１６は、ステップ４の状態の構文スタックSs、フレームスタックSf、及びキューQから抽出した素性と、解析モデル２０とに基づいて、次のアクションを決定する（上記ステップＳ１８）。
【００４５】
次のアクションがShiftに決定されると、構造解析部１６は、Shiftを実行する（上記ステップＳ１６）。すなわち、構造解析部１６は、キューQの先頭の要素q0の「見つけ」をキューQから取り出し、取り出した「見つけ」を構文スタックSsにpushする。次に、ステップ６では、構造解析部１６は、ステップ５の状態の構文スタックSs、フレームスタックSf、及びキューQから抽出した素性と、解析モデル２０とに基づいて、次のアクションを決定する（上記ステップＳ１８）。次のアクションがShiftに決定されると、構造解析部１６は、Shiftを実行する（上記ステップＳ１６）。すなわち、構造解析部１６は、キューQの先頭の要素q0の「て」をキューQから取り出し、取り出した「て」を構文スタックSsにpushする。
【００４６】
次に、ステップ７では、構造解析部１６は、ステップ６の状態の構文スタックSs、フレームスタックSf、及びキューQから抽出した素性と、解析モデル２０とに基づいて、次のアクションを決定する（上記ステップＳ１８）。次のアクションがReduceR(mark)に決定されると、構造解析部１６は、ReduceR(mark)を実行する（上記ステップＳ２６）。すなわち、構造解析部１６は、構文スタックSsの最上位の要素s0と要素s1との間に関係ラベルmarkを持つ右向きの弧を張る（図５では
2019021096.tif 000004
と表記）。ステップ７は、構文スタックSsに、
2019021096.tif 000005
の部分木が格納されている状態を示している。
【００４７】
次に、ステップ８では、構造解析部１６は、ステップ７の状態の構文スタックSs、フレームスタックSf、及びキューQから抽出した素性と、解析モデル２０とに基づいて、次のアクションを決定する（上記ステップＳ２８）。次のアクションがInsNoARGsに決定されると、構文スタックSs、フレームスタックSf、及びキューQに対する操作は行われない。そして、構文スタックSs及びキューQの状態に基づいた終了判定が実行される（上記ステップＳ４０）。ステップ８の構文スタックSs及びキューQの状態は終了条件を満たさないため、ステップ９では、構造解析部１６は、ステップ８の状態の構文スタックSs、フレームスタックSf、及びキューQから抽出した素性と、解析モデル２０とに基づいて、次のアクションを決定する（上記ステップＳ１８）。
【００４８】
次のアクションがAddFrame(見つける1)に決定されると、構造解析部１６は、AddFrame(見つける1)を実行する（上記ステップＳ２２）。すなわち、構造解析部１６は、述語が取り得る格構造の情報が格納された格フレーム辞書２２を用いて、「見つける1」に関するフレームを作成する。そして、構造解析部１６は、作成したフレームをフレームスタックSfにpushする。図１１に、格フレーム辞書２２に格納される格フレームの一例を示す。各述語に対して格フレームは複数存在することが多く、図１１の例では、「見つける」という述語のうち、１番目の格フレームであることを示している。図１１に示すように、格フレーム辞書２２に格納される格フレームには、フレームIDの他に、フレームの意味クラスと、各項に対する表層格に基づくラベル、意味役割、用例、及び格助詞等が格納される。図５のステップ９のフレームスタックSfの要素f0は、図１１に示す格フレームから作成されたフレームの一例である。この例では、格フレームに基づく情報のほかに、述語に対して子になっている単語（この例では「て」）を「func」（機能語）のラベルに対応付けている。この情報は、解析モデル２０の素性として用いることができる。また、このフレーム全体の主辞となっている単語「見つけ」には「*」を付加して区別している。また、各単語の右下の添字は、入力文を分割して得られた各単語の入力文における単語位置を示している。
【００４９】
次に、図６のステップ１０では、構造解析部１６は、ステップ９の状態の構文スタックSs、フレームスタックSf、及びキューQから抽出した素性と、解析モデル２０とに基づいて、次のアクションを決定する（上記ステップＳ１８）。次のアクションがReduceL(dobj)に決定されると、構造解析部１６は、ReduceL(dobj)を実行する（上記ステップＳ２４）。すなわち、構造解析部１６は、構文スタックSsの要素s0に格納された部分木
2019021096.tif 000006
から要素s1に格納された部分木
2019021096.tif 000007
へ関係ラベルdobjを持つ左向きの弧を張る（図６では
2019021096.tif 000008
と表記）。なお、関係ラベルdobjとは、目的格-述語の関係を表している。また、ステップ１０での構文スタックSsの要素s0は、部分木
2019021096.tif 000009
が格納されていることを示している。
【００５０】
また、図３に示したように、構造解析部１６は、ReduceL()を実行する際に、構文スタックSsの要素s0、s1の何れかのrootの単語が述語の場合、追加の処理を実行する。すなわち、構造解析部１６は、ステップ９の状態の構文スタックSsの要素s0のrootの単語「見つけ」が述語であるため、述語の単語wpに「見つけ2」を保存し、項の単語waに「太郎0」を保存する。
【００５１】
次に、ステップ１１では、構造解析部１６は、ステップ１０の状態の構文スタックSs、フレームスタックSf、及びキューQから抽出した素性と、解析モデル２０とに基づいて、次のアクションを決定する（上記ステップＳ２８）。次のアクションがInsARGNV(ARG1)に決定されると、構造解析部１６は、InsARGNV(ARG1)を実行する（上記ステップＳ３４）。すなわち、構造解析部１６は、フレームスタックSfの最上位の要素f0のフレームの項ARG1に、ステップ１０で保存したwa（＝「太郎0」）を格納する。InsARGNV()では、フレームの主辞は述語とするため、主辞は「見つけ2」から変更しない。
【００５２】
同様に処理が進められると、図７のステップ１５の状態から、次のアクションがAddFrame(話しかける1)に決定される。ステップ１６では、構造解析部１６は、ステップ９と同様に、図１２に示す格フレームを用いて、「話しかける1」のフレームを作成し、作成したフレームをフレームスタックSfにpushする。次に、ステップ１６の状態から、次のアクションがReduceL(advcl)に決定される。ステップ１７では、構造解析部１６は、構文スタックSsの要素s0の部分木と要素s1の部分木との間に関係ラベルadvcl（連用修飾の関係）の左向きの弧を張る。
【００５３】
ステップ１７の状態から、次のアクションがInheritARG(f1,ARG1,ARG2)に決定されると、ステップ１８では、構造解析部１６は、InheritARG(f1,ARG1,ARG2)を実行する（上記ステップＳ３２）。すなわち、構造解析部１６は、フレームスタックSfの最上位の要素f0のフレームの項ARG2に、要素f1のフレームの項ARG1（＝「太郎0」）をコピーする。従って、ステップ１８の状態では、「話しかけ4」フレームのARG2と「見つけ2」フレームのARG1との間で共通の単語「太郎0」が共有される。この仕組みを使うことで、フレーム間で共有する項を同定することができる。
【００５４】
次に、ステップ１８の状態から、次のアクションがShiftに決定されてステップ１９の状態となり、次のアクションがReduceL(rcmod)に決定される。図８のステップ２０では、構造解析部１６は、構文スタックSsの要素s0の「人」を主辞とする部分木から要素s1の「話しかけ」を主辞とする部分木へ関係ラベルrcmod（関係節の関係）の左向きの弧を張る。ここで、要素s1のrootの単語「話しかけ」が述語であるため、構造解析部１６は、述語の単語wpに「話しかけ4」を保存し、項の単語waに「人6」を保存する。
【００５５】
次に、ステップ２０の状態から、次のアクションがInsARGVN(ARG0)に決定されると、ステップ２１では、構造解析部１６は、InsARGVN(ARG0)を実行する（上記ステップＳ３６）。すなわち、構造解析部１６は、フレームスタックSfの最上位の要素f0のフレームの項ARG0に、ステップ２０で保存したwa（＝「人6」）を格納する。また、InsARGVN()では、フレームの主辞は項の単語waとするため、構造解析部１６は、フレームの主辞を「話しかけ4」から「人6」に変更する。
【００５６】
同様の手順を繰り返し実行することによりステップ２２からステップ３２までの状態を経て図１０のステップ３３の状態になる。なお、図９のステップ２９で用いる格フレームの一例を図１３に示す。ステップ３３の状態になると、終了条件を満たすため、ステップ３４では、構造解析部１６は、フレームスタックSfに存在する格フレームの埋まっていない項に対して、空であることを示す記号φを格納する（上記ステップＳ４２）。
【００５７】
図１４に、「太郎を見つけて話しかけた人に伝えた」を入力文とした場合の構文解析及び述語項構造解析の解析結果の一例を示す。図１４に示すように、構文解析の解析結果には、単語間のラベルが付与された依存構造による表現が出力されている。また、述語項構造解析の解析結果は、入力文に含まれている述語毎にフレームを構成し、項の情報を同定した結果となっている。述語及び項に含まれている単語は、右下の添字によって元の入力文との対応関係を示しており、「太郎0」のように、フレーム「見つける1」とフレーム「話しかける1」との間で共有されている項の情報が明確になっている。フレームの意味クラス、及び各項の意味役割等は、フレームIDを介して格フレーム辞書２２を参照することによって得ることができる。
【００５８】
また、図１５に、図１４に示した例文に類似する「太郎を見つけて話しかけた事実を知った」を入力文とした場合の構文解析及び述語項構造解析の解析結果の一例を示す。図１５に示すように、この例における構文解析の解析結果は図１４に示した解析結果とほぼ同じ形である。しかしながら、図１４の例では、述語項構造解析の解析結果において「人」が述語である「話しかける」の項になっていることに対し、図１５の例では「事実」が述語である「話しかける」の項になっておらず（ラベルextが付与されている）、ARG0が空（φ）になっており、２つの例での違いが明確に現れている。
【００５９】
このように、本実施形態によれば、一連の処理手順を行うことによって、単語間の統語的な依存関係（構文解析）、及び述語と項との間の格関係の同定（述語項構造解析）を一貫して行うことができる。
【００６０】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００６１】
例えば、上記実施の形態では、キューQの先頭から順に要素を取得し、最尤の解析候補のみをスタックに保持して決定単語的に解析を行う場合を例について説明したが、これに限定されない。下記の参考文献７、８に記載されているような、複数の解析候補を同時並行的に保持しながら、動的計画法等を用いて解析候補を探索する方法と組み合わせてもよい。
［参考文献７］Liang Huang and Kenji Sagae: Dynamic programming for linear-time incremental parsing, In Proceedings of the 48th Annual Meeting of the Association for Computational Linguistics (ACL 2010), pp.1077-1086 (2010).
［参考文献８］Katsuhiko Hayashi, Shuhei Kondo and Yuji Matsumoto: Efficient Stacked Dependency Parsing by Forest Reranking, In Transactions of the Association for Computational Linguistics, vol.1, pp.139-150 (2013).
【００６２】
また、例えば、上記実施の形態では、言語解析装置１０の各機能部を、プログラムを実行することによって実現する場合を例に説明したが、これに限定されない。言語解析装置１０の各機能部を、ＦＰＧＡ（Field-Programmable Gate Array）等のハードウェアで実現してもよいし、ハードウェアとソフトウェアとの組み合わせで実現してもよい。
【００６３】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能であるし、ネットワークを介して提供することも可能である。
【符号の説明】
【００６４】
１０  言語解析装置
１２  入力部
１４  形態素解析部
１６  構造解析部
１８  出力部
２０  解析モデル
２２  格フレーム辞書
【図１】
2019021096.tif 000010
【図２】
2019021096.tif 000011
【図３】
2019021096.tif 000012
【図４】
2019021096.tif 000013
【図５】
2019021096.tif 000014
【図６】
2019021096.tif 000015
【図７】
2019021096.tif 000016
【図８】
2019021096.tif 000017
【図９】
2019021096.tif 000018
【図１０】
2019021096.tif 000019
【図１１】
2019021096.tif 000020
【図１２】
2019021096.tif 000021
【図１３】
2019021096.tif 000022
【図１４】
2019021096.tif 000023
【図１５】
2019021096.tif 000024