(57)【特許請求の範囲】
【請求項１】
検索対象となる文書を登録する文書登録装置と、入力された検索用キーワードと一致する文書を検索する文書検索装置と、を備える文書検索システムであって、
前記文書登録装置は、
前記文書から語彙を切り出す語彙切り出し部と、
切り出された前記語彙と、当該語彙が含まれる文書とを対応付けて索引辞書に記憶する索引化部と、
一の語彙に対して、同一の文書内に出現して共起関係にある他の語彙を対応付けた共起情報を共起辞書に記憶する共起辞書生成部と、
前記共起辞書のサイズが所定の最大サイズより大きい場合に、グループ化される前記語彙の文書中における出現頻度の合計値が所定の最大出現頻度以下となるよう前記共起辞書に記憶された複数の語彙を同一の語彙グループに対応付けグループ辞書に記憶するグループ化処理を実行するグループ化部と、
を備え、
前記共起辞書生成部は、当該語彙グループに含まれる語彙と共起関係にある語彙と前記語彙グループとを対応付けた共起情報を前記共起辞書に記憶するとともに、当該語彙グループに対応付けられた語彙の前記共起情報を前記共起辞書から削除し、
前記文書検索装置は、
入力された検索用キーワードを受け付ける入力中キーワード受信部と、
前記入力中キーワード受信部で受け付けた前記検索用キーワードと共起する前記語彙または前記語彙グループを前記共起辞書から取得する共起語彙取得部と、
前記語彙グループが取得された場合は、前記グループ辞書から当該語彙グループに含まれる前記語彙を取得するとともに、取得した前記語彙と、前記検索用キーワードとの同一文書中における出現回数である共起頻度を前記索引辞書を用いて算出し、当該共起頻度から前記検索用キーワードと前記共起関係にあると判断される前記語彙を取得する共起グループ処理部と、
前記共起語彙取得部、及び前記共起グループ処理部が取得した前記語彙を前記検索用キーワードに対する関連キーワードとして提示する共起語彙提示部と
を備えることを特徴とする文書検索システム。
【請求項２】
前記グループ化部は、前記共起辞書に登録された前記語彙のうち、前記出現頻度が低い語彙から順に前記グループ化処理を行う
ことを特徴とする請求項１に記載の文書検索システム。
【請求項３】
前記グループ化部は、前記共起辞書に登録された前記語彙のうち、前記出現頻度が所定値以下の前記語彙に対して前記グループ化処理を行う
ことを特徴とする請求項１に記載の文書検索システム。
【請求項４】
前記最大出現頻度は、前記共起グループ処理部が、前記検索用キーワードと前記共起関係にある前記語彙を選択するまでに要する時間の許容値として予め設定された共起取得時間内に、ある語彙が他の語彙と前記共起関係にあるか否かを判断することのできる語彙数に基づき設定される
ことを特徴とする請求項１に記載の文書検索システム。
【請求項５】
前記グループ化部は、概念辞書に基づいて概念が類似する語彙同士を同一の前記語彙グループに対応付けて前記グループ辞書に記憶する
ことを特徴とする請求項１に記載の文書検索システム。
【請求項６】
前記共起語彙取得部は、利用者が前記検索用キーワードを入力後に新たな入力を検知すると、当該検索用キーワードと共起関係にある前記語彙、又は前記語彙グループを取得する
ことを特徴とする請求項１に記載の文書検索システム。
【請求項７】
検索対象となる文書を登録する文書登録装置と、入力された検索用キーワードと一致する文書を検索する文書検索装置と、を備える文書検索システムにおいて、実行される文書検索方法であって、
前記文書登録装置が、前記文書から語彙を切り出す語彙切り出しステップと、
前記文書登録装置が、切り出された前記語彙と、当該語彙が含まれる文書とを対応付けて索引辞書に記憶する索引化ステップと、
前記文書登録装置が、一の語彙に対して、同一の文書内に出現して共起関係にある他の語彙を対応付けた共起情報を共起辞書に記憶する共起辞書生成ステップと、
前記文書登録装置が、前記共起辞書のサイズが所定の最大サイズより大きい場合に、グループ化される前記語彙の文書中における出現頻度の合計値が所定の最大出現頻度以下となるよう前記共起辞書に記憶された複数の語彙を同一の語彙グループに対応付けグループ辞書に記憶するグループ化処理を実行するグループ化ステップと、
前記文書登録装置が、当該語彙グループに含まれる語彙と共起関係にある語彙と、前記語彙グループとを対応付けた共起情報を前記共起辞書に記憶するとともに、当該語彙グループに対応付けられた語彙の前記共起情報を前記共起辞書から削除する共起辞書更新ステップと、
前記文書検索装置が、入力された検索用キーワードを受け付ける入力中キーワード受信ステップと、
前記文書検索装置が、前記入力中キーワード受信ステップで受け付けた前記検索用キーワードと共起する前記語彙または前記語彙グループを前記共起辞書から取得する共起語彙取得ステップと、
前記文書検索装置が、前記語彙グループが取得された場合は、前記グループ辞書から当該語彙グループに含まれる前記語彙を取得するとともに、取得した前記語彙と、前記検索用キーワードとの同一文書中における出現回数である共起頻度を前記索引辞書を用いて算出し、当該共起頻度から前記検索用キーワードと共起関係にあると判断される前記語彙を取得する共起グループ処理ステップと、
前記文書検索装置が、前記共起語彙取得ステップ、及び前記共起グループ処理ステップにて取得された前記語彙を前記検索用キーワードに対する関連キーワードとして提示する共起語彙提示ステップと
を含む文書検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、文書検索システム、文書検索方法に関する。
【背景技術】
【０００２】
従来、ネットワーク上に公開された電子文書を検索する技術として、利用者が入力した検索用キーワードに基づいて検索を行う文書検索装置が知られている。通常、文書検索装置では利用者が目的の文書を得るためには、文書に関連した適切なキーワードを入力する必要があった。計算機やネットワークの性能向上や、非同期処理等の技術の発達により、利用者が検索用キーワードの一部を入力している途中で、利用者が入力した検索用キーワードに対して共起関係にあるキーワードを関連キーワードとして提示する文書検索装置が提供されるようになった。文書検索装置が関連キーワードを利用者に対して提示することにより、利用者は、入力する手間を省く、あるいは利用者がより求める情報に対して近い検索用キーワードを把握することが可能となる。
【０００３】
このように利用者に対して提示する語彙を決定する方法としては、文書を登録する際に同じ文書内に出現する語彙同士には共起関係にあるとして、この語彙同士の共起情報を共起辞書に登録しておき、利用者が入力した検索用キーワードと共起関係にある語彙を共起辞書を参照して提示する方式が知られている。
【０００４】
しかしながら、共起辞書を用いてキーワードを提示する場合、文書中に出現する単語間の共起情報を記憶するため共起辞書のサイズが膨大になってしまう問題がある。例えば２つのキーワード間の共起を記憶する場合、キーワード数をＮとすると最大で（Ｎ×（Ｎ−１））／２個の共起関係を記憶する必要があり、３個以上のキーワードの共起関係を記憶する場合はさらに共起辞書のサイズは増大する。
【０００５】
そこで、概念辞書を用いて意味的に類似した語彙を１つにグループ化することで共起辞書のサイズを削減する技術が提示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−１３７７３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来の検索装置においては、概念辞書を用いて意味的に類似した語彙を１つにグループ化することで共起辞書のサイズを削減しているが、共起した語彙として同一グループ内の語彙全てを提示することになるため、実際には共起していない語彙も関連するキーワードとして提示してしまう可能性がある。
【０００８】
また、類似の語彙をまとめたグループに多数の語彙が含まれることになった場合に、検索時にグループに含まれる語彙を全て表示させるには時間がかかることから、関連するキーワードを提示するために利用者が許容できる時間を超えて、検索時の利便性が損なわれるという問題も生じていた。
【０００９】
本発明は、上記に鑑みてなされたものであって、検索用のキーワードに対して共起する語彙を提示するまでに要する時間を抑制することのできる文書検索システムを提供することにある。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、実施形態の文書検索システムは、文書登録装置と、文書検索装置とを備える。文書登録装置は、一の語彙に対して、同一の文書内に出現して共起関係にある他の語彙を対応付けた共起情報を共起辞書に記憶する共起辞書生成部と、共起辞書のサイズが所定の最大サイズより大きい場合に、グループ化される前記語彙の文書中における出現頻度の合計値が所定の最大出現頻度以下となるよう前記共起辞書に記憶された複数の語彙を同一の語彙グループに対応付けグループ辞書に記憶するグループ化処理を実行するグループ化部と、を備える。共起辞書生成部は、当該語彙グループに含まれる語彙と共起関係にある語彙と前記語彙グループとを対応付けた共起情報を共起辞書に記憶するとともに、当該語彙グループに対応付けられた語彙を前記共起辞書から削除する。
【００１１】
文書検索装置は、前記入力中キーワード受信部で受け付けた前記検索用キーワードと共起する前記語彙または前記語彙グループを前記共起辞書から取得する共起語彙取得部と、前記語彙グループが取得された場合は、前記グループ辞書から当該語彙グループに含まれる前記語彙を取得するとともに、取得した前記語彙と、前記検索用キーワードとの同一文書中における出現回数である共起頻度を索引辞書を用いて算出し、当該共起頻度から前記検索用キーワードと共起関係にあると判断される前記語彙を取得する共起グループ処理部とを備える。
【図面の簡単な説明】
【００１２】
【図１】実施形態に係る文書検索システムのモジュール構成図である。
【図２】実施形態に係る文書検索システムに登録される文書の一例を示す図である。
【図３】実施形態に係る文書検索システムに登録されるデータから切り出した語彙を示す図である。
【図４】実施形態に係る索引化部で作成する索引辞書の一例を示す図である。
【図５】実施形態に係る共起辞書作成処理部が作成する共起辞書の一例を示す図である。
【図６】実施形態に係る文書検索システムが保持する共起辞書を作成するために必要なパラメータの一例を示す図である。
【図７】実施形態に係るグループ化部で共起辞書内の語彙をグループ化するための処理の流れを示すフロー図である。
【図８】実施形態に係るグループ化部が作成した共起辞書の一例を示す図である。
【図９】実施形態に係るグループ化部が作成するグループ辞書の一例を示す図である。
【図１０】実施形態に係る共起語彙取得部で検索用キーワードに関連する語彙を取得するための処理を示すフロー図である。
【図１１】実施形態に係るキーワード入力部でキーワードを入力中の状態の一例を示す模式図である。
【図１２】実施形態に係るキーワード入力部で文書検索システムが提示した関連キーワード一覧表示の一例を示す模式図である。
【発明を実施するための形態】
【００１３】
以下に、本発明にかかる文書検索システムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
【００１４】
図１は文書検索システムの機能構成例を示す構成図である。文書検索システム１は、例えばＣＰＵやＨＤＤ（ＨａｒｄＤｉｓｋＤｒｉｖｅ）を備えたサーバ装置２０と、クライアント端末１０とから構成され、クライアント端末１０からの指示による文書登録と、登録した文書の検索を行うシステムとして構成されている。図１に示されるように、サーバ装置２０は、文書登録装置２と、文書検索装置３と、索引辞書３１と、共起辞書３２と、共起辞書作成パラメータ３３と、グループ辞書３４と、を備えている。索引辞書３１、共起辞書３２、共起辞書作成パラメータ３３、及びグループ辞書３４のそれぞれの辞書は、サーバ装置２０のＨＤＤに記憶されている。
【００１５】
文書登録装置２は、クライアント端末１０から登録するよう指示された文書４１を登録する処理を行い、語彙切り出し部２１と、索引化部２２と、共起辞書生成部２３と、グループ化部２４とを備える。本実施形態の文書登録装置２の動作は文書４１が文書検索システム１に登録文書として入力されることにより開始される。
【００１６】
文書検索装置３は、クライアント端末１０のキーワード入力部１１を通じて送信された検索用キーワードを受付けて検索用キーワードに一致する文章を検索し検索結果を文書４２として利用者のクライアント端末１０へと送信する。文書検索装置３は、入力中キーワード受信部２５と、共起語彙取得部２６と、共起グループ処理部２７と、共起語彙提示部２８と、入力済みキーワード受信部２９と、キーワード検索処理部３０と、を備える。
【００１７】
語彙切り出し部２１は、文書検索システム１に登録する文書４１内の文字列を解析し、索引に登録する語彙と呼ばれる単位の文字列を切り出す。この切り出し処理の一例を図２、及び図３を用いて説明する。図２は、文書検索システムに登録される文書の一例を示しており、文書はＸＭＬフォーマット形式で記述されている。文書は、全体が<本></本>というタグで囲まれており、この<本></本>が一つの文書単位を定義している。<本>タグは、「出版日」という属性を持っており、値は“２０００／１／１”である。また<本>タグは、子要素として<題名></題名>、<著者></著者>、<価格></価格>のタグを有しており、値はそれぞれ“スポーツ入門  野球”  、“高木太郎”  、“２０００”である。各属性名やタグは、値の意味を表している。
【００１８】
図３は、図２の文書を語彙の単位に切り出した例であり、属性の値及びタグの値が、“２０００”、”/”、”１”、”/”、”1”、”スポーツ”、”入門”、”野球”、”高木”、”太郎”、”２０００”の単位で切り出されている。
【００１９】
索引化部２２は、文書から語彙切り出し部２１が切り出した語彙を、当該語彙が登場する文書に割り当てられた文書番号と対応付けて索引辞書３１へと登録する。図４は、索引辞書３１の一例を示している。図４に示した索引辞書３１は、「語彙」と「登録文書番号リスト」の項目を有する。「語彙」は語彙切り出し部２１で切り出された語彙が登録される。「登録文書番号リスト」は、各語彙がどの文書に存在するかが語彙に対応付けられた文書番号のリストとして記憶される。したがって、索引辞書３１を参照することで、語彙を索引として、その語彙がどの文書に出現するかを把握することができる。図４は、図２で示した文書の文書番号を１００１として図３の各語彙を索引辞書３１に登録した時の例であり、切り出された各語彙に対応する「登録文書番号リスト」の最後に、文書番号１００１がそれぞれ登録されている。語彙の索引辞書３１への登録の際には、切り出された語彙が既に索引辞書３１に記憶されている場合は、記憶済みの語彙の登録文書番号リストに新たな文書番号が追加される。一方、切り出された語彙が索引辞書３１に記憶されていない場合には、新たに語彙と、新たな文書番号を含む登録文書番号リストが記憶される。
【００２０】
共起辞書生成部２３は、語彙切り出し部２１で切り出された語彙と、同一の文書内に出現して共起関係にある語彙とを対応付け共起情報として共起辞書３２に登録する。共起辞書３２は、同一文書中に出現した語彙と語彙との共起関係を共起情報として記録するものである。登録された共起辞書３２の一例を図５に示す。図５の共起辞書３２は「共起辞書サイズ」「語彙番号」、「グループ化判別フラグ」、「語彙」、「出現頻度」、「共起語彙番号リスト」、「語彙グループ総出現頻度」の項目を有する。「共起辞書サイズ」は共起辞書３２がサーバ装置２０において使用している記憶容量である。図５においては、「２００ＭＢ」の記憶容量を使用している旨を示している。「語彙」は語彙切り出し部２１で切り出された語彙を示す。「語彙番号」は「語彙」を識別するために共起辞書生成部２３が各語彙に対して割り当てた番号である。「出現頻度」は「語彙」がこれまで登録された全文書内で出現した数である。「共起語彙番号リスト」は「語彙」と同一文書中に現れた語彙のリストである。共起語彙番号リストにおいて、語彙番号とともに記される（）で囲まれた数字は、「語彙」と同じ文書中に出現した回数である共起頻度を示している。共起頻度は、図４で示した索引辞書３１において、２つの語彙がともに出現する文書の個数をカウントすることによって、算出される。「語彙グループ総出現頻度」は「語彙」と同一文書中に現れた語彙のうち、「グループ化判別フラグ」が“ｔｒｕｅ”である語彙グループに含まれる語彙の出現頻度の合計である。「グループ化判別フラグ」は、共起辞書３２に登録されているレコードが、語彙か語彙グループであるかを判別するためのフラグである。ｔｒｕｅの場合、そのレコードは語彙グループであり、ｆａｌｓｅの場合、そのレコードは語彙であることを示している。
【００２１】
図５では、図３にて切り出された語彙である”２０００”、”/”、”１”、”スポーツ”、”入門”、”野球”、”高木”、”太郎”の各語彙に対して既に語彙番号２３、２１、２２、１、３、２、２４、２５がそれぞれ割り当てられている。各語彙に対する共起関係が既に共起辞書３２に登録されている場合は、共起語彙番号リストに語彙番号と共起頻度が記憶されているため、共起辞書生成部２３は、該当する語彙の共起頻度の数値を更新する。ある語彙と他の語彙とが初めて同一文書中に出現した場合は、共起辞書生成部２３は、新規に共起語彙番号リストに追加する。語彙がこれまで共起辞書３２に登録されたものでない場合、共起辞書生成部２３は、新たに語彙番号を取得してレコードを追加する。”高木”、”太郎”の２つの語彙は、”スポーツ”、”入門”、”野球”の語彙と図２の文書中で始めて共起関係となったため、それぞれの語彙の共起語彙番号リストの欄に共起頻度１として新規に追加される。
【００２２】
グループ化部２４は、共起辞書３２内において複数の語彙をグループ化し、語彙グループとしてグループ辞書３４に登録する。このとき、共起辞書生成部２３は、この新たな語彙グループを共起辞書３２に新しいレコードとして追加するとともに、共起語彙番号リストの欄にこの語彙グループに含まれるそれぞれの語彙と共起関係にある他の語彙を追加する。また、共起辞書生成部２３は、グループ化した語彙のレコード、及び共起語彙番号リスト中の語彙を共起辞書３２から削除し、削除した語彙番号の変わりに共起語彙番号リストの欄には語彙グループの語彙番号と共起頻度とを追加する。グループ化部２４の詳細な処理、及びグループ化部２４が作成するグループ辞書３４については後述する。
【００２３】
共起辞書作成パラメータ３３は、共起辞書３２内に登録した語彙をグループ化する際に用いるパラメータを記憶する。
【００２４】
図６はグループ化部２４が共起辞書３２に登録された語彙をグループ化する際に用いるパラメータの一例である。図６の共起辞書作成パラメータ３３は「共起辞書最大サイズ(ＤｉｃＭａｘＳｉｚｅ)」、「トータル許容時間」、「通信コスト」、「その他処理時間」、「共起計算許容時間」、「共起計算処理能力」、「語彙グループ最大出現頻度(Ｗｎｕｍ＿ｍａｘ)」の項目を有する。「共起辞書最大サイズ(ＤｉｃＭａｘＳｉｚｅ)」は、予め定められた共起辞書の最大サイズを表す。共起辞書サイズが共起辞書最大サイズよりも大きくなった場合、共起辞書サイズを低減するために共起語彙のグループ化処理が行われる。「トータル許容時間」は利用者の入力中の検索用キーワードを文書検索装置３側で受け取ってからこの検索用キーワードと共起する語彙を提示するまでにかかる処理時間として想定する最大の時間である。「通信コスト」はクライアント端末１０とサーバ装置２０との間においてデータ通信に要する通信時間として想定される時間である。「その他の処理時間」とは、通信、及び共起関係の計算以外の処理にかかると想定される時間である。「共起計算許容時間」は「トータル許容時間」から「通信コスト」、「その他の処理時間」を除いたものであり、検索用キーワードと共起関係にある語彙を取得するまでに許容される最大の時間である。図６の場合「トータル許容時間」、「通信コスト」、「その他の処理時間」は各々１００ｍｓ、６０ｍｓ、２０ｍｓと設定されているため、「共起計算許容時間」は１００−６０-２０＝２０ｍｓとなる。「共起計算処理能力」は文書検索システム１において、２つの語彙が共起関係にあるかを一定時間（１ｍｓ）内に何個判断できるかを表すものである。「語彙グループ最大出現頻度(Ｗｎｕｍ＿ｍａｘ)」は共起辞書内の語彙をグループ化する際に計算される共起語彙の「語彙グループ総出現頻度」の最大値を示し、「共起計算許容時間」と「共起計算処理能力」から計算される。図６では「共起計算許容時間」、「共起計算処理能力」は２０ｍｓ、５個／ｍｓであるため２０×５＝１００が語彙グループの最大出現頻度である。語彙グループに含まれる語彙の出現頻度を合計した語彙グループ総出現頻度がＷｎｕｍ＿ｍａｘを超える場合、本実施形態の文書検索システムの処理能力では、許容時間として設定した２０ｍｓ以内に利用者に対して検索用キーワードに関連する別のキーワードを提示できないことになる。したがって、本実施形態においては、語彙グループを作成する際には、その語彙グループに含まれる語彙の数が、語彙グループ中の語彙の出現頻度の合計値が語彙グループＷｎｕｍ＿ｍａｘを超えないように設定される。
【００２５】
キーワード入力部１１は、利用者が検索する検索用キーワードを入力、または文書検索システム１が提示した関連キーワードの選択を受け付けてサーバ装置２０へと送信する。キーワード入力部１１は本実施形態においてはクライアント端末１０に実装される。
【００２６】
入力中キーワード受信部２５は、キーワード入力部１１で利用者が入力中の検索用のキーワードを受信する。共起語彙取得部２６は、入力中キーワード受信部２５で受信したキーワードと共起する共起語彙番号リストを共起辞書３２から取得する。共起語彙取得部２６は、取得した共起語彙番号リストから、検索用キーワードと共起する語彙、又は語彙グループを取得する。共起語彙番号リストに含まれる語彙番号に該当するレコードが語彙グループのものであった場合、共起グループ処理部２７は、グループ辞書３４から語彙グループに対応付けられた各語彙を取得する。共起グループ処理部２７は、取得したそれぞれの語彙に対する検索用キーワードの共起頻度を索引辞書３１を用いて計算する。そして共起グループ処理部２７は、計算結果から検索用キーワードと共起している語彙、すなわち共起頻度が１以上の語彙のみを関連するキーワードとして選択する。共起語彙提示部２８は、共起語彙取得部２６が取得した語彙、及び共起グループ処理部２７が取得した検索用キーワードと共起する語彙を利用者へと提示する。共起語彙提示部２８は、共起語彙の提示にあたっては、利用者が使用するクライアント端末１０へと共起語彙のリストを送信する。クライアント端末１０においては、リストが共起語彙として提示される。入力済みキーワード受信部２９は、キーワード入力部１１でユーザが入力を完了して検索が実行された際の検索用のキーワードを取得する。キーワード検索処理部３０は、入力済みキーワード受信部２９で取得された検索用キーワードを含む文書を索引辞書３１から検索し、検索結果の文書４２をクライアント端末１０に対して送信する。
【００２７】
次に、グループ化部２４が図６に示した共起辞書作成パラメータ３３の数値を用いて、共起辞書３２に登録された共起情報から語彙グループを作成する処理の流れの一例について図７〜図９を用いて説明する。図７は、語彙をグループ化するグループ化処理の流れを示したフロー図であり、図８はグループ化された後の状態の共起辞書３２の一例を示した図である。また、図９は、グループ辞書３４の一例を示した図である。グループ辞書３４とは、共起辞書３２内に登録された語彙をグループ化した際に、どの語彙がどのグループに属するかを記憶したものである。
【００２８】
図７で示される、グループ化処理は、文書が新たに登録されて共起辞書３２に語彙が追加された後に開始される。まず、グループ化部２４は、共起辞書３２の共起辞書サイズが共起辞書最大サイズであるＤｉｃＭａｘＳｉｚｅ以下であるか否かを判定する（ステップＳ１０）。共起辞書３２のサイズがＤｉｃＭａｘＳｉｚｅより大きいと判定された場合（ステップＳ１０：Ｎｏ）、グループ化部２４は、共起辞書３２内で最も出現頻度の低い語彙Ｗｍｉｎと、その出現頻度とを取得する（ステップＳ２０）。次に、グループ化部２４は、Ｗｍｉｎの語彙の出現頻度と、共起辞書３２に登録されている語彙グループ総出現頻度とを加算した値がＷｎｕｍ＿ｍａｘ以下であるかを判定する（ステップＳ３０）。グループ化判別フラグがｔｒｕｅのレコードが、共起辞書３２に登録されていない場合、グループ化された語彙が存在していないため、この語彙グループ総出現頻度は「０」となっている。
【００２９】
Ｗｍｉｎの語彙の出現頻度と、共起辞書３２に登録されている語彙グループ総出現頻度とを加算した値がＷｎｕｍ＿ｍａｘ以下であると判定された場合（ステップＳ３０：Ｙｅｓ）、グループ化部２４は、語彙グループ化候補リストＬｉｓｔを初期化してＷｍｉｎの語彙を語彙グループ化候補リストＬｉｓｔに追加する（ステップＳ４０）。次に、グループ化部２４は、Ｗｍｉｎの次に出現頻度の低い語彙Ｗｎｅｘｔを取得する（ステップＳ５０）。次に、グループ化部２４は、共起辞書３２に記憶された語彙グループ総出現頻度の値に、Ｌｉｓｔ内の語彙とＷｎｅｘｔの語彙の出現頻度を加算した数値がＷｎｕｍ＿ｍａｘ以下であるかを判定する（ステップＳ６０）。
【００３０】
数値がＷｎｕｍ＿ｍａｘ以下であると判定された場合（ステップＳ６０：Ｙｅｓ）、グループ化部２４は、ＬｉｓｔにＷｎｅｘｔを追加する（ステップＳ８０）。その後ステップＳ５０からの処理を繰り返す。
【００３１】
一方、数値がＷｎｕｍ＿ｍａｘより大きいと判定された場合（ステップＳ６０：Ｎｏ）、グループ化部２４は、Ｌｉｓｔ内に含まれる語彙数が２以上であるかを判定する（ステップＳ７０）。Ｌｉｓｔ内に含まれる語彙数が２以上と判定された場合（ステップＳ７０：Ｙｅｓ）、グループ化部２４は、Ｌｉｓｔ内の語彙をグループ化するために新規語彙番号Ｎ（Ｎは共起辞書３２に語彙番号として登録されていない正の整数）を取得し、グループ辞書３４に新規語彙番号ＮとＬｉｓｔ内の語彙リストを登録する（ステップＳ９０）。
【００３２】
次に、共起辞書生成部２３は、共起辞書３２に新規要素として、語彙番号にＮを、グループ化判別フラグにｔｒｕｅを、語彙にグループ化の場合に記録する文字列「-------」を、出現頻度にＬｉｓｔ内の語彙全ての出現頻度を合算した値を、共起語彙番号リストにＬｉｓｔ内の語彙それぞれの共起情報を合算したものを、それぞれ登録する（ステップＳ１００）。さらに、共起辞書生成部２３は、語彙番号Ｎと共起する語の共起語彙番号リストに語彙番号Ｎと共起頻度を追加する（ステップＳ１１０）。また、共起辞書生成部２３は、共起辞書３２の語彙グループ総出現頻度の値に、Ｌｉｓｔ内の語彙の出現頻度を加算して更新し、語彙グループＮと共起する語彙の語彙グループ総出現頻度の欄に、更新後の値を追加する（ステップＳ１１５）。
【００３３】
次に、共起辞書生成部２３は、Ｌｉｓｔ内の各語彙を共起辞書３２から削除する（ステップＳ１２０）。次に共起辞書生成部２３は、削除した語彙と共起する語彙の共起語彙番号リストから削除した語彙番号を削除する（ステップＳ１３０）。その後ステップＳ１０に進む。
【００３４】
なお、共起辞書サイズがＤｉｃＭａｘＳｉｚｅ以下の場合（ステップＳ１０：Ｙｅｓ）、Ｗｍｉｎの語彙の出現頻度と、共起辞書３２に登録されている語彙グループ総出現頻度とを加算した値がＷｎｕｍ＿ｍａｘより大きいと判定された場合（ステップＳ３０：Ｎｏ）、又はＬｉｓｔ内に含まれる語彙数が２未満であると判定された場合（ステップＳ７０：Ｎｏ）、処理は終了する。
【００３５】
図５の共起辞書３２を上記の処理の流れに従ってグループ化した場合の例について以下に示す。まず、図５の共起辞書３２では共起辞書サイズが２００ＭＢであり、図６のＤｉｃＭａｘＳｉｚｅの１００ＭＢよりも大きいことから、出現頻度の最も低い語彙番号１００００の語彙”ペタンク”がＷｍｉｎとして取得される（ステップＳ１０、Ｓ２０）。次に、Ｗｍｉｎである語彙“ペタンク”の出現頻度の１０を加算した語彙グループ総出現頻度がＷｎｕｍ＿ｍａｘの１００よりも小さいことから、語彙グループ化候補リストＬｉｓｔが初期化されて“ペタンク”が追加される（ステップＳ３０、Ｓ４０）。
【００３６】
さらに、次の出現頻度の低い語彙として語彙番号９９９９の語彙”南山之寿”がＷｎｅｘｔとして取得される（ステップＳ５０）。次に、Ｌｉｓｔ内の語彙と“南山之寿”の出現頻度の合計値が１０＋２０＝３０であり、Ｗｎｕｍ＿ｍａｘより小さいためＬｉｓｔに“南山之寿”が追加される（ステップＳ６０、Ｓ８０）。さらに、次の出現頻度が低い語彙として語彙番号９９９８の語彙”セパタクロー”がＷｎｅｘｔとして取得される（ステップＳ５０）。次に、Ｌｉｓｔ内の語彙と”セパタクロー”の出現頻度の合計値が１０＋２０＋３４＝６４であり、Ｗｎｕｍ＿ｍａｘより小さいためＬｉｓｔに”セパタクロー”が追加される（ステップＳ６０、Ｓ８０）。さらに、次の出現頻度が低い語彙として語彙番号９９９７の語彙”千秋万歳”がＷｎｅｘｔとして取得される（ステップＳ５０）。
【００３７】
Ｌｉｓｔ内の語彙と“千秋万歳”の出現頻度の合計値が１０＋２０＋３４＋１０１＝１６５であり、Ｗｎｕｍ＿ｍａｘより大きくなり、さらにＬｉｓｔの語彙数が２以上であるためＬｉｓｔ用に新規語彙番号１０００１が取得され、図９のようにグループ辞書３４に語彙番号１０００１と、グループ内語彙リストとして”ペタンク”、”南山之寿”、”セパタクロー”が登録される（ステップＳ６０、Ｓ７０、Ｓ９０）。
【００３８】
次に、図８に示されるように、共起辞書３２に新規語彙番号１０００１、グループ化判別フラグにｔｒｕｅ、語彙に文字列「-------」、出現頻度に各語彙の合計出現頻度６４、共起語彙番号リストに各語彙の共起語彙番号頻度を足し合わせたものである１(２８)、３(１２)、１９(４)、４０(１６)、５２(２)、７８(２)が新たなレコードとして追加される（ステップＳ１００）。次に追加した語彙番号１０００１の共起語彙番号リストにある各語彙番号１、３、１９、４０、５２、７８に対して、それぞれ語彙番号１０００１を共起語彙として追加し（Ｓ１１０）、それぞれの語彙グループ総出現頻度に今回グループ化した語彙の出現頻度の合計値を加えて更新する（Ｓ１１５）。次にＬｉｓｔに追加した語彙番号９９９９、９９９８、９９９７が共起辞書のレコードから削除される（ステップＳ１２０）。次に削除した語彙番号９９９９、９９９８、９９９７と共起していた語彙番号１、３、１９、４０、５２、７８の共起語彙番号リストから削除した語彙番号が取り除かれる（ステップＳ１３０）。このように、共起辞書３２からレコードを削除した結果、必要とする記憶容量が減り、削除後の共起辞書３２のサイズは１９５ＭＢになる。
【００３９】
図９はグループ化部２４が共起辞書３２の語彙をグループ化する際に作成するグループ辞書３４の一例である。グループ辞書３４は「語彙番号」、「グループ内語彙リスト」の項目を有する。「語彙番号」は語彙グループが共起辞書３２から与えられる識別番号である。「グループ内語彙リスト」はグループ化した語彙のリストである。
【００４０】
次に、このようにグループ化された語彙が利用者による検索時に入力した検索用キーワードと共起した際の処理の流れを、図１０を用いて説明する。本実施形態の文書検索装置３において共起する関連キーワードを提示する処理は、キーワード入力部１１において利用者が１つのキーワードが入力され、続いてスペースキー（空白記号）が入力されると開始する。
【００４１】
図１１はキーワード入力部１１で利用者が検索用のキーワードを入力中の状態を示す一例である。図１１では検索用キーワードとして“スポーツ”の入力後、次のキーワードを入力するためにスペースキーが入力されている。入力中のキーワード情報は入力中キーワード受信部２５に渡され、さらに入力中キーワード受信部２５から共起語彙取得部２６に入力したキーワード”スポーツ”が渡される。次に、共起語彙取得部２６は、キーワード”スポーツ”を共起辞書３２から検索し、該当するレコードを取得する。図８で示した共起辞書３２から、共起語彙取得部２６は、語彙番号１のレコードを取得し、その共起語彙番号リストから検索用キーワードと共起する語彙と共起頻度の組合せのリストを関連語彙リストＲＷＬｉｓｔとして取得する。
【００４２】
次に検索用のキーワードが入力中であって、検索が実行されるまでの間、図１０で示した処理の流れに従って共起頻度を計算し、共起語彙提示部２８が共起されている語彙を関連キーワードとしてユーザに提示する処理を説明する。なお、この処理においては、ｉという変数を用いる。ｉは１以上であり、かつ入力対象の関連語彙リストＲＷＬｉｓｔの要素数以下である（ｉ：１≦ｉ≦ＲＷＬｉｓｔ内の要素数）。
【００４３】
まず、共起語彙取得部２６は、検索用キーワードと共起する関連語彙リストＲＷＬｉｓｔを取得する（ステップＳ２００）。次に、共起語彙取得部２６は、ｉ＝１とし、ＲＷＬｉｓｔｍａｘ＝ＲＷＬｉｓｔの語彙数と設定する（ステップＳ２１０）。次に共起語彙取得部２６は、ｉがＲＷＬｉｓｔｍａｘ以下であるかを判定する（ステップＳ２２０）。
【００４４】
ｉがＲＷＬｉｓｔｍａｘ以下であると判定された場合（ステップＳ２２０：Ｙｅｓ）、共起語彙取得部２６は、ＲＷＬｉｓｔ内のｉ番目の語彙ＲＷｉを取得する（ステップＳ２３０）。次に、共起語彙取得部２６は、共起辞書３２を参照して語彙ＲＷｉのレコードを取得し、グループ化判別フラグの項目がｔｒｕｅであるか否か、すなわち語彙グループであるか否かを判定する（ステップＳ２４０）。
【００４５】
グループ化判別フラグの項目がｔｒｕｅの場合（ステップＳ２４０：Ｙｅｓ）、共起グループ処理部２７は、グループ辞書３４を参照して、該当する語彙番号に登録されているレコードを取得し、グループ内語彙リストの項目にある語彙リストＷＬｉｓｔを取得する（ステップＳ２５０）。共起グループ処理部２７は、ｊ＝１（１≦ｊ≦ＷＬｉｓｔｍａｘ）と設定し、ＷＬｉｓｔ内の要素数＝ＷＬｉｓｔｍａｘとして設定する（ステップＳ２６０）。次に、共起グループ処理部２７は、ｊがＷＬｉｓｔｍａｘ以下であるか否かを判定する（ステップＳ２７０）。
【００４６】
ｊがＷＬｉｓｔｍａｘ以下であると判定された場合（ステップＳ２７０：Ｙｅｓ）、共起グループ処理部２７は、ＷＬｉｓｔ内のｊ番目の語彙Ｗｊを取得する（ステップＳ２８０）。次に、共起グループ処理部２７は、索引辞書３１から語彙Ｗｊと利用者が入力した検索用キーワードＷｉｎｐｕｔの両方を含む文書の数Ｄｎｕｍを取得し（ステップＳ２９０）、Ｄｎｕｍが０より大きいか否かを判定する（ステップＳ３００）。
【００４７】
Ｄｎｕｍが０より大きいと判定された場合（ステップＳ３００：Ｙｅｓ）、共起グループ処理部２７は、出力リストＲＬｉｓｔに語彙Ｗｊを追加し（ステップＳ３１０）、ステップＳ３２０へと移行する。一方、Ｄｎｕｍが０であると判定された場合（ステップＳ３００：Ｎｏ）、ＲＬｉｓｔにその語彙Ｗｊは追加されないまま、ステップＳ３２０へと移行する。
【００４８】
共起グループ処理部２７は、ｊにｊ＋１を代入し（ｊ：＝ｊ＋１）（ステップＳ３２０）、再びステップＳ２７０に戻って処理を繰り返す。
【００４９】
ｊがＷＬｉｓｔｍａｘより大きい、すなわち語彙グループ内の全ての語彙に対する共起関係の再計算が終了した場合（ステップＳ２７０：Ｎｏ）、ステップＳ３４０へと移行する。また、グループ化判別フラグの項目がｆａｌｓｅ、すなわち語彙ＲＷｉが語彙グループでない場合（ステップＳ２４０：Ｎｏ）、出力リストＲＬｉｓｔに語彙ＲＷｉを追加し（ステップＳ３３０）、ステップＳ３４０へと移行する。
【００５０】
ステップＳ３４０では、共起語彙取得部２６は、ｉにｉ＋１を代入し（ｉ：＝ｉ＋１）（ステップＳ３４０）、再びステップＳ２２０に戻って処理を繰り返す。ｉがＲＷＬｉｓｔｍａｘより大きいと判定された場合（ステップＳ２２０：Ｎｏ）、共起語彙提示部２８は、出力リストＲＬｉｓｔの語彙を関連キーワードとして利用者に提示して終了する（ステップＳ３５０）。
【００５１】
図８の共起辞書３２と図９のグループ辞書３４と図１１のキーワード入力画面に対して上述した処理が行われた結果のキーワード画面の一例を図１２に示す。図１１のキーワード入力画面で入力されたキーワード“スポーツ”は入力中キーワード受信部２５を経て共起語彙取得部２６に渡される。共起語彙取得部２６は、共起辞書３２から語彙の項目が“スポーツ”のレコードを取得する。さらに共起語彙取得部２６はレコードの共起語彙番号リストの項目から共起語彙の番号と、共起頻度の組合せのリストである２（６００）、３（２００）、２１（１００）、２２（８０）、２３（３００）、２４（１）、２５（１）、１０００１（２８）の８個の要素の組み合わせを関連語彙リストＲＷＬｉｓｔとして取得する（ステップＳ２００）。
【００５２】
次に、共起語彙取得部２６はｉに１を代入して、ＲＷＬｉｓｔｍａｘとしてＲＷＬｉｓｔの要素数８を代入する（ステップＳ２１０）。次にｉがＲＷＬｉｓｔｍａｘ以下であるため１番目の語彙番号２を語彙ＲＷｉとして取得する（ステップ２２０、Ｓ２３０）。次に共起語彙取得部２６は共起辞書３２から語彙番号の項目が２のレコードを取得してグループ化判別フラグの項目を調べ、ｆａｌｓｅであるので出力リストＲＬｉｓｔに語彙“野球”とその共起頻度とを登録する（ステップＳ２４０、Ｓ３３０）。次に共起語彙取得部２６はｉにｉ＋１として２を代入する（ステップＳ３４０）。同様にｉが２〜７の場合も、共起語彙取得部２６はグループ化判別フラグがｆａｌｓｅのためｉが１の場合と同じ処理を繰り返す（ステップＳ２２０、Ｓ２３０、Ｓ２４０、Ｓ３３０、Ｓ３４０）。最後のステップＳ３４０でｉに８が代入される（ステップＳ３４０）。
【００５３】
共起語彙取得部２６は、ＲＷＬｉｓｔから８番目の語彙番号１０００１を語彙ＲＷｉとして取得する（ステップＳ２２０、Ｓ２３０）。次に、共起グループ処理部２７は、共起辞書３２から語彙番号の項目が１０００１のレコードを取得してグループ化判別フラグの項目を調べ、ｔｒｕｅであるのでグループ辞書３４から語彙番号の項目が１０００１のレコードを取得し、項目グループ内語彙リストから”ペタンク”、”南山之寿”、”セパタクロー”を取得してＷＬｉｓｔに格納する（ステップＳ２４０、Ｓ２５０）。
【００５４】
次に共起グループ処理部２７は、ｊに１を代入して、ＷＬｉｓｔｍａｘとしてＷＬｉｓｔの要素数３を代入する（ステップＳ２６０）。次にｊがＲＬｉｓｔｍａｘ以下であるため、共起グループ処理部２７は、１番目の語彙”ペタンク”を語彙Ｗｊとして取得する（ステップＳ２７０、Ｓ２８０）。次に、共起グループ処理部２７は、索引辞書３１からＷｊの語彙“ペタンク”と入力キーワード“スポーツ”を含む文書を検索し、文書番号５、１９を含む８件の文書を取得する（ステップＳ２９０）。文書が０件より大きいため、共起グループ処理部２７は、出力リストＲＬｉｓｔに語彙“ペタンク”と、その共起頻度とを登録する（ステップＳ３００、Ｓ３１０）。
【００５５】
次に共起グループ処理部２７は、ｊに２を代入してＷＬｉｓｔの２番目の語彙“南山之寿”を取得する。次に共起グループ処理部２７は、索引辞書３１から語彙Ｗｊの語彙“南山之寿”と入力キーワード“スポーツ”を含む文書を検索し、０件の文書を取得する（ステップＳ３２０、Ｓ２７０、Ｓ２８０、Ｓ２９０）。文書が０件であるため何もしないでｊに３が代入される（ステップＳ３００、Ｓ３２０）。次に共起グループ処理部２７は、ｊがＲＬｉｓｔｍａｘ以下であるため３番目の語彙”セパタクロー”を語彙Ｗｊとして取得する（ステップＳ２７０、Ｓ２８０）。次に共起グループ処理部２７は、索引辞書３１から語彙Ｗｊの語彙“セパタクロー”と入力キーワード“スポーツ”を含む文書を検索し、文書番号１３６を含む２０件の文書を取得する（ステップＳ２９０）。文書が０件より大きいため、共起グループ処理部２７は、出力リストＲＬｉｓｔに語彙“セパタクロー”とその共起頻度とを追加する（ステップＳ３００、Ｓ３１０）。次に、共起グループ処理部２７は、ｊに４を代入するがＲＬｉｓｔｍａｘより大きい為、ｉに９を代入する（ステップＳ３２０、Ｓ２７０、Ｓ３４０）。次にｉがＲＷＬｉｓｔｍａｘより大きくなったため、共起語彙提示部２８は、これまでＲＬｉｓｔに登録された語彙と共起頻度を、関連キーワードと想定するヒット件数として図１２のように利用者が操作するクライアント端末１０に提示して終了する（ステップＳ２２０、Ｓ３５０）。
【００５６】
以上に示した本実施形態の文書検索システムによれば、以下のような効果を奏することができる。すなわち、登録した文書から共起辞書３２を作成する場合において、文書検索システム１は、共起辞書３２のサイズが最大辞書サイズより大きい場合に、語彙のグループ化を行うこととしたため、不要なときにはグループ化を行う必要がなく、グループ化により関連キーワードの提示にかかる時間が増加することを防止することができる。
【００５７】
また、語彙をグループ化する際には、グループ化される語彙の出現頻度の合計値が最大出現頻度以下となるようにすることで、共起計算許容時間内の間に文書検索システム１が関連キーワードを利用者に対して提示できる件数に、語彙グループに含める語彙の数を設定することとしたため、関連キーワードの提示にかかる時間を所望の時間内にコントロールすることができるようになる。
【００５８】
更には、共起辞書３２の語彙がグループ化されている場合、検索時においてグループ内の各語彙の共起頻度を索引辞書３１から求めることで実際に検索用キーワードと共起する語彙のみを取得することができ、共起辞書３２のサイズを小さくしても、関連キーワード提示に係る精度を落とすことなく関連キーワードを提示することができる。
【００５９】
なお、本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００６０】
例えば、上記実施形態においては語彙グループが一つである場合を示したが、語彙グループを複数のグループに分けて作成することもできる。その場合、語彙グループ総出現頻度は各語彙グループに含まれる語彙の出現頻度を合計したものとなる。
【００６１】
また、語彙グループを作成する際には、上記の登録文書中の共起関係に加え、概念辞書に基づいて概念が類似する語彙同士を同一の語彙グループに対応付けてグループ辞書３４記憶するようにしてもよい。
【００６２】
また、語彙をグループ化する際には、上記実施形態においては、出現頻度が低いものから順にグループ化をするようにしたが、出現頻度が所定値より低いものをグループ化するようにしてもよい。
【００６３】
また、共起する語彙を取得する処理が開始されるタイミングを、利用者がキーワードを入力後に、スペースが入力されたときに開始されることとしたが、例えば検索用のキーワードが終わったことを検知し、この直後に開始されるようにしてもよい。また、検索用のキーワードは利用者が入力する方式ではなく、システムが自動的に入力するような方式に本実施形態を適用することもできる。
【符号の説明】
【００６４】
１１…キーワード入力部
２１…語彙切り出し部
２２…索引化部
２３…共起辞書生成部
２４…グループ化部
２５…入力中キーワード受信部
２６…共起語彙取得部
２７…共起グループ処理部
２８…共起語彙提示部
２９…入力済みキーワード受信部
３０…キーワード検索処理部
３１…索引辞書
３２…共起辞書
３３…共起辞書作成パラメータ
３４…グループ辞書
【図１】
0005364802.tif 000002
【図２】
0005364802.tif 000003
【図３】
0005364802.tif 000004
【図４】
0005364802.tif 000005
【図５】
0005364802.tif 000006
【図６】
0005364802.tif 000007
【図７】
0005364802.tif 000008
【図８】
0005364802.tif 000009
【図９】
0005364802.tif 000010
【図１０】
0005364802.tif 000011
【図１１】
0005364802.tif 000012
【図１２】
0005364802.tif 000013