次に、本発明を実施する形態について図面を参照して詳細に説明する。以下の各実施形態に記載されているキーワード抽出システムの構成は単なる例示であり、本発明の技術範囲はそれらには限定されない。
以下の各実施形態において説明されるキーワード抽出システムは、単体の専用ハードウェア装置、あるいは、1以上の専用ハードウェア装置の組合せにより実現されてもよい。また、係るキーワード抽出システムは、1以上の物理的なコンピュータ又は仮想的なコンピュータ又はそれらの組合せにより構成されるシステムとして実現されてもよい。係る情報処理装置を実現するハードウェア構成例(図16)については後述する。
複数の物理的あるいは論理的に離間した構成要素(上記ハードウェア装置、各種コンピュータ等)を用いて本発明に係るキーワード抽出システムを実現する場合、それらの構成要素は、任意の通信ネットワークを用いて、相互に通信可能性に接続されていてもよい。係る通信ネットワークは、無線、有線、あるいはそれらの組合せにより構成されてもよい。なお、本発明に係るキーワード抽出システムが、仮想的なコンピュータを用いて実現される場合、上記通信ネットワークは、仮想的な通信ネットワークとして構成されてもよい。
<第1の実施形態>
以下、本発明の第1の実施形態におけるキーワード抽出システムについて図面を参照して詳細に説明する。本実施形態に係るキーワード抽出システム(図1の100)は、例えば、RFP、契約書、法令や約款などの文書からキーワードを抽出する。これらの文書においては、記載内容に齟齬が生じないよう、同一の概念に対して同一の語句が使用されていると仮定することができる。
例えば、RFPにおいて、同一の機能名に対して「A」、「A’」と異なる表記が割り当てられていた(表記揺れが発生していた)場合を想定する。この場合、「A」と、「A’」とが同一の機能を示すのか、異なる機能を示すのかが曖昧になる。これにより、「A」と、「A’」とが同一の機能であると解釈した場合の提案依頼書と、異なる機能であると解釈した場合の提案依頼書とを比較評価することが困難になってしまう。このような事態を防ぐため、RFP等の文書においては、同一の概念に対して同一の語句が使用されている(即ち、同一概念を表す語句に対する表記揺れが比較的少ない)と考えられる。これは、契約書、法令や約款においても同様であると考えられる。即ち、これらの文書においても、契約書、法令や約款の効力範囲を明確にするため、同一の概念に対し同一の語句が使用されていると仮定することができる。
本実施形態に係るキーワード抽出システムは、上記したような文書の特徴を考慮し、表記揺れの少なさ、即ち類似する文字列(類似文字列)の少なさに基づいて、キーワードを抽出する。なお、本実施形態に係るキーワード抽出システムは上記例示したRFP、契約書、法令、あるいは約款等に限らず、その他の一般的な文書等にも適用可能である。
図1を参照すると、本実施形態に係るキーワード抽出システム100は、大別して、情報を記憶する記憶部101と、プログラム制御により動作する演算部104とから構成されている。
記憶部101は、文書記憶部102と、候補語句記憶部103とを備える。
文書記憶部102は、キーワード抽出の対象となる文書を記憶する。係る文書は、例えば、RFP、契約書、法令や約款などを含む。上記文書は、キーワード抽出システム100のユーザが、各種入力装置(キーボードなど)を介して入力することにより、指定されてもよい。また、上記文書は、キーワード抽出システム100に予め記憶(登録)されてもよい。上記に限定されず、上記文祖は、上記以外の任意の方法により指定されてもよい。図3は、文書記憶部102に記憶された文書の具体例を示す図である。
候補語句記憶部103は、キーワードの候補となる語句(以下「候補語句」と称する)を記憶する。図4は、候補語句記憶部103に記憶された候補語句の具体例を示す図である。図4に示す表において、1行目は列見出しを示しており、1列目は候補語句の番号、2列目は候補語句を示している。3列目は2列目の候補語句がキーワードか否かを表す判定結果を示しており、4列目は3列目の判定結果に関する説明を示している。以降、説明を簡単にするため、番号(1列目)がiの候補語句を、候補語句iと表記する。
演算部104は、候補語句抽出部105と、キーワード判定部106とを備える。
候補語句抽出部105は、文書記憶部102に記憶された文書から、キーワードの候補となる語句である候補語句を抽出し、候補語句記憶部103に記憶(登録)する。係る候補語句の抽出方法は、キーワード抽出システム100のユーザが、各種入力装置(キーボードなど)を介して入力することにより指定されてもよい。また、上記候補語句の抽出方法は、システムに予め記憶されてもよい。上記候補語句の抽出方法は、これらに限定されず、それ以外の任意の方法を採用してよい。
より具体的には、候補語句を抽出する処理(候補語句の抽出処理)においては、例えば、キーワードを構成する単語の品詞が予め定められていてもよい。この場合、候補語句抽出部105は、文書に対して形態素解析を行い、予め定められた品詞で構成される語句を抽出してもよい。
また、候補語句の抽出処理においては、キーワードに出現しない不要文字(句点や読点など様々な記号や平仮名など)が予め定められていてもよい。この場合、候補語句抽出部105は、キーワードに出現しない文字以外の部分を候補語句として抽出してもよい。
また、候補語句抽出部105は、予め定めた品詞で、かつ、予め定めた不要文字を除いた語句を抽出してもよい。また、候補語句抽出部105は、キーワードとする語句の文字数(例えば2文字以上等)を予め定めてもよい。
キーワード判定部106は、候補語句記憶部103に記憶されたそれぞれの候補語句がキーワードであるか否かを判定し、判定結果を候補語句記憶部103に記憶する。
より具体的には、キーワード判定部106は、候補語句記憶部103に記憶された候補語句のうち、他の候補語句の部分文字列となる候補語句をキーワードの候補から除外する。そして、キーワード判定部106は、除外されずに残った候補語句のうち、ある候補語句に対して、当該候補語句に類似する類似文字列を部分文字列として含む他の候補語句(類似候補語句)を検出する。この場合、キーワード判定部106は、例えば、当該検出した他の候補語句(類似候補語句)の数を計数してもよい。キーワード判定部106は、上記検出した他の候補語句に関する情報に基づいて、ある候補語句がキーワードであるか否かを判定し、判定結果を候補語句記憶部103に記憶する。より具体的には、キーワード判定部106は、例えば、当該検出した他の候補語句の数に基づいて、ある候補語句がキーワードであるか否かを判定してもよい。
文字列Tのi番目の文字をt(i)と表記すると、文字列「T=t(1)・・・t(n)」の部分文字列(substring)T’は、「T’=t(1+i)・・・t(n−j)(ただし、i≧0かつj≧0)」により表される文字列である。即ち、部分文字列T’は、文字列Tの一部に含まれる文字列である。
候補語句の集合を{S1, S2, ・・・, SN}と表記すると、i番目の候補語句Siが他の候補語句の部分文字列であるとは、「∃Sj∈{S1, S2, ・・・, SN}(ただし、Sj≠SiかつSiがSjの部分文字列)」という関係が満たされることを表す。即ち、i番目の候補語句Siが、候補語句の集合に含まれる他の候補語句を構成する文字列の一部に含まれる場合、候補語句Siは当該他の候補語句の部分文字列である。
類似候補語句をどう定めるか(即ち、類似候補語句の判定方法)は、キーワード抽出システム100のユーザが各種入力装置(キーボードなど)を介して入力することにより指定されてもよい。また、類似候補語句の判定方法は、システムにデフォルトとして記憶されてもよい。上記に限定されず、類似候補語句の判定方法は、それ以外の任意の方法により指定されてよい。
候補語句iの類似候補語句は、例えば、候補語句iに対し特定数(例えば1文字)の文字の追加、削除、置換(以下、まとめて「変換」と称する場合がある)の少なくとも何れかを行った文字列を含む候補語句であってもよい。また、キーワード判定部106は、候補語句iに対して他の候補語句が類似候補語句に該当するか否かを、候補語句iの文字列長に基づいて定めたルールを用いて判定してもよい。
図7は、キーワード判定部106が判定結果を記憶(登録)した後の候補語句記憶部103の具体例を示す図である。図7においては、候補語句1「参考見積書」、候補語句2「提出」、候補語句5「省略語」がキーワードとして判定されている。これらの候補語句がキーワードとして判定された理由に関しては、後述する。
なお、図4乃至図7に例示する具体例においては、以下のようなルールに基づいた判定方法を用いて、キーワード判定部103が、ある候補語句iに対する類似候補語句を判定(検出)する。
即ち、候補語句iが3文字以上の場合、当該候補語句iに対して1文字の追加、削除、あるいは、置換(変換)を行った文字列が、類似文字列として判定される。これにより、キーワード判定部103は、係る類似文字列を部分文字列として含む、候補語句i自身以外の他の候補語句を、類似候補語句として判定(検出)する。
また、候補語句iが2文字の場合、当該候補語句に対して1文字の追加あるいは置換を行った文字列が、類似文字列として判定される。これにより、キーワード判定部103は、係る類似文字列を部分文字列として含む、候補語句i自身以外の候補語句を、類似候補語句として判定(検出)する。換言すると、係るルールにおいては、2文字の候補語句iに対しては、当該候補語句iから1文字の削除した他の候補語句は、類似候補語句と判定されない。
キーワード判定部103は、候補語句iに対する類似候補語句の数が「0(零)」である場合、当該候補国iをキーワードと判定する。キーワード判定部103の詳細な処理は後述する。
次に、図2に例示するフローチャートを参照して、本実施形態におけるキーワード抽出システム100の動作について詳細に説明する。
まず、候補語句抽出部105は、文書記憶部102に記憶された文書から、キーワードの候補となる語句である候補語句を抽出する(ステップS201)。候補語句の抽出処理においては、例えば、キーワードを構成する単語の品詞が予め定められてもよい(例えば、予めキーワード抽出システムに設定されてもよい)。この場合、候補語句抽出部105は、文書に対して形態素解析を行い、予め定めた品詞で構成される語句を抽出してもよい。
また、候補語句の抽出処理においては、キーワードに出現しない不要文字(句点や読点など様々な記号や平仮名など)が予め定められてもよい(例えば、予めキーワード抽出システムに設定されてもよい)。この場合、候補語句抽出部105は、キーワードに出現しない文字以外の部分を候補語句として抽出してもよい。
また、候補語句抽出部105は、予め定められた品詞で、かつ、予め定められた不要文字を除いた語句を抽出してもよい。また、候補語句抽出部105は、キーワードとする語句の文字数を、例えば「2文字以上」などと予め定めてもよい。
以下、図3に例示する文書を例として、候補語句の抽出について説明する。例えば、キーワードの品詞が予め名詞あるいは動詞と設定されていた場合、候補語句抽出部105は、図3に例示する文書から、以下の名詞あるいは動詞を抽出する。即ち、候補語句抽出部105は、図3に例示する文書から「参考見積書」、「提出する」、「参考見積書」、「6」、「2」、「参照」、「省略語」、「記述」、「略語」、「分かる」、「記載する」を抽出する。候補語句抽出部105は、上記語句を抽出する際、周知の形態素解析処理を実行してもよい。係る形態素解析処理としては、例えば、MeCab等の形態素解析ソフトウェアを採用可能であるが、本実施形態はこれには限定されない。
また、キーワードに出現しない不要文字として、数字あるいは平仮名が含まれるよう予め設定されていた場合、候補語句抽出部105は、抽出した語句から、「6」、「2」を除外する。更に、候補語句抽出部105は、「提出する」を「提出」に置換し、「分かる」を「分」に置換し、「記載する」を「記載」に変換する。
また、キーワードとする語句の文字数が2以上と予め定められていた場合、候補語句抽出部105は、抽出した語句から1文字の語句である「分」を削除する。
候補語句抽出部105は、上記した処理により抽出した語句を、候補語句記憶部103に記憶(登録)する。その結果、候補語句記憶部103には、図4に例示するような語句が記憶される。
なお、上記においては、平仮名を単純に削除する場合を例として説明したが、実際には、「さいたま」、「たばこ」など、キーワードの一部となり得る平仮名表記の文字列が存在する。平仮名により表記された文字列を単純に削除した場合、候補語句抽出部105は、これらの平仮名により表記された候補語句を抽出できない場合がある。この場合、最終的に平仮名により表記されたキーワードを抽出できない可能性がある。これに対して、平仮名により表記されたキーワードを抽出可能とするべく、平仮名であっても削除しない文字列が予め定められてもよい。候補語句抽出部105は、係る予め定められた平仮名の文字列を削除しないように、候補語句の抽出処理を行ってもよい。
また、上記においては、単純に連続する名詞や動詞を連結して候補語句とする場合を具体例として説明した。しかしながら、実際には、単純に連続する語句を連結した場合、キーワードとして適切ではない語句が抽出される可能性がある。例えば、文書に「考慮の上構築」という文字列が記述されていた場合、候補語句抽出部105は、単純に連続する語句を連結することにより、「考慮」と「上構築」を候補語句として抽出する。この場合「上構築」という語句は、キーワードの候補として不適切であると考えられる。このため、「考慮の上」といった頻出する言い回しを予め定めておき、候補語句抽出部105は、「上」を削除して候補語句を抽出するよう処理してもよい。
また、候補語句抽出部105は、名詞や動詞の単純な連結だけでなく、「省略語の記述」のように、”名詞+「の」+名詞”という形式の候補語句を抽出してもよい。なお、この場合、候補語句として抽出する任意の形式(品詞あるいは形態素の並び等)が、予めキーワード抽出システム100に登録されてもよい。
次に、キーワード判定部106は、候補語句記憶部103に記憶された候補語句に重複する候補語句が含まれる場合、文書において2回目以降に現れる重複した候補語句をキーワードの候補から除外する(ステップS202)。即ち、キーワード判定部106は、2回目以降の重複した候補語句をキーワードに該当しない(「不可」)と判定する。
図4を例に説明すると、まず、キーワード判定部106は、候補語句1と候補語句3とが重複している(ともに「参考見積書」)ことを検出する。これに基づいて、キーワード判定部106は、文書(図3)において2回目以降に現れる番号3の判定を「不可」とする。
図5は、図4に例示する候補語句のうち、キーワード判定部106が、重複する候補語句に関する判定を「不可」とした結果を例示する図である。図5に例示する具体例において、番号3に対する説明欄(4列目)には、当該番号3の語句に関する判定が「不可」とされた理由(原因)が登録される。即ち、係る説明欄の記載は、当該番号3の語句について、重複候補語句があること、及び、係る重複候補語句は候補語句1であることを示している。係る説明欄の記載は、機械解釈可能な任意の形式を用いて表されてよい。
次に、キーワード判定部106は、候補語句記憶部103に記憶された候補語句のうち、他の候補語句の部分文字列となる候補語句を、キーワードの候補から除外する(ステップS203)。即ち、キーワード判定部106は、他の候補語句の部分文字列となる候補語句の判定を「不可」とする。
図5を例に説明すると、まず、キーワード判定部106は、候補語句7が候補語句5の部分文字列であることを検出する。これに基づいて、キーワード判定部106は、番号7の判定を「不可」とする。
図6は、図5に例示する候補語句のうち、他の候補語句の部分文字列に該当する候補語句についてキーワード判定部106が「不可」と判定した結果を例示する図である。図6において、番号7に対する説明欄(4列目)には、当該番号7の語句が「不可」と判定された理由(原因)が登録される。即ち、係る説明欄の記載は、当該番号7の候補語句が、他の候補語句5の部分文字列であることを示している。
なお、図2に例示するフローチャートにおいては、重複する候補語句を除外する処理(ステップS202)と、部分文字列に該当する候補語句を除外する処理(ステップS203)とを別の処理(ステップ)としたが、これらのステップは統合してもよい。具体的には、キーワード判定部106は、ある候補語句iが他の候補語句jの部分文字列であるとともに、係る候補語句iと、候補語句jとの文字数が同じ場合に、候補語句iと候補語句jとが重複すると判定してもよい。即ち、この場合、候補語句の重複は、部分文字列で文字数が同じ場合と考えられる。キーワード判定部106は、重複した候補語句のうち1つ残すように処理することにより、ステップS202と、ステップS203とを統合してもよい。以下、他の候補語句の部分文字列に相当する文字列が除外された残りの候補語句を、第1の候補語句と称する場合がある。例えば、図6に例示する具体例においては、第1の候補語句は、番号が1、2、4、5、6、及び8の候補語句である。
次に、キーワード判定部106は、候補語句の番号iを1に初期化する(ステップS204)。
次に、キーワード判定部106は、番号iと候補語句数Nとを比較する(ステップS205)。候補語句数N(Nは自然数)は、ステップS201乃至S204において抽出された候補語句の総数である。図4乃至図7に例示する具体例において、候補語句数Nは、「8」である。キーワード判定部106は、iがNより大の場合(ステップS205においてYES)は、ステップS211に処理を移行し、iがN以下の場合(ステップS205においてNO)は、次のステップ(ステップS206)に処理を移行する。
次に、キーワード判定部106は、候補語句iの判定が「不可」であるか否かを確認する(ステップS206)。キーワード判定部106は、判定が「不可」の場合(ステップS206においてYES)は、ステップS210に処理を移行し、判定が「不可」でない場合(ステップS206においてNO)は、次のステップ(ステップS207)に処理を移行する。
次に、キーワード判定部106は、候補語句iと候補語句i以外で判定が「不可」ではない候補語句とを比較することにより、類似候補語句を検出する(ステップS207)。
候補語句iの類似候補語句とは、例えば、候補語句iに対して特定数の文字の追加、削除、置換の何れかを行った文字列を含む候補語句である。なお、以下、係る特定数が「1」(1文字)である場合の具体例を説明するが、本実施形態はこれには限定されない。
候補語句iに対して追加、削除、置換する文字数は、ユーザ等により任意に定められていよい。即ち、候補語句iに対して何文字までの追加、削除、置換を行った候補語句を類似候補語句と判定するか(類似候補語句の判定基準)は、キーワード抽出システムのユーザが、各種入力装置(例えばキーボードなど)を介して入力することにより指定してもよい。また、上記類似候補語句の判定基準は、キーワード抽出システム100に予め記憶されてもよい。上記に限定されず、上記類似候補語句の判定基準は、上記以外の任意の方法により指定されてもよい。
n文字の候補語句「T=t(1)・・・t(n)」に対する1文字追加の文字列は、「T’=t(1)・・・t(iー1) s t(i)・・・t(n)、(ただし1≦i≦n、sは任意の文字)」と表される文字列である。即ち、これは、候補語句Tのi番目に文字sを追加した文字列を表す。
n文字の候補語句「T=t(1)・・・t(n)」に対する1文字削除の文字列は、「T’=t(1)・・・t(iー1) t(i+1)・・・t(n)、(ただし、1≦i≦n)」と表される文字列である。これは、候補語句Tのi番目の文字を削除した文字列を表す。
n文字の候補語句「T=t(1)・・・t(n)」に対する1文字置換の文字列は、「T’=t(1)・・・t(iー1) s t(i+1)・・・t(n)、(ただし、1≦i≦n、sは任意の文字)」と表される文字列である。これは、候補語句Tのi番目の文字をsに置換した文字列を表す。
図4乃至図7に例示する具体例においては、以下のようなルールに基づいた判定方法を用いて、キーワード判定部103が、ある候補語句iに対する類似候補語句を判定(検出)する。
まず、候補語句iが3文字以上の場合、当該候補語句iに対して1文字の追加、削除、置換を行った文字列を部分文字列として含む、候補語句i自身以外の候補語句が、類似候補語句と判定される。
また、候補語句が2文字の場合、当該候補語句に対して1文字の追加、置換を行った文字列を部分文字列として含む、候補語句i自身以外の候補語句が、類似候補語句と判定される。すなわち、候補語句が2文字の場合、当該候補語句iから1文字の削除した他の候補語句は、類似候補語句と判定されない。
なお、本実施形態は上記に限定されず、候補語句iに対して追加、削除、置換する文字列の文字数は、適宜選択可能である。
図6を例に、本ステップS207の処理について説明する。まず、iが1の場合、図6を参照すると候補語句i(候補語句1)は「参考見積書」である。キーワード判定部106は、当該候補語句iと、候補語句i自身以外で判定が「不可」ではない候補語句2、4、5、6、8とを比較する。係る比較の結果、上記ルールに合致する他の候補語句が存在しないことから、キーワード判定部106は、類似候補語句を検出しない。
次に、iが2の場合、候補語句i(候補語句2)は「提出」である。キーワード判定部106は、当該候補語句iと、候補語句i自身以外で判定が「不可」ではない候補語句1、4、5、6、8と比較する。係る比較の結果、上記ルールに合致する他の候補語句が存在しないことから、キーワード判定部106は、類似候補語句を検出しない。
次に、iが4の場合、候補語句i(候補語句4)は「参照」である。キーワード判定部106は、当該候補語句iと、当該候補語句i自身以外で判定が「不可」ではない候補語句1、2、5、6、8とを比較する。係る比較の結果、候補語句4「参照」の1文字「照」を「考」に置換すると「参考」となることから、キーワード判定部106は、候補語句4が候補語句1「参考見積書」に含まれると判定する。これにより、キーワード判定部106は、候補語句4に対する類似候補語句として「参考見積書」(候補語句1)を検出する。
次に、iが5の場合、候補語句i(候補語句5)は「省略語」である。キーワード判定部106は、当該候補語句iと、候補語句i自身以外で判定が「不可」ではない候補語句1、2、4、6、8と比較する。係る比較の結果、上記ルールに合致する他の候補語句が存在しないことから、キーワード判定部106は、類似候補語句を検出しない。
次に、iが6の場合、候補語句i(候補語句6)は「記述」である。キーワード判定部106は、候補語句iと、当該候補語句i自身以外で判定が「不可」ではない候補語句1、2、4、5、8と比較する。係る比較の結果、候補語句6「記述」の1文字「術」を「載」に置換すると、「記載」(候補語句8そのもの)であることから、キーワード判定部106は、候補語句6に対する類似候補語句として、「記載」(候補語句8)を検出する。
次に、iが8の場合、候補語句i(候補語句8)は「記載」である。キーワード判定部106は、候補語句iと、当該候補語句i自身以外で判定が「不可」ではない候補語句1、2、4、5、6とを比較する。係る比較の結果、候補語句8「記載」の1文字「載」を「術」に置換すると「記述」(候補語句6そのもの)であることから、キーワード判定部106は、候補語句8に対する類似候補語句として「記述」(候補語句6)を検出する。
次に、キーワード判定部106は、上記ステップS207の結果、候補語句iについて検出された類似候補語句の数と、予め定められた閾値Tとを比較する(ステップS208)。キーワード判定部106は、候補語句iに関する類似候補語句数が閾値T以上の場合(ステップS208においてYES)は、次のステップ(ステップS209)に処理を移行する。
キーワード判定部106は、候補語句iに関する類似候補語句数が閾値T未満の場合(ステップS208においてNO)は、係る候補語句iをキーワードに該当すると判定する。即ち、この場合、キーワード判定部106は、候補語句i関する判定(図4乃至図7における3列目)を「可」とする。その後、キーワード判定部106は、ステップS210に処理を移行する。
閾値Tは、キーワード抽出システム100のユーザが各種入力装置(例えばキーボードなど)を介して入力することにより、指定されてもよい。係る閾値Tは、キーワード抽出システム100に予め記憶されてもよい。上記に限定されず、閾値Tは、上記以外の任意の方法により指定されてもよい。
以下、閾値Tに「1」が指定された場合を例に説明する。図6に示す具体例において、閾値が予め1と定められた場合を想定する。この場合、iが4、6、8の場合(即ち、候補語句4、候補語句6、候補語句8の場合)に、候補語句iに関する類似候補語句の数が、閾値である1以上となる。よって、この場合、キーワード判定部106は、次のステップ(ステップS209)に処理を移行する。iが1、2、5の場合(即ち、候補語句1、候補語句2、候補語句5の場合)、候補語句iに関する類似候補語句数が0(零)である。即ち、この場合、類似候補語句数が閾値である1未満となることから、キーワード判定部106は、ステップS210に処理を移行する。
上記においては、説明を簡単にするために、ステップS207におけるキーワード判定部106の処理の具体例として、候補語句iの類似候補語句を全て検出してから、その類似候補語句数と閾値Tとを比較する場合について説明した。本実施形態はこれには限定されず、キーワード判定部106は、例えば、ステップS207において閾値Tに相当する数の類似候補語句を検出した時点で、それ以上の類似候補語句を検出せずに、ステップS209に処理を移行してもよい。
次に、ステップS208の判定結果がYESの場合、キーワード判定部106は、番号iの判定を「不可」とする(ステップS209)。この際、キーワード判定部106は、番号iに対する説明欄(図4乃至図7に示す表の4列目)に、類似候補語句の情報を登録する。図6に示す具体例を用いて説明すると、キーワード判定部106は、iが4、6、8の場合(即ち、候補語句4、候補語句6、候補語句8の場合)に、これらの候補語句に対する判定を「不可」とする。図7は、キーワード判定部106が判定結果を登録した後の候補語句記憶部103の具体例を示す図である。
以下、仮にステップS203における処理(部分文字列の除外)が存在しない場合について説明する。
この場合、キーワード判定部106がステップS203における処理を実行しないことから、候補語句7は、キーワードの候補から除外されない。ステップS207において、候補語句の番号iが5の場合、候補語句5「省略語」の1文字「省」を削除すると候補語句7そのものとなる。即ち、キーワード判定部106は、候補語句5の類似候補語句として「略語」(候補語句7)を検出する。候補語句5に対する類似候補語句7存在することから、結果として、キーワード判定部106は、候補語句5を「不可」と判定してしまう。同様に、ステップS207においてiが7の場合、候補語句7「略語」に1文字「省」を追加すると、候補語句5そのものとなる。即ち、キーワード判定部106は、候補語句7の類似候補語句として「省略語」(候補語句5)を検出する。そして、キーワード判定部106は、候補語句7を「不可」と判定する。上記したように、ステップS203における処理(ある候補語句の部分文字列に相当する他の候補語句の除外)は、適切なキーワードを抽出するために有用な場合がある。即ち、これにより、キーワード判定部106は、例えば、一般的な用語(語句)を一部に含む候補語句が、キーワードから排除されてしまう可能性を低減することができる。また、キーワード判定部106は、特定の用語(語句)に対して、当該特定の用語の省略語に相当する他の用語がともに文中に存在する場合に、それらの両方がキーワードから除外されてしまう可能性を低減することができる。
上記各ステップ(ステップS206、ステップS208、ステップS209)における処理を実行した後、キーワード判定部106は、番号iをインクリメントする(ステップS210)。その後、キーワード判定部106は、ステップS205に戻って処理を続行する。
最後に(ステップS205においてYESの場合)、キーワード判定部106は、キーワードの抽出結果を整理する(ステップS211)。ステップS211において、キーワード判定部106は、キーワードの抽出結果として、判定が「可」の候補語句のみを列挙してもよい。また、キーワード判定部106は、キーワードの抽出結果に、キーワードとして抽出された候補語句に関する説明欄を含めてもよい。
キーワード抽出システム100は、上記整理された抽出結果を、各種表示装置(モニタ装置や、表示パネル装置等)、あるいは各種出力装置(例えば印刷装置など)を介して出力してもよい。また、キーワード抽出システム100は、上記整理された抽出結果を記憶しておき、ユーザからのリクエストなどに応じて適宜出力してもよい。上記に限らず、キーワード抽出システム100は、任意の方法により抽出結果を出力してよい。
上記のように構成された本実施形態におけるキーワード抽出システム100よれば、RFP、契約書、法令や約款などの文書からキーワードを適切に抽出することができる。なぜならば、キーワード抽出システム100(特には候補語句抽出部105)が、文書から特定の基準(例えば、品詞、不要文字、文字数等)に基づいて候補語句を抽出可能だからである。また、キーワード抽出システム100(特にはキーワード判定部106)が、抽出された各候補語句に対する類似候補語句を検出(判定)することにより、当該類似候補語句に関する情報基づいて、各候補語句からキーワードを抽出するからである。より具体的には、キーワード抽出システム100が、例えば、検出された類似候補語句の数が特定の閾値より少ない候補語句を、キーワードとして抽出するからである。
RFP、契約書、法令や約款などの文書においては、キーワードになり得る重要な語句の表記揺れ(類似する語句)が少ないと考えられる。キーワード抽出システム100は、類似候補語句が特定の閾値より少ない候補語句を抽出することにより、これらの文書に含まれる重要な語句を抽出可能である。また、キーワード抽出システム100は、候補語句の出現頻度によらずに、候補語句からキーワードを抽出可能である。これにより、キーワード抽出システム100は、文書における出現頻度が低い(例えば1回等)キーワードも抽出可能である。また、キーワード抽出システム100は、文書に含まれる重複した候補語句を排除することから、文書中に同一のキーワードが多量に含まれる場合であっても、当該キーワードを適切に抽出可能である。更に、キーワード抽出システム100は、他の候補語句の部分文字列に該当する候補語句をキーワードの候補から除外する。これにより、キーワード抽出システム100は、例えば、一般的な用語(語句)を一部に含む候補語句が、キーワードから排除されてしまう可能性を低減することができる。また、キーワード抽出システム100は、ある語句と、当該語句の省略語に相当する語句とが、ともにキーワードから除外されてしまう可能性を低減することができる。
以上より、本実施形態におけるキーワード抽出システム100は、文書等の情報から、当該情報に含まれるキーワードの出現頻度によらずに、適切なキーワードを抽出可能である。
<第2の実施形態>
次に、本発明の第2の実施形態について図面を参照して詳細に説明する。なお、以下においては、上記第1の実施形態と同様の構成要素については、同一の符号を付し、詳細な説明を省略する。
本実施形態に係るキーワード抽出システムは、文書に含まれる語句について、その語句により表される意味が同一であることが明確な範囲で、当該語句を構成する文字列に対する追加、削除、置換が起こりえることを想定する。即ち、特定の語句を構成する文字列に対する追加、削除、置換が行われた他の文字列を含むとともに、当該特定の語句と意味が同一である他の語句が、文書に含まれ得ることを想定する。具体例として、ある語句を構成する文字列に対して長音を追加しても、意味が変わらない場合が考えられる(例えば、「サーバー」と「サーバ」等)。上記例示した長音の追加に限定されず、ある語句を構成する文字列に対して、意味が同一であることが明確な範囲で、任意の文字列の追加、削除、置換が行われてもよい。
また、本実施形態に係るキーワード抽出システムは、文書に含まれる語句を構成する文字列に対して、その語句により表される意味が異なることが明確な、追加、削除、置換が起こりえることを想定する。即ち、特定の語句を構成する文字列に対する追加、削除、置換が行われた他の文字列により構成されるとともに、当該特定の語句と意味が異なる他の語句が、文書に含まれ得ることを想定する。具体例として、固有名詞に対する文字列の追加、置換、あるいは固有名詞からの文字列の削除等が考えられる。より具体的には、例えば、地名に対する一文字の置換(例えば、「川崎」と「川越」等)、あるいは、地名に対する位置文字の追加、削除(例えば、「川崎」と「南川崎」等)等が、上記した文字列の追加、削除、置換に該当する。上記に限定されず、任意の文字列を追加、削除、置換することにより、意味が明確に変化する語句は複数存在する。
更に本実施形態に係るキーワード抽出システムは、任意の不要語句を除外して、キーワードを抽出する。不要語句とは、例えば、「下記」など、一般的にはキーワードとしてふさわしくない語句である。不要語句は、本実施形態におけるキーワード抽出システムに予め登録されてもよい。また、不要語句を抽出する抽出方法(あるいは抽出基準)等が、本実施形態におけるキーワード抽出システムに予め登録されてもよい。不要語句の抽出に関しては後述する。
以下、本実施形態におけるキーワード抽出システムの構成について説明する。図8を参照すると、本実施形態に係るキーワード抽出システム800は、大別して、情報を記憶する記憶部801と、プログラム制御により動作する演算部804とから構成されている。
記憶部801は、文書記憶部102と、削除ルール記憶部802と、変換ルール記憶部803と、候補語句記憶部103とを備える。
文書記憶部102は、上記第1の実施形態と同様としてよいので、詳細な説明を省略する。
削除ルール記憶部802は、候補語句から削除(除外)する語句に関する削除ルールを記憶する。削除ルールは、候補語句のうち、キーワードの候補から除外する語句を判定可能なルールである。係る削除ルールは、キーワード抽出システム800のユーザが、各種入力装置(例えばキーボードなど)を介して入力することにより指定されてもよい。また、係る削除ルールは、キーワード抽出システム800に予め記憶されてもよい。上記に限らず、係る削除ルールは、上記以外の任意の方法により指定されてもよい。
図9は、削除ルール記憶部802に記憶された削除ルールの具体例を示す図である。図9において、1列目は列見出しを示し、1列目は削除ルールの番号、2列目は削除ルールの種類、3列目は削除内容を示している。図9において、2行目は、候補語句中の「下記」という文字列を削除することを示し、3行目は、候補語句中の「各種」という文字列を削除することを示し、4行目は、候補語句中の「出来」という文字列を削除することを示している。なお、以下においては、削除文字列が削除ルールに設定される場合を例として説明するが、本実施形態はこれには限定されない。削除ルールには、「^各種」や「各種$」など、正規表現を用いて削除ルールが設定されてもよい。ここで、記号「^」は候補語句を構成する文字列における先頭の文字であることを示し、「$」は当該文字列における末尾の文字であることを示す。また、上記第1の実施形態において説明した平仮名などの不要文字が、削除ルール記憶部802に削除ルールの一部として記憶されてもよい。
変換ルール記憶部803は、ある候補語句に対する類似候補語句を検出する際に実行される文字列の追加、削除、置換に関するルールである変換ルールを記憶する。キーワード判定部806は、例えば、変換ルールに基づいて、特定の候補語句(あるいはその一部)に対して所定の変換が実行された文字列を含む他の候補語句を、当該特定の候補語句に対する類似候補語句から除外する。係る所定の変換は、例えば、特定の候補語句に対する文字列の追加、削除、置換等を含んでもよい。
係る変換ルールは、キーワード抽出システム800のユーザが、各種入力装置(例えばキーボードなど)を介して入力することにより指定されてもよい。係る変換ルールは、キーワード抽出システム800に予め記憶されてもよい。上記に限定されず、係る変換ルールは、それ以外の任意の方法により指定されてもよい。
図10は、変換ルール記憶部803に記憶された変換ルールの具体例を示す図である。図10において、1行目は列見出しを示し、1列目は、変換ルールの番号、2列目は変換ルールの種類、3列目は変換ルールの内容を示す。
例えば、固有名詞(例えば、地名、人名、組織名など)に対して1文字以上の追加、削除、置換が行われた文字列と、元の固有名詞とを比較すると、意味が異なることが明確である。これより、図10に示す具体例においては、固有名詞に対して文字列を追加、削除、置換することにより変換された他の文字列を含む候補語句を、類似候補語句の判定から除外(対象外)するような変換ルールが設定されている。即ち、ある固有名詞に対して文字列を追加、削除、置換するような変換が行われた文字列により構成される語句は、当該固有名詞に関する類似候補語句ではないと判定される。これにより、キーワード抽出システム800は、ある固有名詞と一部だけ異なる語句が存在することに起因して、係る固有名詞がキーワードから除外されてしまう可能性を低減可能である。
また、例えば、ある語句に長音(「ー」)を追加した語句と、元の語句とを比較すると、意味が同一である場合がある。同様に、ある語句から長音を削除した語句と、元の語句とを比較すると、意味が同一である場合がある。具体例として、「サーバー」と「サーバ」のような語句については、元の語句に長音が追加(あるいは削除)されても、意味が同一であることは明確である。これより、図10に示す具体例においては、ある語句に対して長音(ー)が追加あるいは削除された語句を、類似候補語句の判定から除外(対象外)とするような変換ルールが設定されている。即ち、ある語句に対して長音「ー」を追加(あるいは削除)するような変換が行われて語句は、当該語句に関する類似候補語句ではないと判定される。これにより、キーワード抽出システム800は、長音の有無のみが異なる語句が類似候補語句と判定されることに起因して、係る語句がキーワードから除外されてしまう可能性を低減可能である。
なお、本実施形態は上記に限定されず、変換ルールには、図10に例示する具体例以外のルールが適宜設定されてもよい。係る変換ルールは、例えば、以下のような候補語句を、特定の候補語句に関する類似候補語句から除外可能なルールであってもよい。即ち、係る候補語句は、例えば、特定の候補語句とは(文字列としての)表記が異なるものの、意味が同一であることが明白な候補語句であってもよい。また、係る他の候補語句は、例えば、特定の候補語句と(文字列としての)表記が類似するものの、意味が異なることが明白な候補語句であってもよい。
候補語句記憶部103は、第1の実施形態と同様としてよいので、詳細な説明を省略する。
演算部804は、候補語句抽出部805と、キーワード判定部806とを備える。
候補語句抽出部805は、文書記憶部102に記憶された文書から、キーワードの候補となる語句である複数の候補語句を抽出する。そして、候補語句抽出部805は、削除ルール記憶部802に記憶された削除ルールに基づいて、抽出した候補語句の一部を削除し、候補語句記憶部103に記憶する。
候補語句の一部を削除することは、例えば、以下のような処理を表す。例えば、候補語句が「T=t(1)・・・t(n)」であり、削除ルールに、候補語句から削除される文字列(削除文字列)「t(i) t(i+1)」が設定されている場合を想定する。この場合、係る削除ルールに基づいて元の候補語句の一部が削除されることにより、候補語句Tは「T=t(1)・・・t(i−1) t(i+2) t(n)」に変換される。即ち、この場合、元の候補語句Tから削除文字列が削除された後の文字列が、候補語句として扱われる。
キーワード判定部806は、候補語句記憶部103に記憶された候補語句のうち、他の候補語句の部分文字列に相当する候補語句をキーワードの候補から除外する。そして、キーワード判定部806は、除外されずに残った候補語句ごとに、当該候補語句に類似する類似文字列を部分文字列として含む他の候補語句を検出する。この際、キーワード判定部806は、ある候補語句に対して、変換ルール記憶部803に記憶された変換ルールに基づいて変換可能な文字列を含む他の候補語句を、当該候補語句に対する類似候補語句から更に除外する。キーワード判定部806は、ある候補語句に対して、除外されずに残った類似候補語句の数に基づいて、当該候補語句がキーワードであるか否かを判定する。キーワード判定部806は、係る判定結果を候補語句記憶部103に記憶(登録)する。
次に、図11に例示するフローチャートを参照して、本実施形態における候補語句抽出部805の動作について詳細に説明する。
まず、候補語句抽出部805は、文書記憶部102に記憶された文書から、キーワードの候補となる語句である候補語句を抽出する(ステップS1101)。本ステップにおける処理は、第1の実施の形態における処理(ステップS201)と同様である。
次に、候補語句抽出部805は、削除ルール記憶部802に記憶された削除ルールに基づいて、候補語句の一部を削除する(ステップS1102)。そして、候補語句抽出部805は、処理を終了し、次のキーワード判定部806に処理を移行する。
図12は、文書記憶部102に記憶された文書の具体例を示す図である。以下、削除ルール記憶802に図9に例示する削除ルールが記憶されており、文書記憶部102に図12に例示する文書が記憶されている場合を具体例として、候補語句抽出部805の処理を説明する。なお、本実施形態における候補語句抽出部805は、上記第1の実施形態における候補語句抽出部105と同様の方法により、候補語句を抽出する。
まず、候補語句抽出部805は、ステップS1101において、形態素解析により、名詞あるいは動詞である候補語句として、「川崎市」、「川越市」、「システム各種」、「接続出来る」、「サーバー要件」、「サーバ要件」、「下記」、「通り」を抽出する。そして、候補語句抽出部805は、上記抽出した語句から不要文字(平仮名及び数字)として設定された文字列を削除する。これにより、候補語句抽出部805は、候補語句として、「川崎市」、「川越市」、「システム各種」、「接続出来」、「サーバー要件」、「サーバ要件」、「下記」、「通」を抽出する。
次に、候補語句抽出部805は、1文字のみで構成された「通」を除去することにより、候補語句として、「川崎市」、「川越市」、「システム各種」、「接続出来」、「サーバー要件」、「サーバ要件」、「下記」を抽出する。
次に、候補語句抽出部805は、ステップS1102において、図9に例示する削除ルールに基づいて、「各種」、「出来」、「下記」を削除する。これにより、候補語句抽出部805は、候補語句として、「川崎市」、「川越市」、「システム」、「接続」、「サーバー要件」、「サーバ要件」を抽出する。結果として、候補語句記憶部103には図14に例示するような候補語句が記憶される。なお、上記第1の実施形態において説明した、平仮名などの不要文字が、削除ルールとして削除ルール記憶部802に予め設定されてもよい。この場合、候補語句抽出部805は、ステップS1102において、係る不要文字を削除してもよい。
次に、図13のフローチャートを参照して、本実施形態におけるキーワード判定部806が、i番目の候補語句である候補語句iに関する類似候補語句を検出する動作について説明する。
まず、キーワード判定部806は、第1の実施形態と同様に、候補語句iの類似文字列を含む、他の候補語句(類似候補語句)を検出する(ステップS1301)。
次に、キーワード判定部806は、ステップS1301において検出した他の候補語句(類似候補語句)のうち、上記説明した変換ルールに基づいて、対象外となる類似候補語句を除外する(ステップS1302)。なお、変換ルール記憶部803に、品詞情報を用いた変換ルールが設定されている場合、候補語句の品詞情報が必要となる。例えば、候補語句抽出部805が(形態素解析等により抽出した)品詞情報を用いる場合には、候補語句記憶部103にその品詞情報を記憶しておいてもよい。この場合、キーワード判定部806は、その記憶された品詞情報を利用してもよい。又は、キーワード判定部806は、本ステップにおいて、形態素解析を行うことにより、各候補語句に関する品詞情報を取得してもよい。
図14は、本実施形態における候補語句記憶部103に記憶された候補語句の具体例を示す図である。以下、具体例を用いて、キーワード判定部806がi番目の候補語句iの類似候補語句を抽出する処理について説明する。以下説明する具体例においては、図10に例示する変換ルールが変換ルール記憶部803に記憶され、図14に例示する候補語句が候補語句記憶部103に記憶されていることを想定する。
まず、iが1の場合(最初の候補語句の場合)、キーワード判定部806は、ステップS1301において、候補語句1「川崎市」に対して、類似文字列を含む候補語句2「川越市」を検出する。候補語句1「川崎市」に対して、「崎」の一文字を置換した文字列が、候補語句2「川越市」に相当するからである。
次に、キーワード判定部806は、ステップS1302において、図10に例示する番号1に登録された「固有名詞」に関する変換ルールに基づいて、候補語句2「川越市」を、候補語句1に対する類似候補語句から除外する。具体的には、候補語句1「川崎市」は固有名詞(地名)であり、固有名詞「川崎」における「崎」の一文字を「越」に置換した文字列が、候補語句2「川越市」に相当する。図10の番号1に登録された変換ルールは、ある固有名詞に対して所定の変換(文字列の追加、削除、置換)を行った他の文字列を、当該固有名詞に関する類似候補語句から除外するルールである。これより、キーワード判定部806は、候補語句1「川崎市」に関する類似候補語句から、候補語句2「川越市」を除外する。結果として、キーワード判定部806は、候補語句1「川崎市」の類似文字列を部分に含む他の候補語句を検出しない。
また、iが2の場合、キーワード判定部806は、ステップS1301において、候補語句2「川越市」に対し、類似する文字列を含む候補語句1「川崎市」を検出する。次に、キーワード判定部806は、ステップS1302において、上記iが1の場合と同様に、候補語句2「川越市」に対する類似候補語句から、候補語句1「川崎市」を除外する。なぜならば、固有名詞「川越市」に対して、「越」の一文字を「崎」に置換した文字列が、候補語句2「川越市」に相当するからである。結果として、キーワード判定部806は、候補語句2「川越市」の類似候補語句を検出しない。
iが3(候補語句3「システム」)の場合、キーワード判定部806は、ステップS1301において、類似候補語句を検出しない。この場合、キーワード判定部806は、ステップ1301において検出された類似候補語句が存在しないことから、ステップS1302を実行せずともよい。また、キーワード判定部806は、ステップS1302において何の処理を行わなくてもよい。
iが4(候補語句4「接続」)の場合も、上記iが3の場合と同様に、キーワード判定部806は類似候補語句を検出しない。
iが5(候補語句5「サーバー要件」)の場合、キーワード判定部806は、ステップS1301において、候補語句5「サーバー要件」に対して、類似する文字列を含む候補語句6「サーバ要件」を検出する。候補語句5「サーバー要件」から、一文字(長音「ー」)を削除した文字列が、候補語句6「サーバ要件」に相当するからである。
次に、キーワード判定部806は、ステップS1302において、図10に例示する番号2に登録された長音に関する変換ルールに基づいて、候補語句6「サーバ要件」を、候補語句5に対する類似候補語句から除外する。より具体的には、候補語句5「サーバー要件」から長音「ー」の一文字を削除した文字列が、候補語句6「サーバ要件」に相当する。図10の番号2に登録された変換ルールは、ある語句に対して長音「ー」を追加、削除した他の文字列を、当該語句に関する類似候補語句から除外するルールである。これより、キーワード判定部806は、候補語句5「サーバー要件」に関する類似候補語句から、候補語句6「サーバ要件」を除外する。結果として、キーワード判定部806は、候補語句5「サーバー要件」に関する類似候補語句を検出しない。
iが6(候補語句6「サーバ要件」)の場合、キーワード判定部806は、ステップS1301において、候補語句6「サーバ要件」に類似する文字列を含む候補語句5「サーバ要件」を検出する。次に、キーワード判定部806は、上記説明したiが5の場合と同様に、図10に例示する変換ルール(番号2)に基づいて、候補語句5「サーバ要件」を、候補語句6「サーバ要件」の類似候補語句から除外する。結果として、キーワード判定部806は、候補語句6「サーバ要件」の類似候補語句を検出しない。
上記説明したように、候補語句1乃至候補語句6に関する類似候補語句の数は、それぞれ0となる。キーワード判定部806は、例えば、上記第1の実施形態において説明したステップS205以降の処理を実行することにより、図14に例示する全ての候補語句1乃至候補語句6を、キーワードと判定する。
なお、上記においては、説明を簡単にするために、キーワード判定部806が類似候補語句を検出してから、変換ルールに基づいて特定の語句を類似候補語句から除外する処理を説明した。上記に限定されず、キーワード判定部806は、変換ルールを考慮しながら、類似候補語句を検出してもよい。
また、上記においては、固有名詞、及び、長音「ー」に関する変換ルールを具体例として説明した。上記に限らず、「登録者」、「登録日」、「登録地」など、一文字の置換で意味が異なることが明確な語句は、多数存在する。例えば、これらにおける一文字の置換文字である「者」、「日」、「地」などの文字が、変換ルール記憶部803に変換ルールとして記憶されてもよい。
また、文書の規模や品質によっては、例えば、「バッジ」と「バッチ」などのタイプミスが起こりうる。これより、文書におけるタイプミスを考慮する必要がある場合がある。このようなタイプミス(例えば、上記例示した「ジ」と「チ」等)による変換については、類似候補語句と判定しないことが望ましい。これより、キーワード抽出システム800は、頻出すると想定されるタイプミスに関する情報を変換ルール記憶部803に記憶しておいてもよい。この場合、係る変換ルールの説明欄(3列目)に、タイプミスの可能性があることが登録されてもよい。
上記のように構成された本実施形態におけるキーワード抽出システム800は、文字列としての表記は一部類似するものの、意味が異なることが明白である語句が文書中に含まれる場合であっても、そのような語句からキーワードを適切に抽出可能である。また、本実施形態におけるキーワード抽出システム800は、文字列としての表記が異なるものの、意味が同一であることが明白である語句が文書中に含まれる場合であっても、そのような語句からキーワードを適切に抽出可能である。即ち、本実施形態におけるキーワード抽出システム800は、文書中に意味が同一であること、あるいは、異なることが明確な表記揺れが存在する場合でも、キーワードを抽出することができる。なぜならば、本実施形態におけるキーワード抽出システム800は、変換ルールに基づいて、特定の候補語句を構成する文字列を変換した他の文字列に相当する候補語句を、当該特定の候補語句に関する類似候補語句から除外するからである。
また、本実施形態におけるキーワード抽出システム800は、抽出された候補語句の一部を削除ルールに基づいて削除する。これにより、本実施形態におけるキーワード抽出システム800は、不要な語句がキーワードとして抽出される可能性を低減可能である。また、本実施形態におけるキーワード抽出システム800は、上記第1の実施形態と同様の構成を有することから、上記第1の実施形態と同様の効果を奏する。
<第3の実施形態>
次に、本発明の第3の実施形態について説明する。図15は、本実施形態におけるキーワード抽出システム1500の機能的な構成を例示するブロック図である。
図15に例示するように、本実施形態におけるキーワード抽出システム1500は、候補語句抽出部1501と、キーワード判定部1502と、を備える。キーワード抽出システム1500を構成するこれらの構成要素の間は、任意の通信手段により通信可能に接続されていてもよい。以下、それぞれの構成要素について説明する。
候補語句抽出部1501は、キーワード抽出システム1500に対して入力された入力情報から、キーワードの候補となる語句である候補語句を1つ以上抽出する。係る入力情報は、例えば、文書等の情報であってもよい。
キーワード判定部1502は、候補語句抽出部1501により抽出された候補語句のうち、特定の候補語句に類似する文字列を含む他の候補語句に関する情報に基づいて、当該特定の候補語句がキーワードであるか否かを判定する。キーワード判定部1502は、例えば、抽出された候補語句ごとに、当該候補語句に類似する文字列を含む他の候補語句の数に基づいて、当該候補語句がキーワードであるか否かを判定してもよい。
上記のように構成された本実施形態におけるキーワード抽出システム1500よれば、入力された情報から、キーワードを適切に抽出可能である。なぜならば、キーワードになり得る重要な候補語句については、表記の揺れ(即ち、意味が同一であり、表記が類似する語句)が少ないと考えられる。これに対して、本実施形態におけるキーワード判定部1502は、ある候補語句に類似する文字列を含む他の候補語句に関する情報に基づいて、ある候補語句がキーワードか否かを判定する。これにより、キーワード抽出システム1500は、適切なキーワードを抽出可能である。更にキーワード抽出システム1500は、入力された情報に含まれる候補語句の頻度に依存することなく、適切なキーワードを抽出可能である。
以上より、本実施形態におけるキーワード抽出システム1500は、文書等の情報から、当該情報に含まれるキーワードの出現頻度によらずに、適切なキーワードを抽出可能である。
<ハードウェア及びソフトウェア・プログラム(コンピュータ・プログラム)の構成>
以下、上記説明した各実施形態を実現可能なハードウェア構成について説明する。
以下の説明において、上記各実施形態において説明したキーワード抽出システム(100、800、1500)をまとめて、単に「キーワード抽出システム」と称する。またキーワード抽出システムの各構成要素を、単に「キーワード抽出システムの構成要素」と称する。
上記各実施形態において説明したキーワード抽出システムは、1つ又は複数の専用のハードウェア装置により構成してもよい。その場合、上記各図に示した各構成要素は、一部又は全部を統合したハードウェア(処理ロジックを実装した集積回路等)として実現してもよい。
例えば、キーワード抽出システムを専用のハードウェアにより実現する場合、キーワード抽出システムの構成要素は、それぞれの機能を提供可能な集積回路をSoC(System on a Chip)等により実装されてもよい。この場合、例えば、キーワード抽出システムの構成要素が保持するデータは、SoCとして統合されたRAM(Random Access Memory)領域やフラッシュメモリ領域に記憶されてもよい。
また、この場合、キーワード抽出システムの各構成要素を接続する通信回線としては、周知の通信バスを採用してもよい。また、各構成要素を接続する通信回線はバス接続に限らず、それぞれの構成要素間をピアツーピアで接続してもよい。
また、キーワード抽出システムを複数のハードウェア装置により構成する場合、それぞれのハードウェア装置の間は、任意の通信手段(有線、無線、またはそれらの組み合わせ)により通信可能に接続されていてもよい。 また、上述したキーワード抽出システムあるいはその構成要素は、図16に例示するような汎用のハードウェア装置(コンピュータ等)と、係るハードウェアによって実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。この場合、キーワード抽出システムは、任意の数のハードウェア装置及びソフトウェア・プログラムにより構成されてもよい。
図16における演算装置1601は、汎用のCPU(中央処理装置:Central Processing Unit)やマイクロプロセッサ等の演算処理装置である。演算装置1601は、例えば後述する不揮発性記憶装置1603に記憶された各種ソフトウェア・プログラムを記憶装置1602に読み出し、係るソフトウェア・プログラムに従って処理を実行してもよい。例えば、上記各実施形態におけるキーワード抽出システムの構成要素は、演算装置1601により実行されるソフトウェア・プログラムとして実現可能である。例えば、上記各実施形態における演算部(104、804)は、演算装置1601を用いて実現可能である。
記憶装置1602は、演算装置1601から参照可能な、RAM等のメモリ装置であり、ソフトウェア・プログラムや各種データ等を記憶する。なお、記憶装置1602は、揮発性のメモリ装置であってもよい。
不揮発性記憶装置1603は、例えば磁気ディスクドライブや、フラッシュメモリによる半導体記憶装置のような、不揮発性の記憶装置である。不揮発性記憶装置1603は、各種ソフトウェア・プログラムやデータ等を記憶可能である。
例えば、上記各実施形態における記憶部(101、801)は、記憶装置1602あるいは不揮発性記憶装置1603あるいはその組和わせを用いて実現可能である。
ネットワークインタフェース1606は、通信ネットワークに接続するインタフェース装置であり、例えば有線及び無線のLAN(Local Area Network)接続用インタフェース装置等を採用してもよい。キーワード抽出システムが複数のコンピュータ等により構成される場合、それぞれのコンピュータは、ネットワークインタフェース1606を介して通信ネットワークに通信可能に接続されてもよい。
ドライブ装置1604は、例えば、後述する記録媒体1605に対するデータの読み込みや書き込みを処理する装置である。
記録媒体1605は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な任意の記録媒体である。より具体的には、係る記録媒体は、フロッピー(登録商標)ディスク、ハードディスクなどの磁気ディスクであってもよい。また、係る記録媒体は、CD(CompactDisc)−ROM(Read Only Memory)、DVDなどの光ディスクであってもよい。また、係る記録媒体は、光磁気ディスク(MO:Magneto Optical Disk)であってもよい。上記に限定されず、係る記録媒体はコンピュータ・プログラムを記憶可能であり、かつコンピュータが読み取り可能な記憶媒体であればよい。係る記録媒体の具体的な記憶形式は、任意の形式を採用可能である。
入出力インタフェース1607は、外部装置との間の入出力を制御する装置である。
上述した各実施形態を例に説明した本発明におけるキーワード抽出システムは、例えば、1以上の、図16に例示したハードウェア装置(コンピュータ)により構成されてもよい。この場合、係るハードウェア装置に対して、上記各実施形態において説明した機能を実現可能なソフトウェア・プログラムを供給することにより、本発明が実現されてもよい。より具体的には、例えば、係る装置に対して供給したソフトウェア・プログラムを、演算装置1601が実行することによって、本発明が実現されてもよい。この場合、係るハードウェア装置で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト等のミドルウェアなどが各処理の一部を実行してもよい。
上述した各実施形態において、上記各図(例えば、図1、図8、図15)に示した各部は、上述したハードウェアにより実行されるソフトウェア・プログラムの機能(処理)単位である、ソフトウェアモジュールとして実現することができる。ただし、これらの図面に示した各ソフトウェアモジュールの区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。
例えば、上記各部をソフトウェアモジュールとして実現する場合、これらのソフトウェアモジュールは、不揮発性記憶装置1603に記憶されてもよい。そして、演算装置1601が、それぞれの処理を実行する際に、これらのソフトウェアモジュールを記憶装置1602に読み出してもよい。
また、これらのソフトウェアモジュールの間は、共有メモリやプロセス間通信等の適宜の方法により、相互に各種データを伝達できるように構成してもよい。このような構成により、これらのソフトウェアモジュールの間は、相互に通信可能に接続可能である。
更に、上記各ソフトウェア・プログラムは記録媒体1605に記録されてもよい。この場合、上記各ソフトウェア・プログラムは、上記通信装置等の出荷段階、あるいは運用段階等において、適宜ドライブ装置1604を通じて不揮発性メモリ1603に格納されるよう構成されてもよい。
なお、上記の場合において、上記キーワード抽出システムへの各種ソフトウェア・プログラムの供給方法は、出荷前の製造段階、あるいは出荷後のメンテナンス段階等において、適当な治具を利用して当該装置内にインストールする方法を採用してもよい。また、各種ソフトウェア・プログラムの供給方法は、インターネット等の通信回線を介して外部からダウンロードする方法等のように、現在では一般的な手順を採用してもよい。
そして、このような場合において、本発明は、係るソフトウェア・プログラムを構成するコード、あるいは係るコードが記録されたところの、コンピュータ読み取り可能な記録媒体によって構成されると捉えることができる。この場合、係る記録媒体は、ハードウェア装置と独立した媒体に限らず、LANやインターネットなどにより伝送されたソフトウェア・プログラムをダウンロードして記憶又は一時記憶した記憶媒体を含む。
また、上述したキーワード抽出システム、あるいは、当キーワード抽出システムの構成要素は、図16に例示するハードウェア装置を仮想化した仮想化環境と、当該仮想化環境において実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。この場合、図16に例示するハードウェア装置の構成要素は、当該仮想化環境における仮想デバイスとして提供される。なお、この場合も、図16に例示するハードウェア装置を物理的な装置として構成した場合と同様の構成にて、本発明を実現可能である。
以上、本発明を、上述した模範的な実施形態に適用した例として説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。更に、上述した各実施形態、あるいは、係る変更又は改良を加えた新たな実施形態を組み合わせた実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。
上記の各実施形態の一部又は全部は、以下の付記のようにも記載されうる。なお、以下の付記は本発明をなんら限定するものではない。
(付記1)
入力文書からキーワード候補となる複数の語句を抽出する候補語句抽出部と、他の候補語句の部分文字列となる候補語句を除外してから、候補語句ごとに、該候補語句の類似文字列を部分文字列に含む候補語句に基づいて、候補語句がキーワードであるか否かを判定するキーワード判定部とを備えることを特徴とするキーワード抽出システム。
(付記2)
上記キーワード判定部は、候補語句ごとに、該候補語句の文字数に基づいて予め定めた類似文字列を部分列に含む候補語句の数に基づいて、候補語句がキーワードであるか否かを判定することを特徴とする付記1に記載のキーワード抽出システム。
(付記3)
上記キーワード判定部の類似文字列は、候補語句ごとに、該候補語句の予め定めた文字数以下の文字を追加・削除・置換した文字列であることを特徴とする付記1または付記2に記載のキーワード抽出システム。
(付記4)
上記候補語句抽出部は、候補語句を2文字以上に限定し、上記キーワード判定部の類似文字列は、3文字以上の候補語句に対しては1文字の追加・削除・置換した文字列とし、2文字の候補語句に対しては、1文字の追加・置換した文字列と定めることを特徴とする付記1から付記3までに記載のキーワード抽出システム。
(付記5)
上記候補語句抽出部は、予め定めた削除ルールに基づいて候補語句の一部を削除し、上記キーワード判定部は、予め定めた変換ルールに基づいて判定した類似文字列を部分文字列に含む候補語句を検出することを特徴とする付記1から付記4までに記載のキーワード抽出システム。
(付記6)
入力文書からキーワード候補となる複数の語句を抽出する候補語句抽出ステップと、他の候補語句の部分文字列となる候補語句を除外してから、候補語句ごとに、該候補語句の類似文字列を部分文字列に含む候補語句に基づいて、候補語句がキーワードであるか否かを判定するキーワード判定ステップとを備えることを特徴とするキーワード抽出方法。
(付記7)
入力文書からキーワード候補となる複数の語句を抽出する候補語句抽出処理と、他の候補語句の部分文字列となる候補語句を除外してから、候補語句ごとに、該候補語句の類似文字列を部分文字列に含む候補語句に基づいて、候補語句がキーワードであるか否かを判定するキーワード判定処理とをコンピュータに実行させるためのキーワード抽出プログラム。