以下に図面を参照して、本発明にかかる検索処理プログラム、検索処理方法および検索処理装置の実施の形態を詳細に説明する。
(実施の形態)
図1は、実施の形態にかかる検索処理方法の一実施例を示す説明図である。図1において、検索処理装置101は、属性を指定しない状態で入力されたキーワードに基づいて、属性を反映した検索を実行するコンピュータである。属性は、検索対象を特徴付ける情報である。
検索対象は、例えば、製品マニュアルや論文などのドキュメント(文書データ)である。検索対象には、属性を示す属性情報が付与されている。例えば、検索対象が製品マニュアルの場合、属性は、製品名、エディション(版数)、OS(Operating System)、バージョン情報などである。
既存の検索手法として、検索対象のドキュメントに属性情報を付与しておき、検索時は、入力されたキーワードが、本文や属性情報に含まれるドキュメントを検索結果として出力するものがある。ただし、本文と属性情報を区別せずに、入力されたキーワードで検索を行うと、検索結果に含まれるノイズ(ユーザが意図しない情報)が多くなってしまう。
また、検索結果に含まれるノイズを減らす手法として、例えば、本文に対して検索した検索結果の集合に対して、ユーザに属性を指定させることで、検索結果を絞り込むものがある。しかし、検索キーワードの入力とは別に、属性を指定する操作が必要となり、手間がかかるという問題がある。また、ユーザが属性の詳細を把握していないと、検索結果を絞り込むための属性を指定することができない。
そこで、本実施の形態では、属性を指定しない状態でキーワードの入力を受け付けても、キーワードが属性毎に設定されている検索対象について、属性を反映した検索を可能にする検索処理方法について説明する。以下、検索処理装置101の処理例について説明する。
(1)検索処理装置101は、検索対象に対する検索のために受け付けた複数のワードの中に、予め記憶部110に記憶されていた検索対象の属性毎に対応付けられた1又は複数のワードと一致又は類似する第1のワードが存在するか否かを判定する。
ここで、複数のワードは、検索時にキーワードとして入力される2以上のワードである。検索対象の属性毎に対応付けられた1又は複数のワードは、当該属性に対応するキーワードとして予め登録された語句に含まれる1又は複数のワードである。例えば、属性「製品名」のキーワードとしては、実際に存在する製品名が設定される。
具体的には、例えば、検索処理装置101は、受け付けた複数のワードの各ワードと、検索対象の属性毎に対応付けられた各ワードとをそれぞれ比較する。そして、検索処理装置101は、比較した結果に基づいて、受け付けた複数のワードの中に、検索対象の属性毎に対応付けられたいずれかのワードと一致又は類似する第1のワードが存在するか否かを判定する。
図1の例では、検索対象に対する検索のために、ワード111(xxx)とワード112(aaa)とを受け付けた場合を想定する。また、記憶部110には、検索対象の属性1に対応付けられたワード「xxx」と、検索対象の属性2に対応付けられたワード「yyy」と、検索対象の属性3に対応付けられたワード「zzz」とが記憶されている場合を想定する。
この場合、検索処理装置101は、ワード111,112の各ワードと、検索対象の属性1~3毎に対応付けられた各ワードとをそれぞれ比較する。ここでは、受け付けたワード111(xxx)が、検索対象の属性1に対応付けられたワード「xxx」と一致する。このため、第1のワード「xxx」が存在すると判定される。
(2)検索処理装置101は、第1のワードが存在すると判定した場合に、第1のワードと一致又は類似するワードと対応付けられている属性において第1のワードを含む検索対象群を抽出する。ここで、抽出元となる複数の検索対象は、例えば、企業内に蓄積されているドキュメントである。
また、第1のワードと一致又は類似するワードと対応付けられている属性において第1のワードを含む検索対象とは、検索対象を特徴付ける属性のうち、第1のワードと一致又は類似するワードと対応付けられている属性の属性値に、第1のワードを含む検索対象である。
すなわち、検索処理装置101は、複数の検索対象の中から、第1のワードと一致又は類似するワードと対応付けられている属性の属性値に、第1のワードが含まれる検索対象群を抽出する。これにより、第1のワードと一致又は類似するワードと対応付けられている属性の属性値に、第1のワードを含む検索対象群を絞り込むことができる。
図1の例では、検索処理装置101は、抽出元120の中から、属性1の属性値に、第1のワード「xxx」が含まれる検索対象群を抽出する。なお、抽出元120に含まれる各検索対象には、属性1~3の属性値を示す属性情報が付与されている。ここでは、検索対象群121が抽出された場合を想定する。
(3)検索処理装置101は、受け付けた複数のワードに含まれる第1のワード以外の第2のワードと、抽出した検索対象群それぞれのデータに含まれるワードとの比較結果に基づいて、検索対象群の中から検索対象を特定する。ここで、検索対象群それぞれのデータとは、例えば、ドキュメントの本文情報である。
具体的には、例えば、検索処理装置101は、受け付けた複数のワードのうち第1のワード以外の第2のワードを特定する。つぎに、検索処理装置101は、特定した第2のワードと、抽出した検索対象群それぞれのデータに含まれるワードとを比較する。そして、検索処理装置101は、抽出した検索対象群の中から、第2のワードと一致するワードがデータに含まれる検索対象を特定する。
図1の例では、検索処理装置101は、受け付けたワード111,112のうち第1のワード「xxx」以外の第2のワード「aaa」を特定する。つぎに、検索処理装置101は、第2のワード「aaa」と、抽出した検索対象群121それぞれのデータに含まれるワードとを比較する。そして、検索処理装置101は、検索対象群121の中から、第2のワード「aaa」と一致するワードがデータに含まれる検索対象を特定する。ここでは、検索対象集合122が特定されている。
このように、検索処理装置101によれば、属性を指定しない状態でキーワードの入力を受け付けても、キーワードが属性毎に設定されている検索対象について、属性を反映した検索を実行することができる。
図1の例では、ユーザが意識して入力しなくても、検索対象に対する検索のために受け付けたワード111,112を、絞り込み用のワード(第1のワード)と、全文検索用のワード(第2のワード)とに分類することができる。これにより、ユーザが指定したい属性情報を推定して検索対象群121を絞り込んだ上で全文検索を行うことができ、検索結果に含まれるノイズを減らして、ユーザが欲しい情報を見つけやすくすることができる。
(検索処理システム200のシステム構成例)
つぎに、実施の形態にかかる検索処理システム200のシステム構成例について説明する。検索処理システム200は、図1に示した検索処理装置101を含むコンピュータシステムであり、例えば、企業内に蓄積されているドキュメントをナレッジ活用するためのシステムに適用される。
図2は、検索処理システム200のシステム構成例を示す説明図である。図2において、検索処理システム200は、検索処理装置101と、クライアント装置201と、を含む。検索処理システム200において、検索処理装置101およびクライアント装置201は、有線又は無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
ここで、検索処理装置101は、ドキュメント管理DB(Database)220および製品属性テーブル230を有する。例えば、検索処理装置101は、サーバである。検索処理装置101は、複数のサーバにより実現されることにしてもよい。各種DB等220,230の記憶内容については、図4および図5を用いて後述する。図1に示した記憶部110は、例えば、製品属性テーブル230に相当する。
ただし、各種DB等220,230は、検索処理装置101がアクセス可能な他のコンピュータが有することにしてもよい。この場合、検索処理装置101は、他のコンピュータにアクセスして、各種DB等220,230の記憶内容を参照することができる。
クライアント装置201は、検索処理システム200のユーザが使用するコンピュータである。ユーザは、例えば、検索処理システム200が導入された企業の従業員である。クライアント装置201は、例えば、PC(Personal Computer)、タブレットPC、スマートフォンなどである。
なお、図2の例では、クライアント装置201を1台のみ表示したが、検索処理システム200には複数のクライアント装置201が含まれていてもよい。
(検索処理装置101のハードウェア構成例)
図3は、検索処理装置101のハードウェア構成例を示すブロック図である。図3において、検索処理装置101は、CPU(Central Processing Unit)301と、メモリ302と、ディスクドライブ303と、ディスク304と、通信I/F(Interface)305と、可搬型記録媒体I/F306と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、検索処理装置101の全体の制御を司る。CPU301は、複数のコアを有していてもよい。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOS(Operating System)のプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
ディスクドライブ303は、CPU301の制御に従ってディスク304に対するデータのリード/ライトを制御する。ディスク304は、ディスクドライブ303の制御で書き込まれたデータを記憶する。ディスク304としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
通信I/F305は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータ(例えば、図2に示したクライアント装置201)に接続される。そして、通信I/F305は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。通信I/F305には、例えば、モデムやLANアダプタなどを採用することができる。
可搬型記録媒体I/F306は、CPU301の制御に従って可搬型記録媒体307に対するデータのリード/ライトを制御する。可搬型記録媒体307は、可搬型記録媒体I/F306の制御で書き込まれたデータを記憶する。可搬型記録媒体307としては、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどが挙げられる。
なお、検索処理装置101は、上述した構成部のほかに、例えば、SSD(Solid State Drive)、入力装置、ディスプレイ等を有することにしてもよい。また、検索処理装置101は、上述した構成部のうち、例えば、ディスクドライブ303、ディスク304、可搬型記録媒体I/F306、可搬型記録媒体307を有していなくてもよい。
また、図2に示したクライアント装置201についても、検索処理装置101と同様のハードウェア構成により実現することができる。ただし、クライアント装置201は、上述した構成部のほかに、入力装置およびディスプレイを有する。入力装置は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置は、キーボードやマウスなどであってもよく、また、タッチパネル式の入力パッドやテンキーなどであってもよい。ディスプレイは、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する表示装置である。ディスプレイとしては、例えば、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイなどを採用することができる。
(各種DB等220,230の記憶内容)
つぎに、図4および図5を用いて、検索処理装置101が有する各種DB等220,230の記憶内容について説明する。各種DB等220,230は、例えば、図3に示した検索処理装置101のメモリ302、ディスク304などの記憶装置により実現される。
図4は、ドキュメント管理DB220の記憶内容の一例を示す説明図である。図4において、ドキュメント管理DB220は、ドキュメントID、製品名、エディション、ファミリ製品名、OSおよび本文情報のフィールドを有する。各フィールドに情報を設定することで、ドキュメント管理情報(例えば、ドキュメント管理情報400-1,400-2)がレコードとして記憶される。
ここで、ドキュメントIDは、検索対象のドキュメントを一意に識別する識別子である。ドキュメントは、例えば、1ページ1ファイルのHTML(HyperText Markup Language)形式のデータである。ここでは、検索対象のドキュメントが「製品マニュアル」である場合を例に挙げて説明する。
製品名、エディション、ファミリ製品名およびOSは、検索対象のドキュメントを特徴付ける属性の一例である。製品名は、製品の名称である。エディションは、製品のエディションである。ファミリ製品名は、関連製品の名称である。OSは、製品が動作するOSである。
本文情報は、検索対象のドキュメントの本文を示す。ただし、本文情報は、ドキュメントの格納場所を示す情報(例えば、URL:Uniform Resource Locator)であってもよい。この場合、クライアント装置201は、本文情報が示す格納場所から本文を読み出すことで、本文を参照することができる。
例えば、ドキュメント管理情報400-1は、ドキュメントD1の製品名「Interstage Charset Manager」、エディション「Enterprise Edition」、ファミリ製品名「xxx」、OS「Windows(登録商標)」および本文情報「・・・」を示す。
また、ドキュメント管理情報400-2は、ドキュメントD2の製品名「Interstage Charset Manager」、エディション「Enterprise Edition」、ファミリ製品名「xxx」、OS「Linux(登録商標)」および本文情報「・・・」を示す。
図5は、製品属性テーブル230の記憶内容の一例を示す説明図である。図5において、製品属性テーブル230は、属性名および登録語のフィールドを有し、各フィールドに情報を設定することで、製品属性情報(例えば、製品属性情報500-1~500-3)をレコードとして記憶する。
ここで、属性名は、検索対象のドキュメントを特徴付ける属性の名称を示す。登録語は、属性名の属性に対応付けられた1又は複数のワードを含む語句である。例えば、属性名「製品名」の登録語としては、実際に存在する製品名が設定される。また、属性名「エディション」の登録語としては、実際に存在する製品のエディションが設定される。属性名「ファミリ製品名」の登録語としては、実際に存在する関連製品名が設定される。属性名「OS」の登録語としては、実際に存在するOS名が設定される。
例えば、製品属性情報500-1は、属性名「製品名」の登録語「Interstage Charset Manager」を示す。
(検索処理装置101の機能的構成例)
図6は、検索処理装置101の機能的構成例を示すブロック図である。図6において、検索処理装置101は、受付部601と、判定部602と、抽出部603と、特定部604と、出力部605と、記憶部610と、を含む。具体的には、例えば、受付部601~出力部605は、図3に示したメモリ302、ディスク304、可搬型記録媒体307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、通信I/F305により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク304などの記憶装置に記憶される。記憶部610は、例えば、メモリ302、ディスク304などの記憶装置により実現される。具体的には、例えば、記憶部610は、図4に示したドキュメント管理DB220や、図5に示した製品属性テーブル230を記憶する。
受付部601は、検索対象に対する検索のための複数のワードを受け付ける。ここで、複数のワードは、検索時にキーワードとして入力される2以上のワードである。複数のワードの入力は、例えば、図2に示したクライアント装置201において、入力装置(不図示)を用いたユーザの操作入力により行われる。
具体的には、例えば、受付部601は、クライアント装置201から検索依頼を受信することにより、受信した検索依頼に含まれる入力文を受け付ける。入力文は、キーワードとして入力された複数のワードを含む。検索依頼は、例えば、後述の図12に示す検索画面1200において行われる。ただし、受付部601は、自装置の入力装置(不図示)を用いたユーザの操作入力により、複数のワードを受け付けることにしてもよい。
判定部602は、受け付けた複数のワードの中に、記憶部610に予め記憶されていた検索対象の属性毎に対応付けられた1又は複数のワードと、一致又は類似する第1のワードが存在するか否かを判定する。ここで、検索対象の属性毎に対応付けられた1又は複数のワードは、当該属性に対応するキーワードとして予め登録された語句(登録語)に含まれる1又は複数のワードである。
以下の説明では、ワードを「単語」と表記する場合がある。
具体的には、例えば、判定部602は、受け付けた入力文を単語(ワード)に分割する。この際、判定部602は、例えば、入力文から分割した単語の語順も保持する。これにより、検索対象に対する検索のための複数のワードが得られる。なお、単語に分割する処理は、例えば、辞書情報や形態素解析等の技術を利用して行うことができる。
また、判定部602は、図5に示した製品属性テーブル230を参照して、検索対象の属性に対応付けられた登録語を単語に分割する。この際、判定部602は、例えば、登録語から分割した単語の語順も保持する。これにより、検索対象の属性に対応付けられた1又は複数のワードが得られる。
つぎに、判定部602は、分割した単語毎に、入力文から分割した単語と、登録語から分割した単語とを比較する。属性に対応付けられた登録語は、複数の単語で構成されているものもある。このため、判定部602は、例えば、入力文に含まれる単語列と、登録語に含まれる単語列とを比較することにしてもよい。単語列は、複数の単語を語順どおりに並べたものである。
ここで、比較した単語(あるいは、単語列)の文字列が完全一致した場合、判定部602は、単語(あるいは、単語列)が一致すると判定する。一方、比較した単語(あるいは、単語列)の文字列が完全一致しない場合には、判定部602は、単語(あるいは、単語列)が一致しないと判定する。
ただし、入力文は自由入力のため、入力時にスペルミスが発生する場合がある。ある程度のスペルミスを許容すべく、判定部602は、数文字程度の違いであれば、単語(あるいは、単語列)が類似すると判定することにしてもよい。許容する文字数は、単語(あるいは、単語列)の文字数に応じて定めることにしてもよい。
例えば、4文字以上の単語については、許容する文字数を「2」とし、4文字未満の単語については、許容する文字数を「0」とする。この場合、判定部602は、4文字以上の単語については、比較した単語の文字列が完全一致しない場合であっても、不一致の文字数が2以下であれば、単語が類似すると判定する。また、判定部602は、4文字未満の単語については、不一致の文字数が「1」であっても、単語が類似しないと判定する。
また、比較した単語(あるいは、単語列)の文字列が完全一致しない場合、判定部602は、単語同士(あるいは、単語列同士)の編集距離を算出することにしてもよい。編集距離(レーベンシュタイン距離)は、二つの文字列がどの程度異なっているかを示す指標値である。そして、判定部602は、算出した編集距離が予め決められた閾値以下であれば、比較した単語(あるいは、単語列同士)の文字列が完全一致しない場合であっても、単語(あるいは、単語列同士)が類似すると判定することにしてもよい。
また、属性名(例えば、製品名)によっては、入力文において略語で表される場合がある。このため、判定部602は、例えば、略語と正式名との対応関係を示す辞書情報を使用して、略語を正式名に変換した上で、変換後の単語(正式名)と、登録語から分割した単語とを比較することにしてもよい。
そして、判定部602は、入力文から分割した複数の単語(あるいは、単語列)のうち、登録語から分割した少なくともいずれかの単語(あるいは、単語列)と一致又は類似する単語(あるいは、単語列)を、第1のワードとして特定する。なお、単語の比較例については、図7を用いて後述する。
抽出部603は、第1のワードが存在すると判定された場合に、複数の検索対象の中から、第1のワードと一致又は類似するワードと対応付けられている属性において第1のワードを含む検索対象群を抽出する。ここで、複数の検索対象は、例えば、企業内に蓄積されているドキュメントである。
第1のワードと一致又は類似するワードと対応付けられている属性において第1のワードを含む検索対象とは、第1のワードと一致又は類似するワードと対応付けられている属性の属性値に、第1のワードを含む検索対象である。すなわち、第1のワードを、属性により検索対象を絞り込む際のキーワード(属性キーワード)として用いる。
ただし、第1のワードには、スペルミスが含まれている場合がある。また、第1のワードは、略語で表されている場合がある。このため、抽出部603は、第1のワードと一致又は類似するワードと対応付けられている属性において、当該ワード(第1のワードと一致又は類似するワード)を含む検索対象群を抽出することにしてもよい。
また、抽出部603は、第1のワードが存在すると判定された場合に、複数の検索対象の中から、第1のワードと一致又は類似するワードと対応付けられている属性において、当該属性に対応付けられた1又は複数のワードを含む検索対象群を抽出することにしてもよい。
より具体的には、例えば、抽出部603は、図4に示したドキュメント管理DB220を参照して、第1のワードと一致又は類似するワードと対応付けられている属性において、当該属性に対応付けられた登録語を含むドキュメント群を抽出する。
ここで、第1のワードと一致又は類似するワードと対応付けられている属性を属性「OS」とし、当該属性「OS」に対応付けられた登録語を「Windows」とする。この場合、判定部602は、ドキュメント管理DB220を参照して、属性「製品名」の属性値に、登録語「Windows」を含むドキュメント群(例えば、ドキュメントD1)を抽出する。
これにより、入力文からユーザが指定したい属性(属性値)を推定して、検索対象のドキュメントを絞り込むことができる。
受け付けた複数のワードの中に、第1のワードが複数存在する場合がある。この場合、抽出部603は、例えば、複数の第1のワードの少なくともいずれかのワードと一致又は類似するワードと対応付けられている属性において、当該属性に対応付けられた登録語を含む検索対象群を抽出することにしてもよい。また、抽出部603は、複数の第1のワードの各ワードと一致又は類似するワードと対応付けられている各属性において、当該各属性に対応付けられた登録語を含む検索対象群を抽出することにしてもよい。
特定部604は、受け付けた複数のワードに含まれる第1のワード以外の第2のワードと、抽出された検索対象群それぞれのデータに含まれるワードとの比較結果に基づいて、検索対象群の中から検索対象を特定する。
具体的には、例えば、特定部604は、入力文のうちの第1ワード以外の単語を第2のワードとして特定する。また、特定部604は、ドキュメント管理DB220を参照して、抽出されたドキュメント群それぞれの本文情報を取得する。つぎに、特定部604は、特定した第2のワードと、ドキュメント群それぞれの本文情報に含まれるワードとを比較する。
そして、特定部604は、抽出されたドキュメント群の中から、第2のワードと一致するワードが本文情報に含まれるドキュメントを特定する。また、特定部604は、ドキュメント群の中から、第2のワードと類似するワードが本文情報に含まれるドキュメントを特定することにしてもよい。
すなわち、特定部604は、入力文のうちの第1ワード以外の単語(第2のワード)を検索キーワードとして、抽出されたドキュメント群の中からドキュメントを特定する。
また、第2のワードが複数存在する場合がある。この場合、特定部604は、ドキュメント群の中から、複数の第2のワードの少なくともいずれかのワードと一致又は類似するワードが本文情報に含まれるドキュメントを特定することにしてもよい(OR検索)。また、特定部604は、ドキュメント群の中から、複数の第2のワードの各ワードと一致又は類似するワードが本文情報に全て含まれるドキュメントを特定することにしてもよい(AND検索)。
出力部605は、受け付けた複数のワードに対して、特定された検索対象を出力する。具体的には、例えば、出力部605は、クライアント装置201からの検索依頼に対する検索結果として、特定されたドキュメントを示す情報(例えば、タイトル、要約など)を出力する。この結果、クライアント装置201において、検索依頼に対する検索結果が、ディスプレイ(不図示)に表示される。
また、出力部605は、受け付けた複数のワードに対して、特定された検索対象とともに、第1のワードと一致又は類似するワードと対応付けられている属性に対応付けられた語句を出力することにしてもよい。ここで、属性に対応付けられた語句は、属性に対応付けられた1又は複数のワードからなる語句であり、例えば、属性に対応付けられた登録語(図5参照)である。
より具体的には、例えば、出力部605は、特定されたドキュメントを示す情報とともに、第1のワードと一致又は類似するワードと対応付けられている属性に対応付けられた登録語を表示する検索画面を、クライアント装置201に表示することにしてもよい。これにより、検索依頼に対する検索結果を表示する際にどのような属性で検索結果を絞り込んだのかを特定可能な情報を提示することができる。検索画面の画面例については、図12を用いて後述する。
なお、上述した説明では、第1のワードが存在すると判定された場合に、抽出部603が、複数の検索対象の中から、第1のワードと一致又は類似するワードと対応付けられている属性において第1のワードを含む検索対象群を抽出することにしたが、これに限らない。
例えば、第1のワードが存在すると判定された場合に、抽出部603が、受け付けた複数のワードに含まれる第1のワード以外の第2のワードと、複数の検索対象それぞれのデータに含まれるワードとの比較結果に基づいて、複数の検索対象の中から検索対象群を抽出することにしてもよい。すなわち、抽出部603は、複数のワードのうちの第1ワード以外の第2のワードを検索キーワードとして、複数の検索対象の中から検索対象群を抽出する。そして、特定部604が、抽出された検索対象群の中から、第1のワードと一致又は類似するワードと対応付けられている属性において、第1のワードを含む検索対象を特定することにしてもよい。
(単語の比較例)
つぎに、入力文から分割した単語(ワード)と、検索対象の属性毎に対応付けられた登録語から分割した単語との比較例について説明する。
図7は、単語の比較例を示す説明図である。図7において、入力文710は、クライアント装置201からの検索依頼に含まれる入力文の一例である。判定部602は、入力文710を単語に分割する。図7の例では、入力文710が、単語711(Charset)、単語712(Enterprise)、単語713(Edition)、単語714(Windows)および単語715(インストール)に分割される。
また、判定部602は、製品属性テーブル230を参照して、検索対象の属性毎に、当該属性に対応付けられた登録語それぞれを単語に分割する。ここでは、属性を「製品名」、「エディション」、「ファミリ製品名」および「OS」とする。また、属性「製品名」に対応付けられた登録語を「Interstage Charset Manager」と「Enterprise」とする。
この場合、判定部602は、登録語「Interstage Charset Manager」を単語に分割する。ここでは、単語721(Interstage)、単語722(Charset)および単語723(Manager)に分割される。登録語「Enterprise」については、1単語のため分割されず、単語731(Enterprise)となる。
また、属性「エディション」に対応付けられた登録語を「Enterprise Edition」とする。この場合、判定部602は、登録語「Enterprise Edition」を単語に分割する。ここでは、単語741(Enterprise)および単語742(Edition)に分割される。
また、属性「ファミリ製品名」に対応付けられた登録語を「開発パッケージ for Windows」とする。この場合、判定部602は、登録語「開発パッケージ for Windows」を単語に分割する。ここでは、単語751(開発)、単語752(パッケージ)、単語753(for)および単語754(Windows)に分割される。また、属性「OS」に対応付けられた登録語を「Windows」とする。登録語「Windows」については、1単語のため分割されず、単語761(Windows)となる。
つぎに、判定部602は、分割した単語毎に、入力文から分割した単語711~715と、登録語から分割した単語721~723,731,741,742,751~754,761とを比較する。例えば、単語711について、単語722との比較結果は「一致」であり、それ以外の単語との比較結果は「不一致かつ非類似」である。
また、単語712について、単語731,741との比較結果は「一致」であり、それ以外の単語との比較結果は「不一致かつ非類似」である。また、単語713について、単語742との比較結果は「一致」であり、それ以外の単語との比較結果は「不一致かつ非類似」である。また、単語714について、単語754,761との比較結果は「一致」であり、それ以外の単語との比較結果は「不一致かつ非類似」である。また、単語715については、全単語との比較結果が「不一致かつ非類似」である。
比較の結果、入力文から分割した単語711~715のうち、登録語から分割した少なくともいずれかの単語と一致又は類似すると判定された単語(第1のワード)は、例えば、図8に示すような属性候補テーブル800に記憶される。属性候補テーブル800は、例えば、メモリ302、ディスク304などの記憶装置により実現される。
図8は、属性候補テーブル800の記憶内容の一例を示す説明図である。図8において、属性候補テーブル800は、属性名、属性キーワードおよび登録語のフィールドを有し、各フィールドに情報を設定することで、属性候補情報800-1~800-5がレコードとして記憶される。
ここで、属性名は、検索対象のドキュメントを特徴付ける属性の名称を示す。属性キーワードは、入力文から分割した単語のうち、属性名の属性に対応付けられた登録語から分割した少なくともいずれかの単語と一致又は類似する単語(第1のワード)を示す。属性キーワードは、属性により検索対象を絞り込む際に用いるキーワードに相当する。登録語は、属性名の属性に対応付けられた登録語を示す。
例えば、属性候補情報800-1は、属性「製品名」の属性キーワード「Charset」および登録語「Interstage Charset Manager」を示す。属性候補テーブル800によれば、入力文(例えば、入力文710)に含まれる単語のうち、検索対象の属性に対応付けられた登録語に含まれる単語と一致又は類似する単語(第1のワード)を特定することができる。
(属性キーワードに対応する属性の絞り込み)
ここで、第1のワードと一致又は類似するワードと対応付けられている属性が複数存在する場合がある。すなわち、属性キーワードに対応する属性が複数存在する場合がある。この場合、複数の属性の中から、属性キーワード(第1のワード)に対応する属性を選定することにしてもよい。
例えば、抽出部603は、第1のワードと一致又は類似するワードと対応付けられている属性が複数存在する場合、当該複数の属性の各属性について、受け付けた複数のワードのうち、各属性に対応付けられた1又は複数のワードと一致又は類似するワードの数を算出することにしてもよい。この際、抽出部603は、各属性について、受け付けた複数のワードのうち、各属性に対応付けられた1又は複数のワードと連続して一致又は類似するワードの数を算出することにしてもよい。そして、抽出部603は、複数の属性の中から、算出したワードの数が最大の属性を特定することにしてもよい。この場合、抽出部603は、特定した属性において、第1のワード(または、当該属性に対応付けられた登録語)を含む検索対象群を抽出する。
より詳細に説明すると、例えば、抽出部603は、図8に示した属性候補テーブル800を参照して、属性キーワード(第1のワード)と一致又は類似するワードと対応付けられている属性が複数存在するか否かを判断する。図8の例では、属性キーワード「Enterprise」は、属性「製品名」および属性「エディション」に対応している。
この場合、抽出部603は、例えば、属性「製品名」および属性「エディション」の各属性について、入力文に含まれる単語のうち、各属性に対応付けられた登録語に含まれる単語と連続して一致又は類似する単語の数を算出する。ここで、図9を用いて、単語の数(単語長)の算出例について説明する。
図9は、属性キーワードに対応する属性の絞り込み例を示す説明図(その1)である。抽出部603は、例えば、属性候補情報800-2を参照して、入力文710(図7参照)に含まれる単語711~715のうち、属性「製品名」に対応付けられた登録語「Enterprise」に含まれる単語731と連続して一致又は類似する単語の数(単語長)を算出する。ここでは、単語長「1」が算出される。
また、抽出部603は、例えば、属性候補情報800-3を参照して、入力文710に含まれる単語711~715のうち、属性「エディション」に対応付けられた登録語「Enterprise Edition」に含まれる単語741,742と連続して一致又は類似する単語の数(単語長)を算出する。ここでは、単語長「2」が算出される。
そして、抽出部603は、属性「製品名」および属性「エディション」の中から、算出した単語長が最大の属性「エディション」を特定する。この場合、抽出部603は、属性候補テーブル800から、属性候補情報800-2を削除する。これにより、属性キーワード「Enterprise」に対応する属性を一つに絞り込むことができる。
また、属性キーワード「Windows」は、属性「ファミリ製品名」および属性「OS」に対応している。ただし、属性キーワード「Windows」については、属性「ファミリ製品名」および属性「OS」の各属性の単語長がともに「1」となり、単語長から属性を一つに絞り込むことができない。
そこで、抽出部603は、第1のワードと一致又は類似するワードと対応付けられている属性が複数存在する場合、当該複数の属性の各属性について、各属性に対応付けられた1又は複数のワードのうち、受け付けた複数のワードに含まれるワードと一致又は類似するワードが占める文字列比を算出することにしてもよい。そして、抽出部603は、複数の属性の中から、算出した文字列比が最大の属性を特定することにしてもよい。この場合、抽出部603は、特定した属性において、第1のワード(または、当該属性に対応付けられた登録語)を含む検索対象群を抽出する。
より詳細に説明すると、例えば、抽出部603は、属性「ファミリ製品名」および属性「OS」の各属性について、各属性に対応付けられた登録語のうち、入力文に含まれる単語と一致又は類似する単語が占める文字列比を算出する。ここで、図10を用いて、文字列比の算出例を説明する。
図10は、属性キーワードに対応する属性の絞り込み例を示す説明図(その2)である。抽出部603は、例えば、属性候補情報800-4を参照して、属性「ファミリ製品名」に対応付けられた登録語「開発パッケージ for Windows」のうち、入力文710(図7参照)に含まれる単語711~715と一致又は類似する単語が占める文字列比を算出する。
ここでは、登録語「開発パッケージ for Windows」のうち、単語754(Windows)が、入力文710に含まれる単語714と一致するため、文字列比「7/19」が算出される。分母の「19」は、登録語「開発パッケージ for Windows」の文字数である。分子の「7」は、「Windows」の文字数である。
また、抽出部603は、例えば、属性候補情報800-5を参照して、属性「OS」に対応付けられた登録語「Windows」のうち、入力文710に含まれる単語711~715と一致又は類似する単語が占める文字列比を算出する。ここでは、登録語「Windows」が、入力文710に含まれる単語714と一致するため、文字列比「7/7」が算出される。
そして、抽出部603は、属性「ファミリ製品名」および属性「OS」の中から、算出した文字列比が最大の属性「OS」を特定する。この場合、抽出部603は、属性候補テーブル800から、属性候補情報800-4を削除する。これにより、属性キーワード「Windows」に対応する属性を一つに絞り込むことができる。
なお、抽出部603は、第1のワードと一致又は類似するワードと対応付けられている属性が複数存在する場合、予め決められた属性毎の優先度に従って、複数の属性のうちの最も優先度が高い属性を特定することにしてもよい。
また、属性キーワードとして使用しない単語を、ストップワードとして予め登録しておくことにしてもよい。例えば、多くの登録語に含まれるような単語を、ストップワードとして予め登録しておくことにしてもよい。この場合、判定部602は、入力文の中に、属性に対応付けられた登録語に含まれる単語と一致又は類似する単語が存在しても、その単語がストップワードであれば、第1のワードとして採用しないことにしてもよい。これにより、多くの登録語がヒットして、検索結果に含まれるノイズの数が増えるのを防ぐことができる。
(ドキュメントの検索例)
つぎに、図11を用いて、検索対象のドキュメントの検索例について説明する。
図11は、ドキュメントの検索例を示す説明図である。図11において、抽出部603は、例えば、図10に示した属性候補テーブル800を参照して、入力文710に含まれる単語711~715のうちの属性キーワードを特定する。ここでは、単語711~714が属性キーワードとして特定される。
つぎに、抽出部603は、属性候補テーブル800を参照して、特定した属性キーワードに対応する登録語を特定する。ここでは、属性キーワード(単語711)に対応する登録語として、属性「製品名」の登録語「Interstage Charset Manager」が特定される。また、属性キーワード(単語712,713)に対応する登録語として、属性「エディション」の登録語「Enterprise Edition」が特定される。属性キーワード(単語714)に対応する登録語として、属性「OS」の登録語「Windows」が特定される。
そして、抽出部603は、ドキュメント管理DB220を参照して、下記(i)、(ii)および(iii)の少なくともいずれかの条件を満たすドキュメント群を抽出する。また、抽出部603は、ドキュメント管理DB220を参照して、下記(i)、(ii)および(iii)の条件を全て満たすドキュメント群を抽出することにしてもよい。
(i)属性「製品名」の属性値に、登録語「Interstage Charset Manager」を含む。
(ii)属性「エディション」の属性値に、登録語「Enterprise Edition」を含む。
(iii)属性「OS」の属性値に、登録語「Windows」を含む。
図11の例では、上記(i)、(ii)および(iii)の条件を全て満たすドキュメント群1110が抽出された場合を想定する。
つぎに、特定部604は、入力文710に含まれる単語711~715のうちの属性キーワード以外の単語(第2のワード)を検索キーワードとして特定する。ここでは、単語715が検索キーワードとして特定される。そして、特定部604は、特定した検索キーワードと、抽出されたドキュメント群1110それぞれの本文情報に含まれるワードとの比較結果に基づいて、ドキュメント群1110の中から、検索対象のドキュメントを特定する。
図11の例では、ドキュメント群1110の中から、本文情報に検索キーワード「インストール」を含むドキュメント集合1120が特定されている。ドキュメント集合1120は、ユーザが欲しい属性を持つドキュメント群1110を絞り込んだ上で全文検索を行った結果であり、ノイズの少ない検索結果であるといえる。
(検索画面の画面例)
つぎに、図12を用いて、クライアント装置201に表示される検索画面の画面例について説明する。
図12は、検索画面の画面例を示す説明図である。図12において、検索画面1200は、ボックス1201に入力された入力文を含む検索依頼に対する検索結果1210を表示する操作画面の一例である。検索結果1210は、検索対象情報1211~1213を含む。
検索対象情報1211~1213は、例えば、検索対象のドキュメントのタイトルや要約を示す。検索画面1200において、入力装置(不図示)を用いたユーザの操作入力により、検索対象情報1211~1213のいずれかを選択すると、ドキュメントの本文情報を閲覧することができる。
また、検索画面1200には、属性情報1220が表示されている。属性情報1220は、入力文に含まれる属性キーワード(第1のワード)と一致又は類似するワードと対応付けられている属性に対応付けられた登録語を示す。属性情報1220によれば、ユーザは、どのような属性で検索結果が絞り込まれたのかを特定することができる。
(検索処理装置101の検索処理手順)
つぎに、図13および図14を用いて、検索処理装置101の検索処理手順について説明する。
図13および図14は、検索処理装置101の検索処理手順の一例を示すフローチャートである。図13のフローチャートにおいて、まず、検索処理装置101は、クライアント装置201から検索依頼を受信したか否かを判断する(ステップS1301)。ここで、検索処理装置101は、検索依頼を受信するのを待つ(ステップS1301:No)。
そして、検索処理装置101は、検索依頼を受信した場合(ステップS1301:Yes)、受信した検索依頼に含まれる入力文を単語(ワード)に分割する(ステップS1302)。つぎに、検索処理装置101は、製品属性テーブル230に属性名が登録されている属性のうち選択されていない未選択の属性を選択する(ステップS1303)。
つぎに、検索処理装置101は、製品属性テーブル230を参照して、選択した属性の登録語のうち選択されていない未選択の登録語を選択する(ステップS1304)。そして、検索処理装置101は、選択した登録語を単語に分割する(ステップS1305)。つぎに、検索処理装置101は、入力文から分割した単語と、登録語から分割した単語とを比較するマッチング処理を実行する(ステップS1306)。
なお、マッチング処理の具体的な処理手順については、図15および図16を用いて後述する。
そして、検索処理装置101は、選択した属性に対応する属性キーワード検出フラグを参照して、属性キーワードがあるか否かを判断する(ステップS1307)。属性キーワードは、入力文から分割した単語のうち、登録語から分割した1又は複数の単語と、一致又は類似する単語(第1のワード)である。
属性キーワード検出フラグは、入力文中から、登録語の属性キーワードが検出されたか否かを示すフラグである。属性キーワード検出フラグは、入力文中に、登録語を構成する単語が含まれていた場合、「true」となり、登録語を構成する単語が含まれていなかった場合、「false」となる。
ここで、属性キーワードがない場合(ステップS1307:No)、検索処理装置101は、ステップS1309に移行する。一方、属性キーワードがある場合(ステップS1307:Yes)、選択した属性の属性名と対応付けて、属性キーワードおよび当該属性キーワードと一致又は類似する単語を含む登録語を、属性候補テーブル800に登録する(ステップS1308)。なお、属性キーワードは、選択した属性に対応する属性キーワードの単語リストに登録された単語である。
つぎに、検索処理装置101は、製品属性テーブル230を参照して、選択した属性の登録語のうち選択されていない未選択の登録語があるか否かを判断する(ステップS1309)。ここで、未選択の登録語がある場合(ステップS1309:Yes)、検索処理装置101は、ステップS1304に戻る。
一方、未選択の登録語がない場合(ステップS1309:No)、検索処理装置101は、製品属性テーブル230に属性名が登録されている属性のうち選択されていない未選択の属性があるか否かを判断する(ステップS1310)。ここで、未選択の属性がある場合(ステップS1310:Yes)、検索処理装置101は、ステップS1303に戻る。
一方、未選択の属性がない場合(ステップS1310:No)、検索処理装置101は、図14に示すステップS1401に移行する。
図14のフローチャートにおいて、まず、検索処理装置101は、属性候補テーブル800を参照して、属性キーワードに対応する属性が複数存在するか否かを判断する(ステップS1401)。ここで、複数の属性が存在しない場合(ステップS1401:No)、検索処理装置101は、ステップS1403に移行する。
一方、属性キーワードに対応する属性が複数存在する場合(ステップS1401:Yes)、検索処理装置101は、複数の属性の中から、属性キーワードに対応する属性を特定する(ステップS1402)。属性の特定には、例えば、図9で説明した単語長や、図10で説明した文字列比が用いられる。
つぎに、検索処理装置101は、入力文から属性キーワード以外の単語を検索キーワードとして特定する(ステップS1403)。そして、検索処理装置101は、属性キーワードに対応する属性に対応付けられた登録語と、特定した検索キーワードとに基づいて、検索条件を作成する(ステップS1404)。属性キーワードに対応する属性に対応付けられた登録語は、絞込条件となる登録語であり、属性候補テーブル800から特定される。なお、検索条件の具体例については、図19を用いて後述する。
つぎに、検索処理装置101は、作成した検索条件に基づいて、検索対象のドキュメントを検索する検索処理を実行する(ステップS1405)。そして、検索処理装置101は、検索結果を出力して(ステップS1406)、本フローチャートによる一連の処理を終了する。検索結果は、後述する検索結果格納リストに格納されたレコードを示す情報である。
これにより、属性を指定しない状態で入力文(検索キーワード)の入力を受け付けても、属性を反映した検索を実行することができる。
つぎに、図15および図16を用いて、図13に示したステップS1306のマッチング処理の具体的な処理手順について説明する。
図15および図16は、マッチング処理の具体的な処理手順の一例を示すフローチャートである。図15のフローチャートにおいて、まず、検索処理装置101は、図13に示したステップS1303において選択した属性に対応する属性キーワード検出フラグを「false」に設定する(ステップS1501)。
つぎに、検索処理装置101は、選択した属性に対応する属性キーワードの単語リストを初期化する(ステップS1502)。そして、検索処理装置101は、「i」を「i=0」で初期化し(ステップS1503)、「j」を「j=0」で初期化する(ステップS1504)。
つぎに、検索処理装置101は、図13に示したステップS1304において選択した登録語のi番目の単語と、入力文のj番目の単語とを比較する(ステップS1505)。ただし、最初の単語を0番目の単語とする。そして、検索処理装置101は、登録語のi番目の単語と、入力文のj番目の単語とがマッチしたか否かを判断する(ステップS1506)。なお、単語がマッチするとは、単語が一致又は類似することである。
ここで、単語がマッチしない場合(ステップS1506:No)、検索処理装置101は、図16に示すステップS1605に移行する。一方、単語がマッチする場合(ステップS1506:Yes)、検索処理装置101は、選択した属性に対応する属性キーワード検出フラグが「false」であるか否かを判断する(ステップS1507)。
ここで、属性キーワード検出フラグが「true」の場合(ステップS1507:No)、検索処理装置101は、ステップS1509に移行する。一方、属性キーワード検出フラグが「false」の場合(ステップS1507:Yes)、検索処理装置101は、属性キーワード検出フラグに「true」を設定する(ステップS1508)。
そして、検索処理装置101は、選択した属性に対応する属性キーワードの単語リストの末尾に、入力文のj番目の単語を格納して(ステップS1509)、図16に示すステップS1601に移行する。
図16のフローチャートにおいて、まず、検索処理装置101は、「i」を「i=i+1」とし(ステップS1601)、「j」を「j=j+1」とする(ステップS1602)。そして、検索処理装置101は、「j」が入力文を構成する単語数以上となったか否かを判断する(ステップS1603)。
ここで、「j」が入力文を構成する単語数以上となった場合(ステップS1603:Yes)、検索処理装置101は、図15に示したステップS1504に戻る。一方、「j」が入力文を構成する単語数未満の場合(ステップS1603:No)、検索処理装置101は、「i」が登録語を構成する単語数以上となったか否かを判断する(ステップS1604)。
ここで、「i」が登録語を構成する単語数未満の場合(ステップS1604:No)、検索処理装置101は、図15に示したステップS1505に戻る。一方、「i」が登録語を構成する単語数以上の場合(ステップS1604:Yes)、検索処理装置101は、マッチング処理を呼び出したステップに戻る。
また、検索処理装置101は、図15に示したステップS1506から移行した場合には、「i」を「i=i+1」とする(ステップS1605)。そして、検索処理装置101は、「j」を「j=0」で初期化して(ステップS1606)、ステップS1604に移行する。
これにより、入力文から分割された単語と登録語から分割された単語とを比較して、マッチする単語を、属性に対応する属性キーワードの単語リストに登録することができる。
つぎに、図17および図18を用いて、図14に示したステップS1405の検索処理の具体的な処理手順について説明する。
図17および図18は、検索処理の具体的な処理手順の一例を示すフローチャートである。図17のフローチャートにおいて、まず、検索処理装置101は、絞込合致レコード格納リストを初期化する(ステップS1701)。つぎに、検索処理装置101は、ドキュメント管理DB220から選択されていない未選択のレコードを選択する(ステップS1702)。
つぎに、検索処理装置101は、検索対象のドキュメントを特徴付ける属性のうち選択されていない未選択の属性を選択する(ステップS1703)。つぎに、検索処理装置101は、図14に示したステップS1404において作成された検索条件(または、属性候補テーブル800)を参照して、選択した属性に対応する登録語のうち選択されていない未選択の登録語を、絞込条件の登録語として選択する(ステップS1704)。
以下の説明では、ステップS1702において選択されたレコードを「対象レコード」と表記し、ステップS1703において選択された属性を「対象属性」と表記する場合がある。
そして、検索処理装置101は、選択した絞込条件の登録語と、対象レコードの対象属性の属性値とが一致するか否かを判断する(ステップS1705)。ここで、絞込条件の登録語と対象レコードの属性値とが一致しない場合(ステップS1705:No)、検索処理装置101は、ステップS1707に移行する。
一方、絞込条件の登録語と対象レコードの属性値とが一致する場合(ステップS1705:Yes)、検索処理装置101は、絞込合致レコード格納リストに対象レコードを格納する(ステップS1706)。そして、検索処理装置101は、対象属性に対応する登録語のうち選択されていない未選択の登録語があるか否かを判断する(ステップS1707)。
ここで、未選択の登録語がある場合(ステップS1707:Yes)、検索処理装置101は、ステップS1704に戻る。一方、未選択の登録語がない場合(ステップS1707:No)、検索処理装置101は、検索対象のドキュメントを特徴付ける属性のうち選択されていない未選択の属性があるか否かを判断する(ステップS1708)。
ここで、未選択の属性がある場合(ステップS1708:Yes)、検索処理装置101は、ステップS1703に戻る。一方、未選択の属性がない場合(ステップS1708:No)、検索処理装置101は、ドキュメント管理DB220から選択されていない未選択のレコードがあるか否かを判断する(ステップS1709)。
ここで、未選択のレコードがある場合(ステップS1709:Yes)、検索処理装置101は、ステップS1702に戻る。一方、未選択のレコードがない場合には(ステップS1709:No)、検索処理装置101は、図18に示すステップS1801に移行する。
図18のフローチャートにおいて、まず、検索処理装置101は、検索結果格納リストを初期化する(ステップS1801)。つぎに、検索処理装置101は、絞込合致レコード格納リストから選択されていない未選択のレコードを選択する(ステップS1802)。
そして、検索処理装置101は、検索条件を参照して、選択したレコードの本文情報に、検索キーワードが含まれるか否かを判断する(ステップS1803)。ここで、検索キーワードが含まれない場合(ステップS1803:No)、検索処理装置101は、ステップS1805に移行する。
一方、検索キーワードが含まれる場合(ステップS1803:Yes)、検索処理装置101は、検索結果格納リストに、選択したレコードを格納する(ステップS1804)。そして、検索処理装置101は、絞込合致レコード格納リストから選択されていない未選択のレコードがあるか否かを判断する(ステップS1805)。
ここで、未選択のレコードがある場合(ステップS1805:Yes)、検索処理装置101は、ステップS1802に戻る。一方、未選択のレコードがない場合(ステップS1805:No)、検索処理装置101は、検索処理を呼び出したステップに戻る。
これにより、既存の全文検索のような検索のやり方で、ユーザが欲しい属性を持つドキュメント集合に絞り込んだ検索を行うことができる。
なお、図17の例では、各属性に対応する登録語のORをとって、検索対象のドキュメントを絞り込むことにしたが、これに限らない。例えば、検索処理装置101は、各属性に対応する登録語のANDをとって、検索対象のドキュメントを絞り込むことにしてもよい。
ここで、各属性に対応する登録語のANDをとって、検索対象のドキュメントを絞り込む場合の検索条件の具体例について説明する。
図19は、検索条件の一例を示す説明図である。図19において、検索条件1900は、絞込条件1910と、全文検索条件1920とを含む。絞込条件1910は、1つの属性内の登録語同士でORをとり、各属性の登録語同士でANDをとる条件である。全文検索条件1920は、検索キーワードで全文検索を行う条件である。
図14に示したステップS1405の検索処理を検索条件1900に基づき実行する場合、検索処理装置101は、例えば、絞込合致レコード格納リストを、属性毎に別リストで保持し、全属性の絞込合致レコード格納リストに格納されたレコードを、最終的な絞込合致レコードとする。
以上説明したように、実施の形態にかかる検索処理装置101によれば、検索対象に対する検索のために受け付けた複数のワードの中に、予め記憶部610に記憶されていた検索対象の属性毎に対応付けられた1又は複数のワードと一致又は類似する第1のワードが存在するか否かを判定することができる。また、検索処理装置101によれば、第1のワードが存在すると判定した場合に、第1のワードと一致又は類似するワードと対応付けられている属性において第1のワードを含む検索対象群を抽出することができる。そして、検索処理装置101によれば、受け付けた複数のワードに含まれる第1のワード以外の第2のワードと、抽出した検索対象群それぞれのデータに含まれるワードとの比較結果に基づいて、検索対象群の中から検索対象を特定することができる。
これにより、属性を指定しない状態でキーワードの入力を受け付けても、キーワードが属性毎に設定されている検索対象について、属性を反映した検索を実行することができる。より詳細に説明すると、例えば、ユーザが意識して入力しなくても、入力文に含まれる複数の単語(ワード)を、絞り込み用のキーワード(属性キーワード)と、全文検索用のキーワード(検索キーワード)とに分類することができる。このため、ユーザが欲しい属性を持つ検索対象群を絞り込んだ上で全文検索を行うことが可能となり、検索結果に含まれるノイズ(ユーザが意図しない情報)を減らして、ユーザが欲しい情報を見つけやすくすることができる。
また、検索処理装置101によれば、第1のワードと一致又は類似するワードと対応付けられている属性において、当該属性に対応付けられた1又は複数のワードを含む検索対象群を抽出することができる。
これにより、予め属性に対応付けられた登録語(キーワード)を属性値に含む検索対象群を抽出することができ、属性による絞り込みがより利くようにして、ノイズを少なくすることができる。例えば、属性「製品名」の登録語として、実際に存在する特定の製品名が設定されていれば、属性「製品名」が、特定の製品名であるドキュメント群に絞り込むことができる。
また、検索処理装置101によれば、第1のワードと一致又は類似するワードと対応付けられている属性が複数存在する場合、当該複数の属性の各属性について、受け付けた複数のワードのうち、各属性に対応付けられた1又は複数のワードと一致又は類似するワードの数(単語長)を算出することができる。そして、検索処理装置101によれば、複数の属性の中から、算出したワードの数が最大の属性を特定し、特定した属性において、第1のワードを含む検索対象群を抽出することができる。
これにより、複数の属性候補の中から、登録語に含まれる単語が入力文内により多く含まれる属性を、属性キーワード(第1のワード)に対応する属性として選定することができる。このため、検索対象群を絞り込む際に、属性による絞り込みがより利くようにして、ノイズを少なくすることができる。
また、検索処理装置101によれば、第1のワードと一致又は類似するワードと対応付けられている属性が複数存在する場合、当該複数の属性の各属性について、各属性に対応付けられた1又は複数のワードのうち、受け付けた複数のワードに含まれるワードと一致又は類似するワードが占める文字列比を算出し、複数の属性の中から、算出した文字列比が最大の属性を特定することができる。
これにより、複数の属性候補の中から、登録語の中で入力文に含まれる単語の文字列が占める割合(充填率)が高い属性を、属性キーワード(第1のワード)に対応する属性として選定することができる。このため、検索対象群を絞り込む際に、属性による絞り込みがより利くようにして、ノイズを少なくすることができる。
また、検索処理装置101によれば、受け付けた複数のワードに対して、特定した検索対象を出力することができる。また、検索処理装置101によれば、特定した検索対象とともに、第1のワードと一致又は類似するワードと対応付けられている属性に対応付けられた登録語(語句)を出力することができる。
これにより、ノイズの少ない検索結果を提供することができる。また、検索結果を表示する際に、どのような属性で検索結果を絞り込んだのかを特定可能な情報を提示することができる。
また、検索処理装置101によれば、第1のワードが存在すると判定した場合に、受け付けた複数のワードに含まれる第1のワード以外の第2のワードと、複数の検索対象それぞれのデータに含まれるワードとの比較結果に基づいて、複数の検索対象の中から検索対象群を抽出することができる。そして、検索処理装置101によれば、抽出した検索対象群の中から、第1のワードと一致又は類似するワードと対応付けられている属性において第1のワードを含む検索対象を特定することができる。
これにより、入力文に含まれる複数の単語(ワード)を属性キーワードと検索キーワードとに分類し、検索キーワードを用いて全文検索を行った上で、属性キーワードを用いてユーザが欲しい属性を持つ検索対象群を絞り込むことができる。
これらのことから、実施の形態にかかる検索処理装置101によれば、ドキュメント検索において、ユーザが入力した入力文(検索文)から属性情報を自動抽出して、検索条件を最適化することができる。これにより、既存の全文検索のような検索のやり方で、ユーザが欲しい属性を持つドキュメント集合に絞り込んだ検索を行うことが可能となり、利便性を向上させることができる。
なお、本実施の形態で説明した検索処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本検索処理プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本検索処理プログラムは、インターネット等のネットワークを介して配布してもよい。
また、本実施の形態で説明した検索処理装置101は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)検索対象に対する検索のために受け付けた複数のワードの中に、予め記憶部に記憶されていた検索対象の属性毎に対応付けられた1又は複数のワードと一致又は類似する第1のワードが存在するか否かを判定し、
前記第1のワードが存在すると判定した場合に、前記第1のワードと一致又は類似するワードと対応付けられている属性において前記第1のワードを含む検索対象群を抽出し、
前記複数のワードに含まれる前記第1のワード以外の第2のワードと前記検索対象群それぞれのデータに含まれるワードとの比較結果に基づいて、前記検索対象群の中から前記検索対象を特定する、
処理をコンピュータに実行させることを特徴とする検索処理プログラム。
(付記2)前記抽出する処理は、
前記第1のワードと一致又は類似するワードと対応付けられている属性において、当該属性に対応付けられた1又は複数のワードを含む検索対象群を抽出する、ことを特徴とする付記1に記載の検索処理プログラム。
(付記3)前記抽出する処理は、
前記第1のワードと一致又は類似するワードと対応付けられている属性が複数存在する場合、当該複数の属性の各属性について、受け付けた前記複数のワードのうち、前記各属性に対応付けられた1又は複数のワードと一致又は類似するワードの数を算出し、
前記複数の属性の中から、算出した前記ワードの数が最大の属性を特定し、
特定した前記属性において、前記第1のワードを含む検索対象群を抽出する、ことを特徴とする付記1または2に記載の検索処理プログラム。
(付記4)前記抽出する処理は、
前記第1のワードと一致又は類似するワードと対応付けられている属性が複数存在する場合、当該複数の属性の各属性について、前記各属性に対応付けられた1又は複数のワードのうち、受け付けた前記複数のワードに含まれるワードと一致又は類似するワードが占める文字列比を算出し、
前記複数の属性の中から、算出した前記文字列比が最大の属性を特定し、
特定した前記属性において、前記第1のワードを含む検索対象群を抽出する、ことを特徴とする付記1~3のいずれか一つに記載の検索処理プログラム。
(付記5)受け付けた前記複数のワードに対して、特定した前記検索対象を出力する、処理を前記コンピュータに実行させることを特徴とする付記1~4のいずれか一つに記載の検索処理プログラム。
(付記6)前記属性毎に対応付けられた1又は複数のワードは、前記属性毎に対応付けられた語句から分割された1又は複数のワードであり、
前記出力する処理は、
特定した前記検索対象とともに、前記第1のワードと一致又は類似するワードと対応付けられている属性に対応付けられた語句を出力する、ことを特徴とする付記5に記載の検索処理プログラム。
(付記7)前記第1のワードが存在すると判定した場合に、前記複数のワードに含まれる前記第1のワード以外の第2のワードと、複数の検索対象それぞれのデータに含まれるワードとの比較結果に基づいて、前記複数の検索対象の中から検索対象群を抽出し、
抽出した前記検索対象群の中から、前記第1のワードと一致又は類似するワードと対応付けられている属性において前記第1のワードを含む検索対象を特定する、
処理を前記コンピュータに実行させることを特徴とする付記1に記載の検索処理プログラム。
(付記8)検索対象に対する検索のために受け付けた複数のワードの中に、予め記憶部に記憶されていた検索対象の属性毎に対応付けられた1又は複数のワードと一致又は類似する第1のワードが存在するか否かを判定し、
前記第1のワードが存在すると判定した場合に、前記第1のワードと一致又は類似するワードと対応付けられている属性において前記第1のワードを含む検索対象群を抽出し、
前記複数のワードに含まれる前記第1のワード以外の第2のワードと前記検索対象群それぞれのデータに含まれるワードとの比較結果に基づいて、前記検索対象群の中から前記検索対象を特定する、
処理をコンピュータが実行することを特徴とする検索処理方法。
(付記9)検索対象に対する検索のために受け付けた複数のワードの中に、予め記憶部に記憶されていた検索対象の属性毎に対応付けられた1又は複数のワードと一致又は類似する第1のワードが存在するか否かを判定する判定部と、
前記判定部が前記第1のワードが存在すると判定した場合に、前記第1のワードと一致又は類似するワードと対応付けられている属性において前記第1のワードを含む検索対象群を抽出する抽出部と、
前記複数のワードに含まれる前記第1のワード以外の第2のワードと、前記抽出部が抽出した前記検索対象群それぞれのデータに含まれるワードとの比較結果に基づいて、前記検索対象群の中から前記検索対象を特定する特定部と、
を有することを特徴とする検索処理装置。