説明

検索装置、検索方法、及びプログラム

【課題】絞込み効率だけで検索属性を推奨提示すると、検索属性間の関連性が薄くなり選択し難い。
【解決手段】相互に関連する検索属性と検索属性を次回の検索の際に推奨すべき順序を示す情報とから成る第1の集合から、前回の検索時に選択された検索属性の次の順序に対応する検索属性のうち過去に選択された検索属性の回数が多い順に、次回の検索の際に推奨すべき検索属性を順序に従って推奨属性として取得する第1取得部と、第1取得部により推奨すべき検索属性を取得できなかった場合、相互に関連する検索属性から成る第2の集合から過去に選択された検索属性である選択属性の履歴に含まれる検索属性以外の検索属性を推奨属性として取得する第2取得部と、第1又は第2取得部により取得された推奨属性を含む検索属性と値の候補一覧とを画面上に表示する表示部と、検索属性及び値の候補から検索属性及び値を選択する選択部と、検索属性及び値により検索を実行する実行部とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザが大量のコンテンツから目的のコンテンツを検索する検索装置、検索方法、及びプログラムに関する。
【背景技術】
【0002】
近年、ストレージ、記録メディアの大容量化に伴って、機器の取り扱うコンテンツ数が増大し効率の良い検索の必要性が高まってきている。Web検索においては検索クエリの入力が必須である検索方式が普及しているが、複写機等の機器においては、テキスト入力環境が整っていない事が多い。そのため、メニューの選択だけで絞込み検索が可能な検索方式(以下、「選択型検索方式」と称する)が必要である。
【0003】
このような選択型検索方式において、メニューが固定的に提示されるだけではユーザにとって使い勝手が悪いものになってしまう。よって、絞込み効果の高い検索メニュー(検索属性とその検索属性に対応する値)を動的に推奨して検索操作性を向上させる必要がある。しかし、単純に絞込み効果の高い検索属性を推奨したからといって、使い勝手が良くなるわけではない。検索属性には様々なタイプがあり、直前の検索属性と関連の薄い検索属性を推奨されてもユーザは選択し難いためである。ストーリ(以下、「シナリオ」とも称する)に合わせて検索属性を推奨しなければ、ユーザが当惑してしまうことになる。検索条件を候補として表示し、ユーザに選択させて検索を遂行するシステムは、これまでにも多く提案されてきた。例えば、特許文献1は、コンテンツの分布に応じて属性の特徴量(突出度、均一度)を算出し、検索戦略に応じて最適な属性をシステムが選択し、属性と属性値の候補をユーザに提示し、ユーザに選択させて検索する方式を提案している。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−202159号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、従来の検索方法では、状況に応じて動的にメニューを表示しているが、検索属性同士の関連性を考えておらず、場合によっては関連性の薄い検索属性が提示され、ユーザが当惑してしまうことがあるという欠点があった。例えば、特許文献1では、飲食店の店舗の検索を例にとって、コンテンツ分布的に最も有利な属性が推奨される方式を提案している。検索の対象領域が限定されているときは、利用できる属性の種類も限定されるため、ランダムな属性推奨という状況が少ない。しかし、一般に検索属性には無数のバリエーションがあり、相互に無関係な属性が推奨されると選択し難い。例えば、オフィス文書では、作成状況(作成者など)、内容(技術分野など)、形式(用紙サイズなど)、使用状況(会議名など)など、様々な属性のタイプがある。これらがランダムに推奨されてしまうとユーザは選択し難く当惑してしまうという課題がある。
【0006】
上記の課題に鑑み、本発明は、相互に関連性を有する検索属性を推奨提示する、選択型検索を実現することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するための本発明に係る検索装置は、
検索に用いる検索属性及び前記検索属性に対応する値を選択することにより絞込み検索する検索装置であって、
相互に関連する検索属性と、当該検索属性を次回の検索の際に推奨すべき順序を示す情報とから構成される第1の集合から、前回の検索時に選択された検索属性の次の順序に対応する検索属性のうち過去に選択された検索属性の回数が多い順に、次回の検索の際に推奨すべき検索属性を前記順序に従って推奨属性として取得する第1取得手段と、
前記第1取得手段により推奨すべき検索属性を取得できなかった場合、前記相互に関連する検索属性から構成される第2の集合から、過去に選択された検索属性である選択属性の履歴に含まれる検索属性以外の検索属性を前記推奨属性として取得する第2取得手段と、
前記第1取得手段又は前記第2取得手段により取得された前記推奨属性を含む検索属性と、前記値の候補一覧とを画面上に表示する表示手段と、
前記表示された検索属性及び前記値の候補から、検索属性及び値を選択する選択手段と、
前記選択手段により選択された検索属性及び値により、検索を実行する実行手段と、
を備えることを特徴とする。
【発明の効果】
【0008】
本発明によれば、ユーザの操作履歴からシナリオが推定され、シナリオに沿った上で絞込み効果の高い検索属性が推奨提示されるので、ユーザ所望の選択型検索が可能となる。
【図面の簡単な説明】
【0009】
【図1】検索装置の機能構成図。
【図2】検索装置に係る検索画面の推移の例を示した図。
【図3】検索装置に係る属性推奨の例を示した図。
【図4】検索装置に係るシナリオ片(第2の集合)の集合であるシナリオ集合の構成を示した図。
【図5】検索装置に係るシナリオ樹(第1の集合)の構成を示した図。
【図6】検索装置に係る選択属性履歴テーブルの構成を示した図。
【図7】検索装置に係る文書データベースと属性テーブルの構成を示した図。
【図8】(a)検索装置における属性評価テーブルの構成と属性のスコア算出の例を示した図、(b)検索装置全体の処理手順の一例を示すフローチャート。
【図9】絞込み検索処理の処理手順の一例を示すフローチャート。
【図10】検索属性推奨処理の処理手順の一例を示すフローチャート。
【図11】拒絶属性記録処理と選択属性履歴更新処理の処理手順の一例を示すフローチャート。
【図12】シナリオ更新処理の処理手順の一例を示すフローチャート。
【図13】(a)分布による検索属性推奨処理の処理手順の一例を示すフローチャート、(b)属性スコア算出処理の処理手順の一例を示すフローチャート。
【発明を実施するための形態】
【0010】
(第1実施形態)
まず図1を参照して、本発明に係る検索装置の主な構成を示すブロック図について説明する。図示の構成において、CPU101はマイクロプロセッサであり、絞込み検索処理、文書登録処理、表示処理、又は画面制御処理等のための演算、論理判断等を行い、バスを介して接続された各構成要素を制御する。BUS102はバスであり、CPU101の制御対象である各構成要素を指示するアドレス信号、コントロール信号等を転送する。また、各構成要素間のデータ転送を行う。ROM103は読出専用の不揮発性メモリである。CPU101によるブートプログラム、及び、各種処理で使用する初期データ等を記憶する。ブートプログラムはシステム起動時に初期データをRAM104にロードし、CPU101に制御プログラムを実行させる。制御プログラムについては、フローチャートを参照して後述する。入力装置105はボタン、タッチパネル等であり、オペレータが各種の指示を行う。表示装置106は液晶ディスプレイ等である。RAM104は読み書き可能なランダムアクセスメモリであって、各構成要素からの各種データの一次記憶に用いる。処理に必要なデータを記憶するバッファ、表示に必要なデータを一時記憶するバッファ、属性のスコアを算出保持する属性評価テーブル又は現在有効なシナリオを識別するための変数である現シナリオID等の処理中に値変更が行われる各種データが格納される。通信装置107はネットワークコントローラである。通信回線を介して外部とのデータ交換を行う装置である。HDD108はハードディスクであり、CPU101により実行される制御プログラム等が格納される。必要に応じてRAM104に示す主記憶にロードされ実行される。HDD108には、本検索装置で管理する文書データベース、属性テーブル、シナリオ樹(後述の第1の集合)とシナリオ片(後述の第2の集合)の集合(シナリオ集合)とからなるシナリオ全体、選択属性履歴テーブル等が格納される。スキャナ109はスキャナである。
【0011】
かかる各構成要素からなる本発明に係る検索装置は、入力装置105等からの各種イベントに応じて作動するものである。入力装置105等からのインタラプトが供給されると信号がCPU101に送られ、それに伴ってイベントが発生し、イベントに応じてCPU101がROM103またはRAM104内に記憶される各種命令を読み出し、その実行によって各種の制御が行われる。
【0012】
次に図2を参照して、本発明に係る検索画面の推移の例について説明する。画面はタッチパネルになっており、画面にタッチすることで各操作に対応したアクションをとることができる。図2(a)は検索指示前の画面を示している。検索指示画面21は、検索指示を行う際に表示される画面の例である。
【0013】
エリア211は、検索属性の候補一覧を表示するエリアである。最も推奨度の高い検索属性は一番左側(例では「操作者」)に表示される。それ以外の検索属性のリスト(操作日、操作機、等)はその右側に表示される。画面内に表示しきれていない検索属性は、左右の三角のボタンにタッチして左右にスクロールさせることで表示することができる。数多くの検索属性が存在するため、表示される順序が頻繁に変わるとユーザが探し難くなると考えられるので、最左以外の検索属性の順序は固定としておくのが望ましい。初期状態では最も推奨度の高い検索属性(最左の検索属性、例では「操作者」)が自動的に推奨表示され、それに対応する検索属性値の候補一覧(例では順に、「小林、阿部、渡辺、工藤、青木、市川」)が表示されている。検索属性候補一覧から好みの検索属性を探し出し画面をタッチして選択することにより、選択された検索属性に対応する値の候補一覧を表示させることができる。
【0014】
エリア212は、値の一覧を表示するエリアである。現在選択されている検索属性(初期状態では最左の属性:「操作者」)に対応した値の候補が表示される。値は、検索属性のタイプに応じた順序でソートされて表示される。ソート順は、例えば、推奨度順、あいうえお順、数値順(日付など)が考えられる。エリア213は、検索結果の一覧を表示するエリアである。ボタン214は、「属性スキップ」を指示するボタンである。「属性スキップ」とは現在推奨されている検索属性では選択し難いとユーザが感じた時に行う操作であり、次に推奨される検索属性に切り替える操作である。例えば、次の推奨が「操作日」であった場合、「属性スキップ」をタッチすることで、エリア211の検索属性候補一覧の「操作日」をタッチした場合と同じ画面に遷移する。なお、エリア211の検索属性候補が「操作者」である場合に、エリア212の値の候補の一つである「渡辺」にタッチすると検索を指示することになり、図2(b)に示すような画面になる。そして、検索結果の一覧を表示するエリアであるエリア223に検索結果が表示される。この場合は、検索属性:「操作者」、値:「渡辺」が選択されたことになり、「操作者=渡辺」に対応した検索結果が表示される。なお、検索結果の表示に連動して、次回検索の検索属性の候補がエリア221に表示される。この場合、検索属性:「操作種類」の推奨度が最も高くなったとして最左に表示され、エリア222には「操作種類」に対応する値候補の一覧が表示される。ここで更に、値(例では順に、「コピー、印刷、SEND、スキャン、撮影」)の一つをタッチすると絞込検索が実行され、検索結果が表示されると共にその次に推奨される検索属性及び値の候補が表示される。同様に、ボタン224の「属性スキップ」をタッチすると、この時点で次に推奨される検索属性が表示される。
【0015】
図3を参照して、属性推奨の操作例について説明する。図3(a)は、ユーザが選択し難い検索属性推奨の例を示している。第1操作301、第2操作302、第3操作303のそれぞれで推奨される検索属性(操作者、会議場所、縦書き/横書き)間には関連性が全くない。このような推奨では、検索属性による質問の意図が理解できず、選択に際してユーザが当惑してしまうと予想される。図3(b)はシナリオに沿った検索属性推奨の例を示している。第1操作301、第2操作302、第3操作303で推奨される検索属性(操作者、操作種類、操作機)同士には一貫したストーリ(操作系のシナリオ:その文書を機械で処理した状況の記述)がある。シナリオ化されているとユーザは、どのような状況を念頭に質問されているかが理解できるので、図3(a)の場合よりも安心して選択操作を行うことができる。図3(c)はシステムの推奨に反した検索属性をユーザが選択した操作の例である。第1操作301では検索属性「作成者」が推奨され、そのまま選択している。第2操作302では検索属性「作成部署」が推奨されたにもかかわらず、ユーザは検索属性「操作機」を選択した。この操作によって、検索属性「作成部署」はそのユーザにとって選択し難い検索属性であったと解釈される。図3(d)は、図3(c)の操作を行った後の検索属性推奨の例である。第1操作301で「作成者」が推奨されるのは図3(c)と同じだが、第2操作302では「操作機」が推奨される。「作成部署」ではなく図3(c)で実際に選択された検索属性「操作機」が推奨されている。
【0016】
図4を参照して、本発明に係るシナリオ集合の構成について説明する。シナリオ集合は、相互に関連する検索属性を保持するためのシナリオ全体を構成するデータ構造の一つで、シナリオを表現するためのものであり、関連する検索属性同士をグループ化したシナリオ片の集合である。ここで、シナリオ片とは相互に関連する検索属性から構成される第2の集合である。シナリオ片の一つ一つはシナリオIDで特定される。図4(a)は、シナリオ集合の構造を示す。シナリオIDで特定される1つのシナリオ片はいくつかの検索属性から構成される。ブロック411には、検索属性の個数が格納され、その後に個数分の検索属性が続いて格納される。一つの検索属性は、属性ID412と度数413とから構成される。属性ID412は、各検索属性を特定するための識別子である。度数413は、その検索属性の使用回数であり、シナリオIDが示すシナリオ片の状況の中でユーザに選択され、使用された度数(回数)を示す。同じシナリオIDの中では、各検索属性は度数順にソートされて格納され、度数順に取り出される。図4(b)はシナリオ集合の例を示している。シナリオ片421は、シナリオID=1に相当するシナリオ(操作系シナリオ)が操作者、操作日、操作機、操作種類の4つの相互に関連する検索属性から構成されることを示している。同様にシナリオ片422は内容系のシナリオ、シナリオ片423は配布系のシナリオ、そして、シナリオ片424はレイアウト系のシナリオを示している。
【0017】
図5を参照して、本発明に係るシナリオ樹の構成について説明する。シナリオ樹とは、相互に関連する検索属性と、当該検索属性を次回の検索の際に推奨すべき順序を示す情報とから構成される第1の集合である。シナリオ樹(第1の集合)は、相互に関連する検索属性を保持するためのシナリオ全体を構成するデータ構造の一つであり、シナリオを表現するためのものである。シナリオ樹(第1の集合)の表現するシナリオは、シナリオ集合(第2の集合)とは異なり、シナリオIDで特定されない。シナリオ樹は、検索属性の順序情報、頻度情報を、検索属性が選択されてきた経路(検索属性の選択履歴)に応じて記述するものである。このデータ構造を修正することにより、シナリオ生成(新規シナリオの生成、既存シナリオ中への検索属性の追加)することが可能である。
【0018】
図5(a)はシナリオ樹を構成する各ノードの構造を示している。シナリオ樹は、一般にn進木であり1つのノードが複数の子ノードを持つが、二進木に変換されて実装される。すなわち、子リンク514には長男ノードへのリンクのみを保持し、次男ノード以下には長男ノードの保持する弟リンク513を辿ることによって到達する。属性ID511には、各検索属性を特定するための識別子である検索属性IDが格納される。度数512には、シナリオ樹)上の各ノードの使用度数(シナリオ樹のノードの示す状況の中でノードがユーザに選択され、使用された回数)が格納される。子ノードは、この度数に従ってソートされる。すなわち、長男ノードとは子ノードの中で最高度数のノードであり、次に度数が高いのは次男ノードになる。弟リンク513には、シナリオ樹上で弟ノードへのリンクが格納される。子リンク514には、長男ノードへのリンクが格納される。現属性位置515は、シナリオ樹上で現在処理中のノードを示すポインタである。
【0019】
図5(b)はこのように作成されたシナリオ樹の例である。例えば、ルート521の子ノードは操作者531、作成者532、用紙サイズ533であり、長男ノードは操作者531である。操作者531の子ノードは操作日541、操作機542、操作種類543であり、長男ノードは操作日541である。この例では現属性位置515はノード「操作種類」をポイントしている。このシナリオ樹によって、ユーザの操作履歴に応じたシナリオ補正が可能となり、ユーザに適合したシナリオのカスタマイズが可能となる。
図6を参照して、絞込み検索開始からのユーザが実際に選択した検索属性の履歴を記録したテーブルである選択属性履歴テーブルの構成について説明する。
【0020】
図6(a)は、選択属性履歴テーブルの構造を示している。属性数611には、格納されている属性数が保持される。属性ID612には、各検索属性の属性IDが格納される。現属性位置613には、選択属性履歴テーブル上で現在処理中の検索属性へのポインタが保持される。図6(b)は選択属性履歴テーブルの例である。
【0021】
図6(b−1)は前回の絞込み検索操作系列において選択された検索属性の履歴を示している。図6(b−2)はその前回の一連の操作が終了した直後の選択属性履歴テーブルの状態を示した図である。前回の操作系列が選択属性履歴テーブルに作成されている。図6(b−3)は今回の絞込み検索操作において選択された検索属性の系列を示している。第1操作、第2操作は前回と同様であるが、第3操作が「操作機」に変化している。図6(b−4)は、今回操作のT651時点(「操作種類」選択直後)での選択属性履歴テーブルの状態である。前回とテーブルの中身は変わっておらず、現属性位置613が「操作種類」をポイントしている。図6(b−5)は、今回操作のT652時点(「操作機」選択直後)での選択属性履歴テーブルの内容である。第3操作の内容が「操作機」に変わり、現属性位置613が「操作機」をポイントする。テーブルは操作機で終端し、次の検索属性が消えていることが分かる。これは、選択属性履歴テーブルから次に推奨すべき検索属性が無くなってしまったことを反映している。
【0022】
図7を参照して、本発明において文書を管理する情報である文書データベースと、検索属性の特性と状態を記録するテーブルである検索属性テーブルの構成を説明する。
【0023】
図7(a)は文書データベースの構成の例を示した図である。文書ID711は、文書IDのフィールドであり、該当文書を特定するための識別情報を格納する。検索属性712は「操作者」、検索属性713は「操作日」、検索属性714は「操作機」、及び、検索属性715は「操作種類」の各フィールドであり、文書ID711が示す各文書の各検索属性に対応する属性値が格納される。各記録内容から、文書内容716を格納するエリアをポイントする。
【0024】
図7(b)は、検索属性を管理する検索属性テーブルの構成を示した図である。属性ID721には、検索属性を特定する識別情報が格納される。属性表記722には、各検索属性を検索メニュー等に表示する際の表記内容が格納される。拒絶フラグ723には、各検索属性が一連の絞込み検索操作内で拒絶されたか否かについての情報が保持される。拒絶とは、推奨された検索属性ではない検索属性をユーザが選択したしたことを示す。推奨された検索属性が選択されなかった場合、その検索属性は拒絶属性となる。絞込み検索開始の初期化処理でOFF状態にクリアされるが、拒絶操作が行われると該当する検索属性のフラグがONにセットされる。
【0025】
図8(a)を参照して、本発明に係る検索属性の絞込み効果を測るスコアを算出するためのテーブルである、スコア属性評価テーブルの構成について説明する。新しい検索属性を推奨する前に各検索属性のスコアを算出する。属性評価テーブルは、いくつかの属性評価801から構成される(図では、属性評価1から属性評価m;mは自然数)。そして、各属性評価は属性ID802、一連の属性値803(属性値1から属性値n;nは自然数)、及びスコア806から構成される。属性ID802は、その検索属性を識別する情報を示す。各属性値803は、値804と検索ヒット率805とから構成される。値804は、指定文書集合内で属性ID802の値として実際に出現するものが使用される。検索ヒット率805には、検索対象の文書集合内で「検索属性=値」を充たす文書の割合を格納する。最後のスコア806は、検索属性スコアであり、以下の算出式により求められる。
【0026】
【数1】

