(57)【要約】  システム・ソフトウェア開発において、顧客の所持する文書、インタビュー・アンケート調査結果、議事録、仕様書等の関連文書から、少ない手間と時間で要求を把握する要求獲得システムを提供する。具体的には、文字列の集合である文書から、複数の文字列で共通する１つ以上の部分列を重要語句として抽出し、重要語句がない場合、処理を終了し、重要語句がある場合、文書から、文書を代表する１つの文字列を候補文字列として抽出し、文書から抽出した候補文字列を削除し、候補文字列に含まれる重要語句を削除し、重要語句の削除数が１つ以上である場合、候補文字列を重要文字列とし、文字列抽出部に戻って処理を続ける。
2011118428.tif 000002
【特許請求の範囲】
【請求項１】
複数の文字列の集合である文書から、前記複数の文字列で共通する１つ以上の部分列を重要語句として抽出する語句抽出部と、
前記重要語句がない場合、処理を終了し、前記重要語句がある場合、前記文書から、前記文書を代表する１つの文字列を候補文字列として抽出し、前記文書から前記候補文字列を削除する文字列抽出部と、
前記候補文字列から前記重要語句を削除する語句削除部と、
前記重要語句の削除数が１つ以上である場合、前記候補文字列を重要文字列とする文字列追加部と
を具備する
要求獲得システム。
【請求項２】
請求項１に記載の要求獲得システムであって、
前記文字列抽出部は、前記複数の文字列の各々と前記文書との距離を計算し、前記各文字列と前記文書との距離が最小となる文字列を候補文字列として抽出する
要求獲得システム。
【請求項３】
請求項２に記載の要求獲得システムであって、
前記文字列抽出部は、コルモゴロフ複雑性の近似計算法に基づいて、前記各文字列と前記文書との距離を計算する
要求獲得システム。
【請求項４】
計算機により実施される要求獲得システムであって、
複数の文字列の集合である文書から、前記複数の文字列で共通する１つ以上の部分列を重要語句として抽出し、
前記重要語句がない場合、処理を終了し、
前記重要語句がある場合、前記文書から、前記文書を代表する１つの文字列を候補文字列として抽出し、
前記文書から前記候補文字列を削除し、
前記候補文字列から前記重要語句を削除し、
前記重要語句の削除数が１つ以上である場合、前記候補文字列を重要文字列とする
要求獲得方法。
【請求項５】
請求項４に記載の要求獲得方法であって、
前記複数の文字列の各々と前記文書との距離を計算し、
前記各文字列と前記文書との距離が最小となる文字列を候補文字列として抽出する
要求獲得方法。
【請求項６】
請求項５に記載の要求獲得方法であって、
コルモゴロフ複雑性の近似計算法に基づいて、前記各文字列と前記文書との距離を計算する
要求獲得方法。
【請求項７】
請求項４乃至６のいずれか一項に記載の要求獲得方法を計算機に実行させるための要求獲得用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、要求獲得システムに関し、特にシステム・ソフトウェア開発において、顧客の所持する文書や、顧客に対するインタビュー・アンケート調査結果、顧客との打合せ議事録、顧客の要求を整理した要求仕様書などの関連文書から要求を把握する要求獲得システムに関する。
【背景技術】
【０００２】
システム・ソフトウェア開発において、問題解決又は目的達成のために開発システムが従わなければならない条件・能力に関する要求を顧客から獲得することを、要求獲得という。要求獲得では、顧客の要求を漏れ抜けなく抽出して仕様・設計に役立てるため、関連文書の重要語句やその関係性を考慮しながら、要求を把握する必要がある。【０００３】
従来、要求獲得は、分析者が手動で重要語句を抽出し、その重要語句を手がかりとして、異なる部分に書かれた類似の内容の対応付けを行いながら、要求を把握していた。しかしながら、膨大な文書を何度も読み直しながら重要語句の抽出と対応付けを行うのは、手間と時間がかかる。また、人的ミスで重要部分を見逃す可能性があった。【０００４】
分析者を支援するため、形態素解析（構文解析）を用いて名詞・動詞等を抽出する方法がある。例えば、非特許文献１に記載の要求獲得法では、名詞・動詞を抽出する。また、特許文献１（特開平０６−０６７８６２号公報）に記載の要求獲得支援装置は、構文解析を行って単語に分割してから詳細パタンを検索する。【０００５】
また、事前に単語分割せずに、関連文書から複数回出現する部分列を重要語句として抽出する方法もある。例えば、非特許文献２に記載の語句抽出法は、繰り返し出現する語句を重要語句として抽出する。【０００６】
しかしながら、特許文献１、非特許文献１、非特許文献２のように、重要語句を抽出する方法では、分析者が抽出語句の意味を判断する際に、元の文書を参照して確認する必要があった。通常、多くの語句が抽出され、それぞれの語句を含む文も多数存在するため、それ以前に手動で抽出していた場合と同様に、確認作業の手間と時間が大幅にかかるという問題があった。【０００７】
また、１つの要求は、１つの重要語句だけを含む訳ではなく、名詞と動詞のように複数の重要語句を含む場合がほとんど（大半）であるため、重要語句から元の文書を対応付けようとしても、重要語句のどのような組合せで対応付ければ良いかを判断する必要があり、対応付けが困難であった。【０００８】
また、重要単語の抽出では、非特許文献１や特許文献１のように、形態素解析を用いて予め単語に分割する方法では、例えば、「外国人参政権」を「外国」、「人参」、「政権」と分割してしまうような、単語分割の誤りにより正確に抽出できないという問題があった。また、形態素解析に用いる辞書に含まれない未知語は扱えず、抽出できないという問題もあった。そのため、例えば、英文字列「ＡＢＣ」等の省略語は抽出できなかった。【０００９】
非特許文献２のように、関連文書から複数回出現する部分列を抽出する方法では、類似の語句が多く抽出されるため、抽出語句が重要語句かどうかを判断して取捨選択して元の文書を確認する必要があり、判断する手間や時間がかかるという問題があった。【００１０】
関連する技術として、特許文献２（特開２００８−２３４０４９号公報）に要約文生成装置及び要約文生成プログラムが開示されている。この関連技術では、類似度が予め設定された閾値以上となる他の文を選定する際に、類似度の計算を繰返すことなく順に抽出しており、予め閾値を定める必要がある。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平０６−０６７８６２号公報
【特許文献２】特開２００８−２３４０４９号公報
【非特許文献】
【００１２】
【非特許文献１】長谷川亮、北村元博、海谷治彦、佐伯元司著、「エクストラクティング  コンセプチュアル  グラフ  フロム  ジャパニーズ  ドキュメンツ  フォア  ソフトウェア  リクワイヤメンツ  モデリング（Ｅｘｔｒａｃｔｉｎｇ  Ｃｏｎｃｅｐｔｕａｌ  Ｇｒａｐｈｓ  ｆｒｏｍ  Ｊａｐａｎｅｓｅ  Ｄｏｃｕｍｅｎｔｓ  ｆｏｒ  Ｓｏｆｔｗａｒｅ  Ｒｅｑｕｉｒｅｍｅｎｔｓ  Ｍｏｄｅｌｉｎｇ）」、２００９年発行の国際会議予稿集「プロシーディングス  オブ  アジアパシフィック  コンファランス  オン  コンセプチュアル  モデリング  （Ｐｒｏｃ．  ｏｆ  ｔｈｅ  Ｓｉｘｔｈ  Ａｓｉａ−Ｐａｃｉｆｉｃ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｎｃｅｐｔｕａｌ  Ｍｏｄｅｌｌｉｎｇ）」（ＡＰＣＣＭ  ２００９）の８７−９６頁  ＜ｈｔｔｐ：／／ｃｒｐｉｔ．ｃｏｍ／ｃｏｎｆｐａｐｅｒｓ／ＣＲＰＩＴＶ９６Ｈａｓｅｇａｗａ．ｐｄｆ＞
【非特許文献２】Ａｇｕｉｌｅｒａ，  Ｃ．Ｂｅｒｒｙ，  Ｄ．Ｍ．著、「ザ  ユース  オブ  ア  リピーテッド  プレーズ  ファインダー  イン  リクワイヤメンツ  イクストラクション  （Ｔｈｅ  Ｕｓｅ  ｏｆ  ａ  Ｒｅｐｅａｔｅｄ  Ｐｈｒａｓｅ  Ｆｉｎｄｅｒ  ｉｎ  Ｒｅｑｕｉｒｅｍｅｎｔｓ  Ｅｘｔｒａｃｔｉｏｎ）」、１９９０年発行の論文誌「ジャーナル  オブ  システムズ  アンド  ソフトウェア  （Ｊｏｕｒｎａｌ  ｏｆ  Ｓｙｓｔｅｍｓ  ａｎｄ  Ｓｏｆｔｗａｒｅ）」の第１３号２０９−２３０項
【発明の概要】
【００１３】
本発明の目的は、分析者の手間や時間をかけることなく、関連文書からの要求獲得を行う要求獲得ステム、要求獲得方法、及び要求獲得用プログラムを提供することである。
【００１４】
本発明の要求獲得システムは、複数の文字列の集合である文書から、複数の文字列で共通する１つ以上の部分列を重要語句として抽出する語句抽出部と、前記重要語句がない場合、処理を終了し、前記重要語句がある場合、前記文書から、前記文書を代表する１つの文字列を候補文字列として抽出し、前記文書から前記候補文字列を削除する文字列抽出部と、前記候補文字列から前記重要語句を削除する語句削除部と、前記重要語句の削除数が１つ以上である場合、前記候補文字列を重要文字列とする文字列追加部とを具備する。
【００１５】
本発明の要求獲得方法は、計算機により実施される要求獲得システムである。この要求獲得方法では、複数の文字列の集合である文書から、複数の文字列で共通する１つ以上の部分列を重要語句として抽出し、前記重要語句がない場合、処理を終了し、前記重要語句がある場合、前記文書から、前記文書を代表する１つの文字列を候補文字列として抽出し、前記文書から前記候補文字列を削除し、前記候補文字列から前記重要語句を削除し、前記重要語句の削除数が１つ以上である場合、前記候補文字列を重要文字列とする。
【００１６】
本発明の要求獲得用プログラムは、複数の文字列の集合である文書から、複数の文字列で共通する１つ以上の部分列を重要語句として抽出するステップと、前記重要語句がない場合、処理を終了するステップと、前記重要語句がある場合、前記文書から、前記文書を代表する１つの文字列を候補文字列として抽出するステップと、前記文書から前記候補文字列を削除するステップと、前記候補文字列から前記重要語句を削除するステップと、前記重要語句の削除数が１つ以上である場合、前記候補文字列を重要文字列とするステップとを計算機に実行させるためのプログラムである。なお、本発明の要求獲得用プログラムは、記憶装置や記憶媒体に格納することが可能である。
【００１７】
単なる重要語句の羅列でなく、文等の重要部分を抽出することができ、元の文書を参照することなく意味を読み取って要求の概要を把握することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１実施形態における要求獲得システムの例を示すブロック図である。
【図２】本発明の第１実施形態における要求獲得システムの処理経過の例を示すフローチャートである。
【図３】本発明の第２実施形態における要求獲得システムの例を示すブロック図である。
【図４】本発明の第２実施形態における要求獲得システムの強調部２５の処理経過の例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
＜第１実施形態＞
以下に、本発明の第１実施形態について添付図面を参照して説明する。
図１に示すように、本発明の第１実施形態における要求獲得システムは、記憶部１と、獲得部２を備える。
【００２０】
ここで、システム・ソフトウェア開発において、顧客の所持する文書、インタビュー・アンケート調査結果、議事録、仕様書等の関連文書を意味単位で分割した１つ１つの要素を文字列と呼ぶこととする。
【００２１】
例えば、一行に一項目が書かれた文書であれば、一行を文字列と呼ぶことができる。また、例えば、アンケート調査結果で、一人の回答に一つの意味があるとみなす場合には、一人の回答である複数の文を文字列と呼ぶことができる。また、例えば、段落ごとにまとまりのある文書の場合には、段落を文字列と呼ぶことができる。また、例えば、章ごとにまとまりのある文書の場合には、章を文字列と呼ぶことができる。意味単位が文として読点で区切られる場合と行で区切られる場合が混在する文書の場合には、文、及び行を、それぞれ文字列と呼ぶこともできる。
【００２２】
文書は、顧客の所持する文書、インタビュー・アンケート調査結果、議事録、仕様書等の関連文書であり、文字列を含む。ここで、文書が第１版、第２版のように複数あって同時に分析したい場合には、それらの複数の文書をまとめて文書と呼ぶことにする。文書が、議事録と仕様書というように異なる形式で複数ある場合にも、複数の文書をまとめて文書と呼ぶことができるものとする。
【００２３】
記憶部１は、文書記憶部１１と、語句記憶部１２と、重要部分記憶部１３を備える。
【００２４】
文書記憶部１１は、分析対象の文書を記憶する。ここでは、文書記憶部１１は、予め分析対象の文書を記憶している。
【００２５】
語句記憶部１２は、語句の集合を記憶する。ここでは、語句記憶部１２は、分析対象の文書から抽出された語句の集合を記憶する。
【００２６】
重要部分記憶部１３は、重要部分として、分析対象の文書から抽出された語句を１つずつ追加して記憶する。
【００２７】
獲得部２は、語句抽出部２１と、文字列抽出部２２と、語句削除部２３と、文字列追加部２４を備える。
【００２８】
語句抽出部２１は、文書記憶部１１に記憶された文書から、語句の集合を抽出し、語句記憶部１２に記憶する。ここでは、文字列抽出部２２は、１つの文字列を抽出するごとに、文書記憶部１１に記憶された文書から、その１つの文字列を削除する。
【００２９】
文字列抽出部２２は、語句記憶部１２に記憶された語句数が０個である場合、処理を終了する。ここでは、文字列抽出部２２は、語句数が１個以上である場合、文書記憶部１１に記憶された文書から、代表となる１つの文字列（候補文字列）を抽出する。
【００３０】
語句削除部２３は、語句記憶部１２から０個以上の語句を削除する。ここでは、語句削除部２３は、文字列抽出部２２で抽出された１つの文字列に含まれる語句が語句記憶部１２に存在すれば、その語句を語句記憶部１２から削除する。
【００３１】
文字列追加部２４は、文字列抽出部２２で抽出した１つの文字列ずつ重要部分記憶部１３に追加する。ここでは、文字列追加部２４は、語句削除部２３で削除した語句数が１個以上である場合、文字列抽出部２２で抽出した１つの文字列を重要文字列として重要部分記憶部１３に追加して記憶する。それから、文字列追加部２４は、削除した語句数がいくつであっても、文字列抽出部２２に処理を移す。
【００３２】
［ハードウェアの例示］
要求獲得システムの例として、ＰＣ（パソコン）、アプライアンス（ａｐｐｌｉａｎｃｅ）、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。他にも、携帯電話機、スマートフォン、スマートブック、カーナビ（カーナビゲーションシステム）、携帯型ゲーム機、家庭用ゲーム機、携帯型音楽プレーヤー、ハンディターミナル、ガジェット（電子機器）、双方向テレビ、デジタルチューナー、デジタルレコーダー、情報家電（ｉｎｆｏｒｍａｔｉｏｎ  ｈｏｍｅ  ａｐｐｌｉａｎｃｅ）、ＯＡ（Ｏｆｆｉｃｅ  Ａｕｔｏｍａｔｉｏｎ）機器等が考えられる。要求獲得システムは、車両や船舶、航空機等の移動体に搭載されていても良い。また、要求獲得システムは、計算機上に構築された仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ（ＶＭ））環境でも良い。但し、実際には、これらの例に限定されない。
【００３３】
記憶部１の例として、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ等の半導体記憶装置、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の補助記憶装置、又は、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のリムーバブルディスクや、ＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等の記憶媒体（メディア）等が考えられる。また、記憶部１は、計算機本体に内蔵された記憶装置に限らず、周辺機器（外付けＨＤＤ等）や外部のサーバ（Ｗｅｂサーバやファイルサーバ等）に設置された記憶装置、或いは、ＤＡＳ（Ｄｉｒｅｃｔ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）、ＦＣ−ＳＡＮ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  −  Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）、ＩＰ−ＳＡＮ（ＩＰ  −  Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）でも良い。また、記憶部１は、計算機等でも良い。
【００３４】
獲得部２の例として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、マイクロプロセッサ（ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ）、マイクロコントローラ、或いは、専用の機能を有する半導体集積回路（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（ＩＣ））等が考えられる。また、獲得部２は、計算機等でも良い。
【００３５】
但し、実際には、これらの例に限定されない。
【００３６】
［第１実施形態における要求獲得システムの動作］
図２は、本発明の要求獲得システムの処理経過の例を示すフローチャートである。例えば、入力装置等を介して、文書が入力され、文書記憶部１１に記憶されると、要求獲得システムは以下のように動作する。なお、ここでは、文字列として、文を用いた場合を例として説明する。
【００３７】
（１）ステップＡ１
まず、語句抽出部２１は、文書記憶部１１に記憶された文書から、重要語句の集合を抽出する。
【００３８】
ここでは、文は、文字の並んだ文字列と考える。「Ａ＝｛ａ０，ａ１，…，ａｎ−１｝」をｎ個の文字とすると、各文字ａｉは、ひらがな、カタカナ、漢字等のうちの一文字となる。「Ａ＊」をＡ上の有限長の文字列の集合とすると、「Ａ＊」の各要素は、単語や文等となる。
【００３９】
重要語句とは、例えば、予め指定された数以上の文に共通して出現する文字列とする。例えば、指定された数として、「２」等の数を指定して入力する。指定された数は、キーボード等の入力装置を介して要求獲得システムのユーザにより入力されても良いし、他の方式で指定されても良い。
【００４０】
文字列Ｓの部分列「Ｓ（ｓｔ，ｌｅｎ）」は、Ｓのｓｔ番目の文字から順にｌｅｎ個の文字の並びとする。例えば、「Ｓ＝“候補抽出部”」に対して、「Ｓ（０，１）＝“候”」、「Ｓ（０，２）＝“候補”」、「Ｓ（２，２）＝“抽出”」等となる。２つの文である文字列ＳとＴに対し、文字列ｃａｎｄが共通の部分列であるとは、「ｃａｎｄ＝Ｓ（ｓｔ１，ｌｅｎ）＝Ｔ（ｓｔ２，ｌｅｎ）」となる「ｓｔ１」、「ｓｔ２」、「ｌｅｎ」が存在することである。
【００４１】
なお、語句記憶部１２に記憶される語句数を少なくするため、語句を最大長の部分列に限ることにしても良い。文字列ＳとＴに対し、文字列ｃａｎｄが最大長の部分列であるとは、「ｃａｎｄ＝Ｓ（ｓｔ１，ｌｅｎ）＝Ｔ（ｓｔ２，ｌｅｎ）」となる「ｓｔ１」、「ｓｔ２」、「ｌｅｎ」が存在し、任意の「ａ∈Ａ」に対し、「ｃａｎｄ・ａ」が文字列ＳとＴとの両方の部分列ではなく、「ａ・ｃａｎｄ」もまた文字列ＳとＴとの両方の部分列ではないことである。例えば、「Ｓ＝“重要語句を抽出する。”」と、「Ｔ＝“重要語句とは共通部分列である。”」との最大長部分列は、“重要語句”である。“重要語句”は、「ａ＝“語”」が存在し、「ａｎｄ・ａ」が文字列ＳとＴとの両方の部分列となるため、最大長部分列ではない。
【００４２】
更に、語句記憶部１２に記憶される語句数を少なくするため、「以下」、「上記」等の抽出不要な語句や「、」、「。」等の接頭や接尾には不要な語句を予め設定しておき、抽出する語句から除いても良い。
【００４３】
（２）ステップＡ２
次に、語句抽出部２１は、抽出した語句の集合を語句記憶部１２に記憶する。
【００４４】
ここでは、抽出した語句の数をＰとし、抽出したｉ番目の語句をｐｈａｓｅ［ｉ］と表すこととする。従って、抽出した語句の集合は、ｐｈａｓｅ［０］、…、ｐｈａｓｅ［Ｐ−１］となる。
【００４５】
（３）ステップＡ３
文字列抽出部２２は、語句記憶部１２に記憶された語句数Ｐと０とを比較する。このとき、Ｐが０より大きい（Ｐ＞０）場合、ステップＡ４に進み、Ｐが０である（Ｐ＝０）場合、動作を終了する。
【００４６】
（４）ステップＡ４
文字列抽出部２２は、文書記憶部１１に記憶された文書から、重要文の候補となる１件の候補文を抽出する。
【００４７】
候補文の抽出は、例えば、文書記憶部１１に記憶された文書中の各文と、文書記憶部１１に記憶された文書全体との距離を調べ、距離が最小となる文を候補文として抽出すれば良い。ここでいう距離とは、空間的な距離ではなく、２つの文字列が相違（又は類似）している度合いを示す。すなわち、距離は、類似度と読み替えても良い。例えば、文字列の距離の例として、従来よりレーベンシュタイン距離や編集距離等が知られている。
【００４８】
各文と文書全体との距離は、例えば、圧縮を用いて以下のように計算することができる。
【００４９】
まず、テキストを圧縮するアルゴリズムが指定されたとする。圧縮アルゴリズムは、キーボード等の入力装置を介して要求獲得システムのユーザにより入力されても良いし、他の態様で指定されても良い。圧縮アルゴリズムの例としては、「ｇｚｉｐ」等が知られている。
【００５０】
文書記憶部１１に記憶されたｉ番目の文を圧縮した場合のサイズを「Ｃ（ｉ）」、文書全体を圧縮した場合のサイズを「Ｃ（ａｌｌ）」、文書全体にｉ番目の文を追加した場合の圧縮サイズを「Ｃ（ａｌｌ・ｉ）」とすると、ｉ番目の文と文書全体の距離を、以下の数式「数１」又は数式「数２」等により計算する。
【００５１】
【数１】
2011118428.tif 000003
【００５２】
【数２】
2011118428.tif 000004
【００５３】
これらは、コルモゴロフ複雑性（Ｋｏｌｍｏｇｏｒｏｖ  ｃｏｍｐｌｅｘｉｔｙ）を近似する方法であるとみなすことができる。圧縮サイズは、部分列が一致すればするほど、その一致部分を短い符号とすることができるので、ｉ番目の文と文書全体が部分的に一致すればするほど、数式「数１」や数式「数２」で計算される距離は小さくなる。
【００５４】
或いは、文書全体からｉ番目の文を取り除いた場合の圧縮サイズを「Ｃ（ａｌｌ−ｉ）」として、以下の数式「数３」や数式「数４」等により計算しても良い。
【００５５】
【数３】
2011118428.tif 000005
【００５６】
【数４】
2011118428.tif 000006
【００５７】
（５）ステップＡ５
それから、文字列抽出部２２は、抽出した候補文を文書記憶部１１から削除する。
【００５８】
（６）ステップＡ６
語句削除部２３は、語句番号ｐに０を代入（ｐ＝０）して初期化し、削除語句数ｎに０を代入（ｐ＝０）して初期化する。なお、語句番号ｐは、語句記憶部１２に記憶された語句の順を示す。削除語句数ｎは、削除する語句の数を示す。
【００５９】
（７）ステップＡ７
語句削除部２３は、語句番号ｐと語句記憶部１２に記憶された語句数Ｐとを比較する。このとき、ｐがＰ未満（ｐ＜Ｐ）である場合、ステップＡ８に進み、ｐがＰ以上（ｐ≧Ｐ）である場合、ステップＡ１２に進む。
【００６０】
（８）ステップＡ８
語句削除部２３は、語句記憶部１２に記憶されたｐ番目の語句ｐｈｒａｓｅ［ｐ］を候補文が含むかどうかを調べる。このとき、ｐｈｒａｓｅ［ｐ］を候補文が含まない場合、ステップＡ９に進み、ｐｈｒａｓｅ［ｐ］を候補文が含む場合、ステップＡ１０に進む。
【００６１】
（９）ステップＡ９
語句削除部２３は、語句番号ｐを１増やす。その後、ステップＡ７に戻る。
【００６２】
（１０）ステップＡ１０
語句削除部２３は、語句記憶部１２に記憶されたｐ番目の語句ｐｈｒａｓｅ［ｐ］を候補文が含む場合、ｐｈｒａｓｅ［ｐ］を空列とする。
【００６３】
（１１）ステップＡ１１
語句削除部２３は、削除語句数ｎを１増やす。その後、ステップＡ９に進み、語句番号ｐを１増やす。その後、ステップＡ７に戻る。
【００６４】
（１２）ステップＡ１２
語句削除部２３は、ｐがＰ以上（ｐ≧Ｐ）である場合、語句記憶部１２に記憶された空列以外のＰ−ｎ個の語句を、改めて番号を振り直して、ｐｈｒａｓｅ［０］、…、ｐｈｒａｓｅ［Ｐ−ｎ−１］とし、ＰにＰ−ｎを代入する。
【００６５】
（１３）ステップＡ１３
文字列追加部２４は、語句削除部２３で空列として削除された語句数ｎと０とを比較する。このとき、語句数ｎが０より大きい（ｎ＞０）場合、ステップＡ１４に進み、語句数ｎが０である（ｎ＝０）場合、ステップＡ４に戻る。
【００６６】
（１４）ステップＡ１４
文字列追加部２４は、候補文を重要文として重要語句記憶部に追加して記憶する。その後、ステップＡ３に戻る。
【００６７】
なお、事前に重要語句が判明している場合には、語句抽出部２１が語句の抽出を行うことなく、語句記憶部１２に予め重要語句の集合を記憶させておいてから、本発明を実施しても良い。その場合、語句記憶部１２への重要語句の集合の記憶は、キーボード等の入力装置を介して要求獲得システムのユーザにより入力されても良いし、他の態様で指定されても良い。
【００６８】
本実施形態では、単なる重要語句の羅列でなく、文等の重要部分を抽出することができるため、分析者は元の文書を参照することなく意味を読み取って要求の概要を把握することができる。従って、分析者の手間と時間を削減することができる。
【００６９】
また、本実施形態では、単語分割の誤りが起き、また、造語や未知語に対応できない形態素解析を用いない。従って、形態素解析を用いた場合に比べ、より正確に重要部分を抽出することができる。
【００７０】
＜第２実施形態＞
図３に示すように、本発明の第２実施形態における要求獲得システムは、記憶部１と、獲得部２を備える。
【００７１】
記憶部１は、文書記憶部１１と、語句記憶部１２と、重要部分記憶部１３と、全語句記憶部１４を備える。
【００７２】
文書記憶部１１と、語句記憶部１２と、重要部分記憶部１３は、第１実施形態と同様である。すなわち、本実施形態における記憶部１は、第１実施形態における記憶部１に、全語句記憶部１４を追加したものでも良い。
【００７３】
全語句記憶部１４は、処理終了までの間に、語句抽出部２１により抽出された全ての語句の集合を記憶する。
【００７４】
獲得部２は、語句抽出部２１と、文字列抽出部２２と、語句削除部２３と、文字列追加部２４と、強調部２５を備える。
【００７５】
語句抽出部２１は、文書記憶部１１に記憶された文書から、語句の集合を抽出し、語句記憶部１２、及び全語句記憶部１４に記憶する。第１実施形態における語句抽出部２１との違いは、語句記憶部１２だけでなく、全語句記憶部１４にも語句の集合を記憶することである。
【００７６】
文字列抽出部２２と、語句削除部２３と、文字列追加部２４は、第１実施形態と同様である。すなわち、本実施形態における獲得部２は、第１実施形態における獲得部２に、強調部２５を追加したものでも良い。
【００７７】
強調部２５は、重要部分記憶部１３に記憶された文字列の集合に対し、全語句記憶部１４に記憶された語句の部分を強調して表示する。又は、強調部２５は、分析対象の元の文書に対し、重要部分記憶部１３に記憶された文字列の集合と全語句記憶部１４に記憶された語句の集合とのいずれか、或いはそれら両方を強調して表示しても良い。
【００７８】
［第２実施形態における要求獲得システムの動作］
本実施形態における語句抽出部２１の処理では、第１実施形態における語句抽出部２１の処理に加えて、全語句記憶部１４にも語句の集合を記憶する。全語句記憶部１４は、処理の過程で語句が削除されないため、処理が終了するまで、語句抽出部２１が抽出した語句集合が全て残ったままである。
【００７９】
図４は、本発明の要求獲得システムの強調部２５の処理経過の例を示すフローチャートである。ここでは、文字列として、文を用いた場合を例として説明する。
【００８０】
（１）ステップＢ１
まず、強調部２５は、語句番号ｐに０を代入（ｐ＝０）して初期化し、全語句数Ｐを全語句記憶部１４に記憶された語句の数とする。
【００８１】
（２）ステップＢ２
次に、強調部２５は、語句番号ｐと全語句数Ｐとを比較する。このとき、語句番号ｐが全語句数Ｐ未満（ｐ＜Ｐ）である場合、ステップＢ３に進み、語句番号ｐが全語句数Ｐ以上（ｐ≧Ｐ）である場合、動作を終了する。
【００８２】
（３）ステップＢ３
強調部２５は、重要部分記憶部１３に記憶された重要文の集合である文書に対し、全語句記憶部１４に記憶されたｐ番目の語句ｐｈｒａｓｅ［ｐ］の部分を探索し、ｐｈｒａｓｅ［ｐ］の部分を強調する。
【００８３】
ここで、強調とは、以下の（Ａ）〜（Ｉ）のいずれか、又はその組合せ等である。
（Ａ）文字列の色を変えて表示する
（Ｂ）文字列の字体を変える（太文字、斜体文字等）
（Ｃ）文字列に下線をつける
（Ｄ）文字列を括弧等の記号で囲む
（Ｅ）文字列の背景色を変える
（Ｆ）文字列以外を網掛けする
（Ｇ）文字列の上又は下に記号をつける
（Ｈ）文字列部分の改行（及び字下げ）を行う
（Ｉ）文字列の前後に空白や記号等を挿入する
【００８４】
（４）ステップＢ４
強調部２５は、語句番号ｐを１増やす。その後、ステップＢ２に戻る。
【００８５】
最後に、強調部２５は、ステップＢ２において、語句番号ｐが全語句数Ｐ以上（ｐ≧Ｐ）となり、動作を終了する際、重要語句を強調表示して、ディスプレイやプリンタ等の出力装置に出力しても良い。
【００８６】
第２実施形態では、重要語句を強調して重要部分を表示することができる。従って、要求獲得システムのユーザは、重要語句を重点的に見ることができ、要求を把握する手間と時間を少なくすることができる。
【００８７】
なお、上記の各実施形態は、組み合わせて実施することも可能である。
【００８８】
＜産業上の利用可能性＞
本発明は、例えば、文書中からの重要部分抽出、特に、システム・ソフトウェア開発において、顧客の所持する文書、インタビュー・アンケート調査結果、議事録、仕様書等の関連文書からの要求獲得に適用できる。
【００８９】
＜本発明の特徴＞
以上のように、本発明では、システム・ソフトウェア開発において、顧客の所持する文書、インタビュー・アンケート調査結果、議事録、仕様書等の関連文書から、少ない手間と時間で要求を把握することを目的とする。
【００９０】
本発明の要求獲得システムは、語句抽出部と、文字列抽出部と、語句削除部と、文字列追加部を備える。語句抽出部は、文字列の集合である文書から、複数の文字列で共通する１つ以上の部分列を重要語句として抽出する。文字列抽出部は、重要語句がない場合、処理を終了し、重要語句がある場合、文書から、文書を代表する１つの文字列を候補文字列として抽出し、文書から抽出した候補文字列を削除する。語句削除部は、候補文字列に含まれる重要語句を削除する。文字列追加部は、重要語句の削除数が１つ以上である場合、候補文字列を重要文字列とし、文字列抽出部に戻って処理を続ける。
【００９１】
本発明の要求獲得方法では、文字列の集合である文書から、複数の文字列で共通する１つ以上の部分列を重要語句として抽出する。また、重要語句がない場合、処理を終了し、重要語句がある場合、文書から、文書を代表する１つの文字列を候補文字列として抽出し、文書から抽出した候補文字列を削除する。また、候補文字列に含まれる重要語句を削除する。また、重要語句の削除数が１つ以上である場合、候補文字列を重要文字列とし、文字列抽出部に戻って処理を続ける。
【００９２】
本発明の要求獲得用プログラムは、文字列の集合である文書から、複数の文字列で共通する１つ以上の部分列を重要語句として抽出するステップと、重要語句がない場合、処理を終了し、重要語句がある場合、文書から、文書を代表する１つの文字列を候補文字列として抽出し、文書から抽出した候補文字列を削除するステップと、候補文字列に含まれる重要語句を削除するステップと、重要語句の削除数が１つ以上である場合、候補文字列を重要文字列とし、再度、文書を代表する１つの文字列を候補文字列として抽出するステップとを計算機に実行させるためのプログラムである。なお、本発明の要求獲得用プログラムは、記憶装置や記憶媒体に格納することが可能である。
【００９３】
文字列は、文、一行、段落、章のいずれか、又はその組合せである。すなわち、文、一行、段落、及び章のうち少なくとも１つを文字列として扱う。
【００９４】
また、文書を代表する１つの文字列を候補文字列として抽出する際、文書に含まれる各文字列と文書との距離を計算し、距離が最小となる文字列を候補文字列として抽出する。
【００９５】
また、文書を代表する１つの文字列を候補文字列として抽出する際、コルモゴロフ複雑性の近似計算法に基づいて、各文字列と文書との距離を計算する。
【００９６】
本発明では、単なる重要語句の羅列でなく、文等の重要部分を抽出することができるため、分析者は元の文書を参照することなく意味を読み取って要求の概要を把握することができる。従って、分析者の手間と時間を削減することができる。
【００９７】
また、従来の形態素解析を用いた手法では、単語分割の誤りにより正確に重要語句を抽出できないという問題があった。一方、本発明では、部分列に基づくため、より正確に重要語句を抽出することができる。例えば、「外国人参政権について」、「ここで、参政権は・・・」、「外国人の・・・」という３文の場合、従来の形態素解析を用いると、「外国」しか抽出できないが、本発明では、「外国人」、「参政権」を重要語句として抽出することができ、強調表示することができる。
【００９８】
また、本発明は、既存の単語を組み合わせて造られた造語や、既存の単語の一部を用いた省略語のような未知語があっても、重要部分を抽出できる。また、造語や省略語のような未知語であっても重要語句として強調することができる。
【００９９】
このように、本発明では、文字列の集合である文書から、複数の文字列で共通する１つ以上の部分列を重要語句として抽出する。重要語句がない場合、処理を終了する。重要語句がある場合、文書から、文書を代表する１つの文字列を候補文字列として抽出し、文書から抽出した候補文字列を削除し、候補文字列に含まれる重要語句を削除する。重要語句の削除数が１つ以上である場合、候補文字列を重要文字列とし、文字列抽出部に戻って処理を続ける。
【０１００】
本発明では、文書から抽出済みの文字列を削除するので、文字列抽出部は、２回目以降の処理において、異なる類似度を計算する。従って、距離の近い順に候補文字列を抽出するのではなく、予め閾値を定める必要がない。
【０１０１】
文字列を文とした例を示す。例えば、文書が以下の５文から構成されるとする。
「データを入力する」、「データを処理する」、「データを入力後に処理する」、「結果を出力する」、「データを処理後に結果を出力する」
【０１０２】
まず、最大長の部分列とした場合の重要語句は、「データを」、「入力」、「処理する」、「後に」、「結果を」、「出力する」である。
【０１０３】
文字列抽出部は、第１回目の処理において、「データを入力後に処理する」を抽出する。語句削除部は、重要語句の集合から「データを」「入力」、「処理する」、「後に」を削除するので、残る重要語句は、「結果を」、「出力する」である。
【０１０４】
文字列抽出部は、第１回目の処理において、文書が「データを入力する」、「データを処理する」、「結果を出力する」、「データを処理後に結果を出力する」に変更されているため、第２回目の処理において、「結果を出力する」を抽出する。
【０１０５】
ここで、第１文が削除された文書との類似度を再計算するため、第２文は第１文との類似度が高いとは限らない。
【０１０６】
語句削除部は、重要語句の集合から「出力する」を削除するので、動作が終了する。
【０１０７】
本発明を実施した結果、抽出された重要文字列は、「データを入力後に処理する」、「結果を出力する」となる。
【０１０８】
本発明では、語句削除部が重要語句を削除するため、文字列追加部の２回目以降の処理において、候補文字列であっても重要語句がなく重要文字列とならない場合がある。
【０１０９】
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【０１１０】
なお、本出願は、日本出願番号２０１０−０７１８６０に基づく優先権を主張するものであり、日本出願番号２０１０−０７１８６０における開示内容は引用により本出願に組み込まれる。
【図１】
2011118428.tif 000007
【図２】
2011118428.tif 000008
【図３】
2011118428.tif 000009
【図４】
2011118428.tif 000010
【国際調査報告】
2011118428.tif 000011
2011118428.tif 000012
2011118428.tif 000013
2011118428.tif 000014