以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[抽出装置の構成]
まず、図1を参照して、本実施形態に係る日本語名詞句抽出装置の概略構成を説明する。図1に示すように、本実施形態に係る抽出装置1は、ワークステーションやパソコン等の汎用コンピュータで実現され、入力部11と出力部12と通信制御部13と、記憶部14と、制御部15とを備える。抽出装置1は、後述する抽出処理を実行して、文書から動詞をまたぐ名詞句を出力する。
入力部11は、キーボードやマウス等の入力デバイスを用いて実現され、操作者による入力操作に対応して、制御部15に対して各種指示情報を入力する。出力部12は、液晶ディスプレイなどの表示装置、プリンター等の印刷装置、情報通信装置等によって実現され、例えば、後述する抽出処理により出力された名詞句等を操作者に対して出力する。
通信制御部13は、NIC(Network Interface Card)等で実現され、LAN(Local Area Network)やインターネットなどの電気通信回線を介したサーバ等の外部の装置と制御部15との通信を制御する。
記憶部14は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部14には、抽出装置1を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが予め記憶され、あるいは処理の都度一時的に記憶される。この記憶部14は、通信制御部13を介して制御部15と通信する構成でもよい。
制御部15は、CPU(Central Processing Unit)等の演算処理装置がメモリに記憶された処理プログラムを実行することにより、図1に例示するように、生成部15a、特定部15b、抽出部15cおよび連結部15dとして機能する。
生成部15aは、入力された文を構成する文節間の係り受け関係を用いて、文節間の述語項構造を表す木構造を生成する。具体的には、生成部15aは、まず、入力部11あるいは通信制御部13を介して入力されたテキストから文を抽出し、単文に分割する。
ここで、文とは、改行もしくは句点「。」で区切られる文字列である。この文には、文として成立する文言が複数含まれる場合がある。例えば、「システムXは加入者データの一元管理を行うので、二重故障時でもサービス提供を継続する必要がある。」という文は、「システムXは加入者データの一元管理を行う」と「二重故障時でもサービス提供を継続する必要がある。」との単独で文として成立する文言(以下、単文と記す。)が2つ含まれる。このような場合に、生成部15aは、文を単文に分割する。
そこで、生成部15aは、まず、入力されたテキストを改行もしくは句点「。」で区切って文を抽出する。次に、生成部15aは、CaboCha等の周知の係り受け解析器を用いて文の係り受け解析を行って、形態素を文節ごとにまとめ上げる。また、生成部15aは、文の文頭の接続詞を削除する。
次に、生成部15aは、以下の分割条件を満たす文節を探索し、文頭の文節から分割条件を満たす当該文節までを1文、当該文節の次の文節から文末の文節までを1文とする。そして、生成部15aは、各文に対して再び係り受け解析器を用いて文の係り受け解析を行って、形態素を文節ごとにまとめ上げる処理を繰り返す。
ここで、分割条件とは、次の3つの条件のいずれかである。1つ目の条件は、当該文節に含まれる形態素が動詞語幹1つのみであることである。2つ目の条件は、当該文節に含まれる形態素が形容詞語幹1つのみであることである。3つ目の条件は、当該文節に含まれる形態素の中に、動詞語幹または形容詞語幹があり、かつ接続の動詞接尾辞または接続の形容詞接尾辞があり、文節の最後の形態素が何等かの品詞の連用形もしくは連用の接続接尾辞であることである。ここで、連用とは用言すなわち動詞、形容詞または形容動詞に連なる語形のことである。
例えば、「花子は/毎朝/起き、/毎夜/寝る。」という文において、文節「起き、」には、動詞語幹「起き、」のみが含まれ、上記の1つ目の条件を満たす。したがって、この文は「花子は毎朝起き、」と「毎夜寝る。」との2文に分割される。なお、「/」は文節の区切りを表す。
また、「この島は/東京からの/直行便が/ないので、/那覇で/乗り換える/必要がある。」という文において、文節「ないので、」は、形容詞語幹「な」、接続の形容詞接尾辞「い」、連用の接続接尾辞「ので」を含むことから、上記の3つ目の条件を満たす。したがって、この文は、「この島は東京からの直行便がないので、」と「那覇で乗り換える必要がある。」との2文に分割される。
一方、上記の分割条件を満たす文節がない場合には、生成部15aは、処理対象の文を単文とみなす。以上のようにして、生成部15aは、入力されたテキストから文を抽出し、単文に分割する。
次に、生成部15aは、単文に対してJdep等の周知の係り受け解析器を用いて係り受け解析を行って、形態素を文節ごとにまとめ上げ、文節間の係り受け関係を取得する。また、生成部15aは、取得した文節間の係り受け関係を用いて、文節間の述語項構造を表す木構造を生成する。述語項構造とは、何等かの事態を記述する述語と、述語が表す意味を補う働きをする項との関係を意味する。
ここで、図2および図3は、生成部15aの処理を説明するための説明図である。まず、生成部15aは、図2に示すように、文節間の係り受け解析結果を取得する。図2に示す例では、「文節N 係り先=M」は、N番目の文節がM番目の文節に係ることを表し、また、この行に続く形態素列がN番目の文節に属することを表している。また、「形態素N 表記 品詞:副品詞…」は、N番目の形態素の字面と、推定された品詞と、活用形等の品詞内の分類を示す副品詞を表している。
図2には、例えば、0番目の文節「データ反映コマンドは」、7番目の文節「コマンドである」に係ることが示されている。すなわち、0番目の文節の係り先が7番目の文節であり、7番目の文節の係り元が0番目の文節である。また、0番目の文節は、名詞「データ」、名詞「反映」、名詞「コマンド」および連用助詞「は」の4つの形態素で構成されることが示されている。
また、図3に示すように、生成部15aは、図2に例示した文節間の係り受け解析結果から、図3(a)に例示する文節間の係り受け関係を導出し、図3(b)に例示する文節間の述語項構造を表す木構造を生成する。図3に示すように、文節間の述語項構造を表す木(ツリー)構造は、文末から文頭の方向へ分岐したサブツリーを含む再帰的な構造になっている。
木構造を生成する際、生成部15aは、図3に例示するように、分岐箇所の文節にラベル「branch」を付与し、分岐先の枝である文節(サブツリーのルートとなる文節)にラベル「subroot」を付与する。具体的には、生成部15aは、次の付与条件に該当する文節に、ラベル「branch」およびラベル「subroot」を付与する。
ラベルの付与条件は、次の5つである。1つ目に、当該文節が用言性文節であり、当該文節の係り元の文節が連用の格助詞で終わっている場合に、生成部15aは、当該文節にラベル「branch」を付与する。
ここで、用言性文節とは、次の3つの条件のいずれかを満たす文節とする。まず、文節の主辞が動詞、形容詞、形容動詞のいずれかである場合に、当該文節は用言性文節とする。例えば、文節「入れ+る」、文節「移+る」は、この条件に該当する用言性文節である。なお、主辞とは、文節中の形態素のうち最後尾の自立語とする。例えば、文節「上位+装置+から」の主辞は「装置」であり、文節「入れ+る」の主辞は「入れ」である。
また、文節の主辞が名詞であり、その次に動詞接尾辞「する」「される」が続く場合に、当該文節は用言性文節とする。例えば、文節「旅行+する」、文節「反映+する」、文節「指定+される」は、この条件に該当する用言性文節である。また、文節の主辞が名詞であり、文節の最後が判定詞である場合に、当該文節は用言性文節とする。例えば、文節「コマンド+だ」は、この条件に該当する用言性文節である。
1つ目のラベルの付与条件について、例えば、文節「反映する」は、名詞「反映」+「する」からなる用言性文節であるので、連用の格助詞「に」で終わる文節「DBに」が係っている場合には、文節「反映する」はこの条件に該当する。その場合には、生成部15aは、文節「反映する」にラベル「branch」を付与する。図3に例示した木構造においては、文節「反映する」はこの条件に該当しないので、ラベル「branch」は付与されない。
また、文節「指定された」は、名詞「指定」+「され(る)」からなる用言性文節であって、連用の格助詞「から」で終わる文節「上位装置から」が係っているので、文節「指定された」はこの条件に該当する。したがって、文節「指定された」にラベル「branch」が付与される。
ラベルの付与条件の2つ目として、当該文節が文末文節であり、当該文節の主辞が名詞であり、当該文節の係り元の文節が連用の格助詞または連用助詞で終わっている場合に、生成部15aは当該文節にラベル「branch」を付与する。ここで、連用助詞は「は」または「も」とする。例えば、図3に例示した木構造において、文節「コマンド+で+あ+る」は文末文節であり、主辞「コマンド」が名詞である。また、この文節に、連用助詞「は」で終わる文節「データ+反映+コマンド+は」が係っている。したがって、生成部15aは、文節「コマンドである」にラベル「branch」を付与する。
ラベルの付与条件に3つ目として、当該文節に複数の文節が係っている場合に、生成部15aは当該文節にラベル「branch」を付与する。例えば、図3に例示した木構造において、文節「一括して」には、文節「契約情報を」と文節「DBに」との2つの文節が係っているので、生成部15aは、文節「一括して」にラベル「branch」を付与する。
ラベルの付与条件に4つ目として、当該文節が連用助詞で終わっている場合に、生成部15aは当該文節にラベル「subroot」を付与する。例えば、文節「データ+反映+コマンド+は」は、連用助詞「は」で終わっているので、生成部15aは、文節「データ反映コマンドは」にラベル「subroot」を付与する。
ラベルの付与条件の5つ目として、係り先の文節にラベル「branch」が付与されている場合に、生成部15aは、当該文節にラベル「subroot」を付与する。例えば、図3に例示した木構造において、文節「一括して」にラベル「branch」が付与されているので、生成部15aは、この文節に係る文節「契約情報を」と文節「DBに」とに、ラベル「subroot」を付与する。また、文節「指定された」にラベル「branch」が付与されているので、生成部15aは、この文節に係る文節「上位装置から」にラベル「subroot」を付与する。
特定部15bは、生成された木構造において文末から文頭の方向へ分岐する分岐箇所の文節を用いて、該木構造の分岐箇所から次の分岐箇所まで連接する文節列である幹部と、各分岐箇所から分岐する枝である文節とを特定する。
具体的には、特定部15bは、まず、以下に説明する処理において木構造を文末から文頭の方向にたどる際にスタート地点とする文節を、「root」文節として特定する。特定部15bは、最初に、係り先のない文節を「root」文節とする。図3に例示した木構造において、特定部15bは、最初に、係り先のない文節「コマンドである。」を「root」文節とする。
ここで、図4および図5は、特定部15bの処理を説明するための説明図である。まず、図4に例示するように、特定部15bは、「root」文節から係り元の方向へ木構造の文節をたどり、次の分岐元条件のいずれかを満たす最も「root」文節寄りの文節を分岐元の文節Bとする。
分岐元条件とは、(1)ラベル「branch」が付与されている文節、(2)係り元の文節にラベル「subroot」が付与されている文節、(3)係り元のない文節、の少なくともいずれかに該当する文節である。
図3に例示した木構造において、例えば、「root」文節が文節「コマンドである。」である場合には、この文節「コマンドである。」は、条件(1)を満たす。また、この文節の2つの係り元の文節のうち、少なくとも文節「データ反映コマンドは」は、ラベル「subroot」が付与されているので、条件(2)を満たし、条件(3)は満たさない。したがって、特定部15bは、この文節「コマンドである。」を分岐元の文節Bとする。
また、「root」文節が文節「反映する」である場合には、この文節「反映する」は、条件(1)に該当しない。また、この文節の係り元の文節「一括して」にラベル「subroot」が付与されていないので、条件(2)にも条件(3)にも該当しない。係り元の方向へたどった次の文節「一括して」は、条件(1)を満たす。また、この文節の2つの係り元の文節のうち、少なくとも文節「契約情報を」は、ラベル「subroot」が付与されているので、条件(2)を満たし、条件(3)は満たさない。したがって、特定部15bは、文節「一括して」を分岐元の文節Bとする。
また、「root」文節が文節「契約情報を」である場合には、特定部15bは、同様にこの文節「契約情報を」から係り元の方向へ文節をたどることにより、条件(1)および条件(2)を満たす文節「指定された」を分岐元の文節Bとする。また、「root」文節が文節「上位装置から」である場合には、特定部15bは、この文節「上位装置から」は、条件(3)を満たすので、分岐元の文節Bとする。
次に、特定部15bは、「root」文節から分岐元の文節Bまでの文節列を幹部として特定する。例えば、図4に例示するように、「root」文節が文節「コマンドである。」である場合には、文節列「コマンドである。」が幹部として特定される。また、「root」文節が文節「反映する」である場合には、文節列「一括して/反映する」が幹部として特定される。同様に、「root」文節が文節「契約情報を」である場合には、文節列「指定された/契約情報を」が幹部として特定される。また、「root」文節が文節「上位装置から」である場合には、文節列「上位装置から」が幹部として特定される。
次に、特定部15bは、分岐元の文節Bに係る文節を枝として特定し、枝の一覧を枝リストとする。例えば、図5に例示するように、「root」文節が文節「コマンドである。」である場合には、文節「データ反映コマンドは」と文節「反映する」とが枝として特定され、枝リストに含められる。また、「root」文節が文節「反映する」である場合には、文節「契約情報を」と文節「DBに」とが枝として特定され、枝リストに含められる。
また、「root」文節が文節「契約情報を」である場合には、文節「上位装置から」が枝として特定され、枝リストに含められる。また、「root」文節が文節「上位装置から」である場合には、分岐元の文節Bに係る文節がないため、枝リストは空となる。
抽出部15cは、幹部内の名詞を探索して被修飾語として抽出し、該被修飾語から文頭の方向に該幹部の枝をたどって該被修飾語を修飾する文節列を修飾語として抽出する。この抽出部15cは、文末から文頭の方向へ順に、枝ごとに、被修飾語と該被修飾語を修飾する修飾語とを抽出する処理を繰り返す。
また、抽出部15cは、被修飾語に文節内で先行する形態素、被修飾語に幹部内で先行する文節列および被修飾語の幹部の枝を修飾語として抽出する。また、抽出部15cは、被修飾語を抽出する際に、動詞接尾辞または動詞活用語尾が連接されている名詞を対象外とする。また、抽出部15cは、修飾語を抽出する際に、枝のうち連用助詞で終わる文節を対象外とする。
ここで、図6〜図9は、抽出部15cの処理を説明するための説明図である。具体的には、抽出部15cは、図6に示すように、まず「root」文節から係り元の方向へ幹部内の文節をたどり、以下に説明する条件に従って、名詞句の被修飾語となり得る名詞を含む文節のうち、最も「root」文節寄りの文節を体言性文節として特定する。
最初に、抽出部15cは、「root」文節が単文の文末文節である場合には、この「root」文節の第1形態素が名詞であり、当該文節の係り元の文節の末尾の形態素が連用の格助詞でも連用助詞でもなければ、この「root」文節を体言性文節として特定する。例えば、図6に例示した木構造において、「root」文節が文節「コマンドである。」である場合には、この文節「コマンドである。」は文末文節であり、この文節の第1形態素が名詞「コマンド」である。また、この文節に係る2つの係り元の文節のうち、少なくとも文節「データ反映コマンドは」の末尾の形態素が連用助詞「は」である。したがって、文節「コマンドである。」は、この条件では体言性文節として特定されない。
一方、例えば、体言止めの単文「システムが/応答を/返すまでの/区間」において、「root」文節が文末文節である文節「区間」である場合には、この文節に係る唯一の係り元の文節「返すまでの」の末尾の形態素は格助詞「の」であって、連用の格助詞ではない。したがって、文節「区間」が、この条件によって体言性文節として特定される。
上記の処理により体言性文節が特定されなかった場合に、抽出部15cは、幹部内で次の条件のいずれかを満たす文節を体言性文節として探索する。
まず、文節の主辞が名詞または未知語であり、その主辞で終わる文節を体言性文節とする。例えば、文節「契約+情報」は、主辞「情報」で終わっているため、体言性文節である。なお、未知語とは、専門用語や固有名詞等の係り受け解析器が品詞を特定できなかった語であり、本実施形態では名詞として扱う。
また、文節の主辞が名詞または未知語であり、その次が動詞接尾辞「する」、動詞活用語尾「さ」「し」「すれ」「せよ」のいずれでもない場合に、その文節を体言性文節とする。例えば、文節「契約+情報+を」は、主辞「情報」に格助詞「を」が連なるため、体言性文節である。一方、文節「反映+さ+れ+る」は、主辞「反映」に動詞活用語尾「さ」が連なるため、体言性文節ではない。
図6に例示した木構造において、「root」文節が文節「コマンドである。」である場合には、この文節「コマンドである。」の主辞「コマンド」が名詞であり、その次が動詞接尾辞「する」、動詞活用語尾「さ」「し」「すれ」「せよ」のいずれでもない。したがって、文節「コマンドである。」が体言性文節として特定される。また、「root」文節が文節「反映する」である場合には、幹部「一括して/反映する」に体言性文節が見つからず、体言性文節が特定されない。また、「root」文節が文節「契約情報を」である場合には、上記のとおり、文節「契約情報を」が体言性文節として特定される。また、「root」文節が文節「上位装置から」である場合には、文節「上位装置から」が体言性文節として特定される。
次に、抽出部15cは、図7〜図9に例示するように、特定された体言性文節を用いて、被修飾語と修飾語とを抽出する。具体的には、抽出部15cは、まず、体言性文節から、その主辞である名詞(1つの形態素)を被修飾語として抽出する。また、主辞の前までの形態素列を修飾語とする。例えば、体言性文節「コマンドである。」から、被修飾語「コマンド」が抽出される。この体言性文節には修飾語がない。また、体言性文節「契約情報を」から、被修飾語「情報」と、修飾語「契約」とが抽出される。
また、抽出部15cは、幹部内で体言性文節に先行する文節列を修飾語として抽出する。例えば、図7に例示したように、「root」文節が文節「コマンドである。」である場合には、幹部内で体言性文節「コマンドである。」に先行する文節がないので、修飾語はない。また、図8に例示したように、「root」文節が文節「契約情報を」である場合には、幹部内で体言性文節「契約情報を」に先行する文節列「指定された」が、修飾語として抽出される。
また、抽出部15cは、幹部の枝リストに含まれる枝の文節うち、連用助詞「は」「も」で終わる文節を除外して、各文節から係り元の方向にたどれる文節全てを、単文内での出現順に結合して、修飾語として抽出する。例えば、図7に例示したように、「root」文節が文節「コマンドである。」である場合には、この「root」文節が属する幹部の枝リストの枝である文節「データ反映コマンドは」、文節「反映する」について確認する。この場合に、連用助詞「は」で終わる文節「データ反映コマンドは」は除外される。文節「反映する」から係り元の方向にたどれる文節は、「上位装置から」「指定された」「契約情報を」「DBに」「一括して」である。そこで、抽出部15cは、これらを単文内での出現順に結合して、修飾語「上位装置から指定された契約情報をDBに一括して反映する」を抽出する。
また、図8に例示したように、「root」文節が文節「契約情報を」である場合には、この「root」文節が属する幹部の枝リストの枝である文節「上位装置から」が修飾語として抽出される。なお、図9に例示したように、「root」文節が文節「上位装置から」である場合には、この「root」文節が属する幹部の枝リストは空であるため、修飾語は抽出されない。
連結部15dは、抽出された修飾語と被修飾語とを連結して名詞句として出力する。具体的には、連結部15dは、各幹部について上記手順で抽出された修飾語を単文内で出現する順に連結し、被修飾語を最後尾に連結することにより、名詞句を出力する。例えば、連結部15dは、図7に例示したように、「root」文節が文節「コマンドである。」である場合には、名詞句「上位装置から指定された契約情報をDBに一括して反映するコマンド」を出力する。また、連結部15dは、図8に例示したように、「root」文節が文節「契約情報を」である場合には、名詞句「上位装置から指定された契約情報」を出力する。また、連結部15dは、図9に例示したように、「root」文節が文節「上位装置から」である場合には、名詞句「上位装置」を出力する。同様に、連結部15dは、「root」文節が文節「データ反映コマンドは」である場合には、名詞句「データ反映コマンド」を出力する。
連結部15dは、例えば、名詞句を出力部12に出力し、ユーザに提示する。あるいは、連結部15dは、名詞句を記憶部14に蓄積して名詞句DBとしておいて、ユーザに参照させてもよい。
次に、特定部15bは、幹部の枝リストに含まれる枝の各々を新たな「root」文節に変更し、段落0042〜0065の処理を同様に繰り返す。
このようにして、文末から文頭の方向に順に、枝ごとに「root」文節が変更され、文中の名詞句が出力される。
[抽出処理]
次に、図10〜図13を参照して、抽出装置1の抽出処理について説明する。図10〜図13は、抽出装置1の抽出処理手順を示すフローチャートである。まず、図10のフローチャートは、例えば、処理の開始を指示する操作入力があったタイミングで開始される。
最初に、生成部15aが、入力部11あるいは通信制御部13を介して入力されたテキストを改行もしくは句点「。」で区切り、文に分割する(ステップS1)。また、生成部15aは、分割した各々の文について、図11を参照して後述する文の分割処理(ステップS100)を実施して(ステップS2)、単文に分割する。生成部15aは、全ての文についてステップS100の処理が終了したか否かを確認する(ステップS3)。全ての文についてステップS100の処理が終了していない場合には(ステップS3,No)、ステップS100の処理に戻って繰り返し、全ての文についてステップS100の処理が終了した場合に(ステップS3,Yes)、一連の抽出処理を終了する。
図11に示す文の分割処理(図10のステップS100)において、生成部15aは、係り受け解析器で文の係り受け解析を行って、文を文節ごとにまとめ上げる(ステップS101)。また、生成部15aは、文節の中に、文の区切りとなる分割条件を満たす文節があるか否かを確認する(ステップS102)。
分割条件を満たす文節がない場合に(ステップS102,No)、図12を参照して後述する単文からの述語項構造ツリー獲得処理(ステップS110)を実行して、一連の文の分割処理を終了する。
一方、分割条件を満たす文節がある場合に(ステップS102,Yes)、生成部15aは、文の区切りとなる分割条件を満たす文節で文を前後に区切る(ステップS103)。また、区切った各々の文について、文の分割処理(ステップS200)を再帰的に実施する(ステップS104)。ステップS200の文の分割処理の内容は、図11に示す文の分割処理と同様である。
そして、生成部15aは、区切った文の全てについて、ステップS200の分割処理が終了したかを確認する(ステップS105)。区切った全ての文についてステップS200の処理が終了していない場合には(ステップS105,No)、ステップS200の処理に戻って繰り返し、区切った全ての文についてステップS200の処理が終了した場合に(ステップS105,Yes)、一連の文の分割処理を終了する。
図12に示す単文からの述語項構造ツリー獲得処理(図11のステップS110)において、生成部15aは、単文の係り受け解析を行って(ステップS111)、文節間の係り受け関係を獲得する。また、生成部15aは、獲得した係り受け関係からツリー(述語項構造ツリー)を生成し、サブツリーのルートとなる文節にラベル「subroot」を付与し、分岐のある文節にラベル「branch」を付与する(ステップS112)。
そして、特定部15bが、まず、係り先のない文節を「root」文節として(ステップS113)、図13を参照して後述する述語項構造ツリーからの名詞句抽出処理(ステップS120)の処理を実行する。これにより、一連の単文からの述語項構造ツリー獲得処理が終了する。
図13に示す述語項構造ツリーからの名詞句抽出処理(図12のステップS120)において、特定部15bが、述語項構造ツリーから「root」文節ごとに幹部を抽出する(ステップS121)。また、特定部15bが、各幹部から分岐する枝の一覧を「枝リスト」として抽出する(ステップS122)。また、抽出部15cが、幹部内で、名詞句の被修飾語となり得る名詞を含む文節のうち、最も「root」文節寄りの文節を体言性文節として探索する(ステップS123)。
抽出部15cが幹部内に体言性文節を見つけた場合に(ステップS124,Yes)、体言性文節から被修飾語を抽出し、被修飾語に文節内で先行する形態素、被修飾語に幹部内で先行する文節列および被修飾語の幹部の枝を修飾語として抽出する。そして、連結部15dが、抽出された修飾語を単文内で出現する順に連結し、被修飾語を最後尾に連結することにより、名詞句を出力する(ステップS125)。
また、抽出部15cが幹部内に体言性文節を見つけなかった場合に(ステップS124,No)、ステップS126に処理を進める。ステップS126の処理では、「枝リスト」に含まれる各文節について、述語項構造ツリーからの名詞句抽出処理(ステップS300)を再帰的に実施する。ステップS300の述語億構造ツリーからの名詞句抽出処理の内容は、図13に示す述語項構造ツリーからの名詞句抽出処理と同様である。
そして、抽出部15cは、「枝リスト」の全ての文節について、ステップS300の述語項構造ツリーの名詞句抽出処理が終了したかを確認する(ステップS127)。抽出部15cは、「枝リスト」の全ての文節についてステップS300の処理が終了していない場合には(ステップS127,No)、ステップS300の処理に戻って繰り返す。また、抽出部15cは、「枝リスト」の全ての文節についてステップS300の処理が終了した場合に(ステップS127,Yes)、一連の述語項構造ツリーの名詞句抽出処理を終了する。
以上、説明したように、本実施形態の抽出装置1では、生成部15aが、入力された文を構成する文節間の係り受け関係を用いて、前記文節間の述語項構造を表す木構造を生成する。また、特定部15bが、生成された前記木構造において文末から文頭の方向へ分岐する分岐箇所の文節を用いて、該木構造の分岐箇所から次の分岐箇所まで連接する文節列である幹部と、各分岐箇所から分岐する枝である文節とを特定する。また、抽出部15cが、幹部内の名詞を探索して被修飾語として抽出し、該被修飾語から文頭の方向に該幹部の枝をたどって該被修飾語を修飾する文節列を修飾語として抽出する。また、連結部15dが、抽出された前記修飾語と前記被修飾語とを連結して名詞句として出力する。
これにより、本実施形態の抽出装置1は、文書から動詞をまたぐ長い名詞句を抽出することができる。例えば、名詞句の中に名詞句が含まれているような場合にも、それぞれの粒度の名詞句を抽出することができる。また、抽出された名詞句を参照して文書を執筆することにより、名詞句が表す概念の表記を統一し、解釈誤りの少ない文書を作成することが可能となる。
ここで、図14および図15は、抽出装置1による抽出処理の効果を説明するための説明図である。例えば、ソフトウェア開発における要件定義書のレビューにおいて、従来、あいまいな表記を一意に解釈できるように、レビュワーからの「もっと正確に」「もっと詳しく」等の表記の改変を求めるコメントが多く見られた。つまり、レビュワー、レビューイともに、表記を洗練するために多くの稼働を費やしていた。
これに対し、図14に例示するように、本実施形態の抽出装置1により、要件定義に関わる既存の文書から名詞句を抽出して名詞句DBに蓄積しておき、要件定義書の執筆時に、名詞句DBに正確で詳しい表記があれば選択して使うことができる。例えば、過去の仕様書や検討資料から「現在設定されている割当先ノードの情報」「加入者登録要求電文で指定されるノード情報」等の名詞にかかる修飾語からなる名詞句を抽出し、名詞句DBに蓄積しておく。そして、要件定義書の作成者が名詞句DBに、例えば「情報」で終わる名詞句を照会すると、「現在設定されている割当先ノードの情報」「加入者登録要求電文で指定されるノード情報」等の一覧を参照することができる。要件定義書の作成者は、照会した名詞句の一覧の中から、「加入者登録要求電文で指定されるノード情報」等の正確に詳しく表現されている名詞句を選択して使用することができる。これにより、正確で詳しい表記に統一された文書を効率よく作成することが可能となる。
また、ツールとして名詞句DBを利用することにより、図15に例示するように、レビューイ(文書作成者)がレビュー前にあいまいな表記や表記のぶれ等の表面的な欠陥を修正しておくことができる。これにより、レビュワーは文書の内容の吟味に専念することが可能となり、文書の品質向上が可能となる。例えば、従来は、文書作成者は一から言葉を考えなければならず、また、レビュワーは本来すべき重要な指摘の他に「言葉を補ってください」「正確に書いてください」等の文書の正確性に対する指摘をしなければならなかった。これに対し、名詞句DBを活用することにより、文書作成者は正確で表現が統一された文書を速く作成することが可能となる。これにより、レビュワーは、内容の吟味に専念できるので、正確性に対する指摘が減少し、本来すべき重要な指摘の数が増加する。その結果、文書の品質向上が可能となる。
[プログラム]
上記実施形態に係る抽出装置1が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。一実施形態として、抽出装置1は、パッケージソフトウェアやオンラインソフトウェアとして上記の抽出処理を実行する抽出プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の抽出プログラムを情報処理装置に実行させることにより、情報処理装置を抽出装置1として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)などの移動体通信端末、さらには、PDA(Personal Digital Assistants)などのスレート端末などがその範疇に含まれる。
また、抽出装置1は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の抽出処理に関するサービスを提供するサーバ装置として実装することもできる。例えば、抽出装置1は、文を入力とし、名詞句を出力する抽出処理サービスを提供するサーバ装置として実装される。この場合、抽出装置1は、Webサーバとして実装することとしてもよいし、アウトソーシングによって上記の抽出処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。以下に、抽出装置1と同様の機能を実現する抽出プログラムを実行するコンピュータの一例を説明する。
図16は、抽出プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1051およびキーボード1052が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1061が接続される。
ここで、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した情報は、例えばハードディスクドライブ1031やメモリ1010に記憶される。
また、抽出プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュール1093として、ハードディスクドライブ1031に記憶される。具体的には、上記実施形態で説明した抽出装置1が実行する各処理が記述されたプログラムモジュール1093が、ハードディスクドライブ1031に記憶される。
また、抽出プログラムによる情報処理に用いられるデータは、プログラムデータ1094として、例えば、ハードディスクドライブ1031に記憶される。そして、CPU1020が、ハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
なお、抽出プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、抽出プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。