【0027】
ここで、hkは各属性値803(属性値1、属性値2、…、属性値k、…、属性値n;k、nは自然数)のうち、k番目の属性値の検索ヒット率805を、またSは属性のスコア806の値を表している。検索ヒット率とは、検索対象となる検索属性と値との組み合わせの集合全体に占める、任意の検索属性と値との組み合わせの割合である。式(1)は、ある検索属性内の各値による検索ヒット率805に対して、その二乗平均をスコア806としている。これは統計学でいう分散に相当するものである。分散は、一般に二乗平均から平均の二乗を減じて算出されるものであるが、平均が概ね等しいと見なして、二乗平均を指標として用いている。Sの値が大きいと、分布が偏在していることを示す。上述の動作を以下に示すフローチャートに従って説明する。
【0028】
図8(b)を参照して、本発明に係る検索装置の動作、より具体的にはマイクロプロセッサCPUの処理手順を示すフローチャートについて説明する。ステップS851において、システムの初期化処理を実行し、各種パラメータの初期化や初期画面の表示等を行う処理を実行する。ステップS852において、画面上へのタッチ等の入力装置からの何らかのイベントが発生するのをCPU101において待機する処理を行う。そしてイベントが発生すると、ステップS853において、CPU101がこのイベントの種類を判別し、イベントの種類に応じて各種の処理に分岐する。各種イベントに対応した分岐先の複数の処理をステップS854において各種イベント対応処理として、まとめて表現している。図9において後述する絞込み検索処理は、ステップS854における分岐先の複数の処理の一つとなる。
【0029】
他の処理としては、詳細は記述されないが、文書登録処理、印刷処理、文書データ管理処理などの処理がある。ステップS855において、上記の各処理の処理結果や処理終了を通知し、画面を各処理の指示に従って表示する処理を実行する。エラーがあった場合のエラー表示、正常な処理が行われた場合に設定されている表示データの画面表示への反映など通常広く行われる処理が実行される。
【0030】
図9を参照して、図8のステップS854の各種イベント対応処理の一つである絞込み検索処理について説明する。ステップS901において、初期設定が必要な変数、テーブルを初期化する。例えば、現在有効なシナリオ片を識別するための変数である現シナリオIDは、無効値にリセットされる。属性テーブルに記録される拒絶フラグはこの時点で、すべてOFFにリセットされる。ステップS902において、図10で詳述するように、次回検索に推奨すべき検索属性を決定する検索属性推奨処理を行う。ステップS903において、現在選択されている検索属性に対応する値の候補一覧を作成する。検索属性の種類に応じて値を推奨度順、あいうえお順、数値順などにソートし列挙する。ステップS904において、検索属性と値の一覧を画面上に表示し、ユーザにより次の操作が行われるまで待機する。ステップS905において、CPU101はユーザ操作を解析し、値が選択されたかどうか判定する。値の選択操作でない場合(例えば、画面遷移に関する操作、属性選択に関する操作など)は(ステップS905;NO)、ステップS906に分岐して画面遷移処理を行い、その後ステップS903にループする。なお、ステップ906の画面遷移処理は、検索属性スキップ処理も含んでいる。検索属性スキップ処理の場合は、図10の検索属性推奨処理と同様の処理を行い、次に推奨すべき検索属性を決定することになる。ステップS905において、値の選択操作であった場合(ステップS905;YES)はステップS907に進み、選択された検索属性及び値に従って検索クエリを発行して検索を実行する。ステップS908において、図11で詳述するように、推奨されていた検索属性がユーザによって拒絶された場合に、拒絶されたことを記録する拒絶属性記録処理を行う。ステップS909において、図11で詳述するように、検索属性の選択履歴を記録するテーブルである選択属性履歴テーブルに今回の選択操作を反映させる選択属性履歴更新処理を行う。ステップS910において、図12で詳述するように、今回の検索属性選択をシナリオ記述に反映するシナリオ更新処理を行う。ステップS911において、実行された検索の検索結果を画面に出力する。ステップS912において、一連の絞込み検索の操作が終了しているかどうか判定し、終了していない場合(ステップS912;NO)はステップS902にループし、終了している場合(ステップS912;YES)は、リターンする。
【0031】
図10を参照して、図9のステップS902の検索属性推奨処理を詳細化したフローチャートについて説明する。検索属性推奨処理は、次回の検索に推奨すべき検索属性を決定する処理である。ステップS1001において、選択属性履歴テーブルから次回の検索属性を取得できるか否かを判定する。判定は履歴上で現属性位置の次の位置に検索属性が存在するか否かにより行う。検索属性を取得できる時はステップS1002に分岐し、次回の検索属性を取得し、ステップS1009に進む。一方、検索属性を取得できない時はステップS1003に進む。ステップS1003において、第1取得手段として機能するCPU101はシナリオ樹から次回の検索属性を取得する。具体的にはシナリオ樹(第1の集合)から、前回の検索時に選択された検索属性の次の順序に対応する検索属性のうち過去に選択された検索属性の回数(度数)が多い順に、次回の検索の際に推奨すべき検索属性を推奨属性として取得する。すなわち、シナリオ樹上で現属性位置ノードの子ノードの検索属性を度数順に取得する。最初は長男ノードを取得し、2回目以降は弟リンクを辿って取得することになる。ステップS1004において、子ノードが取得できたか否かを判定し、取得できた時はステップS1009に進む。子ノードが取得できない時はステップS1005に進む。ステップS1005において、現シナリオIDに有効値が設定されているか否かを判定する。無効である場合(ステップS1005;NO)はステップS1007に分岐する。有効である場合(ステップS1005;YES)はステップS1006に進む。ステップS1006において、現シナリオIDが示すシナリオ片にまだ選択されていない検索属性があるか否かを判定する。その結果、存在しない場合はステップS1007に分岐する。一方、存在する場合はステップS1008に進む。ステップS1008において、第2取得手段として機能するCPU101は現シナリオIDが示すシナリオ片(第2の集合)中の未選択の検索属性を度数順に取得する。1回目は最高度数の検索属性を取得し、2回目以降は順次次度数の検索属性を取得することになる。また、現シナリオIDが示すシナリオ片中の未選択の検索属性を度数順ではなく、任意の検索属性を取得する構成としても良い。なお、この処理の他の実施形態として、単純に度数順に取得せず、検索結果の分布状況を加味した順に取得しても良い。その際は、図13(b)に示す後述の属性スコア算出処理をこの段階で呼び出して各検索属性のスコアを求めて度数情報に適切な重みを加えて評価し、評価値の高い順に検索属性を取得することになる。これにより絞込み効率のより高い検索属性を優先的にユーザに提示できるという効果が得られる。ステップS1009において、取得した検索属性の拒絶フラグがONか否か、属性テーブルを参照して判断する。拒絶フラグがONの時はステップS1003にループし、1回目に推奨された検索属性以外(拒絶属性以外)の次度数の子ノードを取得して同様の処理を行う。拒絶フラグがOFFの時はステップS1010に進む。ステップS1010において、図13(b)で詳述するように、検索属性のスコアを算出する。ステップS1011において、検索属性のスコアから検索結果が偏在しているか否かを判定する。偏在しているか否かは、式(1)に示す検索属性のスコアが所定の閾値を超えているか否かで判断する。偏在していない場合は、ステップS1012に進む。一方、偏在していると判断される場合はステップS1003にループし、次度数の子ノードを取得して同様の処理を行う。ステップS1012において、取得された検索属性を推奨属性として決定し、リターンする。ステップS1005において現シナリオIDが有効の場合、ステップS1006において現シナリオに未選択属性が存在しない場合は、ステップS1007に分岐する。そして図13(a)で詳述する、分布による検索属性推奨処理を行い、リターンする。このように検索結果の偏在をチェックし、偏在している場合別の検索属性を推奨する処理をすることによって、ユーザは無駄な絞込み検索操作を行う手間を削減でき、検索操作性の向上につながるという効果がある。また、拒絶属性のチェックを行い、拒絶属性は推奨しないように制御することによって、ユーザの選びにくい検索属性を排除することができるので、同様に検索操作性の向上という効果がある。
【0032】
図11を参照して、図9のステップS908の拒絶属性記録処理とステップS909の選択属性履歴更新処理とを詳細化したフローチャートについて説明する。
【0033】
図11(a)は拒絶属性記録処理である。ユーザがシステムの推奨属性を無視して別の検索属性を選択した場合に、推奨属性が拒絶されたとみなして、拒絶された事実を記録する処理である。ステップS1101において、今回選択された検索属性がシステムの推奨属性であるか否かを判定する。推奨属性が選択された場合(ステップS1101;YES)はそのままリターンする。一方、推奨された検索属性以外の検索属性が選択された場合(ステップS1101;NO)は、ステップS1102に進み、推奨された属性に対応する属性テーブル内の拒絶フラグをONに設定し、リターンする。
【0034】
図11(b)は選択属性履歴更新処理であり、検索属性が選択された履歴を記録するテーブルである選択属性履歴テーブルに、今回の検索属性選択操作の結果を反映させる処理である。ステップS1151において、今回ユーザが選択した検索属性が、選択属性履歴テーブルの次の検索属性(現属性位置+1の位置の検索属性)と一致しているか否かを判定する。一致している場合はステップS1152に進み、一致しない場合はステップS1153に進む。ステップS1152において、選択属性履歴テーブルの現属性位置を次の属性位置に進め(すなわち、+1する)、リターンする。一方、ステップS1153において、今回選択した検索属性を、選択属性履歴テーブルの次の属性位置(すなわち、現属性位置+1の位置)に追加する。ステップS1154において、現属性位置を次の属性位置に歩進する(すなわち、+1する)。ステップS1155において、現属性位置より右側(+側)の検索属性を選択属性履歴テーブル上から削除し、リターンする。
【0035】
図12を参照して、図9のステップS910のシナリオ更新処理を詳細化したフローチャートについて説明する。シナリオ更新処理とは、選択された検索属性がシナリオから外れている場合に、適切なシナリオに変更する処理、及び、今回の検索属性選択をシナリオ記述に反映する処理である。ステップS1201において現シナリオIDが有効か否かを判定する。有効であればステップS1205にスキップし、有効でなければ、ステップS1202において、適合するシナリオ片をサーチする。具体的には、例えば、選択属性履歴テーブル内で現属性位置までに記述されている検索属性群を部分集合として含むシナリオ片があるか否か、シナリオ集合を探索する。また、現属性位置の検索属性のみを含むシナリオ片を探索する構成でも良い。ステップS1203において、シナリオ片が見つかったか否かを判定する。見つからなかった場合はステップS1208に分岐する。一方、見つかった場合はステップS1204に進み、第2の集合を更新する第2更新手段として機能するCPU101は、見つかったシナリオ片のシナリオIDを現シナリオIDとして設定し、ステップS1205に進む。なお、第2の集合のうち、現在検索属性を取得する対象として使用されている集合の情報は現シナリオ保持手段として機能するRAM104等の記憶装置に保持される。ステップS1205において、今回選択された検索属性が現シナリオIDの示すシナリオ片に存在するか否かを判定する。存在すればステップS1206に進み、存在しなければステップS1208に分岐する。ステップS1206において、現シナリオにある選択属性の度数をカウントアップする。ステップS1207において、現シナリオIDの示すシナリオ片内の検索属性を度数順にソートし、ステップS1209に進む。一方、ステップS1203においてシナリオ片が見つからなかった場合、及びステップS1205において選択属性が現シナリオに存在しなかった場合、ステップS1208に分岐し、現シナリオIDをクリアして無効化し、ステップS1209に進む。ステップS1209において、選択属性がシナリオ樹上で、現属性位置の子ノードとして既に登録されているか否かを判定する。登録済である場合はステップS1210に進み、登録されていない場合はステップS1212に進む。ステップS1210において、第1の集合の順序を更新する第1更新手段として機能するCPU101はシナリオ樹上の選択属性の度数をカウントアップする。そしてステップS1211において、度数に従って子ノードをソートし、子リンク、弟リンクの再設定を行う。その後にステップS1213に進む。一方、ステップS1212においては、第1の集合の順序を更新する第1更新手段として機能するCPU101は選択属性のノードをシナリオ樹上の現属性位置の子ノードとして第1の集合で定められている順序の最後尾に初期度数で追加する。そして、追加した後ステップS1213に進む。ステップS1213において、シナリオ樹上の現属性位置を選択属性の位置に進める。ステップS1214において、シナリオ樹上に不要ノードがあれば削除し、ガーベージコレクションする。不要と認定する基準としては、各ノードに寿命情報を持たせ、その寿命が尽きたノードを不要とする等が考えられる。
【0036】
このようにシナリオ更新処理を行う第1番目の効果は、シナリオ片から外れた属性選択をユーザが行った場合に、ユーザ操作に適合した別のシナリオ片が設定されるという点である。第2番目の効果は、適合するシナリオ片が存在しない場合に、シナリオ樹に新たなノードが追加されて、検索属性を追加した新たなシナリオが生成されるという点である。第3番目の効果は、既存のシナリオが記述している検索属性の推奨順序がユーザの希望と異なる場合に、順序が補整されたシナリオが得られるという点である。
【0037】
このように、選択操作だけでユーザ操作に適合したシナリオの構築が容易となるので、検索操作性の向上という効果がある。
【0038】
図13(a)を参照して、図10のステップS1007の分布による検索属性推奨処理を詳細化したフローチャートについて説明する。ステップS1301において、初期設定処理を行い、絞込み検索の対象文書集合を特定する。ステップS1302において、属性テーブルから検索属性の候補を抽出する。ステップS1303において、抽出された検索属性候補から検索属性を1つ取得する。ステップS1304において、図13(b)で後述するように、検索属性のスコアを算出する。ステップS1305において、全ての検索属性候補について処理を終了したか否かを判定し、処理を終了していなければステップS1306に分岐し、次の検索属性を取得してステップS1303にループする。ステップS1305において、全ての検索属性候補について処理が終了していれば、ステップS1307に進み、スコア順に検索属性をソートする。ステップS1308において、最も優先すべき検索属性を推奨属性として抽出し、リターンする。
【0039】
図13(b)を参照して、図10のステップS1010、及び図13のステップS1304の属性スコア算出処理を詳細化したフローチャートについて説明する。ステップS1351において、必要な変数を初期設定する。ステップS1352において、指定文書集合において指定属性の値として出現するものを属性値候補としてリストアップする。ステップS1353において、属性値候補の中から属性値を一つ任意に取り出す。ステップS1354において、指定文書集合内で「検索属性=属性値」となる件数を求め、検索ヒット率を算出する。ステップS1355において、算出された属性値とヒット率とを属性評価テーブル内の然るべきフィールドに設定する。ステップS1356において、全ての属性値候補を処理し終えたか否かを確認する。未処理の値がある場合はステップS1357において次の属性値を選択し、ステップS1353にループする。一方、ステップS1356において全ての値の処理が終了している場合は、ステップS1358に進む。ステップS1358において、この検索属性のスコアを式(1)に示した算出式に基づいて算出し、属性評価テーブルに格納し、リターンする。
【0040】
(第2実施形態)
なお、本発明は上述の実施形態に限定されるのではなく、本発明の趣旨を逸脱しない限りにおいて適宜変更が可能である。
【0041】
これまで述べた実施形態においては、検索操作開始にあたってユーザが明確に希望するシナリオを指定する操作がなかったが、ユーザがシナリオを明確に指定する構成にしても良い。例えば、検索操作の開始で、「内容系シナリオ」、「操作系シナリオ」、「レイアウト系シナリオ」等のシナリオ片を選択するメニューを表示し、ユーザに選択させるという操作が考えられる。そのような構成としても、シナリオの選択に関するそれ以降の処理は第1実施形態で示した処理と全く同様である。例えば、仮に検索操作の途中でシナリオ片から外れた検索属性をユーザが選択した場合には、自動的に適合するシナリオ片がサーチされシナリオ設定が変更される。このような構成にすることによって、ユーザが不適切なシナリオ片を選んでしまった場合でも、絞込み検索を遂行するうちに自動的に適切なシナリオに修正されていくので、検索操作性を向上させる効果が得られる。
【0042】
また、これまで述べた実施形態においては、現シナリオIDが1つであるという前提で述べたが、複数のシナリオが該当するという場合も考えられる。例えば、2つのシナリオが共通の検索属性を含んでおり、検索開始からの属性選択操作では、たまたまその共通の検索属性しか選択しなかった場合である。このときは、図12のステップS1203におけるシナリオ片を見つける処理において、複数のシナリオ片が見つかることになる。このような場合のために現シナリオIDは複数個記憶して処理することも可能である。その場合、ステップS1203において複数個の現シナリオIDを記憶することとなる。また、図10のステップS1008においては、該当する複数のシナリオ片から未選択の検索属性を全て抽出し、同様に頻度、分布情報などから評価値の高い検索属性を取得することとなる。また、図10のステップS1005、ステップS1006、及び、図12のステップS1205における現シナリオのチェック処理は、複数個のシナリオIDについてチェックする。そして、図12のステップS1208のクリア処理は、選択属性が外れたシナリオIDのみをクリアすることとする。このように現シナリオIDを複数個持つことにより、検索属性が重複したシナリオ片が複数ある場合も考慮した処理が可能になり、シナリオ片を有効に利用できる。
【0043】
また、第1実施形態においては、シナリオ片から外れた検索属性が選択された場合のシナリオ変更は、それまでの選択属性履歴に含まれる検索属性を部分集合として含むシナリオ片を探し、そのシナリオ片に変更する構成としていた。しかし、条件が厳格なために、該当する新たなシナリオ片が見つからないという事態が想定される。このような事態を避けるために、部分集合との完全一致を条件とするのではなく、一部の不一致を許容して、選択属性履歴との重複度が最も高いシナリオ片に変更するような構成としても良い。そのようにすることによって、既存シナリオ片の利用度が高くなり、推奨される検索属性の利用度も高くなって、検索操作性の向上につながるという効果が得られる。
【0044】
また、第1実施形態では、推奨される検索属性は最も推奨度の高い1つだけが有効であり、次点以下の検索属性を同列に扱っていたが、推奨度順に検索属性の一覧を提示する構成とすることも考えられる。この場合、所望の検索属性が一覧のどこに存在するのかが判別し難くなるので、検索属性一覧をソートする機能も必要となる。このとき、図10の検索属性推奨処理のステップS1011における「検索結果偏在チェック」で、偏在している場合は推奨度を所定値だけ落として評価して、推奨属性を決める処理とする。このように次推奨度以下の検索属性も推奨度順に一覧表示することにより、次推奨度以下の検索属性の利用が容易になるという効果がある。
【0045】
また、第1実施形態ではシナリオ生成はシナリオ樹(第1の集合)への新規ノードの追加という構成のみを説明したが、シナリオ集合(第2の集合)のシナリオ片に検索属性を追加する処理を行っても良い。この場合、検索属性を追加すべきシナリオIDを特定する処理が困難となるが、選択属性履歴と構成要素が最もよく一致するシナリオ片のシナリオIDを見つけることになる。これにより、シナリオ生成を最小構成で実現でき、より安価な装置が可能になるという効果がある。
【0046】
また、第1実施形態においては、検索対象を文書として説明しているが、いわゆる通常の文書以外のタイプのコンテンツ、例えば、写真、ビデオ等のメタデータを付与できるコンテンツであれば、全く同様に処理可能である。上記以外にも、本発明の趣旨を逸脱しない限りにおいて、構成を適宜変更することが可能である。
【0047】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
検索に用いる検索属性及び前記検索属性に対応する値を選択することにより絞込み検索する検索装置であって、
相互に関連する検索属性を記憶するシナリオから、過去に選択された検索属性である選択属性の履歴に含まれる検索属性以外の検索属性を、次回の検索の際に推奨すべき推奨属性として取得する取得手段と、
前記取得手段により取得された前記推奨属性を含む検索属性と、前記値の候補一覧とを画面上に表示する表示手段と、
前記表示された検索属性及び前記値の候補から、検索属性及び値を選択する選択手段と、
前記選択手段により選択された検索属性及び値により、検索を実行する実行手段と、
を備えることを特徴とする検索装置。
【請求項2】
検索に用いる検索属性及び前記検索属性に対応する値を選択することにより絞込み検索する検索装置であって、
前記取得手段は、第1取得手段と第2取得手段とからなり、
相互に関連する検索属性と、当該検索属性を次回の検索の際に推奨すべき順序を示す情報とから構成される第1の集合から、前回の検索時に選択された検索属性の次の順序に対応する検索属性のうち次回の検索の際に推奨すべき検索属性を推奨属性として取得する第1取得手段と、
前記第1取得手段により推奨すべき検索属性を取得できなかった場合、前記相互に関連する検索属性から構成される第2の集合から、過去に選択された検索属性である選択属性の履歴に含まれる検索属性以外の検索属性を前記推奨属性として取得する第2取得手段と、
前記第1取得手段又は前記第2取得手段により取得された前記推奨属性を含む検索属性と、前記値の候補一覧とを画面上に表示する表示手段と、
前記表示された検索属性及び前記値の候補から、検索属性及び値を選択する選択手段と、
前記選択手段により選択された検索属性及び値により、検索を実行する実行手段と、
を備えることを特徴とする請求項1に記載の検索装置。
【請求項3】
前記選択手段により前記推奨属性が選択されなかった場合、拒絶された拒絶属性として前記推奨属性を記録する記録手段と、
前記取得手段により取得された推奨属性が前記拒絶属性であるかを判断する判断手段と、をさらに備え、
前記判断手段により拒絶属性であると判断された場合、前記取得手段は前記拒絶属性以外の検索属性を、次回の検索の際に推奨すべき推奨属性として取得することを特徴とする請求項1又は2に記載の検索装置。
【請求項4】
前記シナリオの内容を更新するシナリオ更新手段をさらに備え、
前記シナリオ更新手段は、
前記選択手段により選択された検索属性である選択属性が、推奨されなかった検索属性である場合に、前記シナリオ中に前記選択属性を次の検索の際に推奨すべき検索属性の候補として追加することを特徴とする請求項1乃至3の何れか1項に記載の検索装置。
【請求項5】
前記第2の集合のうち、現在検索属性を取得する対象として使用されている集合を保持する現シナリオ保持手段をさらに備え、
前記現シナリオ保持手段は、前記選択手段により選択された検索属性である選択属性が、前記現在検索属性を取得する対象として使用されている第2の集合に含まれない場合、前記選択手段により選択された検索属性が含まれる第2の集合を探索して、新たに現在検索に使用されている集合として保持し前記第2取得手段により検索属性を取得する対象とすることを特徴とする請求項2乃至4の何れか1項に記載の検索装置。
【請求項6】
検索属性の絞り込み効果の指標であり、前記値の分布の偏りを示す検索属性スコアを算出する算出手段をさらに備え、
前記検索属性スコアが閾値よりも大きい場合、前記取得手段は、既に取得された検索属性以外の検索属性を推奨属性として取得することを特徴とする請求項1乃至5の何れか1項に記載の検索装置。
【請求項7】
前記検索属性スコアは、検索対象となる検索属性と値との組み合わせの集合全体に占める、任意の検索属性と値との組み合わせの割合の二乗平均であることを特徴とする請求項6に記載の検索装置
【請求項8】
検索に用いる検索属性及び前記検索属性に対応する値を選択することにより絞込み検索する検索方法であって、
第1取得手段が、相互に関連する検索属性と、当該検索属性を次回の検索の際に推奨すべき順序を示す情報とから構成される第1の集合から、前回の検索時に選択された検索属性の次の順序に対応する検索属性のうち過去に選択された検索属性の回数が多い順に、次回の検索の際に推奨すべき検索属性を前記順序に従って推奨属性として取得する第1取得工程と、
第2取得手段が、前記第1取得工程により推奨すべき検索属性を取得できなかった場合、前記相互に関連する検索属性から構成される第2の集合から、過去に選択された検索属性である選択属性の履歴に含まれる検索属性以外の検索属性を前記推奨属性として取得する第2取得工程と、
表示手段が、前記第1取得工程又は前記第2取得工程により取得された前記推奨属性を含む検索属性と、前記値の候補一覧とを画面上に表示する表示工程と、
選択手段が、前記表示された検索属性及び前記値の候補から、検索属性及び値を選択する選択工程と、
実行手段が、前記選択工程により選択された検索属性及び値により、検索を実行する実行工程と、
を備えることを特徴とする検索方法。
【請求項9】
請求項8に記載の検索方法をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate