(57)【要約】【課題】  少ない操作回数でより情報量の高い検索結果を得る。【解決手段】  本発明は、処理要求の引数の階層数と記憶されている階層数を比較して、引数の階層数の方が小さい場合には、データベースに存在する個々の検索条件を親メニュー項目としたメニュー項目群の情報の算出を行い、等しい場合には、親メニュー項目に該当するデータ数に対する個々の検索条件による子供のメニュー項目に該当するデータ数の割合が少ないほど、高い値を示すような情報量を算出して、同一のメニューの階層に存在する情報量の高い順に並び買え、情報量の高い上位のメニュー項目うち、所定の件数分だけ情報量の総和を当該メニューの親メニュー項目の情報量として算出する。【選択図】  図１
2005128916.tif 000002
【特許請求の範囲】
【請求項１】
各データに対して、任意の検索条件に該当する場合には１を、該当しない場合には０を記録する２値データから構成される多次元ベクトルで表現されるデータベースが存在し、検索条件をメニューとして提示し、選択された検索条件群を組み合わせて該データベースを検索し、検索結果を提示するメニュー検索システムにおける、メニュー提示方法において、
検索条件によるメニューの階層数を、該メニューを生成する前に予め階層数記憶手段に記憶させておき、
階層判定手段において、処理要求の生成対象のメニューの階層数と、予め前記階層数記憶手段に設定された前記階層数を比較し、該生成対象のメニューの階層数の方が小さい場合、下位階層にさらに検索条件によるメニューが存在すると判定し、両者が等しい場合に、該下位階層に検索条件によるメニューが存在しないと判定する過程と、
第１の情報量算出手段において、前記階層判定手段により前記下位階層にさらに検索条件によるメニューが存在すると判定された場合に、前記データベースに存在する個々の検索条件を親メニュー項目とした、メニュー項目群の情報量の算出を、再帰的に呼び出して、算出された情報量を、メニュー項目と情報量を記憶するメニュー記憶手段に格納する過程と、
第２の情報量算出手段において、前記階層判定手段により前記下位階層に検索条件によるメニューが存在しないと判定された場合に、親メニュー項目に該当するデータ数に対する、個々の検索条件による子供のメニュー項目に該当するデータ数の割合が少ないほど、高い値を示すような情報量を算出して、前記メニュー記憶手段に格納する過程と、
情報量算出制御手段において、前記メニュー記憶手段の同一のメニュー階層に存在するメニュー項目を、情報量が高い順番に並び替える過程と、
前記情報量算出制御手段において、前記メニュー記憶手段の同一のメニュー階層に存在する情報量の高い上位のメニュー項目のうち、ある一定の件数分だけ、情報量の総和した値を、当該メニュー階層の親メニュー項目の情報量として算出する過程と、
からなることを特徴とするメニュー提示方法。
【請求項２】
各データに対して、任意の検索条件に該当する場合には１を、該当しない場合には０を記録する２値データから構成される多次元ベクトルで表現されるデータベースが存在し、検索条件をメニューとして提示し、選択された検索条件群を組み合わせて該データベースを検索し、検索結果を提示するメニュー検索システムにおける、メニュー提示装置であって、
メニューを生成する前に予め検索条件によるメニューの階層数を記憶する階層数記憶手段と、
メニュー識別子と情報量を記憶するメニュー記憶手段と、
処理要求による生成対象のメニューの階層数と、予め前記階層数記憶手段に設定された前記階層数を比較し、該生成対象のメニューの階層数の方が小さい場合、下位階層にさらに検索条件によるメニューが存在すると判定し、両者が等しい場合に、該下位階層に検索条件によるメニューが存在しないと判定する階層判定手段と、
前記階層判定手段により、前記下位階層にさらに検索条件によるメニューが存在すると判定された場合に、前記データベースに存在する個々の検索条件を親メニュー項目とした、メニュー項目群の情報量の算出処理を再帰的に呼び出して算出し、算出された情報量を前記メニュー記憶手段に格納する第１の情報量算出手段と、
前記階層判定手段により、前記下位階層に検索条件によるメニューが存在しないと判定された場合に、親メニュー項目に該当するデータ数に対する、個々の検索条件による子供のメニュー項目に該当するデータ数の割合が少ないほど、高い値を示すような情報量を算出し、前記メニュー記憶手段に格納する第２の情報量算出手段と、
前記メニュー記憶手段の同一のメニュー階層に存在するメニュー項目を、情報量が高い順番に並び替え、同一のメニュー階層に存在する情報量の高い上位のメニュー項目のうち、ある一定の件数分だけ、情報量の総和した値を、当該メニュー階層の親メニュー項目の情報量として算出する情報量算出制御手段と、を有することを特徴とするメニュー提示装置。
【請求項３】
各データに対して、任意の検索条件に該当する場合には１を、該当しない場合には０を記録する２値データから構成される多次元ベクトルで表現されるデータベースが存在し、検索条件をメニューとして提示し、選択された検索条件群を組み合わせて該データベースを検索し、検索結果を提示するメニュー検索システムにおける、メニュー提示プログラムであって、
検索条件によるメニューの階層数を、該メニューを生成する前に予め階層数記憶手段に記憶しているコンピュータに対して、
処理要求による生成対象のメニューの階層数と、予め前記階層数記憶手段に設定された前記階層数を比較し、該生成対象のメニューの階層数の方が小さい場合、下位階層にさらに検索条件によるメニューが存在すると判定し、両者が等しい場合に、該下位階層に検索条件によるメニューが存在しないと判定するステップと、
前記下位階層にさらに検索条件によるメニューが存在すると判定された場合に、前記データベースに存在する個々の検索条件を親メニュー項目とした、メニュー項目群の情報量の算出処理を、再帰的に呼び出して、算出された情報量を、メニュー項目と情報量を記憶するメニュー記憶手段に格納するステップと、
前記下位階層に検索条件によるメニューが存在しないと判定された場合に、親メニュー項目に該当するデータ数に対する、個々の検索条件による子供のメニュー項目に該当するデータ数の割合が少ないほど、高い値を示すような情報量を算出して、前記メニュー記憶手段に格納するステップと、
前記メニュー記憶手段の同一のメニュー階層に存在するメニュー項目を、情報量が高い順番に並び替えるステップと、
前記メニュー記憶手段の同一のメニュー階層に存在する情報量の高い上位のメニュー項目のうち、ある一定の件数分だけ、情報量の総和した値を、当該メニュー階層の親メニュー項目の情報量として算出するステップと、
を実行させることを特徴とするメニュー提示プログラム。
【請求項４】
各データに対して、任意の検索条件に該当する場合には１を、該当しない場合には０を記録する２値データから構成される多次元ベクトルで表現されるデータベースが存在し、検索条件をメニューとして提示し、選択された検索条件群を組み合わせて該データベースを検索し、検索結果を提示するメニュー検索システムにおける、メニュー提示プログラムを格納したコンピュータ読み取り可能な記憶媒体であって、
検索条件によるメニューの階層数を、該メニューを生成する前に予め階層数記憶手段に記憶しているコンピュータに対して、
処理要求による生成対象のメニューの階層数と、予め前記階層数記憶手段に設定された前記階層数を比較し、該生成対象のメニューの階層数の方が小さい場合、下位階層にさらに検索条件によるメニューが存在すると判定し、両者が等しい場合に、該下位階層に検索条件によるメニューが存在しないと判定するステップと、
前記下位階層にさらに検索条件によるメニューが存在すると判定された場合に、前記データベースに存在する個々の検索条件を親メニュー項目とした、メニュー項目群の情報量の算出処理を、再帰的に呼び出して、算出された情報量を、メニュー項目と情報量を記憶するメニュー記憶手段に格納するステップと、
前記下位階層に検索条件によるメニューが存在しないと判定された場合に、親メニュー項目に該当するデータ数に対する、個々の検索条件による子供のメニュー項目に該当するデータ数の割合が少ないほど、高い値を示すような情報量を算出して、前記メニュー記憶手段に格納するステップと、
前記メニュー記憶手段の同一のメニュー階層に存在するメニュー項目を、情報量が高い順番に並び替えるステップと、
前記メニュー記憶手段の同一のメニュー階層に存在する情報量の高い上位のメニュー項目のうち、ある一定の件数分だけ、情報量の総和した値を、当該メニュー階層の親メニュー項目の情報量として算出するステップと、
を実行させるプログラムを格納したことを特徴とするメニュー提示プログラムを格納したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メニュー提示方法及び装置及びプログラム及びメニュー提示プログラムを格納したコンピュータ読み取り可能な記憶媒体に係り、特に、情報検索を効果的に行うためのメニュー提示方法及び装置及びプログラム及びメニュー提示プログラムを格納したコンピュータ読み取り可能な記憶媒体に関する。
【背景技術】
【０００２】
探す情報が大量にある場合、ユーザは一般的にキーワード検索やメニュー検索により対象を絞り、ブラウジングして情報を見つける。メニュー検索に関しては、検索を効果的にするための設計方法（例えば、非特許文献１参照）が検討されているが、一般的には、メニュー項目を数ページ提示し、ページの中から項目を選択して情報を見つけていく。例えば、グルメ案内の場合は、エリアや料理種別のメニューを人気のある順番に並べることで、平均的なユーザの要求を満たすように構成されている。
【０００３】
このように平均的なユーザの要求を満たすという傾向がある一方で、携帯インターネットの普及に伴って、情報を気軽に探すユーザ層が増加し、ユーザの個性を活かした情報や、他の検索サービスに比べて優位な情報が欲しいというように、情報検索のニーズが多様化している。ユーザの個性を活かした検索を行うためには、予め自分でキーワードを登録したり（例えば、非特許文献２参照）、登録した条件に適合したときにメールを送信してもらう（例えば、非特許文献３参照）などの方式がある。
【０００４】
しかし、これらの方式では、ユーザが情報内容に基づいて、事前にキーワード等の各種条件を登録する煩雑さが伴う。実サービスにおいては、ユーザ登録して、なおかつ付加情報を入力してくれるユーザは、全ユーザの極一部である。付加的な登録操作を必要としなくても、個性的な検索サービスを可能にする方法が必要である。
【０００５】
これに対して、数回のメニュー選択で、小さいディスプレイでも一覧できる件数に検索結果数を絞り込めるメニュー項目を、より多く提示する方法が提案されている（例えば、特許文献１参照）。具体的には、検索条件群から、設定した選択回数分の全組み合わせを生成し、小さいディスプレイでも一覧できる件数以下の検索結果をもたらす検索条件の組み合わせだけを抽出し、これらに含まれる検索条件のうち、下位階層で検索可能なデータ数が多い検索条件を優先的にメニューとして提示する。この方式では、絞り込まれた検索結果数という絶対的な値を基準にするため、少ない操作回数で、必ず小さいディスプレイでも一覧できる件数の検索結果を保証する。しかし、この方式では、単に定数以下の検索結果数に導くメニュー項目を、少ない操作回数でより多く提示するだけであり、どのような性質の検索結果が得られるかという検索結果の意味に関する検討がなされていない。
【特許文献１】特開２０００−３１１１７９号公報、宮本勝、増井信彦、大森信行、小澤英昭、鈴木健也、外村佳伸「データ検索支援方法及び装置及びデータ検索支援プログラムを格納した記憶媒体」
【非特許文献１】Shneiderman,B.(1986) Designing Menu Selection Systems, Journal of the American Society for Information Science and Technology, vol.37, No.2,pp.57-70.
【非特許文献２】http://my.yahoo.co.jp/
【非特許文献３】http://www.kakaku.com/
【発明の開示】
【発明が解決しようとする課題】
【０００６】
そこで、情報のユニークさを示す情報量という性質に着目し、少ない操作回数で、より情報量の高い検索結果を得られるメニュー提示方法を検討する。情報量は、任意の集合における珍しさ、あるいは、ユニークさの評価尺度である。
【０００７】
複数の検索条件をメニューによって選択させ、ＡＮＤ検索をさせるためには、検索条件によるメニューが複数階層に跨る。図１１は、レストランを複数の検索条件で絞り込むために、検索条件によるメニューを複数階層によって構成した例である。以下では、検索条件によるメニューのうち、下位階層にさらに検索条件が存在するメニュー項目をメニューノード、下位階層には検索条件が存在せず、検索結果が存在するメニュー項目をメニューリーフと呼ぶ。また、メニューリーフの下位階層のメニューを検索結果と呼ぶ。
【０００８】
メニューリーフの情報量は、シャノンの情報量「内山明彦、平澤茂一（１９９０）理工系のための計算機工学、昭晃堂」を応用すれば、算出可能である。例えば、レストランのデータベースに対して、「関内」(１００件)、「中華料理」(１０００件)という二つの検索条件を、メニュー選択により絞り込む場合を考える。ここで、「関内」∩「中華料理」は９０件とする。「関内」→「中華料理」の順番で選んだ場合は、「関内」のうち９０％と大部分が「中華料理」であり、珍しさを示す情報量として低い値を示す。この割合の対数をとった値の負の値が、シャノンの情報量であり、割合が低いほど、情報量は高くなる。
【０００９】
このメニューリーフの情報量は、検索条件の確定順番に影響される。前述の「関内」と「中華料理」の検索条件の組み合わせの場合、「中華料理」→「関内」の順番で選んだ場合は、「中華料理」うち９％が「関内」であり、前者よりは相対的に情報量が高くなる。同じ組み合わせでも、一部の確定順番による情報量を評価するだけでは不十分である。
【００１０】
また、メニューノードの情報量を下位階層のメニューリーフの情報量の総和とした場合、情報量が低いメニューリーフが大量に存在していても、その親であるメニューノードの情報量は高くなってしまう。このようなメニューノードが優先されて提示されると、情報量が低い検索結果も優先的に提示される可能性が高くなり、問題である。
【００１１】
本発明は、上記の点に鑑みなされたもので、少ない操作回数で、より情報量の高い検索結果を得るために、全ての確定順番の情報量を評価しつつ、情報量が低い大量のメニューのノイズを除去可能なメニュー提示方法及び装置及びプログラム及びメニュー提示プログラムを格納したコンピュータ読み取り可能な記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【００１２】
図１は、本発明の原理を説明するための図である。
【００１３】
本発明は、各データに対して、任意の検索条件に該当する場合には１を、該当しない場合には０を記録する２値データから構成される多次元ベクトルで表現されるデータベースが存在し、検索条件をメニューとして提示し、選択された検索条件群を組み合わせて該データベースを検索し、検索結果を提示するメニュー検索システムにおける、メニュー提示方法において、
検索条件によるメニューの階層数を、該メニューを生成する前に予め階層数記憶手段に記憶させておき（ステップ１）、
階層判定手段において、処理要求による生成対象のメニューの階層数と、予め階層数記憶手段に設定された階層数を比較し、該生成対象のメニューの階層数の方が小さい場合、下位階層にさらに検索条件によるメニューが存在すると判定し、両者が等しい場合に、該下位階層に検索条件によるメニューが存在しないと判定する過程と（ステップ２）、
第１の情報量算出手段において、階層判定手段により下位階層にさらに検索条件によるメニューが存在すると判定された場合に、データベースに存在する個々の検索条件を親メニュー項目とした、メニュー項目群の情報量の算出処理を、再帰的に呼び出して実行し、メニュー記憶手段に算出された情報量を格納する過程と（ステップ３）、
第２の情報量算出手段において、階層判定手段により下位階層に検索条件によるメニューが存在しないと判定された場合に、親メニュー項目に該当するデータ数に対する、個々の検索条件による子供のメニュー項目に該当するデータ数の割合が少ないほど、高い値を示すような情報量を算出して前記メニュー記憶手段に格納する過程と（ステップ４）、
情報量算出制御手段において、メニュー記憶手段の同一のメニュー階層に存在するメニュー項目を、情報量が高い順番に並び替える過程と（ステップ５）、
情報量算出制御手段において、メニュー記憶手段の同一のメニュー階層に存在する情報量の高い上位のメニュー項目のうち、ある一定の件数分だけ、情報量の総和した値を、当該メニュー階層の親メニュー項目の情報量として算出する過程と（ステップ６）、からなる。
【００１４】
図２は、本発明の原理構成図である。
【００１５】
本発明は、各データに対して、任意の検索条件に該当する場合には１を、該当しない場合には０を記録する２値データから構成される多次元ベクトルで表現されるデータベース１が存在し、検索条件をメニューとして提示し、選択された検索条件群を組み合わせて該データベースを検索し、検索結果を提示するメニュー検索システムにおける、メニュー提示装置であって、
メニューを生成する前に予め検索条件によるメニューの階層数を記憶する階層数記憶手段２１と、
メニュー項目と情報量を記憶するメニュー記憶手段と、
処理要求による生成対象のメニューの階層数と、予め階層数記憶手段２１に設定された階層数を比較し、該生成対象のメニューの階層数の方が小さい場合、下位階層にさらに検索条件によるメニューが存在すると判定し、両者が等しい場合に、該下位階層に検索条件によるメニューが存在しないと判定する階層判定手段２４と、
階層判定手段２４により、下位階層にさらに検索条件によるメニューが存在すると判定された場合に、前記データベースに存在する個々の検索条件を親メニュー項目とした、メニュー項目群の情報量を算出する処理を再帰的に呼び出して、算出された情報量をメニュー記憶手段３に格納する第１の情報量算出手段２６と、
階層判定手段２４により、下位階層に検索条件によるメニューが存在しないと判定された場合に、親メニュー項目に該当するデータ数に対する、個々の検索条件による子供のメニュー項目に該当するデータ数の割合が少ないほど、高い値を示すような情報量を算出し、メニュー記憶手段３に格納する第２の情報量算出手段２７と、
メニュー記憶手段３の同一のメニュー階層に存在するメニュー項目を、情報量が高い順番に並び替え、同一のメニュー階層に存在する情報量の高い上位のメニュー項目のうち、ある一定の件数分だけ、情報量の総和した値を、当該メニュー階層の親メニュー項目の情報量として算出する情報量算出制御手段２８と、を有する。
【００１６】
本発明は、各データに対して、任意の検索条件に該当する場合には１を、該当しない場合には０を記録する２値データから構成される多次元ベクトルで表現されるデータベースが存在し、検索条件をメニューとして提示し、選択された検索条件群を組み合わせて該データベースを検索し、検索結果を提示するメニュー検索システムにおける、メニュー提示プログラムであって、
検索条件によるメニューの階層数を、該メニューを生成する前に予め階層数記憶手段に記憶しているコンピュータに対して、
処理要求による生成対象のメニューの階層数と、予め階層数記憶手段に設定された階層数を比較し、該生成対象のメニューの階層数の方が小さい場合、下位階層にさらに検索条件によるメニューが存在すると判定し、両者が等しい場合に、該下位階層に検索条件によるメニューが存在しないと判定するステップと、
下位階層にさらに検索条件によるメニューが存在すると判定された場合に、データベースに存在する個々の検索条件を親メニュー項目とした、メニュー項目群の情報量の算出処理を、再帰的に呼び出して、算出された情報量をメニュー項目と情報量を記憶するメニュー記憶手段に格納するステップと、
下位階層に検索条件によるメニューが存在しないと判定された場合に、親メニュー項目に該当するデータ数に対する、個々の検索条件による子供のメニュー項目に該当するデータ数の割合が少ないほど、高い値を示すような情報量を算出してメニュー記憶手段に格納するステップと、
メニュー記憶手段の同一のメニュー階層に存在するメニュー項目を、情報量が高い順番に並び替えるステップと、
メニュー記憶手段の同一のメニュー階層に存在する情報量の高い上位のメニュー項目のうち、ある一定の件数分だけ、情報量の総和した値を、当該メニュー階層の親メニュー項目の情報量として算出するステップと、を実行させる。
【００１７】
本発明は、各データに対して、任意の検索条件に該当する場合には１を、該当しない場合には０を記録する２値データから構成される多次元ベクトルで表現されるデータベースが存在し、検索条件をメニューとして提示し、選択された検索条件群を組み合わせて該データベースを検索し、検索結果を提示するメニュー検索システムにおける、メニュー提示プログラムを格納したコンピュータ読み取り可能な記憶媒体であって、
検索条件によるメニューの階層数を、該メニューを生成する前に予め階層数記憶手段に記憶しているコンピュータに対して、
処理要求による生成対象のメニューの階層数と、予め階層数記憶手段に設定された階層数を比較し、該生成対象のメニューの階層数の方が小さい場合、下位階層にさらに検索条件によるメニューが存在すると判定し、両者が等しい場合に、該下位階層に検索条件によるメニューが存在しないと判定するステップと、
下位階層にさらに検索条件によるメニューが存在すると判定された場合に、データベースに存在する個々の検索条件を親メニュー項目とした、メニュー項目群の情報量の算出処理を、再帰的に呼び出して、算出された情報量を、メニュー項目と情報量を記憶するメニュー記憶手段に格納するステップと、
下位階層に検索条件によるメニューが存在しないと判定された場合に、親メニュー項目に該当するデータ数に対する、個々の検索条件による子供のメニュー項目に該当するデータ数の割合が少ないほど、高い値を示すような情報量を算出してメニュー記憶手段に格納するステップと、
メニュー記憶手段の同一のメニュー階層に存在するメニュー項目を、情報量が高い順番に並び替えるステップと、
メニュー記憶手段の同一のメニュー階層に存在する情報量の高い上位のメニュー項目のうち、ある一定の件数分だけ、情報量の総和した値を、当該メニュー階層の親メニュー項目の情報量として算出するステップと、を実行させるプログラムを格納する。
【発明の効果】
【００１８】
本発明によれば、少ない操作回数で、より情報量の高い検索結果を得るために、全ての確定順番の情報量を評価しつつ、情報量が低い大量のメニューのノイズを除去可能になる。
【００１９】
また、情報量が少ないメニューは、同時に検索結果数が多くなる。このため、情報量が低いメニューが優先的に提示される可能性がある場合、図３（ｂ）に示すように、検索結果を閲覧するためのスクロールが頻発する可能性がある。一方で、情報量が高いメニューは同時に、検索結果も少ない。このため、情報量が低い大量のノイズを除去し、情報量が高いメニューが優先的に表示されれば、図３（ａ）に示すように、情報量が高く、検索結果も少ない結果を得られる可能性が高くなる。携帯電話機のように、画面が小さい端末にとっては、一度に提示できるデータ数も減少するため、情報量が高く、検索結果数が少ないことは効果的である。
【発明を実施するための最良の形態】
【００２０】
以下、図面と共に本発明の実施の形態を説明する。
【００２１】
図４は、本発明の一実施の形態におけるメニュー提示システムの構成を示す。同図に示すシステムは、少ない操作回数で、より情報量の高い検索結果を得るために、全ての確定順番の情報量を評価しつつ、情報量が低い大量のメニューのノイズを除去可能な構成を示す。
【００２２】
同図に示すシステムは、データベース１、メニュー生成部２、メニュー記憶部３、入出力部４、入力デバイス５から構成される。
【００２３】
データベース１は、各データに対して、任意の検索条件に該当する場合は「１」を、該当しない場合は「０」を記録する２値データから構成される多次元ベクトルで表現される。図５に、レストランのデータベースの例を示す。レストランに対して、中華料理、イタリアンといった料理種別の検索条件や、夜景がきれいなお店などの特徴を示す検索条件に対して、該当するか否かの２値データが付与されている。後述するメニュー生成部２の処理スタック２３、検索受験リスト記憶部２５、メニューリーフの情報量算出部２７から参照要求を受信すると、対応するデータを返す。
【００２４】
メニュー生成部２は、階層数記憶部２１、情報量加算範囲記憶部２２、処理スタック２３、階層判定部２４、検索条件リスト記憶部２５、メニューノードの情報量算出部２６、メニューリーフの情報量算出部２７、親メニューノード情報量算出部２８、処理起動部２９から構成される。
【００２５】
階層数記憶部２１は、ディスク装置等の記憶媒体であり、検索条件によるメニューの階層数を、メニューを生成する前に、予め設定し、記憶しておく。図１１の例では、階層数＝２と記録されていることとなる。階層判定部２４から参照要求を受信すると、階層数の値を返す。
【００２６】
情報量加算範囲記憶部２２は、ディスク装置等の記憶媒体であり、メニューノードの情報量を算出する上で、下位階層のメニュー項目のうち、情報量が上位のメニュー項目の何件目までの総和を算出かという情報量加算範囲に対応する件数を、メニューを生成する前に、予め設定し、記憶しておく。親メニューノード情報量算出部２８から、参照要求を受信すると、情報量加算範囲に対応する件数を返す。
【００２７】
処理スタック記憶部２３は、ディスク装置等の記憶媒体であり、再帰的にメニュー生成処理を行うために、再帰的に呼び出される処理に関する情報を、後入れ先出し法によるデータ構造によって記録する。処理に関する情報は、図６に示すように、少なくとも、親メニュー識別子、階層数、親メニュー項目、親メニューのデータ数から構成される。
【００２８】
処理スタック記憶部２３は、ディスク装置等の記憶媒体であり、処理起動部２９から処理開始要求を受け取ると、初期値として親メニュー識別子＝０、階層数＝１のレコードを、親メニュー項目＝ＮＵＬＬ，親メニューのデータ数＝全データ数、を挿入し、これらを引数として階層判定部２４に処理要求を出す。全データ数は、データベース１を参照し、取得する。
【００２９】
また、処理スタック記憶部２３は、メニューノードの情報量算出部２６から、階層数、親メニュー項目を引数とした再起処理要求を受信すると、当該親メニュー項目に該当するデータ数を、データベース１を参照して取得し、これらの値によるレコードを新規追加する。このとき、メニュー記憶部３を参照し、使用されていない新規の親メニュー識別子の発行を要求し、その値を、当該レコードの親メニュー識別子に挿入する。その後、追加した親メニュー識別子、階層数、親メニュー項目、親メニューのデータ数を引数として、階層判定部２４に処理要求を出す。
【００３０】
親メニューノード情報算出部２８より、親メニューノードの情報量を引数として、処理終了要求を受信すると、以下の６つの引数と共に、図７に示すメニュー記憶部３に新規レコード作成要求を出す。
【００３１】
（１）  メニュー識別子＝現在処理対象である処理スタックレコードの親メニュー識別子：
（２）  親メニュー識別子＝現在処理対象である処理スタックレコードの直前に挿入された親メニュー識別子
（３）  メニューフラグ＝メニューノード：
（４）  メニュー項目＝現在処理対象である処理スタックレコードの親メニュー項目：
（５）  データ数＝現在処理対象である処理スタックレコードの親メニューのデータ数：
（６）  情報量＝受信した親メニューノードの情報量：
その後、現在処理対象である処理スタックのレコードを削除し、処理スタックに残っているレコードに対応する処理要求を階層判定部２４に出し、これを処理スタックのレコードがなくなるまで繰り返す。
【００３２】
階層判定部２４は、処理スタック記憶部２３より、処理要求を受け取ると、引数の階層数と、階層数記憶部２１の階層数を比較し、引数の階層数の方が小さい場合、メニューノードの情報量算出部２６に処理要求を出す。引数の階層数と階層数記憶部２１の階層数が等しければ、メニューリーフの情報量算出部２７に処理要求を出す。このとき、親メニュー識別子、階層数、親メニュー項目、親メニューのデータ数を引数として渡す。
【００３３】
検索条件リスト記憶部２５は、メニュー生成前にデータベース１から、検索条件のリストを抽出し、図８に示すように記憶しておく。メニューノードの情報量算出部２６、メニューリーフの情報量算出部２７から参照要求を受信すると、検索条件のリストを返す。
【００３４】
メニューノードの情報量算出部２６は、階層判定部２４から処理要求を受けると、検索条件リスト記憶部２５から検索条件のリストを取得し、個々の検索条件をメニューノードとした場合のメニューノードの情報量算出要求を処理スタック記憶部２３に出す。このとき、下位階層のメニューを評価するため、「階層数＝引数の階層数＋１」、「親メニュー項目＝個々の検索条件」を引数として渡す。全ての検索条件を処理後、親メニューノード情報量算出部２８へ親メニューノード識別子を引数として処理要求を出す。
【００３５】
メニューリーフの情報量算出部２７は、階層判定部２４から処理要求を受けると、検索条件リスト記憶部２５から検索条件のリストを取得し、個々の検索条件をメニューリーフとした場合のメニューリーフの情報量を算出する。
【００３６】
まず、当該メニューリーフに該当するデータ数を、データベース１から取得する。このとき、上位階層のメニューノードの検索条件とのＡＮＤ検索の結果を利用する。図１１上部のメニューリーフ「イタリアン」を評価する場合、「関内」∩「イタリアン」の検索結果数を、メニューリーフに該当するデータ数とする。さらに、上位階層にメニューノードが存在する場合には、再帰的に親メニューノードにさかのぼり、ＡＮＤ検索条件に親のメニューノードに対応する検索条件を追加する。
【００３７】
引数として受信した親メニューのデータ数に対する、当該メニューリーフに該当するデータ数の割合を算出し、この割合が低ければ高くなるような値をメニューリーフの情報量と定義する。シャノンの情報量を応用すれば、式１のようになる。
情報量＝-log（当該メニューリーフに該当するデータ数／親メニューのデータ数）…式１
なお、対数をとらない場合や、定数項が追加される場合も考えられる。
【００３８】
情報量を算出したら、メニューリーフ及び、その検索結果に関する情報を、メニュー記憶部３に記憶するため、以下の６つの引数と共に、図７に示すメニュー記憶部３に新規レコード作成要求を出す。
【００３９】
（１）  メニュー識別子＝ＮＵＬＬ：
（２）  親メニュー識別子＝メニューリーフの情報量算出部２７が引数として受信した親メニュー識別子：
（３）  メニューフラグ＝メニューリーフ：
（４）  メニュー項目＝現在評価対象である検索条件：
（５）  データ数＝当該メニューリーフに該当するデータ数：
（６）  情報量＝算出した情報量：
全ての検索条件を処理後、親メニューノード情報量算出部２８へ親メニューノード識別子を引数として処理要求を出す。
【００４０】
親メニューノード情報量算出部２８は、メニューノードの情報量算出部２６、あるいは、メニューリーフノードの情報量算出部２７から、親メニュー識別子を引数として処理要求を受けると、親メニュー識別子に対応するメニューノードの情報量を算出する。具体的には、引数の親メニュー識別子を持つレコードを、図７に示すメニュー記憶部３から抽出し、情報量が高い順に並び替え、メニュー記憶部３に記憶しなおす。その後、情報量の高い上位のメニューのうち、情報量加算範囲記憶部３２に設定された件数分だけ、情報量の総和を算出する。算出された情報量の総和を、親メニュー識別子に対応するメニューノードの情報量とする。この情報量を引数として、処理スタック記憶部２３に処理終了要求を出す。
【００４１】
処理起動部２９は、キーボードやマウスなどの入力デバイス５の物理的な動作を、処理起動命令か否かを判定し、処理起動命令であると判定したら、処理スタック記憶部２３に処理開始要求を出す。
【００４２】
メニュー記憶部３は、図７に示すように、少なくともメニュー識別子、親メニュー識別子、メニューフラグ、メニュー項目、当該メニュー項目に該当するデータ数、情報量から構成される。処理スタック記憶部２３から親メニュー識別子の発行の要求を受信したら、使用されていない新規の親メニュー識別子を発行し、その値を返す。
【００４３】
また、メニュー記憶部３は、処理スタック記憶２３あるいは、メニューリーフの情報量算出部２７から、（１）メニュー識別子、（２）親メニュー識別子、（３）メニューフラグ、（４）メニュー項目、（５）データ数、（６）情報量の６つの引数と共に、新規レコード要求を受信すると、新規レコードを作成し、受信した引数を、各レコードの項目に代入する。メニューリーフの情報量算出部２７からの要求の場合、（１）メニュー識別子＝ＮＵＬＬのため、メニュー識別子を新規作成し、代入する。また、メニューリーフの配下の検索結果に関しても、メニュー記憶部３に記録するために、当該メニューリーフの配下の検索結果をデータベース１から取得し、検索結果毎に新規レコードを作成する。このとき、メニュー識別子は新規作成する。また、親メニュー識別子には、メニューリーフのメニュー識別子で代入する。さらに、メニュー項目には検索結果のタイトルを代入する。
【００４４】
入出力部４は、メニュー操作部４１、メニュー表示部４２から構成される。
【００４５】
メニュー操作部４１は、キーボードやマウスなどの入力デバイスの物理的な動作を、メニューのカーソル移動と選択という電気的な信号に変換する。カーソルを移動すると、同じ親メニュー識別子を持つメニュー項目間を移動し、その結果を、メニュー表示部に表示する。メニュー項目を選択すると、選択したメニュー項目のメニュー識別子を、親メニュー識別子に持つメニュー項目群が、親メニューノード情報量算出部２８が並び替えたように、情報量の高い順番で表示される。
【００４６】
メニュー表示部４２は、メニュー操作部４１の操作の結果を表示する。図９に、携帯電話機における入出力部の例を示す。液晶ディスプレイ等がメニュー表示部４２に該当する。図９の上下の矢印キーと、それらの間の選択ボタンが、メニュー操作部４１に対応する。メニュー操作部４１の操作の結果がメニュー表示部４２に反映される。
【００４７】
入力デバイス５は、キーボードやマウスなどの入力デバイス５の物理的な動作を処理起動部２９へ送信する。
【００４８】
次に、上記の構成におけるメニュー提示方法について説明する。
【００４９】
図１０は、本発明の一実施の形態におけるメニュー提示方法のフローチャートであり、ステップ１０２において再帰的に呼び出されるフローチャートである。
【００５０】
ステップ１０１）  階層判定部２４が、処理スタック記憶部２３より処理要求を受け取ると、引数の階層数と、階層数記憶部２１の階層数を比較し、引数の階層数の方が小さい場合にはステップ１０２に移行する。引数の階層数と階層数記憶部２１の階層数が等しければステップ１０３に移行する。
【００５１】
処理スタック記憶部２３が、処理起動部２９から処理開始要求を受け取ると最初の処理が開始される。初期値の階層数は１である。
【００５２】
ステップ１０２）  メニューノードの情報量算出部２６が、階層判定部２４から処理要求を受けると、検索条件リスト記憶部２５から検索条件のリストを取得し、個々の検索条件をメニューノードとした場合のメニューノードの情報量算出要求を、処理スタック記憶部２３に出す。このとき、下位階層のメニューを評価するため、階層数＝引数の階層＋１、親メニュー項目＝個々の検索条件を引数として渡す。その後、ステップ１０４に移行する。
【００５３】
ステップ１０３）  メニューリーフの情報量算出部２７が、階層判定部２４から処理要求を受けると、検索条件リスト記憶部２５から検索条件のリストを取得し、個々の検索条件をメニューリーフとした場合のメニューリーフの情報量を算出し、ステップ１０４に移行する。
【００５４】
ステップ１０４）  ステップ１０２、ステップ１０３の処理が、検索条件リスト記憶部２５の全ての検索条件を処理したかを判定し、処理していない場合にはステップ１０１に移行し、処理した場合にはステップ１０５に移行する。
【００５５】
ステップ１０５）  親メニューノード情報量算出部２８が、メニューノードの情報量算出部２６、あるいは、メニューリーフの情報量算出部２７から、親メニュー識別子を引数として処理要求を受けると、引数の親メニュー識別子を持つレコードを、メニュー記憶部３（図７）から抽出し、情報量が高い順に並び替え、メニュー記憶部３に記録しなおし、その後、ステップ１０６に移行する。
【００５６】
ステップ１０６）  親メニューノード情報量算出部２８が、ステップ１０５で並び替えたメニュー項目の情報量の高い上位のメニューのうち、情報量加算範囲記憶部３２に設定された件数分だけ、情報量の総和を算出する。算出された情報量の総和を、親メニュー識別子に対応するメニューノードの情報量とする。この情報量を引数として、処理スタック記憶部２３に、処理終了要求を出す。
【００５７】
処理スタック記憶部２３が、親メニューノード情報算出部２８より、親メニューノードの情報量を引数として、処理終了要求を受信すると、メニュー記憶部３（図７）に、新規レコード作成要求を出す。その後、現在処理対象である処理スタックのレコードを削除し、処理スタックに残っているレコードに対応する処理要求を階層判定部２４に出し、これを処理スタックのレコードがなくなるまで繰り返す。
【００５８】
また、上記の実施の形態における図１０に示したフローチャートの手順をプログラムとして構築し、メニュー提示装置として利用されるコンピュータにインストールし、ＣＰＵ等の制御手段により実行させる、または、ネットワークを介して流通させることも可能である。
【００５９】
また、構築されたプログラムをメニュー提示装置として利用されるコンピュータに接続されるハードディスクやフレキシブルディスク、ＣＤ−ＲＯＭ等の可搬記憶媒体に格納しておき、本発明を実施する際に、インストールすることも可能である。
【００６０】
なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。
【産業上の利用可能性】
【００６１】
本発明は、情報検索システムにおけるメニュー提示技術に適用可能である。
【図面の簡単な説明】
【００６２】
【図１】本発明の原理を説明するための図である。
【図２】本発明の原理構成図である。
【図３】本発明の効果を説明するための図である。
【図４】本発明の一実施の形態におけるシステム構成図である。
【図５】本発明の一実施の形態におけるデータベースの例である。
【図６】本発明の一実施の形態における処理スタック記憶部の例である。
【図７】本発明の一実施の形態におけるメニュー記憶部の例である。
【図８】本発明の一実施の形態における検索条件リスト記憶部の例である。
【図９】本発明の一実施の形態における携帯電話機における入出力部の例である。
【図１０】本発明の一実施の形態におけるメニュー提示方法のフローチャートである。
【図１１】検索条件によるメニューを複数階層によって構成した例である。
【符号の説明】
【００６３】
１  データベース
２  メニュー生成部
３  メニュー記憶部
４  入出力部
５  入力デバイス
２１  階層数記憶手段、階層数記憶部
２２  情報量加算範囲記憶部
２３  処理スタック記憶部
２４  階層判定手段、階層判定部
２５  検索条件リスト記憶部
２６  第１の情報量算出手段、メニューノードの情報量算出部
２７  第２の情報量算出手段、メニューリーフの情報量算出部
２８  情報量算出制御手段、親メニューノード情報量算出部
２９  処理起動部
【図１】
2005128916.tif 000003
【図２】
2005128916.tif 000004
【図３】
2005128916.tif 000005
【図４】
2005128916.tif 000006
【図５】
2005128916.tif 000007
【図６】
2005128916.tif 000008
【図７】
2005128916.tif 000009
【図８】
2005128916.tif 000010
【図９】
2005128916.tif 000011
【図１０】
2005128916.tif 000012
【図１１】
2005128916.tif 000013