(57)【要約】【課題】絞込み効率だけで検索属性を推奨提示すると、検索属性間の関連性が薄くなり選択し難い。【解決手段】相互に関連する検索属性と検索属性を次回の検索の際に推奨すべき順序を示す情報とから成る第１の集合から、前回の検索時に選択された検索属性の次の順序に対応する検索属性のうち過去に選択された検索属性の回数が多い順に、次回の検索の際に推奨すべき検索属性を順序に従って推奨属性として取得する第１取得部と、第１取得部により推奨すべき検索属性を取得できなかった場合、相互に関連する検索属性から成る第２の集合から過去に選択された検索属性である選択属性の履歴に含まれる検索属性以外の検索属性を推奨属性として取得する第２取得部と、第１又は第２取得部により取得された推奨属性を含む検索属性と値の候補一覧とを画面上に表示する表示部と、検索属性及び値の候補から検索属性及び値を選択する選択部と、検索属性及び値により検索を実行する実行部とを備える。【選択図】  図３
2011138223.tif 000002
【特許請求の範囲】
【請求項１】
検索に用いる検索属性及び前記検索属性に対応する値を選択することにより絞込み検索する検索装置であって、
相互に関連する検索属性を記憶するシナリオから、過去に選択された検索属性である選択属性の履歴に含まれる検索属性以外の検索属性を、次回の検索の際に推奨すべき推奨属性として取得する取得手段と、
前記取得手段により取得された前記推奨属性を含む検索属性と、前記値の候補一覧とを画面上に表示する表示手段と、
前記表示された検索属性及び前記値の候補から、検索属性及び値を選択する選択手段と、
前記選択手段により選択された検索属性及び値により、検索を実行する実行手段と、
を備えることを特徴とする検索装置。
【請求項２】
検索に用いる検索属性及び前記検索属性に対応する値を選択することにより絞込み検索する検索装置であって、
前記取得手段は、第１取得手段と第２取得手段とからなり、
相互に関連する検索属性と、当該検索属性を次回の検索の際に推奨すべき順序を示す情報とから構成される第１の集合から、前回の検索時に選択された検索属性の次の順序に対応する検索属性のうち次回の検索の際に推奨すべき検索属性を推奨属性として取得する第１取得手段と、
前記第１取得手段により推奨すべき検索属性を取得できなかった場合、前記相互に関連する検索属性から構成される第２の集合から、過去に選択された検索属性である選択属性の履歴に含まれる検索属性以外の検索属性を前記推奨属性として取得する第２取得手段と、
前記第１取得手段又は前記第２取得手段により取得された前記推奨属性を含む検索属性と、前記値の候補一覧とを画面上に表示する表示手段と、
前記表示された検索属性及び前記値の候補から、検索属性及び値を選択する選択手段と、
前記選択手段により選択された検索属性及び値により、検索を実行する実行手段と、
を備えることを特徴とする請求項１に記載の検索装置。
【請求項３】
前記選択手段により前記推奨属性が選択されなかった場合、拒絶された拒絶属性として前記推奨属性を記録する記録手段と、
前記取得手段により取得された推奨属性が前記拒絶属性であるかを判断する判断手段と、をさらに備え、
前記判断手段により拒絶属性であると判断された場合、前記取得手段は前記拒絶属性以外の検索属性を、次回の検索の際に推奨すべき推奨属性として取得することを特徴とする請求項１又は２に記載の検索装置。
【請求項４】
前記シナリオの内容を更新するシナリオ更新手段をさらに備え、
前記シナリオ更新手段は、
前記選択手段により選択された検索属性である選択属性が、推奨されなかった検索属性である場合に、前記シナリオ中に前記選択属性を次の検索の際に推奨すべき検索属性の候補として追加することを特徴とする請求項１乃至３の何れか１項に記載の検索装置。
【請求項５】
前記第２の集合のうち、現在検索属性を取得する対象として使用されている集合を保持する現シナリオ保持手段をさらに備え、
前記現シナリオ保持手段は、前記選択手段により選択された検索属性である選択属性が、前記現在検索属性を取得する対象として使用されている第２の集合に含まれない場合、前記選択手段により選択された検索属性が含まれる第２の集合を探索して、新たに現在検索に使用されている集合として保持し前記第２取得手段により検索属性を取得する対象とすることを特徴とする請求項２乃至４の何れか１項に記載の検索装置。
【請求項６】
検索属性の絞り込み効果の指標であり、前記値の分布の偏りを示す検索属性スコアを算出する算出手段をさらに備え、
前記検索属性スコアが閾値よりも大きい場合、前記取得手段は、既に取得された検索属性以外の検索属性を推奨属性として取得することを特徴とする請求項１乃至５の何れか１項に記載の検索装置。
【請求項７】
前記検索属性スコアは、検索対象となる検索属性と値との組み合わせの集合全体に占める、任意の検索属性と値との組み合わせの割合の二乗平均であることを特徴とする請求項６に記載の検索装置
【請求項８】
検索に用いる検索属性及び前記検索属性に対応する値を選択することにより絞込み検索する検索方法であって、
第１取得手段が、相互に関連する検索属性と、当該検索属性を次回の検索の際に推奨すべき順序を示す情報とから構成される第１の集合から、前回の検索時に選択された検索属性の次の順序に対応する検索属性のうち過去に選択された検索属性の回数が多い順に、次回の検索の際に推奨すべき検索属性を前記順序に従って推奨属性として取得する第１取得工程と、
第２取得手段が、前記第１取得工程により推奨すべき検索属性を取得できなかった場合、前記相互に関連する検索属性から構成される第２の集合から、過去に選択された検索属性である選択属性の履歴に含まれる検索属性以外の検索属性を前記推奨属性として取得する第２取得工程と、
表示手段が、前記第１取得工程又は前記第２取得工程により取得された前記推奨属性を含む検索属性と、前記値の候補一覧とを画面上に表示する表示工程と、
選択手段が、前記表示された検索属性及び前記値の候補から、検索属性及び値を選択する選択工程と、
実行手段が、前記選択工程により選択された検索属性及び値により、検索を実行する実行工程と、
を備えることを特徴とする検索方法。
【請求項９】
請求項８に記載の検索方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザが大量のコンテンツから目的のコンテンツを検索する検索装置、検索方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、ストレージ、記録メディアの大容量化に伴って、機器の取り扱うコンテンツ数が増大し効率の良い検索の必要性が高まってきている。Ｗｅｂ検索においては検索クエリの入力が必須である検索方式が普及しているが、複写機等の機器においては、テキスト入力環境が整っていない事が多い。そのため、メニューの選択だけで絞込み検索が可能な検索方式（以下、「選択型検索方式」と称する）が必要である。
【０００３】
このような選択型検索方式において、メニューが固定的に提示されるだけではユーザにとって使い勝手が悪いものになってしまう。よって、絞込み効果の高い検索メニュー（検索属性とその検索属性に対応する値）を動的に推奨して検索操作性を向上させる必要がある。しかし、単純に絞込み効果の高い検索属性を推奨したからといって、使い勝手が良くなるわけではない。検索属性には様々なタイプがあり、直前の検索属性と関連の薄い検索属性を推奨されてもユーザは選択し難いためである。ストーリ（以下、「シナリオ」とも称する）に合わせて検索属性を推奨しなければ、ユーザが当惑してしまうことになる。検索条件を候補として表示し、ユーザに選択させて検索を遂行するシステムは、これまでにも多く提案されてきた。例えば、特許文献１は、コンテンツの分布に応じて属性の特徴量（突出度、均一度）を算出し、検索戦略に応じて最適な属性をシステムが選択し、属性と属性値の候補をユーザに提示し、ユーザに選択させて検索する方式を提案している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２０２１５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、従来の検索方法では、状況に応じて動的にメニューを表示しているが、検索属性同士の関連性を考えておらず、場合によっては関連性の薄い検索属性が提示され、ユーザが当惑してしまうことがあるという欠点があった。例えば、特許文献１では、飲食店の店舗の検索を例にとって、コンテンツ分布的に最も有利な属性が推奨される方式を提案している。検索の対象領域が限定されているときは、利用できる属性の種類も限定されるため、ランダムな属性推奨という状況が少ない。しかし、一般に検索属性には無数のバリエーションがあり、相互に無関係な属性が推奨されると選択し難い。例えば、オフィス文書では、作成状況（作成者など）、内容（技術分野など）、形式（用紙サイズなど）、使用状況（会議名など）など、様々な属性のタイプがある。これらがランダムに推奨されてしまうとユーザは選択し難く当惑してしまうという課題がある。
【０００６】
上記の課題に鑑み、本発明は、相互に関連性を有する検索属性を推奨提示する、選択型検索を実現することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するための本発明に係る検索装置は、
検索に用いる検索属性及び前記検索属性に対応する値を選択することにより絞込み検索する検索装置であって、
相互に関連する検索属性と、当該検索属性を次回の検索の際に推奨すべき順序を示す情報とから構成される第１の集合から、前回の検索時に選択された検索属性の次の順序に対応する検索属性のうち過去に選択された検索属性の回数が多い順に、次回の検索の際に推奨すべき検索属性を前記順序に従って推奨属性として取得する第１取得手段と、
前記第１取得手段により推奨すべき検索属性を取得できなかった場合、前記相互に関連する検索属性から構成される第２の集合から、過去に選択された検索属性である選択属性の履歴に含まれる検索属性以外の検索属性を前記推奨属性として取得する第２取得手段と、
前記第１取得手段又は前記第２取得手段により取得された前記推奨属性を含む検索属性と、前記値の候補一覧とを画面上に表示する表示手段と、
前記表示された検索属性及び前記値の候補から、検索属性及び値を選択する選択手段と、
前記選択手段により選択された検索属性及び値により、検索を実行する実行手段と、
を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ユーザの操作履歴からシナリオが推定され、シナリオに沿った上で絞込み効果の高い検索属性が推奨提示されるので、ユーザ所望の選択型検索が可能となる。
【図面の簡単な説明】
【０００９】
【図１】検索装置の機能構成図。
【図２】検索装置に係る検索画面の推移の例を示した図。
【図３】検索装置に係る属性推奨の例を示した図。
【図４】検索装置に係るシナリオ片（第２の集合）の集合であるシナリオ集合の構成を示した図。
【図５】検索装置に係るシナリオ樹（第１の集合）の構成を示した図。
【図６】検索装置に係る選択属性履歴テーブルの構成を示した図。
【図７】検索装置に係る文書データベースと属性テーブルの構成を示した図。
【図８】（ａ）検索装置における属性評価テーブルの構成と属性のスコア算出の例を示した図、（ｂ）検索装置全体の処理手順の一例を示すフローチャート。
【図９】絞込み検索処理の処理手順の一例を示すフローチャート。
【図１０】検索属性推奨処理の処理手順の一例を示すフローチャート。
【図１１】拒絶属性記録処理と選択属性履歴更新処理の処理手順の一例を示すフローチャート。
【図１２】シナリオ更新処理の処理手順の一例を示すフローチャート。
【図１３】（ａ）分布による検索属性推奨処理の処理手順の一例を示すフローチャート、（ｂ）属性スコア算出処理の処理手順の一例を示すフローチャート。
【発明を実施するための形態】
【００１０】
（第１実施形態）
まず図１を参照して、本発明に係る検索装置の主な構成を示すブロック図について説明する。図示の構成において、ＣＰＵ１０１はマイクロプロセッサであり、絞込み検索処理、文書登録処理、表示処理、又は画面制御処理等のための演算、論理判断等を行い、バスを介して接続された各構成要素を制御する。ＢＵＳ１０２はバスであり、ＣＰＵ１０１の制御対象である各構成要素を指示するアドレス信号、コントロール信号等を転送する。また、各構成要素間のデータ転送を行う。ＲＯＭ１０３は読出専用の不揮発性メモリである。ＣＰＵ１０１によるブートプログラム、及び、各種処理で使用する初期データ等を記憶する。ブートプログラムはシステム起動時に初期データをＲＡＭ１０４にロードし、ＣＰＵ１０１に制御プログラムを実行させる。制御プログラムについては、フローチャートを参照して後述する。入力装置１０５はボタン、タッチパネル等であり、オペレータが各種の指示を行う。表示装置１０６は液晶ディスプレイ等である。ＲＡＭ１０４は読み書き可能なランダムアクセスメモリであって、各構成要素からの各種データの一次記憶に用いる。処理に必要なデータを記憶するバッファ、表示に必要なデータを一時記憶するバッファ、属性のスコアを算出保持する属性評価テーブル又は現在有効なシナリオを識別するための変数である現シナリオＩＤ等の処理中に値変更が行われる各種データが格納される。通信装置１０７はネットワークコントローラである。通信回線を介して外部とのデータ交換を行う装置である。ＨＤＤ１０８はハードディスクであり、ＣＰＵ１０１により実行される制御プログラム等が格納される。必要に応じてＲＡＭ１０４に示す主記憶にロードされ実行される。ＨＤＤ１０８には、本検索装置で管理する文書データベース、属性テーブル、シナリオ樹（後述の第１の集合）とシナリオ片（後述の第２の集合）の集合（シナリオ集合）とからなるシナリオ全体、選択属性履歴テーブル等が格納される。スキャナ１０９はスキャナである。
【００１１】
かかる各構成要素からなる本発明に係る検索装置は、入力装置１０５等からの各種イベントに応じて作動するものである。入力装置１０５等からのインタラプトが供給されると信号がＣＰＵ１０１に送られ、それに伴ってイベントが発生し、イベントに応じてＣＰＵ１０１がＲＯＭ１０３またはＲＡＭ１０４内に記憶される各種命令を読み出し、その実行によって各種の制御が行われる。
【００１２】
次に図２を参照して、本発明に係る検索画面の推移の例について説明する。画面はタッチパネルになっており、画面にタッチすることで各操作に対応したアクションをとることができる。図２（ａ）は検索指示前の画面を示している。検索指示画面２１は、検索指示を行う際に表示される画面の例である。
【００１３】
エリア２１１は、検索属性の候補一覧を表示するエリアである。最も推奨度の高い検索属性は一番左側（例では「操作者」）に表示される。それ以外の検索属性のリスト（操作日、操作機、等）はその右側に表示される。画面内に表示しきれていない検索属性は、左右の三角のボタンにタッチして左右にスクロールさせることで表示することができる。数多くの検索属性が存在するため、表示される順序が頻繁に変わるとユーザが探し難くなると考えられるので、最左以外の検索属性の順序は固定としておくのが望ましい。初期状態では最も推奨度の高い検索属性（最左の検索属性、例では「操作者」）が自動的に推奨表示され、それに対応する検索属性値の候補一覧（例では順に、「小林、阿部、渡辺、工藤、青木、市川」）が表示されている。検索属性候補一覧から好みの検索属性を探し出し画面をタッチして選択することにより、選択された検索属性に対応する値の候補一覧を表示させることができる。
【００１４】
エリア２１２は、値の一覧を表示するエリアである。現在選択されている検索属性（初期状態では最左の属性：「操作者」）に対応した値の候補が表示される。値は、検索属性のタイプに応じた順序でソートされて表示される。ソート順は、例えば、推奨度順、あいうえお順、数値順（日付など）が考えられる。エリア２１３は、検索結果の一覧を表示するエリアである。ボタン２１４は、「属性スキップ」を指示するボタンである。「属性スキップ」とは現在推奨されている検索属性では選択し難いとユーザが感じた時に行う操作であり、次に推奨される検索属性に切り替える操作である。例えば、次の推奨が「操作日」であった場合、「属性スキップ」をタッチすることで、エリア２１１の検索属性候補一覧の「操作日」をタッチした場合と同じ画面に遷移する。なお、エリア２１１の検索属性候補が「操作者」である場合に、エリア２１２の値の候補の一つである「渡辺」にタッチすると検索を指示することになり、図２（ｂ）に示すような画面になる。そして、検索結果の一覧を表示するエリアであるエリア２２３に検索結果が表示される。この場合は、検索属性：「操作者」、値：「渡辺」が選択されたことになり、「操作者＝渡辺」に対応した検索結果が表示される。なお、検索結果の表示に連動して、次回検索の検索属性の候補がエリア２２１に表示される。この場合、検索属性：「操作種類」の推奨度が最も高くなったとして最左に表示され、エリア２２２には「操作種類」に対応する値候補の一覧が表示される。ここで更に、値（例では順に、「コピー、印刷、ＳＥＮＤ、スキャン、撮影」）の一つをタッチすると絞込検索が実行され、検索結果が表示されると共にその次に推奨される検索属性及び値の候補が表示される。同様に、ボタン２２４の「属性スキップ」をタッチすると、この時点で次に推奨される検索属性が表示される。
【００１５】
図３を参照して、属性推奨の操作例について説明する。図３（ａ）は、ユーザが選択し難い検索属性推奨の例を示している。第１操作３０１、第２操作３０２、第３操作３０３のそれぞれで推奨される検索属性（操作者、会議場所、縦書き／横書き）間には関連性が全くない。このような推奨では、検索属性による質問の意図が理解できず、選択に際してユーザが当惑してしまうと予想される。図３（ｂ）はシナリオに沿った検索属性推奨の例を示している。第１操作３０１、第２操作３０２、第３操作３０３で推奨される検索属性（操作者、操作種類、操作機）同士には一貫したストーリ（操作系のシナリオ：その文書を機械で処理した状況の記述）がある。シナリオ化されているとユーザは、どのような状況を念頭に質問されているかが理解できるので、図３（ａ）の場合よりも安心して選択操作を行うことができる。図３（ｃ）はシステムの推奨に反した検索属性をユーザが選択した操作の例である。第１操作３０１では検索属性「作成者」が推奨され、そのまま選択している。第２操作３０２では検索属性「作成部署」が推奨されたにもかかわらず、ユーザは検索属性「操作機」を選択した。この操作によって、検索属性「作成部署」はそのユーザにとって選択し難い検索属性であったと解釈される。図３（ｄ）は、図３（ｃ）の操作を行った後の検索属性推奨の例である。第１操作３０１で「作成者」が推奨されるのは図３（ｃ）と同じだが、第２操作３０２では「操作機」が推奨される。「作成部署」ではなく図３（ｃ）で実際に選択された検索属性「操作機」が推奨されている。
【００１６】
図４を参照して、本発明に係るシナリオ集合の構成について説明する。シナリオ集合は、相互に関連する検索属性を保持するためのシナリオ全体を構成するデータ構造の一つで、シナリオを表現するためのものであり、関連する検索属性同士をグループ化したシナリオ片の集合である。ここで、シナリオ片とは相互に関連する検索属性から構成される第２の集合である。シナリオ片の一つ一つはシナリオＩＤで特定される。図４（ａ）は、シナリオ集合の構造を示す。シナリオＩＤで特定される１つのシナリオ片はいくつかの検索属性から構成される。ブロック４１１には、検索属性の個数が格納され、その後に個数分の検索属性が続いて格納される。一つの検索属性は、属性ＩＤ４１２と度数４１３とから構成される。属性ＩＤ４１２は、各検索属性を特定するための識別子である。度数４１３は、その検索属性の使用回数であり、シナリオＩＤが示すシナリオ片の状況の中でユーザに選択され、使用された度数（回数）を示す。同じシナリオＩＤの中では、各検索属性は度数順にソートされて格納され、度数順に取り出される。図４（ｂ）はシナリオ集合の例を示している。シナリオ片４２１は、シナリオＩＤ＝１に相当するシナリオ（操作系シナリオ）が操作者、操作日、操作機、操作種類の４つの相互に関連する検索属性から構成されることを示している。同様にシナリオ片４２２は内容系のシナリオ、シナリオ片４２３は配布系のシナリオ、そして、シナリオ片４２４はレイアウト系のシナリオを示している。
【００１７】
図５を参照して、本発明に係るシナリオ樹の構成について説明する。シナリオ樹とは、相互に関連する検索属性と、当該検索属性を次回の検索の際に推奨すべき順序を示す情報とから構成される第１の集合である。シナリオ樹（第１の集合）は、相互に関連する検索属性を保持するためのシナリオ全体を構成するデータ構造の一つであり、シナリオを表現するためのものである。シナリオ樹（第１の集合）の表現するシナリオは、シナリオ集合（第２の集合）とは異なり、シナリオＩＤで特定されない。シナリオ樹は、検索属性の順序情報、頻度情報を、検索属性が選択されてきた経路（検索属性の選択履歴）に応じて記述するものである。このデータ構造を修正することにより、シナリオ生成（新規シナリオの生成、既存シナリオ中への検索属性の追加）することが可能である。
【００１８】
図５（ａ）はシナリオ樹を構成する各ノードの構造を示している。シナリオ樹は、一般にｎ進木であり１つのノードが複数の子ノードを持つが、二進木に変換されて実装される。すなわち、子リンク５１４には長男ノードへのリンクのみを保持し、次男ノード以下には長男ノードの保持する弟リンク５１３を辿ることによって到達する。属性ＩＤ５１１には、各検索属性を特定するための識別子である検索属性ＩＤが格納される。度数５１２には、シナリオ樹）上の各ノードの使用度数（シナリオ樹のノードの示す状況の中でノードがユーザに選択され、使用された回数）が格納される。子ノードは、この度数に従ってソートされる。すなわち、長男ノードとは子ノードの中で最高度数のノードであり、次に度数が高いのは次男ノードになる。弟リンク５１３には、シナリオ樹上で弟ノードへのリンクが格納される。子リンク５１４には、長男ノードへのリンクが格納される。現属性位置５１５は、シナリオ樹上で現在処理中のノードを示すポインタである。
【００１９】
図５（ｂ）はこのように作成されたシナリオ樹の例である。例えば、ルート５２１の子ノードは操作者５３１、作成者５３２、用紙サイズ５３３であり、長男ノードは操作者５３１である。操作者５３１の子ノードは操作日５４１、操作機５４２、操作種類５４３であり、長男ノードは操作日５４１である。この例では現属性位置５１５はノード「操作種類」をポイントしている。このシナリオ樹によって、ユーザの操作履歴に応じたシナリオ補正が可能となり、ユーザに適合したシナリオのカスタマイズが可能となる。
図６を参照して、絞込み検索開始からのユーザが実際に選択した検索属性の履歴を記録したテーブルである選択属性履歴テーブルの構成について説明する。
【００２０】
図６（ａ）は、選択属性履歴テーブルの構造を示している。属性数６１１には、格納されている属性数が保持される。属性ＩＤ６１２には、各検索属性の属性ＩＤが格納される。現属性位置６１３には、選択属性履歴テーブル上で現在処理中の検索属性へのポインタが保持される。図６（ｂ）は選択属性履歴テーブルの例である。
【００２１】
図６（ｂ−１）は前回の絞込み検索操作系列において選択された検索属性の履歴を示している。図６（ｂ−２）はその前回の一連の操作が終了した直後の選択属性履歴テーブルの状態を示した図である。前回の操作系列が選択属性履歴テーブルに作成されている。図６（ｂ−３）は今回の絞込み検索操作において選択された検索属性の系列を示している。第１操作、第２操作は前回と同様であるが、第３操作が「操作機」に変化している。図６（ｂ−４）は、今回操作のＴ６５１時点（「操作種類」選択直後）での選択属性履歴テーブルの状態である。前回とテーブルの中身は変わっておらず、現属性位置６１３が「操作種類」をポイントしている。図６（ｂ−５）は、今回操作のＴ６５２時点（「操作機」選択直後）での選択属性履歴テーブルの内容である。第３操作の内容が「操作機」に変わり、現属性位置６１３が「操作機」をポイントする。テーブルは操作機で終端し、次の検索属性が消えていることが分かる。これは、選択属性履歴テーブルから次に推奨すべき検索属性が無くなってしまったことを反映している。
【００２２】
図７を参照して、本発明において文書を管理する情報である文書データベースと、検索属性の特性と状態を記録するテーブルである検索属性テーブルの構成を説明する。
【００２３】
図７（ａ）は文書データベースの構成の例を示した図である。文書ＩＤ７１１は、文書ＩＤのフィールドであり、該当文書を特定するための識別情報を格納する。検索属性７１２は「操作者」、検索属性７１３は「操作日」、検索属性７１４は「操作機」、及び、検索属性７１５は「操作種類」の各フィールドであり、文書ＩＤ７１１が示す各文書の各検索属性に対応する属性値が格納される。各記録内容から、文書内容７１６を格納するエリアをポイントする。
【００２４】
図７（ｂ）は、検索属性を管理する検索属性テーブルの構成を示した図である。属性ＩＤ７２１には、検索属性を特定する識別情報が格納される。属性表記７２２には、各検索属性を検索メニュー等に表示する際の表記内容が格納される。拒絶フラグ７２３には、各検索属性が一連の絞込み検索操作内で拒絶されたか否かについての情報が保持される。拒絶とは、推奨された検索属性ではない検索属性をユーザが選択したしたことを示す。推奨された検索属性が選択されなかった場合、その検索属性は拒絶属性となる。絞込み検索開始の初期化処理でＯＦＦ状態にクリアされるが、拒絶操作が行われると該当する検索属性のフラグがＯＮにセットされる。
【００２５】
図８（ａ）を参照して、本発明に係る検索属性の絞込み効果を測るスコアを算出するためのテーブルである、スコア属性評価テーブルの構成について説明する。新しい検索属性を推奨する前に各検索属性のスコアを算出する。属性評価テーブルは、いくつかの属性評価８０１から構成される（図では、属性評価１から属性評価ｍ；ｍは自然数）。そして、各属性評価は属性ＩＤ８０２、一連の属性値８０３（属性値１から属性値ｎ；ｎは自然数）、及びスコア８０６から構成される。属性ＩＤ８０２は、その検索属性を識別する情報を示す。各属性値８０３は、値８０４と検索ヒット率８０５とから構成される。値８０４は、指定文書集合内で属性ＩＤ８０２の値として実際に出現するものが使用される。検索ヒット率８０５には、検索対象の文書集合内で「検索属性＝値」を充たす文書の割合を格納する。最後のスコア８０６は、検索属性スコアであり、以下の算出式により求められる。
【００２６】
【数１】
2011138223.tif 000003
【００２７】
ここで、ｈｋは各属性値８０３（属性値１、属性値２、…、属性値ｋ、…、属性値ｎ；ｋ、ｎは自然数）のうち、ｋ番目の属性値の検索ヒット率８０５を、またＳは属性のスコア８０６の値を表している。検索ヒット率とは、検索対象となる検索属性と値との組み合わせの集合全体に占める、任意の検索属性と値との組み合わせの割合である。式（１）は、ある検索属性内の各値による検索ヒット率８０５に対して、その二乗平均をスコア８０６としている。これは統計学でいう分散に相当するものである。分散は、一般に二乗平均から平均の二乗を減じて算出されるものであるが、平均が概ね等しいと見なして、二乗平均を指標として用いている。Ｓの値が大きいと、分布が偏在していることを示す。上述の動作を以下に示すフローチャートに従って説明する。
【００２８】
図８（ｂ）を参照して、本発明に係る検索装置の動作、より具体的にはマイクロプロセッサＣＰＵの処理手順を示すフローチャートについて説明する。ステップＳ８５１において、システムの初期化処理を実行し、各種パラメータの初期化や初期画面の表示等を行う処理を実行する。ステップＳ８５２において、画面上へのタッチ等の入力装置からの何らかのイベントが発生するのをＣＰＵ１０１において待機する処理を行う。そしてイベントが発生すると、ステップＳ８５３において、ＣＰＵ１０１がこのイベントの種類を判別し、イベントの種類に応じて各種の処理に分岐する。各種イベントに対応した分岐先の複数の処理をステップＳ８５４において各種イベント対応処理として、まとめて表現している。図９において後述する絞込み検索処理は、ステップＳ８５４における分岐先の複数の処理の一つとなる。
【００２９】
他の処理としては、詳細は記述されないが、文書登録処理、印刷処理、文書データ管理処理などの処理がある。ステップＳ８５５において、上記の各処理の処理結果や処理終了を通知し、画面を各処理の指示に従って表示する処理を実行する。エラーがあった場合のエラー表示、正常な処理が行われた場合に設定されている表示データの画面表示への反映など通常広く行われる処理が実行される。
【００３０】
図９を参照して、図８のステップＳ８５４の各種イベント対応処理の一つである絞込み検索処理について説明する。ステップＳ９０１において、初期設定が必要な変数、テーブルを初期化する。例えば、現在有効なシナリオ片を識別するための変数である現シナリオＩＤは、無効値にリセットされる。属性テーブルに記録される拒絶フラグはこの時点で、すべてＯＦＦにリセットされる。ステップＳ９０２において、図１０で詳述するように、次回検索に推奨すべき検索属性を決定する検索属性推奨処理を行う。ステップＳ９０３において、現在選択されている検索属性に対応する値の候補一覧を作成する。検索属性の種類に応じて値を推奨度順、あいうえお順、数値順などにソートし列挙する。ステップＳ９０４において、検索属性と値の一覧を画面上に表示し、ユーザにより次の操作が行われるまで待機する。ステップＳ９０５において、ＣＰＵ１０１はユーザ操作を解析し、値が選択されたかどうか判定する。値の選択操作でない場合（例えば、画面遷移に関する操作、属性選択に関する操作など）は（ステップＳ９０５；ＮＯ）、ステップＳ９０６に分岐して画面遷移処理を行い、その後ステップＳ９０３にループする。なお、ステップ９０６の画面遷移処理は、検索属性スキップ処理も含んでいる。検索属性スキップ処理の場合は、図１０の検索属性推奨処理と同様の処理を行い、次に推奨すべき検索属性を決定することになる。ステップＳ９０５において、値の選択操作であった場合（ステップＳ９０５；ＹＥＳ）はステップＳ９０７に進み、選択された検索属性及び値に従って検索クエリを発行して検索を実行する。ステップＳ９０８において、図１１で詳述するように、推奨されていた検索属性がユーザによって拒絶された場合に、拒絶されたことを記録する拒絶属性記録処理を行う。ステップＳ９０９において、図１１で詳述するように、検索属性の選択履歴を記録するテーブルである選択属性履歴テーブルに今回の選択操作を反映させる選択属性履歴更新処理を行う。ステップＳ９１０において、図１２で詳述するように、今回の検索属性選択をシナリオ記述に反映するシナリオ更新処理を行う。ステップＳ９１１において、実行された検索の検索結果を画面に出力する。ステップＳ９１２において、一連の絞込み検索の操作が終了しているかどうか判定し、終了していない場合（ステップＳ９１２；ＮＯ）はステップＳ９０２にループし、終了している場合（ステップＳ９１２；ＹＥＳ）は、リターンする。
【００３１】
図１０を参照して、図９のステップＳ９０２の検索属性推奨処理を詳細化したフローチャートについて説明する。検索属性推奨処理は、次回の検索に推奨すべき検索属性を決定する処理である。ステップＳ１００１において、選択属性履歴テーブルから次回の検索属性を取得できるか否かを判定する。判定は履歴上で現属性位置の次の位置に検索属性が存在するか否かにより行う。検索属性を取得できる時はステップＳ１００２に分岐し、次回の検索属性を取得し、ステップＳ１００９に進む。一方、検索属性を取得できない時はステップＳ１００３に進む。ステップＳ１００３において、第１取得手段として機能するＣＰＵ１０１はシナリオ樹から次回の検索属性を取得する。具体的にはシナリオ樹（第１の集合）から、前回の検索時に選択された検索属性の次の順序に対応する検索属性のうち過去に選択された検索属性の回数（度数）が多い順に、次回の検索の際に推奨すべき検索属性を推奨属性として取得する。すなわち、シナリオ樹上で現属性位置ノードの子ノードの検索属性を度数順に取得する。最初は長男ノードを取得し、２回目以降は弟リンクを辿って取得することになる。ステップＳ１００４において、子ノードが取得できたか否かを判定し、取得できた時はステップＳ１００９に進む。子ノードが取得できない時はステップＳ１００５に進む。ステップＳ１００５において、現シナリオＩＤに有効値が設定されているか否かを判定する。無効である場合（ステップＳ１００５；ＮＯ）はステップＳ１００７に分岐する。有効である場合（ステップＳ１００５；ＹＥＳ）はステップＳ１００６に進む。ステップＳ１００６において、現シナリオＩＤが示すシナリオ片にまだ選択されていない検索属性があるか否かを判定する。その結果、存在しない場合はステップＳ１００７に分岐する。一方、存在する場合はステップＳ１００８に進む。ステップＳ１００８において、第２取得手段として機能するＣＰＵ１０１は現シナリオＩＤが示すシナリオ片（第２の集合）中の未選択の検索属性を度数順に取得する。１回目は最高度数の検索属性を取得し、２回目以降は順次次度数の検索属性を取得することになる。また、現シナリオＩＤが示すシナリオ片中の未選択の検索属性を度数順ではなく、任意の検索属性を取得する構成としても良い。なお、この処理の他の実施形態として、単純に度数順に取得せず、検索結果の分布状況を加味した順に取得しても良い。その際は、図１３（ｂ）に示す後述の属性スコア算出処理をこの段階で呼び出して各検索属性のスコアを求めて度数情報に適切な重みを加えて評価し、評価値の高い順に検索属性を取得することになる。これにより絞込み効率のより高い検索属性を優先的にユーザに提示できるという効果が得られる。ステップＳ１００９において、取得した検索属性の拒絶フラグがＯＮか否か、属性テーブルを参照して判断する。拒絶フラグがＯＮの時はステップＳ１００３にループし、１回目に推奨された検索属性以外（拒絶属性以外）の次度数の子ノードを取得して同様の処理を行う。拒絶フラグがＯＦＦの時はステップＳ１０１０に進む。ステップＳ１０１０において、図１３（ｂ）で詳述するように、検索属性のスコアを算出する。ステップＳ１０１１において、検索属性のスコアから検索結果が偏在しているか否かを判定する。偏在しているか否かは、式（１）に示す検索属性のスコアが所定の閾値を超えているか否かで判断する。偏在していない場合は、ステップＳ１０１２に進む。一方、偏在していると判断される場合はステップＳ１００３にループし、次度数の子ノードを取得して同様の処理を行う。ステップＳ１０１２において、取得された検索属性を推奨属性として決定し、リターンする。ステップＳ１００５において現シナリオＩＤが有効の場合、ステップＳ１００６において現シナリオに未選択属性が存在しない場合は、ステップＳ１００７に分岐する。そして図１３（ａ）で詳述する、分布による検索属性推奨処理を行い、リターンする。このように検索結果の偏在をチェックし、偏在している場合別の検索属性を推奨する処理をすることによって、ユーザは無駄な絞込み検索操作を行う手間を削減でき、検索操作性の向上につながるという効果がある。また、拒絶属性のチェックを行い、拒絶属性は推奨しないように制御することによって、ユーザの選びにくい検索属性を排除することができるので、同様に検索操作性の向上という効果がある。
【００３２】
図１１を参照して、図９のステップＳ９０８の拒絶属性記録処理とステップＳ９０９の選択属性履歴更新処理とを詳細化したフローチャートについて説明する。
【００３３】
図１１（ａ）は拒絶属性記録処理である。ユーザがシステムの推奨属性を無視して別の検索属性を選択した場合に、推奨属性が拒絶されたとみなして、拒絶された事実を記録する処理である。ステップＳ１１０１において、今回選択された検索属性がシステムの推奨属性であるか否かを判定する。推奨属性が選択された場合（ステップＳ１１０１；ＹＥＳ）はそのままリターンする。一方、推奨された検索属性以外の検索属性が選択された場合（ステップＳ１１０１；ＮＯ）は、ステップＳ１１０２に進み、推奨された属性に対応する属性テーブル内の拒絶フラグをＯＮに設定し、リターンする。
【００３４】
図１１（ｂ）は選択属性履歴更新処理であり、検索属性が選択された履歴を記録するテーブルである選択属性履歴テーブルに、今回の検索属性選択操作の結果を反映させる処理である。ステップＳ１１５１において、今回ユーザが選択した検索属性が、選択属性履歴テーブルの次の検索属性（現属性位置＋１の位置の検索属性）と一致しているか否かを判定する。一致している場合はステップＳ１１５２に進み、一致しない場合はステップＳ１１５３に進む。ステップＳ１１５２において、選択属性履歴テーブルの現属性位置を次の属性位置に進め（すなわち、＋１する）、リターンする。一方、ステップＳ１１５３において、今回選択した検索属性を、選択属性履歴テーブルの次の属性位置（すなわち、現属性位置＋１の位置）に追加する。ステップＳ１１５４において、現属性位置を次の属性位置に歩進する（すなわち、＋１する）。ステップＳ１１５５において、現属性位置より右側（＋側）の検索属性を選択属性履歴テーブル上から削除し、リターンする。
【００３５】
図１２を参照して、図９のステップＳ９１０のシナリオ更新処理を詳細化したフローチャートについて説明する。シナリオ更新処理とは、選択された検索属性がシナリオから外れている場合に、適切なシナリオに変更する処理、及び、今回の検索属性選択をシナリオ記述に反映する処理である。ステップＳ１２０１において現シナリオＩＤが有効か否かを判定する。有効であればステップＳ１２０５にスキップし、有効でなければ、ステップＳ１２０２において、適合するシナリオ片をサーチする。具体的には、例えば、選択属性履歴テーブル内で現属性位置までに記述されている検索属性群を部分集合として含むシナリオ片があるか否か、シナリオ集合を探索する。また、現属性位置の検索属性のみを含むシナリオ片を探索する構成でも良い。ステップＳ１２０３において、シナリオ片が見つかったか否かを判定する。見つからなかった場合はステップＳ１２０８に分岐する。一方、見つかった場合はステップＳ１２０４に進み、第２の集合を更新する第２更新手段として機能するＣＰＵ１０１は、見つかったシナリオ片のシナリオＩＤを現シナリオＩＤとして設定し、ステップＳ１２０５に進む。なお、第２の集合のうち、現在検索属性を取得する対象として使用されている集合の情報は現シナリオ保持手段として機能するＲＡＭ１０４等の記憶装置に保持される。ステップＳ１２０５において、今回選択された検索属性が現シナリオＩＤの示すシナリオ片に存在するか否かを判定する。存在すればステップＳ１２０６に進み、存在しなければステップＳ１２０８に分岐する。ステップＳ１２０６において、現シナリオにある選択属性の度数をカウントアップする。ステップＳ１２０７において、現シナリオＩＤの示すシナリオ片内の検索属性を度数順にソートし、ステップＳ１２０９に進む。一方、ステップＳ１２０３においてシナリオ片が見つからなかった場合、及びステップＳ１２０５において選択属性が現シナリオに存在しなかった場合、ステップＳ１２０８に分岐し、現シナリオＩＤをクリアして無効化し、ステップＳ１２０９に進む。ステップＳ１２０９において、選択属性がシナリオ樹上で、現属性位置の子ノードとして既に登録されているか否かを判定する。登録済である場合はステップＳ１２１０に進み、登録されていない場合はステップＳ１２１２に進む。ステップＳ１２１０において、第１の集合の順序を更新する第１更新手段として機能するＣＰＵ１０１はシナリオ樹上の選択属性の度数をカウントアップする。そしてステップＳ１２１１において、度数に従って子ノードをソートし、子リンク、弟リンクの再設定を行う。その後にステップＳ１２１３に進む。一方、ステップＳ１２１２においては、第１の集合の順序を更新する第１更新手段として機能するＣＰＵ１０１は選択属性のノードをシナリオ樹上の現属性位置の子ノードとして第１の集合で定められている順序の最後尾に初期度数で追加する。そして、追加した後ステップＳ１２１３に進む。ステップＳ１２１３において、シナリオ樹上の現属性位置を選択属性の位置に進める。ステップＳ１２１４において、シナリオ樹上に不要ノードがあれば削除し、ガーベージコレクションする。不要と認定する基準としては、各ノードに寿命情報を持たせ、その寿命が尽きたノードを不要とする等が考えられる。
【００３６】
このようにシナリオ更新処理を行う第１番目の効果は、シナリオ片から外れた属性選択をユーザが行った場合に、ユーザ操作に適合した別のシナリオ片が設定されるという点である。第２番目の効果は、適合するシナリオ片が存在しない場合に、シナリオ樹に新たなノードが追加されて、検索属性を追加した新たなシナリオが生成されるという点である。第３番目の効果は、既存のシナリオが記述している検索属性の推奨順序がユーザの希望と異なる場合に、順序が補整されたシナリオが得られるという点である。
【００３７】
このように、選択操作だけでユーザ操作に適合したシナリオの構築が容易となるので、検索操作性の向上という効果がある。
【００３８】
図１３（ａ）を参照して、図１０のステップＳ１００７の分布による検索属性推奨処理を詳細化したフローチャートについて説明する。ステップＳ１３０１において、初期設定処理を行い、絞込み検索の対象文書集合を特定する。ステップＳ１３０２において、属性テーブルから検索属性の候補を抽出する。ステップＳ１３０３において、抽出された検索属性候補から検索属性を１つ取得する。ステップＳ１３０４において、図１３（ｂ）で後述するように、検索属性のスコアを算出する。ステップＳ１３０５において、全ての検索属性候補について処理を終了したか否かを判定し、処理を終了していなければステップＳ１３０６に分岐し、次の検索属性を取得してステップＳ１３０３にループする。ステップＳ１３０５において、全ての検索属性候補について処理が終了していれば、ステップＳ１３０７に進み、スコア順に検索属性をソートする。ステップＳ１３０８において、最も優先すべき検索属性を推奨属性として抽出し、リターンする。
【００３９】
図１３（ｂ）を参照して、図１０のステップＳ１０１０、及び図１３のステップＳ１３０４の属性スコア算出処理を詳細化したフローチャートについて説明する。ステップＳ１３５１において、必要な変数を初期設定する。ステップＳ１３５２において、指定文書集合において指定属性の値として出現するものを属性値候補としてリストアップする。ステップＳ１３５３において、属性値候補の中から属性値を一つ任意に取り出す。ステップＳ１３５４において、指定文書集合内で「検索属性＝属性値」となる件数を求め、検索ヒット率を算出する。ステップＳ１３５５において、算出された属性値とヒット率とを属性評価テーブル内の然るべきフィールドに設定する。ステップＳ１３５６において、全ての属性値候補を処理し終えたか否かを確認する。未処理の値がある場合はステップＳ１３５７において次の属性値を選択し、ステップＳ１３５３にループする。一方、ステップＳ１３５６において全ての値の処理が終了している場合は、ステップＳ１３５８に進む。ステップＳ１３５８において、この検索属性のスコアを式（１）に示した算出式に基づいて算出し、属性評価テーブルに格納し、リターンする。
【００４０】
（第２実施形態）
なお、本発明は上述の実施形態に限定されるのではなく、本発明の趣旨を逸脱しない限りにおいて適宜変更が可能である。
【００４１】
これまで述べた実施形態においては、検索操作開始にあたってユーザが明確に希望するシナリオを指定する操作がなかったが、ユーザがシナリオを明確に指定する構成にしても良い。例えば、検索操作の開始で、「内容系シナリオ」、「操作系シナリオ」、「レイアウト系シナリオ」等のシナリオ片を選択するメニューを表示し、ユーザに選択させるという操作が考えられる。そのような構成としても、シナリオの選択に関するそれ以降の処理は第１実施形態で示した処理と全く同様である。例えば、仮に検索操作の途中でシナリオ片から外れた検索属性をユーザが選択した場合には、自動的に適合するシナリオ片がサーチされシナリオ設定が変更される。このような構成にすることによって、ユーザが不適切なシナリオ片を選んでしまった場合でも、絞込み検索を遂行するうちに自動的に適切なシナリオに修正されていくので、検索操作性を向上させる効果が得られる。
【００４２】
また、これまで述べた実施形態においては、現シナリオＩＤが１つであるという前提で述べたが、複数のシナリオが該当するという場合も考えられる。例えば、２つのシナリオが共通の検索属性を含んでおり、検索開始からの属性選択操作では、たまたまその共通の検索属性しか選択しなかった場合である。このときは、図１２のステップＳ１２０３におけるシナリオ片を見つける処理において、複数のシナリオ片が見つかることになる。このような場合のために現シナリオＩＤは複数個記憶して処理することも可能である。その場合、ステップＳ１２０３において複数個の現シナリオＩＤを記憶することとなる。また、図１０のステップＳ１００８においては、該当する複数のシナリオ片から未選択の検索属性を全て抽出し、同様に頻度、分布情報などから評価値の高い検索属性を取得することとなる。また、図１０のステップＳ１００５、ステップＳ１００６、及び、図１２のステップＳ１２０５における現シナリオのチェック処理は、複数個のシナリオＩＤについてチェックする。そして、図１２のステップＳ１２０８のクリア処理は、選択属性が外れたシナリオＩＤのみをクリアすることとする。このように現シナリオＩＤを複数個持つことにより、検索属性が重複したシナリオ片が複数ある場合も考慮した処理が可能になり、シナリオ片を有効に利用できる。
【００４３】
また、第１実施形態においては、シナリオ片から外れた検索属性が選択された場合のシナリオ変更は、それまでの選択属性履歴に含まれる検索属性を部分集合として含むシナリオ片を探し、そのシナリオ片に変更する構成としていた。しかし、条件が厳格なために、該当する新たなシナリオ片が見つからないという事態が想定される。このような事態を避けるために、部分集合との完全一致を条件とするのではなく、一部の不一致を許容して、選択属性履歴との重複度が最も高いシナリオ片に変更するような構成としても良い。そのようにすることによって、既存シナリオ片の利用度が高くなり、推奨される検索属性の利用度も高くなって、検索操作性の向上につながるという効果が得られる。
【００４４】
また、第１実施形態では、推奨される検索属性は最も推奨度の高い１つだけが有効であり、次点以下の検索属性を同列に扱っていたが、推奨度順に検索属性の一覧を提示する構成とすることも考えられる。この場合、所望の検索属性が一覧のどこに存在するのかが判別し難くなるので、検索属性一覧をソートする機能も必要となる。このとき、図１０の検索属性推奨処理のステップＳ１０１１における「検索結果偏在チェック」で、偏在している場合は推奨度を所定値だけ落として評価して、推奨属性を決める処理とする。このように次推奨度以下の検索属性も推奨度順に一覧表示することにより、次推奨度以下の検索属性の利用が容易になるという効果がある。
【００４５】
また、第１実施形態ではシナリオ生成はシナリオ樹（第１の集合）への新規ノードの追加という構成のみを説明したが、シナリオ集合（第２の集合）のシナリオ片に検索属性を追加する処理を行っても良い。この場合、検索属性を追加すべきシナリオＩＤを特定する処理が困難となるが、選択属性履歴と構成要素が最もよく一致するシナリオ片のシナリオＩＤを見つけることになる。これにより、シナリオ生成を最小構成で実現でき、より安価な装置が可能になるという効果がある。
【００４６】
また、第１実施形態においては、検索対象を文書として説明しているが、いわゆる通常の文書以外のタイプのコンテンツ、例えば、写真、ビデオ等のメタデータを付与できるコンテンツであれば、全く同様に処理可能である。上記以外にも、本発明の趣旨を逸脱しない限りにおいて、構成を適宜変更することが可能である。
【００４７】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2011138223.tif 000004
【図２】
2011138223.tif 000005
【図３】
2011138223.tif 000006
【図４】
2011138223.tif 000007
【図５】
2011138223.tif 000008
【図６】
2011138223.tif 000009
【図７】
2011138223.tif 000010
【図８】
2011138223.tif 000011
【図９】
2011138223.tif 000012
【図１０】
2011138223.tif 000013
【図１１】
2011138223.tif 000014
【図１２】
2011138223.tif 000015
【図１３】
2011138223.tif 000016