以下、図面を参照しながら実施形態について説明する。
実施形態に係る提示システムは、ユーザから入力された食材を用いたレシピを提示する。また、提示システムは、入力された食材と関連する食材(関連食材)を提示する。即ち、提示システムは、入力された食材と相性がよい(同時に用いられやすい)食材を提示する。関連食材は、入力した食材と同時に用いることでレシピの幅が広がる食材である。また、提示システムは、提示したレシピに含まれる食材と関連する食材(関連食材)を提示する。
提示システムは、スーパーマーケットなど、食材を販売する店舗などに設置される。なお、提示システムが用いられる状況は、特定の構成に限定されるものではない。
図1は、提示システム100の構成例を示すブロック図である。図1が示すように、提示システム100は、レシピ管理サーバ1、ネットワーク2、ユーザ操作端末3(3a、3b及び3c)、レシピデータベース格納部4、食材データベース格納部5、商品データベース格納部6及び相関ルールデータベース格納部7などを備える。レシピ管理サーバ1は、レシピデータベース格納部4、食材データベース格納部5、商品データベース格納部6及び相関ルールデータベース格納部7とデータを送受信する。また、レシピ管理サーバ1は、ネットワーク2を通じてユーザ操作端末3とデータを送受信する。なお、提示システム100は、図1が示すような構成の他に必要に応じた構成を具備したり、提示システム100から特定の構成が除外されたりしてもよい。
レシピ管理サーバ1(提示装置)は、ユーザに提示するレシピを管理する。レシピ管理サーバ1は、ユーザによって入力された食材を含むレシピを検索しユーザに提示する。また、レシピ管理サーバ1は、入力された食材などの関連食材を決定しユーザに提示する。
レシピ管理サーバ1については、後述する。
ネットワーク2は、レシピ管理サーバ1とユーザ操作端末3との間などでデータを送受信するための通信網である。たとえば、ネットワーク2は、インターネット、イントラネット、エキストラネット、LAN(Local Area Network)、CATV(Community Antenna TeleVision)通信網、仮想専用網(Virtual Private Network)、電話回線網、移動体通信網又は衛星通信網などである。
ネットワーク2の全部又は一部を構成する伝送媒体についても多様な例が想定される。たとえば、ネットワーク2の全部又は一部を構成する伝送媒体は、IEEE(Institute of Electrical and Electronics Engineers)1394、USB(Universal Serial Bus)、電力線搬送、電話線などの有線でも、IrDA(Infrared Data Association)のような赤外線、ブルートゥース(登録商標)、802.11無線、携帯電話網、衛星回線、地上波デジタル網などの無線でも利用可能である。
ネットワーク2の構成は、特定の構成に限定されるものではない。
ユーザ操作端末3は、ユーザが種々の操作を入力するための端末である。たとえば、ユーザ操作端末3は、ユーザが指定する食材(指定食材)の入力を受け付ける。ユーザ操作端末3は、ネットワーク2を通じて、入力された指定食材を示す情報をレシピ管理サーバ1へ送信する。
また、ユーザ操作端末3は、レシピ管理サーバ1からの情報をユーザに表示する。たとえば、ユーザ操作端末3は、レシピ管理サーバ1からの命令に従ってレシピ及び関連食材などを表示する。
ユーザ操作端末3は、操作パネル300(300a、300b及び300c)などを備える。
操作パネル300は、ユーザからの操作の入力を受け付け、ユーザに種々の情報を表示するインターフェースである。操作パネル300は、操作の入力を受け付ける操作部と、情報を表示する表示部とから構成される。
操作パネル300は、操作部の動作として、ユーザから受け付けた操作を示す信号を出力する。ここでは、操作部は、タッチパネルから構成される。なお、操作部は、キーボード又はテンキーをさらに備えてもよい。
操作パネル300は、表示部の動作として、画像を表示する。たとえば、表示部は、液晶モニタから構成される。表示部は、操作部としてのタッチパネルと一体的に形成される。
レシピデータベース格納部4(レシピ格納部)は、レシピデータベースを格納する。レシピデータベース格納部4は、レシピ管理サーバ1にレシピを供給する。たとえば、レシピデータベース格納部4は、不揮発性メモリなどから構成される。レシピデータベースについては後述する。
食材データベース格納部5は、食材データベースを格納する。食材データベース格納部5は、レシピ管理サーバ1に食材データベースを供給する。たとえば、食材データベース格納部5は、不揮発性メモリなどから構成される。食材データベースについては後述する。
商品データベース格納部6は、商品データベースを格納する。商品データベース格納部6は、レシピ管理サーバ1に商品データベースを供給する。たとえば、商品データベース格納部6は、不揮発性メモリなどから構成される。商品データベースについては後述する。
相関ルールデータベース格納部7(相関ルール格納部)は、相関ルールデータベースを格納する。相関ルールデータベース格納部7は、レシピ管理サーバ1に相関ルールを供給する。たとえば、相関ルールデータベース格納部7は、不揮発性メモリなどから構成される。相関ルールデータベースについては後述する。
次に、レシピ管理サーバ1について説明する。
図2は、レシピ管理サーバ1の構成例を示すブロック図である。図2が示すように、レシピ管理サーバ1は、プロセッサ11、ROM12、RAM13、NVM14、第1の通信部15、第2の通信部16、操作部17及び表示部18などを備える。これらの各部は、データバスなどを介して互いに接続される。なお、レシピ管理サーバ1は、図2が示すような構成の他に必要に応じた構成を具備したり、レシピ管理サーバ1から特定の構成が除外されたりしてもよい。
プロセッサ11は、レシピ管理サーバ1全体の動作を制御する機能を有する。プロセッサ11は、内部キャッシュ及び各種のインターフェースなどを備えてもよい。プロセッサ11は、内部メモリ、ROM12又はNVM14が予め記憶するプログラムを実行することにより種々の処理を実現する。
なお、プロセッサ11がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであってもよい。この場合、プロセッサ11は、ハードウエア回路により実行される機能を制御する。
ROM12は、制御プログラム及び制御データなどが予め記憶された不揮発性のメモリである。ROM12に記憶される制御プログラム及び制御データは、レシピ管理サーバ1の仕様に応じて予め組み込まれる。ROM12は、たとえば、レシピ管理サーバ1の回路基板を制御するプログラムなどを格納する。
RAM13は、揮発性のメモリである。RAM13は、プロセッサ11の処理中のデータなどを一時的に格納する。RAM13は、プロセッサ11からの命令に基づき種々のアプリケーションプログラムを格納する。また、RAM13は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。
NVM14は、データの書き込み及び書き換えが可能な不揮発性のメモリである。NVM14は、たとえば、HDD(Hard Disk Drive)、SSD(Solid State Drive)又はフラッシュメモリなどから構成される。NVM14は、レシピ管理サーバ1の運用用途に応じて制御プログラム、アプリケーション及び種々のデータなどを格納する。
NVM14は、データ管理アプリケーション14a、相関分析アプリケーション14b及び検索推薦アプリケーション14cなどを格納する。データ管理アプリケーション14a、相関分析アプリケーション14b及び検索推薦アプリケーション14cについては、後述する。
第1の通信部15(第1のインターフェース)は、ネットワーク2を通じてレシピ管理サーバ1などとデータを送受信するためのインターフェースである。第1の通信部15は、たとえば、LAN接続をサポートするインターフェースである。
第2の通信部16(第2のインターフェース)は、レシピデータベース格納部4、食材データベース格納部5、商品データベース格納部6及び相関ルールデータベース格納部7とデータを送受信するためのインターフェースである。第2の通信部16は、たとえば、LAN接続又はUSB接続をサポートするインターフェースである。
操作部17は、オペレータから種々の操作の入力を受け付ける。操作部17は、受け付けた操作を示す信号をプロセッサ11へ送信する。たとえば、操作部17は、キーボード、テンキー及びタッチパネルから構成される。
表示部18は、プロセッサ11の制御に基づいて種々の情報を表示する。たとえば、表示部18は、液晶モニタから構成される。なお、操作部17がタッチパネルなどで構成される場合、表示部18は、操作部17と一体的に形成されてもよい。
次に、レシピデータベースについて説明する。
レシピデータベースは、複数のレシピから構成されるデータベースである。レシピは、所定の料理に用いる食材及び当該料理の調理方法などを示す。
図3は、レシピデータベースの構成例を示す。図3が示すように、レシピデータベースは、「レシピID」、「名称」、「カテゴリ」、「材料(食材ID)」、「調理時間」及び「画像情報」などを対応付けて格納する。なお、レシピデータベースは、図3が示すような構成の他に必要に応じた構成を具備したり、レシピデータベースから特定の構成が除外されたりしてもよい。
「レシピID」は、レシピを特定するIDである。
「名称」は、レシピが示す料理の名称である。
「カテゴリ」は、料理のカテゴリを示す。たとえば、「カテゴリ」は、エスニック、和食など料理の大まかな区分を示す。
「材料(食材ID)」は、料理に用いられる食材を特定するIDを示す。「材料(食材ID)」は、複数のIDを含んでもよい。
「調理時間」は、料理を作るために必要な時間を示す。
「画像情報」は、レシピに関する画像を示す。たとえば、「画像情報」は、完成した料理の画像である。また、「画像情報」は、料理の調理方法を示す画像であってもよい。ここでは、「画像情報」は、画像のファイル名を示す。
レシピデータベースは、予めレシピデータベース格納部4に格納される。なお、レシピデータベースは、適宜更新されてもよい。
次に、食材データベースについて説明する。
食材データベースは、食材毎に食材の属性を示す。
図4は、食材データベースの構成例を示す。図4が示すように、「食材ID」、「名称」、「食材カテゴリ」及び「汎用性」などから構成される。なお、食材データベースは、図4が示すような構成の他に必要に応じた構成を具備したり、食材データベースから特定の構成が除外されたりしてもよい。
「食材ID」は、食材を特定するIDである。
「名称」は、食材の名称である。
「食材カテゴリ」は、食材のカテゴリを示す。たとえば、「食材カテゴリ」は、野菜、牛肉など食材の大まかな区分を示す。
「汎用性」は、他の食材との組み合わせ易さを示す。たとえば、「汎用性」は、「食材ID」が示す食材を含むレシピの個数などに基づく指標である。即ち、当該食材を含むレシピの個数が多ければ、「汎用性」が高いと判断される。また、当該食材を含むレシピの個数が少なければ、「汎用性」が低いと判断される。
食材データベースは、予め食材データベース格納部5に格納される。なお、食材データベースは、適宜更新されてもよい。
次に、商品データベースについて説明する。
商品データベースは、商品毎に商品の属性を示す。
図5は、商品データベースの構成例を示す。図5が示すように、商品データベースは、「商品ID」、「名称」、「食材ID」、「価格」及び「内容量」などを対応付けて格納する。なお、商品データベースは、図5が示すような構成の他に必要に応じた構成を具備したり、商品データベースから特定の構成が除外されたりしてもよい。
「商品ID」は、商品を特定するIDである。
「名称」は、商品の名称である。
「食材ID」は、商品に対応する食材のIDである。即ち、「食材ID」は、商品を構成する食材を示す。
「価格」は、商品の価格を示す。
「内容量」は、商品の重量を示す。
次に、レシピ管理サーバ1が実現する機能について説明する。レシピ管理サーバ1が実現する機能は、プロセッサ11がROM12又はNVM14などに格納されるプログラムを実行することで実現される。
まず、プロセッサ11がデータ管理アプリケーション14aを実行することで実現する機能について説明する。
プロセッサ11は、レシピデータベース、食材データベース及び商品データベースの管理を行う機能を実現する。プロセッサ11は、レシピデータベースの管理として、オペレータによって登録されたレシピにユニークなIDを割り振り、管理を行う。たとえば、プロセッサ11は、オペレータが投稿した「AA」のレシピについて、カテゴリとして「BB」、食材として、「QQ」、「RR」、「SS」等を紐付ける。また、プロセッサ11は、レシピのカテゴリ又は調理時間などの属性により分類して管理する。プロセッサ11は、レシピデータの管理を、食材データベース及び商品データベースなどを用いて行う。
次に、プロセッサ11が相関分析アプリケーション14bを実行することで実現する機能について説明する。プロセッサ11は、相関分析アプリケーション14bを実行することで相関ルールデータベースを生成する。
たとえば、プロセッサ11は、オペレータから相関ルールの算出を開始する命令の入力を受け付けると相関ルールの算出を開始する。
プロセッサ11は、食材データベースに登録される2つの食材において両者の相関ルールを算出する。相関ルールは、2つの食材の組み合わせの規則であり、方向性を有する。相関ルールは、前件部Xとしての食材と後件部Yとしての食材との相関を示す。即ち、相関ルールは、前件部Xの食材を使うレシピに後件部Yも使われる可能性を示す指標である。
ここでは、プロセッサ11は、前件部Xと後件部Yとにそれぞれ食材を設定して相関ルール(X→Y)を算出する。
プロセッサ11は、食材データベースから1つの食材を前件部Xに、他の食材を後件部Yに設定する。前件部Xと後件部Yとを設定すると、プロセッサ11は、相関ルール(X→Y)を算出する。
まず、プロセッサ11は、相関ルールの1つとして、支持度(Support(X→Y))を算出する。支持度は、前件部Xの食材と後件部Yの食材とがどのくらい一緒にレシピに使われるかを表す指標である。プロセッサ11は、以下の式で支持度を算出する。
次に、プロセッサ11は、相関ルールの1つとして、信頼度(Confidence(X→Y))を算出する。信頼度は、前件部Xの食材を含むレシピのうち、どれくらいのレシピが後件部Yの食材を含むかを表す指標である。プロセッサ11は、以下の式で信頼度を算出する。
次に、プロセッサ11は、相関ルールの1つとして、リフト値(Lift(X→Y))を算出する。リフト値は、前件部Xの食材にレシピに含むことが、どれくらい後件部Yの食材を含む確率を持ち上げるかを表す指標である。プロセッサ11は、以下の式でリフト値を算出する。
プロセッサ11は、支持度、信頼度及びリフト値を計算すると、相関ルールデータベースに格納する。
プロセッサ11は、食材データベースに含まれる2つの食材の各組合せにおいて相関ルールを算出して相関ルールデータベースに格納する。
図6は、相関ルールデータベースの構成例を示す。図6が示すように、相関ルールデータベースは、「前件部X(食材ID)」、「後件部Y(食材ID)」、「支持度」、「信頼度」及び「リフト値」などを対応付けて格納する。なお、相関ルールデータベースは、図6が示すような構成の他に必要に応じた構成を具備したり、相関ルールデータベースから特定の構成が除外されたりしてもよい。
「前件部X(食材ID)」は、前件部Xに設定された食材を示すIDである。
「前件部Y(食材ID)」は、前件部Yに設定された食材を示すIDである。
「支持度」は、前件部Xの食材と後件部Yの食材との支持度(Support(X→Y))を示す。
「信頼度」は、前件部Xの食材と後件部Yの食材との信頼度(Confidence(X→Y))を示す。
「リフト値」は、前件部Xの食材と後件部Yの食材とのリフト値(Lift(X→Y))を示す。
次に、プロセッサ11が検索推薦アプリケーション14cを実行することで実現する機能について説明する。
まず、プロセッサ11は、レシピを検索するための指定食材を示す情報を取得する機能を有する。
たとえば、ユーザ操作端末3は、操作パネル300を通じて、ユーザから食材指定の入力を受け付ける。ユーザから食材指定の入力を受け付けると、ユーザ操作端末3は、入力された食材指定を示す情報をレシピ管理サーバ1に送信する。
レシピ管理サーバ1の第1の通信部15は、指定食材を示す情報を入力する。レシピ管理サーバ1のプロセッサ11は、第1の通信部15を通じて当該情報を受信する。プロセッサ11は、当該情報に基づいて、レシピを検索するための食材指定を取得する。
なお、ユーザ操作端末3は、レシピのカテゴリ(エスニックなど)の入力を受け付けてもよい。ユーザ操作端末3は、入力された食材及びカテゴリを示す情報をレシピ管理サーバ1に送信する。
また、プロセッサ11は、指定食材を含むレシピ(検索レシピ)をレシピデータベースから検索する機能を有する。
プロセッサ11は、食材データベースなどを参照して、指定食材を示す食材IDを取得する。食材IDを取得すると、プロセッサ11は、レシピデータベースから当該食材IDを「材料(食材ID)」として含む検索レシピを検索する。プロセッサ11は、1つの検索レシピを検索してもよいし、複数の検索レシピを検索してもよい。
なお、プロセッサ11は、カテゴリを示す情報をユーザ操作端末3から受信した場合、当該食材IDを「材料(食材ID)」として含むレシピであって、当該カテゴリと一致する「カテゴリ」を含むレシピを検索する。
また、プロセッサ11は、相関ルールに基づいて、指定食材と関連する関連食材(第1の関連食材)と、指定食材と関連食材とを含む推薦レシピを決定し提示する機能を有する。
第2の通信部16は、相関ルールデータベースを取得する。プロセッサ11は、第2の通信部16を通じて、相関ルールデータベースを取得する。プロセッサ11は、相関ルールデータベースから、指定食材を前件部Xとする相関ルールを抽出する。相関ルールを抽出すると、プロセッサ11は、支持度が高い相関ルールを抽出する。たとえば、プロセッサ11は、支持度が所定の閾値を超える相関ルールを抽出する。閾値は、レシピデータベースのレシピの個数などに基づいて決定される。たとえば、レシピデータベースのレシピの個数が6000であり推薦レシピの食材の個数を3とする場合、閾値は、0.005程度である。
なお、プロセッサ11は、支持度の上位N個の相関ルールを抽出してもよい。
支持度が高い相関ルールを抽出すると、プロセッサ11は、抽出した相関ルールをリフト値でソートする。プロセッサ11は、最もリフト値が高い相関ルールの後件部Yの食材を関連食材として決定する。
なお、プロセッサ11は、リフト値の上位M個の相関ルールからソフトマックス選択法又はランダム選択方などで相関ルールを選択してもよい。プロセッサ11は、選択された相関ルールの後件部Yの食材を第1の関連食材として決定する。
第1の関連食材を決定すると、プロセッサ11は、商品データベースを参照して、関連食材に対応する商品(第1の関連商品)を決定する。即ち、プロセッサ11は、商品データベースから、第1の関連食材のIDに対応する商品を決定する。
第1の関連商品を決定すると、プロセッサ11は、レシピデータベースから、指定食材と第1の関連食材とを含む推薦レシピを検索する。プロセッサ11は、1つの推薦レシピを検索してもよいし、複数の推薦レシピを検索してもよい。
推薦レシピを検索すると、プロセッサ11は、検索レシピ並びに推薦レシピを示すレシピ情報、第1の関連食材及び第1の関連商品をユーザ操作端末3に送信する。たとえば、レシピ情報は、検索レシピ及び推薦レシピの名称及び画像情報などである。ユーザ操作端末3は、受信したレシピ情報、第1の関連食材及び第1の関連商品を操作パネル300に表示する。即ち、プロセッサ11は、ユーザ操作端末3を通じて、検索レシピ、推薦レシピ、第1の関連食材及び第1の関連商品を示す情報をユーザに出力する。
ここでは、プロセッサ11が検索レシピ、推薦レシピ、第1の関連食材及び第1の関連商品をユーザに提示するまでの動作を第1モードと呼称する。
図7は、ユーザ操作端末3がレシピ情報、第1の関連食材及び第1の関連商品を表示する画面の例を示す。即ち、図7が示す画面の例は、第1モードにおいて表示される。図7が示すように、ユーザ操作端末3は、操作パネル300に、表示領域21乃至23を設定する。
表示領域21は、レシピを検索する条件を入力する。ここでは、表示領域21は、食材の名称の入力を受け付ける。図7が示す例では、指定食材として「GG」が入力されている。
表示領域22は、検索レシピを表示する。表示領域22は、検索レシピの名称及び料理画像を対応付けて表示する。図7が示す例では、表示領域22は、検索レシピとして、「HH」及び「II」などを表示する。
表示領域23は、第1の関連食材、第1の関連商品及び推薦レシピを表示する。表示領域23は、おすすめの食材として第1の関連食材を表示する。図7が示す例では、表示領域23は、第1の関連食材として「JJ」を表示する。
また、表示領域23は、推薦レシピとして、推薦レシピの名称及び料理画像を対応付けて表示する。図7が示す例では、表示領域23は、推薦レシピとして「KK」及び「LL」などを表示する。
また、表示領域23は、おすすめの商品として第2の関連商品を表示する。図7が示す例では、表示領域23は、第2の関連商品の商品画像、名称及び価格を対応付けて表示する。
また、プロセッサ11は、検索レシピ及び推薦レシピからレシピの選択を受け付ける機能を有する。
ユーザ操作端末3は、レシピ情報が示す検索レシピ及び推薦レシピを表示すると、ユーザから検索レシピ及び推薦レシピから1つのレシピの選択を受け付ける。たとえば、ユーザ操作端末3は、図7の画面において、検索レシピ及び推薦レシピの名称又は画像へのタップを選択操作として受け付ける。ユーザ操作端末3は、選択されたレシピを示す情報をレシピ管理サーバ1へ送信する。
レシピ管理サーバ1のプロセッサ11は、ユーザ操作端末3からの情報に基づいて、レシピの選択を受け付ける。
また、プロセッサ11は、レシピデータベースから、選択されたレシピの内容(レシピ内容)を取得する機能を有する。
たとえば、プロセッサ11は、レシピデータベースから、レシピ内容として、選択されたレシピの食材、調理時間及び調理方法などを取得する。
また、プロセッサ11は、選択されたレシピに含まれる食材の関連食材(第2の関連食材)を決定し提示する機能を有する。
たとえば、プロセッサ11は、食材データベースを参照して、選択されたレシピに含まれる食材の中から最も汎用性の低い食材(非汎用食材)を選択する。非汎用食材を選択すると、プロセッサ11は、非汎用食材の関連食材(第2の関連食材)を決定する。第2の関連食材を決定する方法は、前述の通りであるため説明を省略する。
第2の関連食材を決定すると、プロセッサ11は、商品データベースを参照して、第2の関連食材に対応する商品(第2の関連商品)を決定する。即ち、プロセッサ11は、商品データベースから、第2の関連食材のIDに対応する商品を決定する。
第2の関連商品を決定すると、プロセッサ11は、レシピデータベースから、非汎用食材と第2の関連食材とを含む推薦レシピを検索する。プロセッサ11は、1つの推薦レシピを検索してもよいし、複数の推薦レシピを検索してもよい。
推薦レシピを検索すると、プロセッサ11は、レシピ内容、推薦レシピを示すレシピ情報、非汎用食材、第2の関連食材及び第2の関連商品をユーザ操作端末3に送信する。たとえば、レシピ情報は、推薦レシピの名称及び画像情報などである。ユーザ操作端末3は、受信したレシピ内容、レシピ情報、非汎用食材、第2の関連食材及び第2の関連商品を操作パネル300に表示する。即ち、プロセッサ11は、ユーザ操作端末3を通じて、レシピ内容、推薦レシピ、非汎用食材、第2の関連食材及び第2の関連商品を示す情報をユーザに出力する。
ここでは、プロセッサ11がレシピ内容、推薦レシピ、第2の関連食材及び第2の関連商品をユーザに提示するまでの動作を第2モードと呼称する。
図8は、ユーザ操作端末3がレシピ内容、レシピ情報、第2の関連食材及び第2の関連商品を表示する画面の例を示す。即ち、図8が示す画面の例は、第2モードにおいて表示される。図8が示すように、ユーザ操作端末3は、操作パネル300に、表示領域31及び32を設定する。
表示領域31は、レシピ内容を表示する。表示領域31は、レシピの料理画像、材料及び調理方法などを表示する。図8が示す例では、表示領域32は、レシピ内容として、「HH」のレシピ内容を表示する。
表示領域32は、非汎用食材、第2の関連食材、第2の関連商品及び推薦レシピを表示する。表示領域32は、推薦レシピに用いる食材として非汎用食材を表示する。図8が示す例では、表示領域32は、非汎用食材として「MM」を表示する。
また、表示領域32は、非汎用食材と相性のよい食材(おすすめの食材)として第2の関連食材を表示する。図8が示す例では、表示領域32は、第2の関連食材として「かぶ」を表示する。
また、表示領域32は、レシピ情報として、推薦レシピの名称及び料理画像を対応付けて表示する。図8が示す例では、表示領域32は、推薦レシピとして「OO」及び「PP」などを表示する。
また、表示領域32は、おすすめの商品として第2の関連商品を表示する。図8が示す例では、表示領域23は、第2の関連商品の商品画像、名称及び価格を対応付けて表示する。
また、プロセッサ11は、推薦レシピの選択を受け付ける。即ち、ユーザ操作端末3は、図8の画面において、推薦レシピの選択を受け付け、選択された推薦レシピを示す情報をレシピ管理サーバ1へ送信する。
レシピ管理サーバ1のプロセッサ11は、当該情報を受信すると、再度、第2モードの動作を行う。
次に、レシピ管理サーバ1の動作例について説明する。
まず、レシピ管理サーバ1のプロセッサ11が相関ルールデータベースを生成する動作例について説明する。
図9は、プロセッサ11が相関ルールデータベースを生成する動作例について説明するためのフローチャートである。ここでは、オペレータは、相関ルールの算出を開始する命令を操作部17に入力したものとする。
まず、プロセッサ11は、レシピデータベースを取得する(ACT11)。レシピデータベースを取得すると、プロセッサ11は、前件部Xに食材を設定する(ACT12)。前件部Xに食材を設定すると、プロセッサ11は、後件部Yに食材を設定する(ACT13)。
後件部Yに食材を設定すると、プロセッサ11は、相関ルール(X→Y)を算出する(ACT14)。相関ルール(X→Y)を算出すると、プロセッサ11は、相関ルール(X→Y)を相関ルールデータベースに格納する(ACT15)。
相関ルール(X→Y)を相関ルールデータベースに格納すると、プロセッサ11は、他に後件部Yに設定する食材があるか判定する(ACT16)。他に後件部Yに設定する食材があると判定すると(ACT16、YES)、プロセッサ11は、ACT13に戻る。
他に後件部Yに設定する食材がないと判定すると(ACT16、NO)、プロセッサ11は、他に後件部Xに設定する食材があるか判定する(ACT17)。他に後件部Xに設定する食材があると判定すると(ACT17、YES)、プロセッサ11は、ACT12に戻る。
他に後件部Xに設定する食材がないと判定すると(ACT17、NO)、プロセッサ11は、動作を終了する。
次に、プロセッサ11が関連食材などを提示する動作例について説明する。
図10は、プロセッサ11が関連食材などを提示する動作例について説明するためのフローチャートである。ここでは、ユーザは、ユーザ操作端末3に指定食材を入力するものとする。
プロセッサ11は、ユーザ操作端末3を通じて入力された指定食材を示す情報を取得する(ACT21)。当該情報を取得すると、プロセッサ11は、レシピデータベースを参照して、指定食材を含むレシピを検索する(ACT22)。
レシピを検索すると、プロセッサ11は、推薦レシピ、第1の関連食材及び第1の関連商品を決定する(ACT23)。推薦レシピ、第1の関連食材及び第1の関連商品を決定すると、プロセッサ11は、ユーザ操作端末3を通じて、検索レシピ、推薦レシピ、第1の関連食材及び第1の関連商品を表示する(ACT24)。
検索レシピ、推薦レシピ、第1の関連食材及び第1の関連商品を表示すると、プロセッサ11は、レシピの選択を受け付けたか判定する(ACT25)。レシピの選択を受け付けたと判定すると(ACT25、YES)、プロセッサ11は、選択されたレシピのレシピ内容を取得する(ACT26)。
レシピ内容を取得すると、プロセッサ11は、非汎用食材、推薦レシピ、第2の関連食材及び第2の関連商品を決定する(ACT27)。非汎用食材、推薦レシピ、第2の関連食材及び第2の関連商品を決定すると、プロセッサ11は、ユーザ操作端末3を通じて、レシピ内容、非汎用食材、推薦レシピ、第2の関連食材及び第2の関連商品を表示する(ACT28)。
レシピ内容、非汎用食材、推薦レシピ、第2の関連食材及び第2の関連商品を表示すると、プロセッサ11は、レシピの選択を受け付けたか判定する(ACT29)。レシピの選択を受け付けたと判定すると(ACT29、YES)、プロセッサ11は、ACT26に戻る。
レシピの選択を受け付けていないと判定すると(ACT29、NO)、プロセッサ11は、第1モードに戻る操作を受け付けたか判定する(ACT30)。第1モードに戻る操作を受け付けていないと判定すると(ACT30、NO)、プロセッサ11は、ACT29に戻る。
第1モードに戻る操作を受け付けたと判定すると(ACT30、YES)、プロセッサ11は、ACT21に戻る。
レシピの選択を受け付けていないと判定すると(ACT25、NO)、プロセッサ11は、レシピを再検索する操作を受け付けたか判定する(ACT31)。レシピを再検索する操作を受け付けたと判定すると(ACT31、YES)、プロセッサ11は、ACT21に戻る。
レシピを再検索する操作を受け付けていないと判定すると(ACT31、NO)、プロセッサ11は、レシピの検索を終了する操作を受け付けたか判定する(ACT32)。レシピの検索を終了する操作を受け付けていないと判定すると(ACT32、NO)、プロセッサ11は、ACT25に戻る。
レシピの検索を終了する操作を受け付けたと判定すると(ACT32、YES)、プロセッサ11は、動作を終了する。
次に、プロセッサ11が推薦レシピ、第1の関連食材及び第1の関連商品を決定する動作例(ACT23)について説明する。図11は、プロセッサ11が推薦レシピ、第1の関連食材及び第1の関連商品を決定する動作例(ACT23)について説明するためのフローチャートである。
まず、プロセッサ11は、相関ルールデータベースを参照して、指定食材を前件部Xとする相関ルールを抽出する(ACT41)。指定食材を前件部Xとする相関ルールを抽出すると、プロセッサ11は、抽出した相関ルールの中から支持度が高い相関ルールを抽出する(ACT42)。
支持度が高い相関ルールを抽出すると、プロセッサ11は、抽出した相関ルールをリフト値でソートする(ACT43)。相関ルールをリフト値でソートすると、プロセッサ11は、最もリフト値の高い相関ルールの後件部Yの食材を第1の関連食材に決定する(ACT44)。
第1の関連食材を決定すると、プロセッサ11は、第1の関連食材に対応する第1の関連商品を決定する(ACT45)。第1の関連商品を決定すると、プロセッサ11は、指定食材と第1の関連食材とを含む推薦レシピを検索する(ACT46)。
推薦レシピを検索すると、プロセッサ11は、動作を終了する。
次に、プロセッサ11が非汎用食材、推薦レシピ、第2の関連食材及び第2の関連商品を決定する動作例(ACT27)について説明する。図12は、プロセッサ11が非汎用食材、推薦レシピ、第2の関連食材及び第2の関連商品を決定する動作例(ACT27)について説明するためのフローチャートである。
まず、プロセッサ11は、選択されたレシピの食材から汎用性の低い非汎用食材を選択する(ACT51)。非汎用食材を選択すると、プロセッサ11は、相関ルールデータベースを参照して、非汎用食材を前件部Xとする相関ルールを抽出する(ACT52)。非汎用食材を前件部Xとする相関ルールを抽出すると、プロセッサ11は、抽出した相関ルールの中から支持度が高い相関ルールを抽出する(ACT53)。
支持度が高い相関ルールを抽出すると、プロセッサ11は、抽出した相関ルールをリフト値でソートする(ACT54)。相関ルールをリフト値でソートすると、プロセッサ11は、最もリフト値の高い相関ルールの後件部Yの食材を第2の関連食材に決定する(ACT55)。
第2の関連食材を決定すると、プロセッサ11は、第2の関連食材に対応する第2の関連商品を決定する(ACT56)。第2の関連商品を決定すると、プロセッサ11は、非汎用食材と第2の関連食材とを含む推薦レシピを検索する(ACT57)。
推薦レシピを検索すると、プロセッサ11は、動作を終了する。
なお、プロセッサ11は、複数の第1又は第2の関連食材を特定し、ユーザに提示してもよい。たとえば、プロセッサ11は、リフト値が高い相関ルールから2つの相関ルールを選択する。プロセッサ11は、選択された2つの相関ルールの後件部Yの食材を第1又は第2の関連食材として特定する。
また、プロセッサ11は、レシピの検索条件として食材を取得しない場合には、第1の関連食材を特定しなくともよい。
また、プロセッサ11は、第1の関連商品又は第2の関連商品を提示しなくともよい。
また、ユーザ操作端末3は、第1若しくは第2の関連食材、又は、推薦レシピをアニメーション又はホップアップで表示してもよい。
また、レシピ管理サーバ1は、ユーザ操作端末3と一体的に形成されてもよい。また、レシピ管理サーバ1のNVM14は、レシピデータベース、食材データベース、商品データベース及び相関ルールデータベースを格納してもよい。
以上のように構成された提示システムは、相関ルールに基づいて、ユーザが入力した指定食材に関して支持度が高い相関ルールを抽出する。提示システムは、抽出した相関ルールからリフト値の高い食材(関連食材)を決定する。その結果、提示システムは、指定食材と関連する関連食材をユーザに提示することができる。
また、提示システムは、提示したレシピの食材の中で汎用性の低い食材(非汎用食材)を選択する。提示システムは、非汎用食材と関連する関連食材をユーザに提示する。その結果、提示システムは、非汎用食材の用途を広げることができる関連食材を提示することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。