以下、図面を参照して、本発明の実施形態を詳細に説明する。
図1は、本発明の実施形態における類似文書検索システムのシステム構成の一例を示す図である。
類似文書検索システム100は、クライアントPC102、類似文書検索サーバ104、DBサーバ106、及び検索エンジンサーバ108が、LAN110を介して通信可能なように構成されている。
クライアントPC102は、業種に関する文字列なのか、またはシステムに関する文字列なのか等を示す分野、分野に応じたカテゴリ(例えば、分野が業種の場合、金融や医療等を示し、分野がシステムの場合、ポータルや印刷等を示す)、分野及びカテゴリに応じた特徴語の入力を行う。
また、検証する文書の類似文書を検索する指示を行うとともに、検索した結果を表示し、その検索した結果のフィードバックを入力すること等を行う。
類似文書検索サーバ104は、クライアントPC102により入力された検証する文書の類似文書を検索して、その結果をクライアントPCへ返信する。
また、クライアントPC102から入力されたフィードバックに基づいて、既に登録されている特徴語の見直しのために、追加、削除の候補となる特徴語を決定する。
DBサーバ106は、クライアントPCから入力された分野、カテゴリに応じた特徴語を登録するためのテーブルや、入力されたフィードバックに基づいて追加、削除の候補となる特徴語を登録するためのテーブルを備える。
検索エンジンサーバ108は、全ての文書(例えば、過去のRFP等)が登録管理されており、それら文書の内容に基づいて、文字列のIDF(Inverse Document Frequency)を解析した結果を記憶する。
尚、類似文書検索サーバ104、DBサーバ106、検索エンジンサーバ108のそれぞれの組み合わせによって(例えば、類似文書検索サーバ104と検索エンジンサーバ108とを同じサーバとする等)、同じサーバとする構成でも良いし、全て、同じサーバとする構成でも良い。
図2は、本発明の実施形態における、クライアントPC102、類似文書検索サーバ104、DBサーバ106、及び検索エンジンサーバ108のハードウェア構成の一例を示すブロック図である。
図2に示すように、それぞれの情報処理装置は、システムバス204を介してCPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203、入力コントローラ205、ビデオコントローラ206、メモリコントローラ207、及び通信I/Fコントローラ208が接続される。
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
ROM202あるいは外部メモリ211は、CPU201が実行する制御プログラムであるBIOS(Basic Input/Output System)やOS(Operating System)や、それぞれの情報処理装置で読み取り実行可能なプログラムおよび必要な各種データ(データテーブルを含む)を保持している。
RAM203は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM202あるいは外部メモリ211からRAM203にロードし、ロードしたプログラムを実行することで各種動作を実現する。
入力コントローラ205は、キーボード209や不図示のマウス等のポインティングデバイス等の入力装置からの入力を制御する。
入力装置がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下(指等でタッチ)することにより、各種の指示を行うことができることとする。
また、タッチパネルは、マルチタッチスクリーンなどの、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよい。
ビデオコントローラ206は、ディスプレイ210などの外部出力装置への表示を制御する。
ディスプレイは本体と一体になったノート型パソコンのディスプレイも含まれるものとする。
なお、外部出力装置はディスプレイに限ったものははく、例えばプロジェクタであってもよい。
また、前述のタッチ操作を受け付け可能な装置については、入力装置も提供する。
なおビデオコントローラ206は、表示制御を行うためのビデオメモリ(VRAM)を制御することが可能で、ビデオメモリ領域としてRAM203の一部を利用することもできるし、別途専用のビデオメモリを設けることも可能である。
メモリコントローラ207は、外部メモリ211へのアクセスを制御する。外部メモリとしては、ブートプログラム、各種アプリケーション、フォントデータ、ユーザファイル、編集ファイル、および各種データ等を記憶する外部記憶装置(ハードディスク)、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等を利用可能である。
通信I/Fコントローラ208は、ネットワークを介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。
例えば、TCP/IPを用いた通信やISDNなどの電話回線、および携帯電話の3G回線を用いた通信が可能である。
尚、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ210上での表示を可能としている。
また、CPU201は、ディスプレイ210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
次に、図3に示すフローチャートを用いて、特徴語の登録処理について説明を行う。
ステップS100では、クライアントPC102に導入されているウェブブラウザに表示された分野登録画面300(図12)に対して、ユーザによって入力された分野に関する情報を取得し、DBサーバ106へ送信する。
図12には、分野の登録を行うための分野登録画面300の構成が示されており、分野登録画面300は、実行ボタン302、編集ボタン304、削除ボタン306、追加ボタン308、検索SQL入力窓310、及び表示部312を含んで構成されている。
実行ボタン302を押下することにより、検索SQL入力窓310へ入力された検索SQL、及び、編集ボタン304、削除ボタン306、追加ボタン308の押下により、表示部312に表示される行の編集、削除、追加を行うためのSQLに変換して、DBサーバ106へ送信するものである。
また、編集ボタン304を押下すると、押下した編集ボタン304と同じ行に表示された値を変更するものであり、削除ボタン306を押下すると、押下した削除ボタン306の行を削除するものであり、追加ボタン308は、表示部312に現在表示されいてる行に対して、新たに行を追加する。
検索SQL入力窓310には、ユーザが自由にDBサーバ106に記憶されているデータ等の検索を行うために、SQL文が入力される。
表示部312には、分野を一意に識別するIDと分野を示す名前が表示されている。
ステップS102では、DBサーバ106は、ステップS100でクライアントPC102から送信された分野情報を受信して、分野テーブル(図16参照)へ登録する。
図16には、分野テーブルの構成が示されており、分野テーブルは、分野を一意に識別するIDと分野を示す名前を含む構成を備えている。
ステップS104では、クライアントPC102に導入されているウェブブラウザに分野別カテゴリ分類登録画面400(図13参照)に対して、ユーザによって入力された分野別に分類したカテゴリに関する情報を取得し、DBサーバ106へ送信する。
図13には、分野別カテゴリ分類登録画面400の構成が示されており、分野別カテゴリ分類登録画面400は、実行ボタン402、編集ボタン404、削除ボタン406、追加ボタン408、検索SQL入力窓410、及び表示部412を含んで構成されている。
基本的に、分野登録画面300と同様な機能であるため説明を省略するが、表示部412には、分野におけるカテゴリを一意に識別するID(ID)、分野を一意に識別するID(FIELD_ID)、及びカテゴリを示す名前(NAME)が表示されている。
ステップS106では、DBサーバ106は、ステップS104でクライアントPC102から送信されたカテゴリ分類情報を受信して、分野別カテゴリ分類テーブル(図17参照)へ登録する。
図17には、分野別カテゴリ分類テーブルは、分野におけるカテゴリを一意に識別するID(ID)、分野を一意に識別するID(FIELD_ID)、及びカテゴリを示す名前(NAME)を含んで構成されている。
ステップS108では、クライアントPC102に導入されているウェブブラウザに分野別カテゴリ分類別特徴語登録画面500(図14参照)に対して、ユーザによって入力された分野別、カテゴリ別に分類された特徴語に関する情報を取得し、DBサーバ106へ送信する。
図14には、分野別カテゴリ分類別特徴語登録画面500の構成が示されており、分野別カテゴリ分類別特徴語登録画面500は、実行ボタン502、編集ボタン504、削除ボタン506、追加ボタン508、検索SQL入力窓510、及び表示部512を含んで構成されている。
基本的に、分野登録画面300及び分野別カテゴリ分類登録画面400と同様な機能であるため説明を省略するが、表示部512には、分野を一意に識別するID(FIELD_ID)、分野におけるカテゴリを一意に識別するID(CATEGORY_ID)、特徴語を示す名前(NAME)、登録されている文書に対する特徴語のIDF値(IDF)、特徴語のフィードバックがOKである件数(OK_COUNT)、及び特徴語のフィードバックがNGである件数(NG_COUNT)が表示されている。
ステップS110では、DBサーバ106は、ステップS108でクライアントPC102から送信された特徴語情報を受信して、分野別カテゴリ分類別特徴語テーブル(図18参照)へ登録する。
図18には、分野別カテゴリ別特徴語テーブルの構成が示されており、分野別カテゴリ別特徴語テーブルは、分野を一意に識別するID(分野(ID))、分野におけるカテゴリを一意に識別するID(カテゴリ(ID))、特徴語を示す名前(特徴語)、登録されている文書に対する特徴語のIDF値(IDF)、特徴語のフィードバックがOKである件数(OKカウント)、及び特徴語のフィードバックがNGである件数(NGカウント)を含んで構成されている。
ステップS112では、ユーザによってIDFを更新する処理を実行するプログラムを呼び出すために、クライアントPC102に導入されているウェブブラウザの入力窓(不図示)に対してURLを入力してEnterキーを押下すると、IDFの更新指示に関する情報を取得し、類似文書検索サーバ104へ送信する。
ステップS114では、類似文書検索サーバ104は、ステップS112でクライアントPC102から送信されたIDF更新指示情報を受信する。
ステップS116では、類似文書検索サーバ104は、分野別、カテゴリ分類別の特徴語を全件取得する指示に関する情報をDBサーバ106へ送信する。
ステップS118では、DBサーバ106は、ステップS116で類似文書検索サーバ104から送信された特徴語全件取得指示情報を受信し、分野別カテゴリ分類別特徴語テーブルから全ての特徴語に関する情報を取得する。
ステップS120では、DBサーバ106は、ステップS118において取得した全ての特徴語に関する情報を類似文書検索サーバ104へ送信する。
ステップS122では、類似文書検索サーバ104は、ステップS120でDBサーバ106から送信された全ての特徴語に関する情報を受信する。
ステップS124では、類似文書検索サーバ104は、ステップS122で受信した全ての特徴語に関する情報に対して、先頭から順次、特徴語に関する情報を読み込む。
ステップS126では、類似文書検索サーバ104は、全ての特徴語に関する情報を読み込んだ場合は、本処理を終了し、読み込んでいない場合は、ステップS128へ処理を進める。
ステップS128では、類似文書検索サーバ104は、順次読んだ特徴語に関してIDF値の取得要求を検索エンジンサーバ108へ送信する。
ステップS130では、検索エンジンサーバ108は、ステップS128において類似文書検索サーバ104から受信したIDF値の取得要求に基づいて、特徴語のIDF値を取得する。
ステップS132では、検索エンジンサーバ108は、ステップS130において取得したIDF値の取得結果を類似文書検索サーバ104へ送信する。
ステップS134では、類似文書検索サーバ104は、ステップS132で検索エンジンサーバ108から送信されたIDF値の取得結果を受信する。
ステップS136では、類似文書検索サーバ104は、ステップS134で受信した取得結果に基づいて、IDF値の更新指示に関する情報をDBサーバ106へ送信する。
ステップS138では、DBサーバ106は、ステップS136で類似文書検索サーバ104から送信されたIDF値の更新指示情報によって、分野別カテゴリ分類別特徴語テーブルのIDFを更新する。
次に、図4、図5、図6に示すフローチャートを用いて類似文書検索処理について説明を行う。
ステップS200では、クライアントPC102に導入されたウェブブラウザに表示された類似文書検索画面600(図15)に対して、ユーザによって文書選択ボタン602が押下されたことを検知すると、文書選択画面(不図示)が表示され、当該文書選択画面で文書が選択されると選択文書604を類似文書検索画面600に表示する。
ステップS202では、クライアントPC102は、類似文書検索画面600に対して、実行ボタン606が押下されたことを検知することにより、選択文書604を文書として類似文書検索サーバ104へ送信する。
ステップS204では、類似文書検索サーバ104は、ステップS202においてクライアントPC102から送信された文書を受信する。
ステップS206では、類似文書検索サーバ104は、分野別、カテゴリ分類別の特徴語を全件取得する指示に関する情報をDBサーバ106へ送信する。
ステップS208では、DBサーバ106は、ステップS206において類似文書検索サーバ104から送信された特徴語全件取得指示情報を受信し、当該特徴語全件取得指示情報に基づいて、分野別カテゴリ分類別特徴語テーブルから全ての特徴語に関する情報を取得する。
ステップS210では、DBサーバ106は、ステップS208において取得した全ての特徴語に関する情報に関して、分野>カテゴリ分類>特徴語でソートして類似文書検索サーバ104へ送信する。
ステップS212では、類似文書検索サーバ104は、ステップS210においてDBサーバ106から送信された全ての特徴語に関する情報を受信する。
ステップS214では、類似文書検索サーバ104は、ステップS204で受信した文書のテキスト文字列を抽出し、形態素に分解して、文書から抽出した単語を取得する。
ステップS216では、類似文書検索サーバ104は、ステップS212において受信した全件の特徴語に関する情報から順次、特徴語に関する情報を読み込む。
ステップS218では、類似文書検索サーバ104は、全ての特徴語情報を読み込んだ場合、ステップS228へ処理を進め、読み込んでいない場合、ステップS220へ処理を進める。
ステップS220では、類似文書検索サーバ104は、ステップS214において抽出した単語を順次読み込む。
ステップS222では、類似文書検索サーバ104は、全ての単語を読み込んだ場合、ステップS216へ処理を進め、読み込んでいない場合、ステップS224へ処理を進める。
ステップS224では、類似文書検索サーバ104は、ステップS216において読み込んだ特徴語とステップS220で読み込んだ単語とが一致しているか否かを判定し、一致していると判定した場合は、S226へ処理を進め、一致していると判定しない場合は、ステップS220へ処理を進める。
ステップS226では、類似文書検索サーバ104は、当該特徴語の分野、カテゴリ、及び当該特徴語に対応して件数を1件インクリメントする。
ステップS228では、類似文書検索サーバ104は、ステップS212で受信した全ての特徴語に関する情報のうち、分野ごとにカテゴリを重複しないように取得する。
例えば、特徴語に関する情報として、分野及びカテゴリが、業種及び金融である特徴語が20語あり、業種及び医療である特徴語が0語であり、システム及びポータルである特徴語が10語あり、システム及び印刷である特徴語が10語ある場合、金融及び医療、ポータル及び印刷を1つずつ順次読む。つまり、ステップS230で読み込み終了となるまで、計2つ読むことになる。
ステップS230では、類似文書検索サーバ104は、全ての分野及びカテゴリを読み込んだ場合、ステップS258へ処理を進め、読み込んでいない場合、ステップS232へ処理を進める。
ステップS232では、類似文書検索サーバ104は、分野/カテゴリにおけるスコア値を比較するためのパラメータであるスコアWK1を初期化する。
ステップS234では、類似文書検索サーバ104は、ステップS228において読み込んだ同じ分野における異なるカテゴリを順次読む。
ステップS236では、類似文書検索サーバ104は、ステップS228で読んだ同じ分野における全てのカテゴリを読み込んだ場合、ステップS252へ処理を進め、読み込んでいない場合、ステップS238へ処理を進める。
ステップS238では、類似文書検索サーバ104は、分野/カテゴリにおけるスコア値を設定するためのパラメータであるスコアWK2を初期化する。
ステップS240では、類似文書検索サーバ104は、ステップS234で読み込んだ分野/カテゴリにおける特徴語をステップS212で受信した全ての特徴語に関する情報に基づいて読み込む。
ステップS242では、類似文書検索サーバ104は、ステップS240で読み込んだ分野/カテゴリにおける全ての特徴語を読み込んだ場合は、ステップS248へ処理を進め、読み込んでいない場合は、ステップS244へ処理を進める。
ステップS244では、類似文書検索サーバ104は、ステップS226において求めた件数と特徴語に関する情報のIDFとを用いて特徴語のスコア値を計算する。
例えば、以下のような数式を用いてスコア値の計算を行う
[数式1]
特徴語のスコア計算式 =
... スコアa
TF : 文書内の特徴語の出現数
IDF :特徴語の希少価値(コーパス内の特徴語の逆頻度)
文書のカテゴリのスコア =
尚、特徴語のスコア計算式のTFは、特徴語の件数を代入し、スコア計算式のIDFは特徴語のIDFを代入し、スコア計算式のLENGTHはバッファ2(文書から抽出した単語の配列)の長さを代入してスコア計算式を行い特徴語のスコアaを求める。
ステップS246では、類似文書検索サーバ104は、ステップS244で算出した特徴語のスコアaをスコアWK2に加算し、ステップS240へ処理を進める。
ステップS248では、類似文書検索サーバ104は、スコアWK2の数値とスコアWK1の数値を比較し、スコアWK2が大きくない場合は、ステップS234へ処理を進め、スコアWK2が大きい場合は、ステップS250へ処理を進める。
ステップS250では、類似文書検索サーバ104は、スコアWK2の値をスコアWK1へ設定し、ステップS232へ処理を進める。
ステップS252では、類似文書検索サーバ104は、現時点でスコアWK2に設定した値を計算した分野のカテゴリにおける特徴語をステップS212で受信した全ての特徴語に関する情報に基づいて順次読む。
ステップS254では、類似文書検索サーバ104は、ステップS252で読み込んだ分野/カテゴリにおける全ての特徴語を読み込んだ場合は、ステップS228へ処理を進め、読み込んでいない場合は、ステップS256へ処理を進める。
ステップS256では、類似文書検索サーバ104は、ステップS252で読んだ分野のカテゴリにおける特徴語を検索キーワードとして追加する。
ステップS258では、類似文書検索サーバ104は、ステップS256における検索キーワードが存在しない場合、ステップS260へ処理を進め、検索キーワードが存在した場合、ステップS262へ処理を進める。
ステップS260では、類似文書検索サーバ104は、検索対象なしのメッセージをクライアントPC102へ送信する。
ステップS262では、クライアントPC102は、ステップS260において類似文書検索サーバ104から送信されたメッセージを受信する。
ステップS264では、クライアントPC102は、ステップS262で受信したメッセージを類似文書検索画面600に表示する。
ステップS266では、類似文書検索サーバ104は、ステップS256における検索キーワードを用いて、検索エンジンサーバ108に対して検索指示に関する情報を送信する。
ステップS268では、検索エンジンサーバ108は、ステップS266において類似文書検索サーバ104から送信された検索指示に関する情報に基づき、検索キーワードを含む文書を自身に蓄積した文書から検索する。
尚、検索エンジンサーバ108には、分野、カテゴリ別に文書を蓄積して登録しておき、検索キーワードの分野、カテゴリにより、分類された文書群から特徴語を含む文書を検索しても良い。
ステップS270では、検索エンジンサーバ108は、ステップS268において検索した結果、得られた文書に関する情報を類似文書検索サーバ104へ送信する。
この際に、検索キーワードに関して、検索した文書のTF−IDFのスコア順に、上位の数文書を検索結果として送信しても良い。
ステップS272では、類似文書検索サーバ104は、ステップS270において検索エンジンサーバ108から送信された検索結果を受信する。
ステップS274では、類似文書検索サーバ104は、検索結果に対応する検索キーワードとして分野、カテゴリ、及び特徴語をセットとして、当該検索結果と共にクライアントPC102へ送信する。
ステップS276では、クライアントPC102は、ステップS274において類似文書検索サーバ104から送信された検索結果等を受信する。
ステップS278では、クライアントPC102は、類似文書検索画面600のカテゴリを分類の検索結果608へステップS276で受信した分野、カテゴリを表示し、類似文書検索結果610へステップS276で受信した検索結果を表示する。
次に、図7、図8、図9、図10、及び図11に示すフローチャートを用いて、フィードバック処理について説明する。
ステップS300では、クライアントPC102は、類似文書検索画面600のOKフィードバックボタン612、または、NGフィードバックボタン614が押下されたことを検知することにより、ユーザから入力されたOKかNGかのフィードバックを受け取る。
そして、受け取ったフィードバックとステップS276で受信した分野、カテゴリ、及び特徴語のセットとを類似文書検索サーバ104へ送信する。
ステップS302では、類似文書検索サーバ104は、ステップS300においてクライアントPC102から送信されたフィードバックと分野、カテゴリ、及び特徴語のセットとを受信する。
ステップS304では、類似文書検索サーバ104は、フィードバックがOKであれば、ステップS306へ処理を進め、NGであれば、ステップS350へ処理を進める。
ステップS306では、類似文書検索サーバ104は、ステップS302において受信した分野、カテゴリ、及び特徴語のセットで検索を行う指示を示す情報を検索エンジンサーバ108へ送信する。
ステップS308では、検索エンジンサーバ108は、ステップS306において類似文書検索サーバ104から送信された検索指示情報に基づき、分野、カテゴリ、及び特徴語を含む文書を検索し、検索された文書の特徴語を取得する。
ステップS310では、検索エンジンサーバ108は、ステップS308における検索結果を類似文書検索サーバ104へ送信する。
ステップS312では、類似文書検索サーバ104は、ステップS310において検索エンジンサーバ108から送信された検索結果を受信する。
ステップS314では、類似文書検索サーバ104は、各文書の特徴語をOK候補リスト(図19上段)として生成する。
OK候補リストのArrayListは、検索して文書が得られた順位を示し、それらの文書に含まれる特徴語と当該特徴語のTF−IDF値を含む構成を備えている。
ステップS316では、類似文書検索サーバ104は、OK候補リストの重複する特徴語をマージする処理を行う。
マージする処理の例としては、同じ特徴語のTF−IDFの値の平均値をとることでマージすることがあげられ、マージする処理を行うことにより、追加用候補リスト(図19下段)を生成する。
ステップS318では、類似文書検索サーバ104は、ステップS306で用いた分野及びカテゴリとステップS316で生成した追加用候補リストに存在するそれぞれの特徴語とをセットとしたが、DBサーバ106の分野別カテゴリ分類別特徴語テーブルに存在するか否かの確認依頼を行う。
ステップS320では、DBサーバ106は、ステップS318において、類似文書検索サーバ104からの確認依頼を受け付けると、分野、カテゴリ、及び特徴語のセットに基づいて、分野別カテゴリ分類別特徴語テーブルの検索を行う。
ステップS322では、DBサーバ106は、ステップS320において検索した結果を類似文書検索サーバ104へ送信する。
ステップS324では、類似文書検索サーバ104は、ステップS322においてDBサーバ106から送信された検索結果を受信する。
ステップS326では、類似文書検索サーバ104は、ステップS324において受信した検索結果に基づいて、分野、カテゴリ、及び特徴語のそれぞれのセットのうち、分野別カテゴリ分類別特徴語テーブルに存在するものがある場合、ステップS328へ処理を進め、存在するものがない場合、ステップS400へ処理を進める。
尚、全ての件数の確認を行わずに、任意の件数を確認するような態様をとっても良い。つまり、ステップS342の処理の後、追加・更新する特徴語があらかじめ定めた所定件数を超えるときに、ステップS328へ処理を進めても良い。
ステップS328では、類似文書検索サーバ104は、ステップS326において分野別カテゴリ分類別特徴語テーブルに存在しない特徴語(分野/カテゴリに属する)が、分野別カテゴリ分類別特徴語テーブルへの追加候補となるか否かの確認をDBサーバ106へ行う。
ステップS330では、DBサーバ106は、ステップS328において類似文書検索サーバ104からの確認依頼に基づいて、分野、カテゴリ、及び特徴語のセットが追加削除候補カテゴリ分類特徴語テーブル(図20)に存在するかの検索を行う。
図20には、追加削除候補カテゴリ分類特徴語テーブルの構成が示されており、追加削除候補カテゴリ分類特徴語テーブルは、分野、カテゴリ、特徴語、特徴語を追加(ADD)あるいは削除(DEL)かを示す区分、及び追加あるいは削除候補とされた回数を示すカウントを含んで構成されている。
ステップS332では、DBサーバ106は、ステップS330における検索結果を類似文書検索サーバ104へ送信する。
ステップS334では、類似文書検索サーバ104は、ステップS332においてDBサーバ106から送信された検索結果を受信する。
ステップS336では、類似文書検索サーバ104は、ステップS334において受信した検索結果に基づいて、特徴語が追加削除候補カテゴリ分類特徴語テーブルに存在しないと判定した場合、ステップS338へ処理を進め、存在すると判定した場合、ステップS340へ処理を進める。
ステップS338では、類似文書検索サーバ104は、特徴語の追加指示に関する情報を生成し、ステップS340では、特徴語の更新指示に関する情報を生成する。
ステップS342では、類似文書検索サーバ104は、ステップS338あるいはステップS340で生成した情報をDBサーバ106へ送信する。
ステップS344では、DBサーバ106は、ステップS342において類似文書検索サーバ104から送信された追加、更新指示に関する情報に基づいて、追加削除候補カテゴリ分類特徴語テーブルに対して、特徴語を追加する(区分をADD、カウントを1として登録)、あるいは特徴語を更新する(カウントに1を加算)。
ステップS346では、DBサーバ106は、ステップS344で追加、更新した結果を類似文書検索サーバ104へ送信する。
ステップS348では、類似文書検索サーバ104は、ステップS346においてDBサーバ106から送信された追加、更新した結果を受信し、ステップS400へ処理を進める。
ステップS350では、類似文書検索サーバ104は、ステップS302において受信した分野、カテゴリ、及び特徴語のセットで検索を行う指示を示す情報を検索エンジンサーバ108へ送信する。
ステップS352では、検索エンジンサーバ108は、ステップS350において類似文書検索サーバ104から送信された検索指示情報に基づき、分野、カテゴリ、及び特徴語を含む文書を検索し、検索された文書の特徴語を取得する。
ステップS354では、検索エンジンサーバ108は、ステップS352における検索結果を類似文書検索サーバ104へ送信する。
ステップS356では、類似文書検索サーバ104は、ステップS354において検索エンジンサーバ108から送信された検索結果を受信する。
ステップS358では、類似文書検索サーバ104は、各文書の特徴語をNG候補リスト(図21上段)として生成する。
NG候補リストのArrayListは、検索して文書が得られた順位を示し、それらの文書に含まれる特徴語と当該特徴語のTF−IDF値を含む構成を備えている。
ステップS360では、類似文書検索サーバ104は、NG候補リストの重複する特徴語をマージする処理を行う。
マージする処理の例としては、同じ特徴語のTF−IDFの値の平均値をとることでマージすることがあげられ、マージする処理を行うことにより、追加用候補リスト(図21下段)を生成する。
ステップS362では、類似文書検索サーバ104は、ステップS350における特徴語(分野/カテゴリに属する)が、分野別カテゴリ分類別特徴語テーブルからの削除候補となるか否かの確認をDBサーバ106へ行う。
ステップS364では、DBサーバ106は、ステップS362において類似文書検索サーバ104からの確認依頼に基づいて、分野、カテゴリ、及び特徴語のセットが追加削除候補カテゴリ分類特徴語テーブルに存在するかの検索を行う。
ステップS366では、DBサーバ106は、ステップS364における検索結果を類似文書検索サーバ104へ送信する。
ステップS368では、類似文書検索サーバ104は、ステップS366においてDBサーバ106から送信された検索結果を受信する。
ステップS370では、類似文書検索サーバ104は、ステップS368において受信した検索結果に基づいて、特徴語が追加削除候補カテゴリ分類特徴語テーブルに存在しないと判定した場合、ステップS372へ処理を進め、存在すると判定した場合、ステップS374へ処理を進める。
ステップS372では、類似文書検索サーバ104は、特徴語の追加指示に関する情報を生成し、ステップS374では、特徴語の更新指示に関する情報を生成する。
ステップS376では、類似文書検索サーバ104は、ステップS372あるいはステップS374で生成した情報をDBサーバ106へ送信する。
ステップS378では、DBサーバ106は、ステップS376において類似文書検索サーバ104から送信された追加、更新指示に関する情報に基づいて、追加削除候補カテゴリ分類特徴語テーブルに対して、特徴語を追加する(区分をDEL、カウントを1として登録)、あるいは特徴語を更新する(カウントに1を加算)。
ステップS380では、DBサーバ106は、ステップS378で追加、更新した結果を類似文書検索サーバ104へ送信する。
ステップS382では、類似文書検索サーバ104は、ステップS380においてDBサーバ106から送信された追加、更新した結果を受信する。
ステップS400では、類似文書検索サーバ104は、ステップS276で受信した分野、カテゴリ、及び特徴語のセットを順次読み込む。
ステップS402では、類似文書検索サーバ104は、ステップS276で受信した全ての分野、カテゴリ、及び特徴語のセットを読んだ場合、本処理を終了し、読んでいない場合、ステップS404へ処理を進める。
ステップS404では、類似文書検索サーバ104は、ステップS400で読んだ分野、カテゴリ、及び特徴語のセットが、DBサーバ106の分野別カテゴリ分類別特徴語テーブルのOKカウント及びNGカウントの取得依頼を行う。
ステップS406では、DBサーバ106は、ステップS404において、類似文書検索サーバ104からの取得依頼を受け付けると、分野、カテゴリ、及び特徴語のセットに基づいて、分野別カテゴリ分類別特徴語テーブルの検索を行う。
ステップS408では、DBサーバ106は、ステップS406において検索して取得した結果を類似文書検索サーバ104へ送信する。
ステップS410では、類似文書検索サーバ104は、ステップS408においてDBサーバ106から送信された取得結果を受信する。
ステップS412では、類似文書検索サーバ104は、ステップS302においてクライアントPC102から受信したフィードバックが、NGであれば、ステップS414へ処理を進め、OKであれば、ステップS416へ処理を進める。
ステップS414では、類似文書検索サーバ104は、ステップS410において受信した検索結果に含まれるNGカウントを1つカウントアップする。
ステップS416では、類似文書検索サーバ104は、ステップS410において受信した検索結果に含まれるOKカウントを1つカウントアップする。
ステップS418では、類似文書検索サーバ104は、ステップS414あるいはステップS416において、分野、カテゴリ、及び特徴語のセットに対応するNGカウントあるいはOKカウントをカウントアップするように更新指示をDBサーバ106へ送信する。
ステップS420では、DBサーバ106は、ステップS418において類似文書検索サーバ104から送信された更新指示に基づいて、分野別カテゴリ分類別特徴語テーブルの分野、カテゴリ、及び特徴語のセットに対応するNGカウントあるいはOKカウントをカウントアップするように更新する。
ステップS422では、DBサーバ106は、ステップS420において更新した結果を類似文書検索サーバ104へ送信する。
ステップS424では、類似文書検索サーバ104は、DBサーバ106から送信された更新結果を受信し、ステップS400へ処理を進める。
以上、本発明によれば、類似する文書を簡易に検索できる。
例えば、類似する文書を検索するにあたり、RFPのように業種に関する情報や、システムに関する情報、あるいは、人事体制や開発に係る日程等の様々な情報がふくまれることから、単純に文書同士を比較して、類似している文書を検索することが難しい場合に効果を適する。
以上、本実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、本発明におけるプログラムは、図3乃至図10に示すフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は図3乃至図10の処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは図3乃至図10の各装置の処理方法ごとのプログラムであってもよい。
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適用できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。