(57)【要約】  文字列の集合である文書から、一の文字列と他の文字列のそれぞれとで共通する連続した部分列の最大長の部分列を一の文字列に対する重要語句の候補として抽出する候補抽出部（６１）と、候補抽出部（６１）によって抽出された一の文字列に対する重要語句の候補のうちの最大長の部分列を選択する候補統合部（６２）と、候補統合部（６２）によって選択された、各文字列についての最大長の部分列の集合のうち、他の文字列についての集合の部分集合とならないものをまとめて重要語句の集合とする集合統合部（６３）とを備える。
2011086637.tif 000002
【特許請求の範囲】
【請求項１】
文字列の集合である文書から、一の文字列と他の文字列のそれぞれとで共通する連続した部分列の最大長の部分列を一の文字列に対する重要語句の候補として抽出する候補抽出部と、
前記候補抽出部によって抽出された一の文字列に対する重要語句の候補のうちの最大長の部分列を選択する候補統合部と、
前記候補統合部によって選択された、各文字列についての最大長の部分列の集合のうち、他の文字列についての集合の部分集合とならないものをまとめて重要語句の集合とする集合統合部と、
を備えることを特徴とする要求抽出システム。
【請求項２】
前記候補抽出部は、一の文字列と他の文字列のそれぞれとで共通する連続した部分列の最大長の部分列のうち、所定の文字数以上の部分列だけを重要語句の候補として抽出する請求項１記載の要求抽出システム。
【請求項３】
重要語句として抽出する必要がないと予め定められた不要語句を文書から削除する不要語句削除部を備える請求項１または請求項２記載の要求抽出システム。
【請求項４】
前記不要語句削除部は、文書ごとに抽出する必要がないと予め定められた不要語句に一致する部分を前記文書から削除し、構文解析によって分割された１つまたは連続する複数の形態素が、一般に抽出する必要がないと予め定められた不要語句に一致する場合に、当該形態素を前記文書から削除する請求項３記載の要求抽出システム。
【請求項５】
前記候補抽出部は、予め定められた重要語句の第１文字として不適な不要接頭語句を語頭に含まず、予め定められた重要語句の最終文字として不適な不要接尾語句を語尾に含まない重要語句の候補を抽出する請求項１から請求項４のうちのいずれか１項に記載の要求抽出システム。
【請求項６】
文書における文、一行、段落、章のいずれか、またはその組合せを文字列とする請求項１から請求項５のうちのいずれか１項に記載の要求抽出システム。
【請求項７】
文字列の集合である文書から、一の文字列と他の文字列のそれぞれとで共通する連続した部分列の最大長の部分列を一の文字列に対する重要語句の候補として抽出し、
前記抽出された一の文字列に対する重要語句の候補のうちの最大長の部分列を選択し、
前記選択された、各文字列についての最大長の部分列の集合のうち、他の文字列についての集合の部分集合とならないものをまとめて重要語句の集合とする、
ことを特徴とする要求抽出方法。
【請求項８】
一の文字列と他の文字列のそれぞれとで共通する連続した部分列の最大長の部分列のうち、所定の文字数以上の部分列だけを重要語句の候補として抽出する請求項７記載の要求抽出方法。
【請求項９】
コンピュータに、
文字列の集合である文書から、一の文字列と他の文字列のそれぞれとで共通する連続した部分列の最大長の部分列を一の文字列に対する重要語句の候補として抽出する処理と、
前記抽出された一の文字列に対する重要語句の候補のうちの最大長の部分列を選択する処理と、
前記選択された、各文字列についての最大長の部分列の集合のうち、他の文字列についての集合の部分集合とならないものをまとめて重要語句の集合とする処理と、
を実行させるための要求抽出プログラム。
【請求項１０】
コンピュータに、
一の文字列と他の文字列のそれぞれとで共通する連続した部分列の最大長の部分列のうち、所定の文字数以上の部分列だけを重要語句の候補として抽出する処理、
を更に実行させるための請求項９記載の要求抽出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書中からの重要語句抽出に関し、特に、システムのソフトウェア開発において、顧客の所持する文書、インタビューアンケート調査結果、議事録、または仕様書などの関連文書から重要語句を抽出する要求抽出システム、要求抽出方法および要求抽出プログラムに関する。
【背景技術】
【０００２】
要求獲得では、顧客の要求を漏れ抜けなく抽出して仕様および設計に役立てるために、顧客の所持する文書、インタビューアンケート調査結果、議事録、または仕様書などの関連文書から重要語句を抽出する。要求獲得とは、システムのソフトウェア開発において、問題解決または目的達成のために開発システムが従わなければならない条件および能力を顧客から獲得することである。従来は、分析者が、要求獲得における重要語句を手動で抽出していた。しかし、膨大な文書からの重要語句の抽出には手間と時間がかかり、また、人的ミスによって重要部分を見逃す可能性があった。【０００３】
要求獲得において重要語句を抽出する分析者を支援するために、形態素解析を用いて名詞・動詞などを抽出する方法がある。非特許文献１に記載された要求獲得法は、名詞および動詞を抽出する。【０００４】
また、特許文献１に記載された要求獲得支援装置は、日本語の構文解析を行って単語に分割してから詳細パタンを検索する。【０００５】
事前に単語に分割せずに、関連文書から複数回出現する部分列を重要語句として抽出する方法もある。非特許文献２に記載された語句抽出法は、繰り返し出現する語句を重要語句として抽出する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平６−６７８６２号公報（段落００１３−００１５）
【非特許文献】
【０００７】
【非特許文献１】長谷川亮、北村元博、海谷治彦、佐伯元司著、「エクストラクティングコンセプチュアル  グラフ  フロム  ジャパニーズ  ドキュメンツ  フォア  ソフトウェア  リクワイヤメンツ  モデリング（Ｅｘｔｒａｃｔｉｎｇ  Ｃｏｎｃｅｐｔｕａｌ  Ｇｒａｐｈｓ  ｆｒｏｍ  Ｊａｐａｎｅｓｅ  Ｄｏｃｕｍｅｎｔｓ  ｆｏｒ  Ｓｏｆｔｗａｒｅ  Ｒｅｑｕｉｒｅｍｅｎｔｓ  Ｍｏｄｅｌｉｎｇ）」、２００９年発行の国際会議予稿集「プロシーディングス  オブ  アジアパシフィック  コンファランス  オン  コンセプチュアル  モデリング（Ｐｒｏｃ．  ｏｆ  ｔｈｅ  Ｓｉｘｔｈ  Ａｓｉａ−Ｐａｃｉｆｉｃ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｎｃｅｐｔｕａｌ  Ｍｏｄｅｌｌｉｎｇ）」（ＡＰＣＣＭ  ２００９）の８７−９６頁
【非特許文献２】Ａｇｕｉｌｅｒａ，  Ｃ．、Ｂｅｒｒｙ，  Ｄ．Ｍ．著、「ザ  ユース  オブ  ア  リピーテッド  プレーズ  ファインダー  イン  リクワイヤメンツ  イクストラクション（Ｔｈｅ  Ｕｓｅ  ｏｆ  ａ  Ｒｅｐｅａｔｅｄ  Ｐｈｒａｓｅ  Ｆｉｎｄｅｒ  ｉｎ  Ｒｅｑｕｉｒｅｍｅｎｔｓ  Ｅｘｔｒａｃｔｉｏｎ）」、１９９０年発行の論文誌「ジャーナル  オブ  システムズ  アンド  ソフトウェア（Ｊｏｕｒｎａｌ  ｏｆ  Ｓｙｓｔｅｍｓ  ａｎｄ  Ｓｏｆｔｗａｒｅ）」第１３号、２０９−２３０項
【発明の概要】
【０００８】
しかし、非特許文献１および特許文献１に記載された予め単語に分割する方法では、「外国人参政権」を「外国」、「人参」、「政権」としてしまうなど単語分割の誤りによって重要語句を正確に抽出できないという問題があった。また、形態素解析に用いる辞書に含まれない未知な語句を取り扱うことはできず、重要語句として抽出できないという問題もあった。そのため、例えば、英文字列「ＡＢＣ」などの省略語を重要語句として抽出できなかった。
【０００９】
また、非特許文献２に記載された関連文書から複数回出現する部分列を抽出する方法では、類似した語句が多く抽出されるため、分析者は重複部分を考慮しながら抽出語句を判断する必要があり、手間や時間がかかってしまう。また、単語に分割せずに部分列を抽出する場合には、語句の最初や最後の文字として不適切な文字（「、」など）が部分列に含まれることがある。
【００１０】
そこで、本発明は、要求獲得において分析者の手間や時間をかけることなく、文書から重要語句を抽出する要求抽出技術を提供することを目的とする。
【００１１】
本発明による要求抽出システムは、文字列の集合である文書から、一の文字列と他の文字列のそれぞれとで共通する連続した部分列の最大長の部分列を一の文字列に対する重要語句の候補として抽出する候補抽出部と、候補抽出部によって抽出された一の文字列に対する重要語句の候補のうちの最大長の部分列を選択する候補統合部と、候補統合部によって選択された、各文字列についての最大長の部分列の集合のうち、他の文字列についての集合の部分集合とならないものをまとめて重要語句の集合とする集合統合部とを備えることを特徴とする。
【００１２】
本発明による要求抽出方法は、文字列の集合である文書から、一の文字列と他の文字列のそれぞれとで共通する連続した部分列の最大長の部分列を一の文字列に対する重要語句の候補として抽出し、抽出された一の文字列に対する重要語句の候補のうちの最大長の部分列を選択し、選択された、各文字列についての最大長の部分列の集合のうち、他の文字列についての集合の部分集合とならないものをまとめて重要語句の集合とすることを特徴とする。
【００１３】
本発明による要求抽出プログラムは、コンピュータに、文字列の集合である文書から、一の文字列と他の文字列のそれぞれとで共通する連続した部分列の最大長の部分列を一の文字列に対する重要語句の候補として抽出する処理と、抽出された一の文字列に対する重要語句の候補のうちの最大長の部分列を選択する処理と、選択された、各文字列についての最大長の部分列の集合のうち、他の文字列についての集合の部分集合とならないものをまとめて重要語句の集合とする処理とを実行させることを特徴とする。
【００１４】
本発明によれば、分析者の手間や時間をかけることなく、文書から重要語句を抽出することができる。
【図面の簡単な説明】
【００１５】
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。【００１６】
【図１】本発明の要求抽出システムの第１の実施形態の構成例を示すブロック図である。
【図２】図１に示す要求抽出システムが行う処理例を示すフローチャートである。
【図３】本発明の要求抽出システムの第２の実施形態の構成例を示すブロック図である。
【図４】図３に示す要求抽出システムの不要語句削除部が行う処理例を示すフローチャートである。
【図５】図３に示す要求抽出システムの候補抽出部が行う処理例を示すフローチャートである。
【図６】本発明による要求抽出システムの主要部を示すブロック図である。
【発明を実施するための形態】
【００１７】
実施形態１．
図１は、本発明の要求抽出システムの第１の実施形態（実施形態１）の構成例を示すブロック図である。図１に示す要求抽出システムは、記憶部１と重要語句抽出部２とを備える。
【００１８】
システムのソフトウェア開発において顧客が所持する文書、インタビューアンケート調査結果、議事録、または仕様書などの関連文書を文書と呼ぶ。文書を意味単位で分割した１つ１つの要素を文字列と呼ぶ。
【００１９】
例えば、一行に一項目が書かれた文書であれば、一行を文字列と呼ぶことができる。アンケート調査結果で、一人の回答に一つの意味があるとみなす場合には、一人の回答を構成する複数の文を文字列と呼ぶことができる。段落ごとにまとまりのある文書の場合には、各段落を構成する少なくとも１つの文を文字列と呼ぶことができる。章ごとにまとまりのある文書の場合には、各章を構成する少なくとも１つの文を文字列と呼ぶことができる。意味単位が文として読点で区切られる場合と行で区切られる場合とが混在する文書の場合には、文および行を、それぞれ文字列と呼ぶこともできる。
【００２０】
また、例えば、第１版、第２版のように複数存在する文書を同時に分析したい場合には、それらの複数の文書をまとめて文書と呼ぶ。文書が、議事録および仕様書というように異なる形式で複数ある場合には、複数の文書をまとめて文書と呼ぶことができる。
【００２１】
記憶部１は、候補記憶部１１および重要語句記憶部１２を含む。候補記憶部１１は、各文字列に対する重要語句の候補の集合（候補集合）を記憶する。重要語句記憶部１２は、文書に対する重要語句の集合（重要語句集合）を記憶する。
【００２２】
重要語句抽出部２は、制御部２１、候補抽出部２２、候補統合部２３、および集合統合部２４を含む。制御部２１、候補抽出部２２、候補統合部２３、および集合統合部２４は、例えば、プログラムにしたがって処理を実行するＣＰＵ（Central Processing Unit）で実現される。
【００２３】
制御部２１は、重要語句の候補を抽出する文字列に割り当てられる文字列番号、および重要語句の候補とする語句の開始位置などを制御する。制御部２１は、文字列番号および開始位置などを制御して、文書の全ての文字列に対して、候補抽出部２２による動作と候補統合部２３による動作とを繰り返す。
【００２４】
候補抽出部２２は、制御部２１によって制御された文字列番号などに基づいて、各文字列に対して、他の文字列と共通する連続した部分列のうちの最大長の部分列を重要語句の候補として１つずつ抽出する。
【００２５】
候補統合部２３は、候補抽出部２２によって抽出された１つの重要語句の候補と、以前に候補抽出部２２によって抽出されて候補記憶部１１に記憶された候補集合とを比較する。候補統合部２３は、１つの文字列に対する重要語句の候補のうちの最大長の部分列を選択する。候補統合部２３は、選択した重要語句の候補を候補集合に追加し、候補記憶部１１に記憶させる。
【００２６】
集合統合部２４は、各文字列に対する候補集合のうち、他の文字列に対する候補集合の部分集合となるものを削除する。集合統合部２４は、文字列ごとの候補集合のうち、他の文字列に対する候補集合の部分集合とならないものをまとめて重要語句集合とする。集合統合部２４は、重要語句集合を重要語句記憶部１２に記憶させる。
【００２７】
図２は、図１に示す要求抽出システムが行う処理例を示すフローチャートである。図２を参照して、入力装置などを介して文書が入力された場合に、図１に示す要求抽出システムが、入力された文書から重要語句を抽出する動作を説明する。なお、一例として、入力された文書を構成する文を文字列とする。また、入力された文書を構成する文の数をＮとする。
【００２８】
図２に示す処理例では、制御部２１は、文字列番号として文番号を制御する。文番号は、文書における文に割り当てられる番号である。文書の各文に対して、最初の文から順番に０からＮ−１までのＮ個の整数が、文番号として割り当てられる。まず、制御部２１は、文番号ｉを０で初期化する（ステップＡ１）。
【００２９】
次に、制御部２１は、文番号ｉとＮを比較する（ステップＡ２）。文番号ｉがＮ未満である場合には（ステップＡ２のＹ）、制御部２１は、文番号ｉに対する候補集合ＣａｎｄＳｅｔ［ｉ］を空集合で初期化する（ステップＡ３）。候補集合ＣａｎｄＳｅｔ［ｉ］は、候補記憶部１１に記憶されるとする。文番号ｉがＮ以上である場合には（ステップＡ２のＮ）、ステップＡ１６に進む。
【００３０】
次いで、制御部２１は、文番号ｊを０で初期化する（ステップＡ４）。次に、制御部２１は、文番号ｉと文番号ｊを比較する（ステップＡ５）。文番号ｉと文番号ｊとが等しい場合には（ステップＡ５のＹ）、ステップＡ１０に進む。文番号ｉと文番号ｊとが等しくない場合には（ステップＡ５のＮ）、制御部２１は、文番号ｊとＮを比較する（ステップＡ６）。
【００３１】
文番号ｊがＮ以上である場合には（ステップＡ６のＮ）、制御部２１は、文番号ｉを１増やし（ステップＡ７）、ステップＡ２に戻る。なお、ステップＡ７に示す処理のように、値を１増やす処理をインクリメントと呼ぶ。
【００３２】
文番号ｊがＮ未満である場合には（ステップＡ６のＹ）、制御部２１は、語句の開始位置（ｓｔ）を０で初期化する。また、文番号ｉで示される文を構成する文字数（文ｉの配列長）をＬＥＮとする（ステップＡ８）。そして制御部２１は、語句の開始位置ｓｔと文ｉの配列長ＬＥＮを比較する（ステップＡ９）。
【００３３】
ｓｔがＬＥＮ以上である場合には（ステップＡ９のＮ）、制御部２１は、文番号ｊをインクリメントし（ステップＡ１０）、ステップＡ６に戻る。
【００３４】
ｓｔがＬＥＮ未満である場合には（ステップＡ９のＹ）、候補抽出部２２は、文番号ｉで示される文（文ｉ）の語句の開始位置ｓｔから始まる部分列を調べ、文番号ｊで示される文（文ｊ）に含まれる最大長の部分列を抽出し、候補ｃａｎｄとする（ステップＡ１１）。
【００３５】
ここで、候補抽出部２２によって候補ｃａｎｄとして抽出される最大長の部分列について詳しく説明する。
【００３６】
文は、文字が並んだ文字列と考える。例えば、集合ＡをＡ＝｛ａ＿０，ａ＿１，・・・，ａ＿（α−１）｝として表されるα個の文字とする場合に、Ａの各要素であるａ＿ｉは、ひらがな、カタカナまたは漢字などのうちの一文字に相当する。Ａ上の有限長の文字列の集合をＡ＊とする場合に、集合Ａ＊の各要素は、単語または文などに相当する。
【００３７】
文字列Ｓの部分列Ｓ（ｓｔ，ｌｅｎ）は、文字列Ｓのｓｔ番目の文字を開始位置とするｌｅｎ個の文字の並びで形成される文字列を示す。例えば、文字列Ｓが"候補抽出部"という文字列である場合（Ｓ＝"候補抽出部"）に、部分列は、Ｓ（０，１）＝"候"、Ｓ（０，２）＝"候補"、およびＳ（２，２）＝"抽出"などとなる。
【００３８】
文字列Ｓおよび文字列Ｔに対して文字列ｃａｎｄが最大長の部分列であるとは、ｃａｎｄ＝Ｓ（ｓｔ１，ｌｅｎ）＝Ｔ（ｓｔ２，ｌｅｎ）で示される関係を満たすｓｔ１，ｓｔ２およびｌｅｎが存在し、集合Ａに含まれる任意の文字ａについて、文字列｛ｃａｎｄ・ａ｝が文字列Ｓおよび文字列Ｔの両方の部分列ではなく、文字列｛ａ・ｃａｎｄ｝もまた、文字列Ｓおよび文字列Ｔの両方の部分列ではない、ということである。
【００３９】
例えば、文字列を文として、文Ｓが"重要語句を抽出する。"であり、文Ｔが"重要語句とは共通部分列である。"である場合に、文Ｓおよび文Ｔに対する最大長の部分列ｃａｎｄは"重要語句"である。ｃａｎｄを"重要"とした場合には、文Ｓおよび文Ｔの両方の部分列となる文字列｛ｃａｎｄ・ａ｝を構成する文字ａとして"語"が存在するので、"重要"は、文Ｓおよび文Ｔに対する最大長の部分列ではない。
【００４０】
また、抽出の対象となる文字列の両方に含まれる部分列が存在しない場合には、候補抽出部２２は、候補ｃａｎｄを空列とする。空列とは、文字を０個含む列""である。例えば、文ｉの語句の開始位置ｓｔの文字が"α"であり、文ｊに"α"が含まれない場合には、候補抽出部２２は、候補ｃａｎｄを空列＝""とする。
【００４１】
なお、ステップＡ１１において抽出される候補ｃａｎｄは、候補ｃａｎｄの最小文字数ＭｉｎＬｅｎを予め定められていてもよい。最小文字数ＭｉｎＬｅｎは、キーボードなどの入力装置を介して要求抽出システムのユーザ（分析者）によって入力されてもよく、他の態様によって指定されてもよい。例えば、最小文字数ＭｉｎＬｅｎが"２"と予め定められていた場合には、候補抽出部２２は、抽出の対象となる文字列の両方に含まれる２文字以上の部分列のうちの最大長の部分列を候補ｃａｎｄとして抽出する。最小文字数を予め定めた要求抽出システムでは、短すぎる重要語句の候補を抽出しないので、分析者に短すぎる重要語句を提示しないことができる。
【００４２】
ステップＡ１１において候補抽出部２２が候補ｃａｎｄを抽出すると、候補統合部２３は、候補ｃａｎｄが候補集合ＣａｎｄＳｅｔ［ｉ］の要素の部分列であるか否かを判断する（ステップＡ１２）。
【００４３】
配列長をＬＥＮとする配列Ｓの部分列とは、配列Ｓの連続した部分を構成する配列である。空列は、配列Ｓの長さ０の部分列であるとする。配列Ｓを、配列Ｓの長さＬＥＮの部分列とする。例えば、候補集合ＣａｎｄＳｅｔ［ｉ］＝｛"制御部"，"候補抽出"｝とするとき、ｃａｎｄが"候補"である場合は、ｃａｎｄはＣａｎｄＳｅｔ［ｉ］の要素"候補抽出"の部分列である。ｃａｎｄが"候補抽出"である場合も、ｃａｎｄはＣａｎｄＳｅｔ［ｉ］の要素"候補抽出"の部分列である。しかし、ｃａｎｄが"候補抽出部"である場合には、ｃａｎｄは候補集合ＣａｎｄＳｅｔ［ｉ］の要素の部分列ではない。
【００４４】
候補ｃａｎｄが候補集合ＣａｎｄＳｅｔ［ｉ］の要素の部分列ではない場合には（ステップＡ１２のＮ）、候補統合部２３は、ＣａｎｄＳｅｔ［ｉ］の要素のうち、ｃａｎｄの部分列である要素をＣａｎｄＳｅｔ［ｉ］から削除する（ステップＡ１３）。例えば、候補集合ＣａｎｄＳｅｔ［ｉ］＝｛"制御部"，"候補抽出"｝であるとき、ｃａｎｄが"候補抽出部"である場合は、候補集合の要素"候補抽出"は、ｃａｎｄの部分列である。したがって、候補統合部２３は、ＣａｎｄＳｅｔ［ｉ］から要素"候補抽出"を削除し、候補集合ＣａｎｄＳｅｔ［ｉ］＝｛"制御部"｝となる。
【００４５】
次に、候補統合部２３は、候補ｃａｎｄを候補集合ＣａｎｄＳｅｔ［ｉ］に追加する（ステップＡ１４）。例えば、候補集合ＣａｎｄＳｅｔ［ｉ］＝｛"制御部"｝であるとき、ｃａｎｄが"候補抽出部"である場合には、候補統合部２３は、ＣａｎｄＳｅｔ［ｉ］にｃａｎｄを追加して、ＣａｎｄＳｅｔ［ｉ］＝｛"制御部"，"候補抽出部"｝となる。
【００４６】
候補ｃａｎｄが候補集合ＣａｎｄＳｅｔ［ｉ］の要素の部分列である場合（ステップＡ１２のＹ）、または、ステップＡ１４に示す処理が行われると、制御部２１は、語句の開始位置ｓｔをインクリメントする（ステップＡ１５）。そして、制御部２１は、ステップＡ９に戻る。
【００４７】
制御部２１、候補抽出部２２、および候補統合部２３が、ステップＡ１〜Ａ１５に示す処理を繰り返すことによって、文書を構成する全ての文に対する候補集合ＣａｎｄＳｅｔ［ｉ］が抽出される。抽出された候補集合ＣａｎｄＳｅｔ［ｉ］は、候補記憶部１１に記憶される。
【００４８】
全ての文に対する候補集合ＣａｎｄＳｅｔ［ｉ］が抽出されると、集合統合部２４は、文番号ｉを０で初期化し、重要語句集合Ｉｍｐを空集合で初期化する（ステップＡ１６）。重要語句集合Ｉｍｐは、重要語句記憶部１２に記憶された重要語句の候補の集合である。
【００４９】
集合統合部２４は、文番号ｉとＮを比較する（ステップＡ１７）。文番号ｉがＮ以上である場合には（ステップＡ１７のＮ）、集合統合部２４は、動作を終了する。
【００５０】
文番号ｉがＮ未満である場合には（ステップＡ１７のＹ）、集合統合部２４は、文番号ｉの候補集合ＣａｎｄＳｅｔ［ｉ］が重要語句集合Ｉｍｐの要素の部分集合であるか否かを判断する（ステップＡ１８）。
【００５１】
例えば、Ｉｍｐ＝｛｛"制御部"，"候補抽出部"，"候補統合部"｝，｛"ステップ"，"文番号"｝｝であるとき、ＣａｎｄＳｅｔ［ｉ］が｛"制御部"，"候補抽出部"｝である場合には、ＣａｎｄＳｅｔ［ｉ］は、Ｉｍｐの最初の要素の部分集合である。ＣａｎｄＳｅｔ［ｉ］が｛"制御部"，"候補抽出部"，"候補統合部"｝である場合も、ＣａｎｄＳｅｔ［ｉ］は、Ｉｍｐの最初の要素の部分集合である。しかし、ＣａｎｄＳｅｔ［ｉ］が｛"制御部"，"候補抽出部"，"候補統合部"，"集合統合部"｝である場合には、ＣａｎｄＳｅｔ［ｉ］は、Ｉｍｐのどの要素の部分集合でもない。
【００５２】
文番号ｉの候補集合ＣａｎｄＳｅｔ［ｉ］が重要語句集合Ｉｍｐの要素の部分集合ではない場合には（ステップＡ１８のＮ）、集合統合部２４は、Ｉｍｐの要素のうち、ＣａｎｄＳｅｔ［ｉ］の部分集合である要素をＩｍｐから削除する（ステップＡ１９）。例えば、Ｉｍｐ＝｛｛"制御部"，"候補抽出部"，"候補統合部"｝，｛"ステップ"，"文番号"｝｝であるとき、ＣａｎｄＳｅｔ［ｉ］が｛"制御部"，"候補抽出部"，"候補統合部"，"集合統合部"｝である場合には、Ｉｍｐの最初の要素｛"制御部"，"候補抽出部"，"候補統合部"｝は、ＣａｎｄＳｅｔ［ｉ］の部分集合である。したがって、集合統合部２４は、Ｉｍｐから最初の要素を削除し、Ｉｍｐ＝｛｛"ステップ"，"文番号"｝｝となる。
【００５３】
次に、集合統合部２４は、重要語句集合Ｉｍｐに候補集合ＣａｎｄＳｅｔ［ｉ］を追加する（ステップＡ２０）。例えば、Ｉｍｐ＝｛｛"ステップ"，"文番号"｝｝であるとき、ＣａｎｄＳｅｔ［ｉ］が｛"制御部"，"候補抽出部"，"候補統合部"，"集合統合部"｝である場合には、集合統合部２４は、ＩｍｐにＣａｎｄＳｅｔ［ｉ］を追加して、Ｉｍｐ＝｛｛"制御部"，"候補抽出部"，"候補統合部"，"集合統合部"｝，｛"ステップ"，"文番号"｝｝となる。ここで、集合統合部２４は、ＣａｎｄＳｅｔ［ｉ］を追加したＩｍｐを重要語句記憶部１２に記憶させてもよい。
【００５４】
文番号ｉの候補集合ＣａｎｄＳｅｔ［ｉ］が重要語句集合Ｉｍｐの要素の部分集合である場合（ステップＡ１８のＹ）、または、ステップＡ２０に示す処理が行われると、集合統合部２４は、文番号ｉをインクリメントする（ステップＡ２１）。そして、集合統合部２４は、ステップＡ１７に戻る。
【００５５】
なお、制御部２１は、動作を終了するときなどのタイミングで、重要語句記憶部１２に記憶された重要語句をディスプレイやプリンタなどの出力装置に出力してもよい。
【００５６】
このように構成された第１の実施形態の要求抽出システムは、予め形態素解析を用いて単語に分割することなく、部分的に一致する語句を除いた重要語句を抽出することができる。したがって、単語分割の誤りが起きうる形態素解析を用いた場合に比べ、より正確に文書から重要語句を抽出することができる。
【００５７】
また、第１の実施形態の要求抽出システムは、抽出対象の文字列に共通する最大長の部分列だけを重要語句の候補として抽出する。したがって、類似の語句が多数抽出されることを避け、抽出する重要語句の数を少なくすることができ、分析者は、重要語句を見る手間と時間とを少なくすることができる。
【００５８】
また、第１の実施形態の要求抽出システムは、辞書を用いずに重要語句を抽出するので、辞書に登録されていない未知な語句には対応できない形態素解析とは異なり、未知な語句を含む文書であっても、重要語句を抽出することができる。さらに、既存の単語を組み合わせて造られた造語や、既存の単語の一部が用いられた省略語など、未知な語句を重要語句として抽出することもできる。
【００５９】
なお、要求獲得では膨大な文書を扱うため、メモリの使用量を大きくしないことが好ましい。第１の実施形態の要求抽出システムは、１つの文字列と他の文字列のそれぞれとで比較を行って、共通する連続した部分列に基づいて重要語句の候補を探索するので、一度に多くのメモリを使用することなく少ないメモリ使用量で計算することができる。
【００６０】
実施形態２．
図３は、本発明の要求抽出システムの第２の実施形態（実施形態２）の構成例を示すブロック図である。図３に示す要求抽出システムは、記憶部３と重要語句抽出部４とを備える。
【００６１】
記憶部３は、不要システム語句記憶部３１、不要一般語句記憶部３２、不要接頭語句記憶部３３、不要接尾語句記憶部３４、候補記憶部１１、および重要語句記憶部１２を含む。図３に示す候補記憶部１１および重要語句記憶部１２は、図１に示す候補記憶部１１および重要語句記憶部１２と同様の記憶部である。
【００６２】
不要システム語句記憶部３１は、予め不要システム語句を記憶する。不要システム語句とは、例えば、企業名など、システム開発に関連する語句ではあるが、重要語句として抽出する必要がないと文書ごとに判断された語句である。
【００６３】
不要一般語句記憶部３２は、予め不要一般語句を記憶する。不要一般語句とは、例えば、「以下」、「上記」など、一般的に重要語句として抽出する必要がないと判断された語句である。
【００６４】
不要接頭語句記憶部３３は、予め不要接頭語句を記憶する。不要接頭語句とは、例えば、「ぁ」、「、」、「。」、「  （空白）」など、語句の第１文字として不適な語句である。
【００６５】
不要接尾語句記憶部３４は、予め不要接尾語句を記憶する。不要接尾語句とは、例えば、「っぽい」、「、」、「。」、「  （空白）」など、語句の最終文字として不適な語句である。
【００６６】
なお、不要システム語句、不要一般語句、不要接頭語句、および不要接尾語句などの不要語句は、キーボードなどの入力装置を介して要求抽出システムのユーザ（分析者）によって予め入力されてもよいし、他の様態で入力されてもよい。
【００６７】
重要語句抽出部４は、不要語句削除部４１、制御部２１、候補抽出部４２、候補統合部２３、および集合統合部２４を含む。図３に示す制御部２１、候補統合部２３および集合統合部２４の動作は、図１に示す制御部２１、候補統合部２３および集合統合部２４の動作と同様である。不要語句削除部４１、制御部２１、候補抽出部４２、候補統合部２３、および集合統合部２４は、例えば、プログラムにしたがって処理を実行するＣＰＵで実現される。
【００６８】
不要語句削除部４１は、不要システム語句記憶部３１に予め記憶された不要システム語句を文書全体から全て削除し、次に、不要一般語句記憶部３２に予め記憶された不要一般語句を文書全体から全て削除する。なお、不要語句削除部４１は、文書内の不要システム語句および不要一般語句を削除する代わりに、空白に置き換えてもよい。
【００６９】
候補抽出部４２は、制御部２１によって制御された文字列番号などに基づいて、文字列から、不要接頭語句記憶部３３に記憶された不要接頭語句を語句の最初（語頭）に含まず、不要接尾語句記憶部３４に記憶された不要接尾語句を語句の最後（語尾）に含まない重要語句の候補を１つずつ抽出する。
【００７０】
図４は、図３に示す要求抽出システムの不要語句削除部が行う処理例を示すフローチャートである。図４を参照して、入力装置などを介して文書が入力された場合に、図３に示す不要語句削除部４１が、入力された文書から不要システム語句および不要一般語句を削除する動作を説明する。
【００７１】
まず、不要語句削除部４１は、不要システム語句番号ｍを０で初期化する。また、Ｍを不要システム語句記憶部３１に記憶された不要システム語句の総数とする（ステップＢ１）。不要システム語句番号は、不要システム語句記憶部３１に記憶された不要システム語句のそれぞれに、順に割り当てられる番号であり、０〜Ｍ−１までのＭ個の整数が割り当てられる。
【００７２】
次に、不要語句削除部４１は、不要システム語句番号ｍとＭを比較する（ステップＢ２）。不要システム語句番号ｍがＭ未満である場合には（ステップＢ２のＹ）、不要語句削除部４１は、不要システム語句番号ｍで示される不要システム語句を文書から全て削除する（ステップＢ３）。そして、不要語句削除部４１は、ｍをインクリメントし（ステップＢ４）、ステップＢ２に戻る。不要システム語句番号ｍがＭ以上である場合には（ステップＢ２のＮ）、ステップＢ５に進む。
【００７３】
次に、不要語句削除部４１は、文書を分割した形態素に対して、不要一般語句記憶部３２に記憶された不要一般語句を削除する。図４では、語句が形態素として細かく分割され過ぎた場合を考慮し、例えば、３つ以下の連続する形態素に対して不要一般語句に一致するか否かを調べる処理例が示されている。
【００７４】
まず、不要語句削除部４１は、文書を構文解析し、形態素に分割する（ステップＢ５）。そして、不要語句削除部４１は、語句番号ｐを０で初期化する。また、分割された形態素の総数をＰとする（ステップＢ６）。語句番号は、分割された形態素のそれぞれに、順に割り当てられる番号であり、０〜Ｐ−１のＰ個の整数が割り当てられる。
【００７５】
不要語句削除部４１は、語句番号ｐとＰを比較する（ステップＢ７）。語句番号ｐがＰ以上である場合には（ステップＢ７のＮ）、不要語句削除部４１は、処理を終了する。
【００７６】
ここで、語句番号ｐで示される形態素をｐｈｒａｓｅ［ｐ］と表記することとする。また、ｐｈｒａｓｅ［ｐ，ｐ＋１］は、｛ｐｈｒａｓｅ［ｐ］・ｐｈｒａｓｅ［ｐ＋１］｝を示す。ｐｈｒａｓｅ［ｐ，ｐ＋２］は、｛ｐｈｒａｓｅ［ｐ］・ｐｈｒａｓｅ［ｐ＋１］・ｐｈｒａｓｅ［ｐ＋２］｝を示す。
【００７７】
ｐがＰ未満である場合には（ステップＢ７のＹ）、不要語句削除部４１は、ｐｈｒａｓｅ［ｐ，ｐ＋２］が、不要一般語句記憶部３２に記憶された不要一般語句のいずれかに一致するか否かを調べる（ステップＢ８）。
【００７８】
ｐｈｒａｓｅ［ｐ，ｐ＋２］が不要一般語句記憶部３２に記憶された不要一般語句のいずれかに一致する場合には（ステップＢ８のＹ）、不要語句削除部４１は、ｐｈｒａｓｅ［ｐ，ｐ＋２］を文書から削除する（ステップＢ９）。そして、語句番号ｐを３増やし（ステップＢ１０）、ステップＢ７に戻る。
【００７９】
ｐｈｒａｓｅ［ｐ，ｐ＋２］が不要一般語句記憶部３２に記憶された不要一般語句のいずれにも一致しない場合には（ステップＢ８のＮ）、不要語句削除部４１は、ｐｈｒａｓｅ［ｐ，ｐ＋１］が、不要一般語句記憶部３２に記憶された不要一般語句のいずれかに一致するか否かを調べる（ステップＢ１１）。
【００８０】
ｐｈｒａｓｅ［ｐ，ｐ＋１］が不要一般語句記憶部３２に記憶された不要一般語句のいずれかに一致する場合には（ステップＢ１１のＹ）、不要語句削除部４１は、ｐｈｒａｓｅ［ｐ，ｐ＋１］を文書から削除する（ステップＢ１２）。そして、語句番号ｐを２増やし（ステップＢ１３）、ステップＢ７に戻る。
【００８１】
ｐｈｒａｓｅ［ｐ，ｐ＋１］が不要一般語句記憶部３２に記憶された不要一般語句のいずれにも一致しない場合には（ステップＢ１１のＮ）、不要語句削除部４１は、ｐｈｒａｓｅ［ｐ］が、不要一般語句記憶部３２に記憶された不要一般語句のいずれかに一致するか否かを調べる（ステップＢ１４）。
【００８２】
ｐｈｒａｓｅ［ｐ］が不要一般語句記憶部３２に記憶された不要一般語句のいずれかに一致する場合には（ステップＢ１４のＹ）、不要語句削除部４１は、ｐｈｒａｓｅ［ｐ］を文書から削除する（ステップＢ１５）。そして、語句番号ｐを１増やし（ステップＢ１６）、ステップＢ７に戻る。
【００８３】
ｐｈｒａｓｅ［ｐ］が不要一般語句記憶部３２に記憶された不要一般語句のいずれにも一致しない場合には（ステップＢ１４のＮ）、ステップＢ１６に進む。
【００８４】
図５は、図３に示す要求抽出システムの候補抽出部が行う処理例を示すフローチャートである。図５を参照して、例えば、文字列として文を用いる場合に、図３に示す候補抽出部４２が、重要語句の候補を１つずつ抽出する動作を説明する。
【００８５】
ここで、重要語句の候補の最小文字数をＭｉｎＬｅｎとする。最小文字数ＭｉｎＬｅｎは、キーボードなどの入力装置を介して要求抽出システムのユーザ（分析者）によって入力されてもよく、他の態様で指定されてもよい。また、最小文字数ＭｉｎＬｅｎは、１や２などに予め定められてもよい。
【００８６】
まず、候補抽出部４２は、文ｉの開始位置ｓｔから始まる部分列が、不要接頭語句記憶部３３に記憶された不要接頭語句のいずれかに一致するか否かを調べる（ステップＣ１）。
【００８７】
文ｉの開始位置ｓｔから始まる部分列が、不要接頭語句記憶部３３に記憶された不要接頭語句のいずれにも一致しない場合には（ステップＣ１のＮ）、候補抽出部４２は、文ｉの開始位置ｓｔから始まる部分列のうち、文ｊに含まれる最大長の部分列を抽出し、候補ｃａｎｄとする（ステップＣ２）。文ｉの開始位置ｓｔから始まる部分列が、不要接頭語句のいずれかである場合には（ステップＣ１のＹ）、ステップＣ６に進む。
【００８８】
候補抽出部４２は、候補ｃａｎｄが、不要接尾語句記憶部３４に記憶された不要接尾語句のいずれかに一致するか否かを調べる（ステップＣ３）。
【００８９】
候補ｃａｎｄが、不要接尾語句記憶部３４に記憶された不要接尾語句のいずれにも一致しない場合には（ステップＣ３のＮ）、候補抽出部４２は、動作を終了する。
【００９０】
候補ｃａｎｄが、不要接尾語句記憶部３４に記憶された不要接尾語句のいずれかに一致する場合には（ステップＣ３のＹ）、候補抽出部４２は、候補ｃａｎｄの末尾の一文字を削除する（ステップＣ４）。そして、候補抽出部４２は、候補ｃａｎｄの文字数と最小文字数ＭｉｎＬｅｎを比較する（ステップＣ５）。
【００９１】
候補ｃａｎｄの文字数が最小文字数ＭｉｎＬｅｎ以上である場合には（ステップＣ５のＮ）、ステップＣ３に戻る。候補ｃａｎｄの文字数が最小文字数ＭｉｎＬｅｎ未満である場合には（ステップＣ５のＮ）、候補抽出部４２は、候補ｃａｎｄを空列に設定する（ステップＣ６）。
【００９２】
このように構成された第２の実施形態の要求抽出システムでは、不要語句削除部４１は、構文解析を行うことなく、不要システム語句記憶部３１に記憶されている不要システム語句に一致する部分が存在するか否かを調べて、文書全体から不要システム語句を削除するので、例えば、不要システム語句が、造語や省略語など、構文解析で用いられる辞書に登録されていない未知な語句であっても、削除することができる。
【００９３】
また、第２の実施形態の要求抽出システムでは、不要語句削除部４１は、構文解析によって分割された複数の形態素からなる語句が不要一般語句であるか否かを調べて削除するので、構文解析によって形態素を細分化し過ぎた場合にも、確実に不要一般語句を削除することができる。
【００９４】
さらに、第２の実施形態の要求抽出システムでは、候補抽出部４２は、重要語句の候補から不要接頭語句および不要接尾語句を削除するので、不要接頭語句および不要接尾語句を含まずに、重要語句として望ましい形で重要語句を抽出することができる。例えば、「、」で開始する部分列は、先頭の「、」を削除した語句として抽出されるなど、分析者にとって見やすい形での重要語句の抽出を期待できる。
【００９５】
そして、第２の実施形態の要求抽出システムは、不要システム語句、不要一般語句、不要接頭語句、および不要接尾語句などの不要語句を削除して重要語句を抽出するので、第１の実施形態の要求抽出システムが抽出するよりも、重要語句の数を少なくすることができる。したがって、分析者は、重要語句を見る手間と時間とをさらに少なくすることができる。
【００９６】
図６は、本発明による要求抽出システムの主要部を示すブロック図である。図６に示すように、要求抽出システムは、文字列（例えば、文）の集合である文書から、一の文字列と他の文字列のそれぞれとで共通する連続した部分列の最大長の部分列を一の文字列に対する重要語句の候補（例えば、第１の実施形態の候補ｃａｎｄに相当）として抽出する候補抽出部６１（例えば、図１に示す候補抽出部２２に相当）と、候補抽出部６１によって抽出された一の文字列に対する重要語句の候補のうちの最大長の部分列を選択する候補統合部６２（例えば、図１に示す候補統合部２３に相当）と、候補統合部６２によって選択された重要語句の候補による文字列ごとの集合（例えば、第１の実施形態の候補集合ＣａｎｄＳｅｔ［ｉ］に相当）のうち、他の文字列に対する集合の部分集合とならないものをまとめて重要語句の集合（例えば、第１の実施形態の重要語句集合Ｉｍｐに相当）とする集合統合部６３（例えば、図１に示す集合統合部２４に相当）とを備えるように構成されている。
【００９７】
また、上記の各実施形態では、以下の（１）〜（５）に示すような要求抽出システムも開示されている。
【００９８】
（１）候補抽出部は、一の文字列と他の文字列のそれぞれとで共通する連続した部分列の最大長の部分列のうち、所定の文字数（例えば、第１の実施形態の最小文字数ＭｉｎＬｅｎに相当）以上の部分列だけを重要語句の候補として抽出する要求抽出システム。
【００９９】
（２）重要語句として抽出する必要がないと予め定められた不要語句を文書から削除する不要語句削除部（例えば、図３に示す不要語句削除部４１に相当）を備える要求抽出システム。
【０１００】
（３）不要語句削除部は、文書ごとに抽出する必要がないと予め定められた不要語句（例えば、図３に示す不要システム語句記憶部３１に記憶される不要システム語句に相当）に一致する部分を文書から削除し（例えば、図４のステップＢ１〜Ｂ４に示す動作によって実現される。）、構文解析によって分割された１つまたは連続する複数の形態素が、一般に抽出する必要がないと予め定められた不要語句（例えば、図３に示す不要一般語句記憶部３２に記憶される不要一般語句に相当）に一致する場合に、当該形態素を文書から削除する（例えば、図４のステップＢ５〜Ｂ１６に示す動作によって実現される。）要求抽出システム。
【０１０１】
（４）候補抽出部は、予め定められた重要語句の第１文字として不適な不要接頭語句（例えば、図３に示す不要接頭語句記憶部３３に記憶される不要接頭語句に相当）を語頭に含まず、予め定められた重要語句の最終文字として不適な不要接尾語句（例えば、図３に示す不要接尾語句記憶部３４に記憶される不要接尾語句に相当）を語尾に含まない重要語句の候補を抽出する要求抽出システム（例えば、図５のステップＣ１〜Ｃ６に示す動作によって実現される。）。
【０１０２】
（５）文書における文、一行、段落、章のいずれか、またはその組合せを文字列とする要求抽出システム。
【０１０３】
（付記１）重要語句として抽出する必要がないと予め定められた不要語句を文書から削除する要求抽出方法。
【０１０４】
（付記２）文書ごとに抽出する必要がないと予め定められた不要語句に一致する部分を文書から削除し、構文解析によって分割された１つまたは連続する複数の形態素が、一般に抽出する必要がないと予め定められた不要語句に一致する場合に、当該形態素を文書から削除する要求抽出方法。
【０１０５】
（付記３）予め定められた重要語句の第１文字として不適な不要接頭語句を語頭に含まず、予め定められた重要語句の最終文字として不適な不要接尾語句を語尾に含まない重要語句の候補を抽出する要求抽出方法。
【０１０６】
（付記４）コンピュータに、重要語句として抽出する必要がないと予め定められた不要語句を文書から削除する処理を実行させるための要求抽出プログラム。
【０１０７】
（付記５）コンピュータに、文書ごとに抽出する必要がないと予め定められた不要語句に一致する部分を文書から削除する処理と、構文解析によって分割された１つまたは連続する複数の形態素が、一般に抽出する必要がないと予め定められた不要語句に一致する場合に、当該形態素を文書から削除する処理とを実行させるための要求抽出プログラム。
【０１０８】
（付記６）コンピュータに、予め定められた重要語句の第１文字として不適な不要接頭語句を語頭に含まず、予め定められた重要語句の最終文字として不適な不要接尾語句を語尾に含まない重要語句の候補を抽出する処理を実行させるための要求抽出プログラム。
【０１０９】
なお、上記実施形態の説明には、複数のフローチャートを用いており、それぞれに複数のステップを順番に記載してあるが、その記載の順番は、本発明の情報処理方法のステップを実行する順番を限定するものではない。このため、本発明の情報処理方法を実行するときには、その複数のステップの順番は内容的に支障しない範囲で変更することができる。
【０１１０】
なお、当然ながら、上述した実施の形態および複数の変形例は、その内容が相反しない範囲で組み合わせることができる。また、上述した実施の形態および変形例では、各構成要素の機能などを具体的に説明したが、その機能などは本願発明を満足する範囲で各種に変更することができる。
【０１１１】
この出願は、２０１０年１月１８日に出願された日本出願特願２０１０−８０１０号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2011086637.tif 000003
【図２】
2011086637.tif 000004
【図３】
2011086637.tif 000005
【図４】
2011086637.tif 000006
【図５】
2011086637.tif 000007
【図６】
2011086637.tif 000008
【国際調査報告】
2011086637.tif 000009
2011086637.tif 000010