(57)【特許請求の範囲】
【請求項１】
制御部を備え、食事に関する情報をレコメンドするサービスを提供するための情報処理装置であって、
前記制御部は、
前記サービスの提供を受けるユーザのスケジュール情報を取得するスケジュール情報取得部と、
前記ユーザの過去に摂取した食事に関する情報を取得する食事情報取得部と、
前記ユーザの属性情報、前記スケジュール情報、及び前記ユーザの過去に摂取した食事に関する情報に基づき、前記ユーザの食事に関するスケジュール情報を生成する情報生成部と、
前記ユーザの食事に関するスケジュール情報をレコメンドするレコメンド部と、を備え、
前記スケジュール情報取得部は、前記ユーザの起床時刻を取得し、
前記情報生成部は、前記ユーザのスケジュール情報に基づいて前記ユーザの生活リズムを推測し、前記起床時刻を起点として、前記ユーザの行動予定情報から食事が不可能な時間帯を除外して前記ユーザの１日の行動の中で食事が可能な時間帯を推測し、前期食事が可能な時間帯から前記ユーザの健康上好ましい食事時間を推測して前記ユーザの生活リズム及び食事に関するスケジュール情報を生成し、
前記レコメンド部は、前記ユーザの生活リズム及び食事に関するスケジュール情報をレコメンドする、情報処理装置。
【請求項２】
前記レコメンド部は、前記ユーザの食事に関するスケジュール情報を、前記ユーザが閲覧可能なタイムチャートに表示させてレコメンドする、請求項１に記載の情報処理装置。
【請求項３】
前記情報生成部は、前記ユーザが食事を開始すべき時刻を算出し、前記ユーザの食事開始時刻に合わせて食事に関するスケジュール情報を生成する、請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記情報生成部は、前記スケジュール情報における前記ユーザの過去の起床時刻、仕事の勤務時間帯、運動を行う時間帯、就寝時刻のいずれか１つまたは複数に基づき、前記ユーザが食事を開始すべき時刻を算出する、請求項３に記載の情報処理装置。
【請求項５】
前記情報生成部は、前記ユーザが食事の調理を開始すべき時刻を算出し、前記ユーザの調理開始時刻に合わせて食事に関するスケジュール情報を生成する、請求項１または請求項２に記載の情報処理装置。
【請求項６】
前記情報生成部は、前記ユーザにレコメンドする食事の献立を決定し、前記ユーザが前記食事の献立の調理を開始すべき時刻を算出し、前記ユーザの調理開始時刻に合わせて食事に関するスケジュール情報を生成し、
前記レコメンド部は、前記食事の献立と、前記ユーザの食事に関するスケジュール情報とをレコメンドする、請求項５に記載の情報処理装置。
【請求項７】
前記情報生成部は、前記ユーザの属性情報に含まれる前記ユーザの病態情報、症状情報、嗜好情報、調理スキル情報、環境情報のいずれか１つまたは複数に基づき、前記食事の献立を決定する、請求項６に記載の情報処理装置。
【請求項８】
前記制御部は、さらに、
前記ユーザが閲覧または登録した献立情報の履歴を取得する献立履歴取得部を備え、
前記情報生成部は、前記ユーザが閲覧または登録した献立情報に基づき、前記食事の献立を決定する、請求項６または請求項７に記載の情報処理装置。
【請求項９】
前記情報生成部は、前記ユーザが前記食事の献立を調理するための食材の購入を開始すべき時刻を算出し、前記ユーザの食材購入開始時刻に合わせて食事に関するスケジュール情報を生成し、
前記レコメンド部は、前記ユーザが購入すべき食材をレコメンドする、請求項６から請求項８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記制御部は、さらに、
前記ユーザが使用する端末装置の位置情報を取得する位置情報取得部を備え、
前記情報生成部は、前記位置情報に基づき前記食材を購入する購入先を決定し、前記ユーザの前記購入先への移動時間を算出して前記食材の購入を開始すべき時刻を算出する、請求項９に記載の情報処理装置。
【請求項１１】
前記情報生成部は、前記ユーザが過去に購入した食材の情報に基づき、前記食事の献立を決定する、請求項９または請求項１０に記載の情報処理装置。
【請求項１２】
前記レコメンド部は、前記食事の献立を調理するためのレシピ情報をレコメンドする、請求項６から請求項１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記食事情報取得部は、前記ユーザの食事を撮影した画像データに基づき、前記ユーザの過去に摂取した食事に関する情報を取得する、請求項１から請求項１２のいずれか１項に記載の情報処理装置。
【請求項１４】
前記スケジュール情報取得部は、前記ユーザの食事を撮影した画像データに基づき、前記ユーザの食事に関するスケジュール情報を推測して取得する、請求項１から請求項１３のいずれか１項に記載の情報処理装置。
【請求項１５】
前記情報生成部は、前記ユーザにレコメンドした前記ユーザの食事に関する情報と、前記ユーザに当該情報をレコメンドした後に取得された前記ユーザの食事に関する情報と、に基づき、前記ユーザの食事に関する情報を生成する、請求項１から請求項１４のいずれか１項に記載の情報処理装置。
【請求項１６】
前記情報生成部は、前記ユーザにレコメンドした前記ユーザの食事に関する情報を、前記ユーザの属性情報、前記スケジュール情報、または前記ユーザの過去に摂取した食事に関する情報が類似する他のユーザの食事に関する情報から生成する、請求項１から請求項１５のいずれか１項に記載の情報処理装置。
【請求項１７】
プロセッサを備えるコンピュータにより実行され、食事に関する情報をレコメンドするサービスを提供するための方法であって、
前記方法は、前記プロセッサが、
前記サービスの提供を受けるユーザのスケジュール情報を取得するステップと、
前記ユーザの過去に摂取した食事に関する情報を取得するステップと、
前記ユーザの属性情報、前記スケジュール情報、及び前記ユーザの過去に摂取した食事に関する情報に基づき、前記ユーザの食事に関するスケジュール情報を生成するステップと、
前記ユーザの食事に関するスケジュール情報をレコメンドするステップと、を実行し、
前記ユーザのスケジュール情報を取得するステップにおいて、前記ユーザの起床時刻を取得し、
前記ユーザの食事に関するスケジュール情報を生成するステップにおいて、前記ユーザのスケジュール情報に基づいて前記ユーザの生活リズムを推測し、前記起床時刻を起点として、前記ユーザの行動予定情報から食事が不可能な時間帯を除外して前記ユーザの１日の行動の中で食事が可能な時間帯を推測し、前期食事が可能な時間帯から前記ユーザの健康上好ましい食事時間を推測して前記ユーザの生活リズム及び食事に関するスケジュール情報を生成し、
前記ユーザの食事に関するスケジュール情報をレコメンドするステップにおいて、前記ユーザの生活リズム及び食事に関するスケジュール情報をレコメンドする、方法。
【請求項１８】
プロセッサを備えるコンピュータに実行させ、食事に関する情報をレコメンドするサービスを提供するためのプログラムであって、
前記プログラムは、前記プロセッサに、
前記サービスの提供を受けるユーザのスケジュール情報を取得するステップと、
前記ユーザの過去に摂取した食事に関する情報を取得するステップと、
前記ユーザの属性情報、前記スケジュール情報、及び前記ユーザの過去に摂取した食事に関する情報に基づき、前記ユーザの食事に関するスケジュール情報を生成するステップと、
前記ユーザの食事に関するスケジュール情報をレコメンドするステップと、を実行させ、
前記ユーザのスケジュール情報を取得するステップにおいて、前記ユーザの起床時刻を取得し、
前記ユーザの食事に関するスケジュール情報を生成するステップにおいて、前記ユーザのスケジュール情報に基づいて前記ユーザの生活リズムを推測し、前記起床時刻を起点として、前記ユーザの行動予定情報から食事が不可能な時間帯を除外して前記ユーザの１日の行動の中で食事が可能な時間帯を推測し、前期食事が可能な時間帯から前記ユーザの健康上好ましい食事時間を推測して前記ユーザの生活リズム及び食事に関するスケジュール情報を生成し、
前記ユーザの食事に関するスケジュール情報をレコメンドするステップにおいて、前記ユーザの生活リズム及び食事に関するスケジュール情報をレコメンドする、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、方法及びプログラムに関する。
【背景技術】
【０００２】
近年、インターネット技術の発展に伴い、ユーザに料理レシピ情報（以下、単に「レシピ情報」という。）を提供するＷｅｂサービスが提供されている。単なるレシピ情報だけではなく、複数の料理から構成される食事の献立を提供するＷｅｂサービスも提供されている。
【０００３】
また、特許文献１には、ユーザ（食事者）の行動予定を考慮し、栄養学上好ましい食事の献立（メニュー）を提案する食事メニュー提案システムの技術が開示されている。このシステムでは、ユーザの行動予定をパターン分析し、あらかじめ記憶されている活動パターンの中から合致する活動パターンを抽出することにより、栄養学上好ましい食事メニューを提案している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−２００９６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ユーザの健康上好ましい食事の態様は、食事内容だけではなく、食事をする時間帯も重要である。また、朝食、昼食、夕食のように、食事をする時間帯に応じて摂取するのが好ましい栄養素が異なるため、食事をする時間帯に応じて、健康上好ましい食事の献立も異なることがある。例えば、朝食には炭水化物を摂取するのが好ましく、夕食にはカロリーを控えめにするのが、栄養学上好ましいとされている。しかしながら、ユーザの生活スケジュールは様々であり、ユーザにとって実現可能な食事の時間帯や献立をレコメンドするのは、容易ではなかった。
【０００６】
そこで、本開示では、ユーザのスケジュール情報に応じた、最適な食事に関する情報をレコメンドすることが可能な技術について説明する。
【課題を解決するための手段】
【０００７】
本開示の一実施形態によると、制御部を備え、食事に関する情報をレコメンドするサービスを提供するための情報処理装置が提供される。制御部は、サービスの提供を受けるユーザのスケジュール情報を取得するスケジュール情報取得部と、ユーザの過去に摂取した食事に関する情報を取得する食事情報取得部と、ユーザの属性情報、スケジュール情報、及びユーザの過去に摂取した食事に関する情報に基づき、ユーザの食事に関する情報を生成する情報生成部と、ユーザの食事に関する情報をレコメンドするレコメンド部と、を備える。
【０００８】
一実施形態によると、プロセッサを備えるコンピュータにより実行され、食事に関する情報をレコメンドするサービスを提供するための方法が提供される。方法は、プロセッサが、サービスの提供を受けるユーザのスケジュール情報を取得するステップと、ユーザの過去に摂取した食事に関する情報を取得するステップと、ユーザの属性情報、スケジュール情報、及びユーザの過去に摂取した食事に関する情報に基づき、ユーザの食事に関する情報を生成するステップと、ユーザの食事に関する情報をレコメンドするステップと、を実行する。
【０００９】
また、一実施形態によると、プロセッサを備えるコンピュータに実行させ、食事に関する情報をレコメンドするサービスを提供するためのプログラムが提供される。プログラムは、プロセッサに、サービスの提供を受けるユーザのスケジュール情報を取得するステップと、ユーザの過去に摂取した食事に関する情報を取得するステップと、ユーザの属性情報、スケジュール情報、及びユーザの過去に摂取した食事に関する情報に基づき、ユーザの食事に関する情報を生成するステップと、ユーザの食事に関する情報をレコメンドするステップと、を実行させる。
【発明の効果】
【００１０】
本開示によれば、サービスの提供を受けるユーザのスケジュール情報と、ユーザの食事に関する情報を取得し、ユーザの食事に関する情報を生成してレコメンドする。これにより、ユーザのスケジュール情報に応じた、最適な食事に関する情報をレコメンドすることが可能になる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１のレコメンドシステム１の全体の構成を示す図である。
【図２】実施の形態１のレコメンドシステム１を構成する端末装置１０の機能的な構成を示すブロック図である。
【図３】実施の形態１のレコメンドシステム１を構成するサーバ２０の機能的な構成を示す図である。
【図４】サーバ２０が記憶する料理レシピデータベース２０２１、献立構成データベース２０２２のデータ構造を示す図である。
【図５】サーバ２０が記憶するユーザデータベース２０２３のデータ構造を示す図である。
【図６】実施の形態１のレコメンドシステム１により、レコメンド処理を行う流れの一例を示すフローチャートである。
【図７】実施の形態１のレコメンドシステム１により、レコメンド処理を行う流れの他の例を示すフローチャートである。
【図８】実施の形態１のレコメンドシステム１により、レコメンド処理を行う流れの他の例を示すフローチャートである。
【図９】レコメンド処理における端末装置１０のカレンダー表示の画面例を示す図である。
【図１０】レコメンド処理における端末装置１０の献立予定表示の画面例を示す図である。
【図１１】レコメンド処理における端末装置１０の献立詳細表示の画面例を示す図である。
【図１２】実施の形態２のレコメンドシステム１を構成するサーバ２０の機能的な構成を示す図である。
【図１３】実施の形態３のレコメンドシステム１を構成するサーバ２０の機能的な構成を示す図である。
【図１４】実施の形態３のレコメンドシステム１により、レコメンド処理を行う流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照しつつ、本開示の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称及び機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００１３】
＜概要＞
以下、本開示の実施の形態である、食事に関するスケジュール情報をレコメンドするサービスを提供するレコメンドシステムについて説明する。このレコメンドシステムは、例えば、ユーザにとって健康上好ましい食事に関する情報をレコメンドするためのシステムである。食事に関する情報とは、例えば、ユーザの食事に関するスケジュールや献立、料理レシピの情報である。
【００１４】
健康上好ましい食事をするためには、食事内容、具体的には栄養バランスが取れていることも重要であるが、ユーザの生活リズムの中で適切なタイミングで食事を摂取することも重要である。例えば、栄養学上好ましいとされている食事のスケジュールとして、起床後一定の時間内に朝食を摂ること、一日のうちに朝食、昼食、夕食を一定の時間間隔を空けて摂取すること、夕食後一定時間を空けてから就寝すること、等がある。また、食事をする時間帯、具体的には朝食、昼食、夕食に応じて、摂取するのが好ましい栄養素が異なるものとされている。例えば、栄養学上好ましいとされている食事タイミングごとの食事内容として、朝食には炭水化物を摂取すること、夕食にはカロリーを控えめにすること、等がある。
【００１５】
しかしながら、ユーザの職業、年齢層、同居家族の有無等によって、生活リズムは様々であり、それぞれ異なる生活スケジュールの中において、最適な食事のスケジュールもそれぞれ異なる。そのため、このレコメンドシステムでは、ユーザの年齢、性別等の属性情報を取得すると共に、ユーザの生活スケジュールを把握するため、ユーザのスケジュール情報を取得している。また、ユーザが実際にどのような食事を摂っているのかを把握するため、ユーザの過去に摂取した食事に関する情報、例えばユーザが実際に摂取した食事を撮影した画像データからどのような食事を摂取したのか、といった情報を取得している。
【００１６】
さらに、このレコメンドシステムでは、取得したユーザの属性情報、スケジュール情報、過去に摂取した食事に関する情報、家族構成、及び調理スキルに基づき、当該ユーザの食事に関する情報、例えばユーザの食事スケジュールや献立を最適化して情報生成を行い、レコメンドしている。レコメンドするスケジュール情報は、例えば、食事を開始すべき時刻や、レコメンドした献立を調理するための時間を考慮した調理開始時刻、さらにはユーザのスケジュールを考慮した食材を購入するための移動開始時刻等である。また、食事の献立をレコメンドすると共に、食事の料理レシピもレコメンドしている。
【００１７】
さらにまた、このレコメンドシステムでは、レコメンドしたユーザの食事スケジュールや献立と、その後のスケジュール情報や食事を撮影した画像データとを比較し、これらの情報に基づいてさらに最適化を行い、情報生成を行ってレコメンドする。このような構成により、例えば、ユーザが健康上より好ましい食事をするように導くことを目的としている。
【００１８】
＜第１の実施の形態＞
以下、レコメンドシステム１について説明する。以下の説明では、例えば、端末装置１０がサーバ２０へアクセスすることにより、サーバ２０が、端末装置１０で画面を生成するための情報を応答する。端末装置１０は、サーバ２０から受信した情報に基づいて画面を生成し表示する。また、例えば、端末装置１０には、サーバ２０を運営する管理者が提供するアプリ（例えば、食事等に関するスケジュール情報や献立情報をレコメンドするレコメンドアプリ）がインストールされている。端末装置１０は、当該アプリが起動しているときにサーバ２０に情報送信リクエストを送信し、当該情報送信リクエストに従って、サーバ２０が送信した情報を受信して画面を生成し、表示する。
【００１９】
＜１  レコメンドシステム１の全体構成＞
図１は、レコメンドシステム１の全体の構成を示す図である。図１に示すように、レコメンドシステム１は、複数の端末装置（図１では、端末装置１０Ａ及び端末装置１０Ｂを示している。以下、総称して「端末装置１０」ということもある）と、サーバ２０とを含む。端末装置１０と、サーバ２０とは、ネットワーク８０を介して相互に通信可能に接続されている。ネットワーク８０は、有線または無線ネットワークにより構成される。
【００２０】
端末装置１０は、各ユーザが操作する装置である。ここで、ユーザとは、レコメンドシステム１により食事に関する情報のレコメンドを受けるユーザである。端末装置１０は、移動体通信システムに対応したスマートフォン、タブレット等の携帯端末等により実現される。この他、端末装置１０は、例えば据え置き型のＰＣ（Personal Computer）、ラップトップＰＣであるとしてもよい。図１に端末装置１０Ａとして示すように、端末装置１０は、通信ＩＦ（Interface）１２と、入力装置１３と、出力装置１４と、メモリ１５と、記憶部１６と、プロセッサ１９とを備える。
【００２１】
端末装置１０は、ネットワーク８０を介してサーバ２０と通信可能に接続される。端末装置１０は、４Ｇ、５Ｇ、ＬＴＥ（Long Term Evolution）等の通信規格に対応した無線基地局８１、ＩＥＥＥ（Institute of Electrical and Electronics Engineers）８０２．１１等の無線ＬＡＮ（Local Area Network）規格に対応した無線ＬＡＮルータ８２等の通信機器と通信することにより、ネットワーク８０に接続される。
【００２２】
通信ＩＦ１２は、端末装置１０が外部の装置と通信するため、信号を入出力するためのインタフェースである。入力装置１３は、ユーザからの入力操作を受け付けるための入力装置（例えば、タッチパネル、タッチパッド、マウス等のポインティングデバイス、キーボード等）である。出力装置１４は、ユーザに対し情報を提示するための出力装置（ディスプレイ、スピーカ等）である。メモリ１５は、プログラム、及び、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えばＤＲＡＭ（Dynamic Random Access Memory）等の揮発性のメモリである。記憶部１６は、データを保存するための記憶装置であり、例えばフラッシュメモリ、ＨＤＤ（Hard Disc Drive）である。プロセッサ１９は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路等により構成される。
【００２３】
サーバ２０は、ユーザにレコメンドするための献立や料理レシピに関する情報、ユーザの属性情報やスケジュール情報、食事を撮影した画像データ等の過去に摂取した食事に関する情報を管理する装置である。サーバ２０は、ユーザの属性情報の入力を受け付け、スケジュール情報を取得し、過去に摂取した食事に関する情報を取得する。また、サーバ２０は、ユーザの属性情報、スケジュール情報、及び過去に摂取した食事に関する情報に基づき、食事に関する情報の生成を行い、ユーザにレコメンドを行うため、食事に関する情報を端末装置１０へ送信する。
【００２４】
サーバ２０は、ネットワーク８０に接続されたコンピュータである。サーバ２０は、通信ＩＦ２２と、入出力ＩＦ２３と、メモリ２５と、ストレージ２６と、プロセッサ２９とを備える。
【００２５】
通信ＩＦ２２は、サーバ２０が外部の装置と通信するため、信号を入出力するためのインタフェースである。入出力ＩＦ２３は、ユーザからの入力操作を受け付けるための入力装置、及び、ユーザに対し情報を提示するための出力装置とのインタフェースとして機能する。メモリ２５は、プログラム、及び、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えばＤＲＡＭ（Dynamic Random Access Memory）等の揮発性のメモリである。ストレージ２６は、データを保存するための記憶装置であり、例えばフラッシュメモリ、ＨＤＤ（Hard Disc Drive）である。プロセッサ２９は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路等により構成される。
【００２６】
＜１．１  端末装置１０の構成＞
図２は、実施の形態１のレコメンドシステム１を構成する端末装置１０のブロック図である。図２に示すように、端末装置１０は、複数のアンテナ（アンテナ１１１、アンテナ１１２）と、各アンテナに対応する無線通信部（第１無線通信部１２１、第２無線通信部１２２）と、操作受付部１３０（タッチ・センシティブ・デバイス１３１及びディスプレイ１３２を含む）と、音声処理部１４０と、マイク１４１と、スピーカ１４２と、位置情報センサ１５０と、カメラ１６０と、記憶部１７０と、制御部１８０とを含む。端末装置１０は、図２では特に図示していない機能及び構成（例えば、電力を保持するためのバッテリー、バッテリーから各回路への電力の供給を制御する電力供給回路等）も有している。図２に示すように、端末装置１０に含まれる各ブロックは、バス等により電気的に接続される。
【００２７】
アンテナ１１１は、端末装置１０が発する信号を電波として放射する。また、アンテナ１１１は、空間から電波を受信して受信信号を第１無線通信部１２１へ与える。
【００２８】
アンテナ１１２は、端末装置１０が発する信号を電波として放射する。また、アンテナ１１２は、空間から電波を受信して受信信号を第２無線通信部１２２へ与える。
【００２９】
第１無線通信部１２１は、端末装置１０が他の無線機器と通信するため、アンテナ１１１を介して信号を送受信するための変復調処理等を行う。第２無線通信部１２２は、端末装置１０が他の無線機器と通信するため、アンテナ１１２を介して信号を送受信するための変復調処理等を行う。第１無線通信部１２１と第２無線通信部１２２とは、チューナー、ＲＳＳＩ（Received Signal Strength Indicator）算出回路、ＣＲＣ（Cyclic Redundancy Check）算出回路、高周波回路等を含む通信モジュールである。第１無線通信部１２１と第２無線通信部１２２とは、端末装置１０が送受信する無線信号の変復調や周波数変換を行い、受信信号を制御部１８０へ与える。
【００３０】
操作受付部１３０は、ユーザの入力操作を受け付けるための機構を有する。具体的には、操作受付部１３０は、タッチスクリーンとして構成され、タッチ・センシティブ・デバイス１３１と、ディスプレイ１３２とを含む。
【００３１】
タッチ・センシティブ・デバイス１３１は、端末装置１０のユーザの入力操作を受け付ける。タッチ・センシティブ・デバイス１３１は、例えば静電容量方式のタッチパネルを用いることによって、タッチパネルに対するユーザの接触位置を検出する。タッチ・センシティブ・デバイス１３１は、タッチパネルにより検出したユーザの接触位置を示す信号を入力操作として制御部１８０へ出力する。
【００３２】
ディスプレイ１３２は、制御部１８０の制御に応じて、画像、動画、テキスト等のデータを表示する。ディスプレイ１３２は、例えばＬＣＤ（Liquid Crystal Display）や有機ＥＬ（Electro-Luminescence）ディスプレイによって実現される。
【００３３】
音声処理部１４０は、音声信号の変復調を行う。音声処理部１４０は、マイク１４１から与えられる信号を変調して、変調後の信号を制御部１８０へ与える。また、音声処理部１４０は、音声信号をスピーカ１４２へ与える。音声処理部１４０は、例えば音声処理用のプロセッサによって実現される。マイク１４１は、音声入力を受け付けて、当該音声入力に対応する音声信号を音声処理部１４０へ与える。スピーカ１４２は、音声処理部１４０から与えられる音声信号を音声に変換して当該音声を端末装置１０の外部へ出力する。
【００３４】
位置情報センサ１５０は、端末装置１０の位置を検出するセンサであり、例えばＧＰＳ（Global Positioning System）モジュールである。ＧＰＳモジュールは、衛星測位システムで用いられる受信装置である。衛星測位システムでは、少なくとも３個または４個の衛星からの信号を受信し、受信した信号に基づいて、ＧＰＳモジュールが搭載される端末装置１０の現在位置を検出する。
【００３５】
カメラ１６０は、受光素子により光を受光して、撮影画像として出力するためのデバイスである。カメラ１６０は、例えば、カメラ１６０から撮影対象までの距離を検出できる深度カメラである。
【００３６】
記憶部１７０は、例えばフラッシュメモリ等により構成され、端末装置１０が使用するデータ及びプログラムを記憶する。ある局面において、記憶部１７０は、ユーザ情報１７１を記憶する。
【００３７】
ユーザ情報１７１は、端末装置１０を介して、食事に関する情報のレコメンドを受けるユーザの情報である。ユーザ情報としては、サーバ２０に登録されているユーザを識別する情報（ユーザＩＤ）、氏名、年齢、性別等が含まれる。
【００３８】
制御部１８０は、記憶部１７０に記憶されるプログラムを読み込んで、プログラムに含まれる命令を実行することにより、端末装置１０の動作を制御する。制御部１８０は、例えば予め端末装置１０にインストールされているアプリケーションである。制御部１８０は、プログラムにしたがって動作することにより、入力操作受付部１８１と、送受信部１８２と、データ処理部１８３と、通知制御部１８４と、撮影データ送信部１８５と、位置情報送信部１８６としての機能を発揮する。
【００３９】
入力操作受付部１８１は、タッチ・センシティブ・デバイス１３１等の入力装置に対するユーザの入力操作を受け付ける処理を行う。入力操作受付部１８１は、タッチ・センシティブ・デバイス１３１に対してユーザが自己の指等を接触させた座標の情報に基づき、ユーザの操作がフリック操作であるか、タップ操作であるか、ドラッグ（スワイプ）操作であるか等の操作の種別を判定する。
【００４０】
送受信部１８２は、端末装置１０が、サーバ２０等の外部の装置と、通信プロトコルにしたがってデータを送受信するための処理を行う。
【００４１】
データ処理部１８３は、端末装置１０が入力を受け付けたデータに対し、プログラムにしたがって演算を行い、演算結果をメモリ等に出力する処理を行う。
【００４２】
通知制御部１８４は、ユーザに対し情報を提示する処理を行う。通知制御部１８４は、表示画像をディスプレイ１３２に表示させる処理、音声をスピーカ１４２に出力させる処理、振動をカメラ１６０に発生させる処理等を行う。
【００４３】
撮影データ送信部１８５は、ユーザの入力操作によりカメラ１６０が撮影画像として出力した撮影データを、サーバ２０へ送信する処理を行う。
【００４４】
位置情報送信部１８６は、位置情報センサ１５０が検出した端末装置１０の位置情報をサーバ２０へ送信する処理を行う。位置情報センサ１５０が所定の時間間隔で端末装置１０の位置情報を検出するので、位置情報送信部１８６は、サーバ２０からの送信要求に応じて最新の位置情報を送信する。
【００４５】
＜１．２  サーバ２０の機能的な構成＞
図３は、実施の形態１のレコメンドシステム１を構成するサーバ２０の機能的な構成を示す図である。図３に示すように、サーバ２０は、通信部２０１と、記憶部２０２と、制御部２０３としての機能を発揮する。
【００４６】
通信部２０１は、サーバ２０が外部の装置と通信するための処理を行う。
【００４７】
記憶部２０２は、サーバ２０が使用するデータ及びプログラムを記憶する。記憶部２０２は、料理レシピデータベース２０２１と、献立構成データベース２０２２と、ユーザデータベース２０２３と、レコメンドデータベース２０２４等を記憶する。
【００４８】
料理レシピデータベース２０２１は、レコメンドシステム１でレコメンドする献立を構成する、料理の情報及び料理のレシピ情報を保持するためのデータベースである。詳細は後述する。
【００４９】
献立構成データベース２０２２は、レコメンドシステム１でレコメンドする献立の特徴を示す情報と、献立を構成する料理の情報を保持するためのデータベースである。詳細は後述する。
【００５０】
ユーザデータベース２０２３は、レコメンドシステム１で食事に関する情報のレコメンドを受けるユーザの情報を保持するためのデータベースである。詳細は後述する。
【００５１】
レコメンドデータベース２０２４は、レコメンドシステム１でユーザに対してレコメンドを行った情報と、そのレコメンド情報に対するユーザのスケジュール情報や献立情報を保持するためのデータベースである。上記のように、レコメンドシステム１では、レコメンド情報と、そのレコメンド情報に対するユーザの情報とを比較し、最適化を行うため、これらの情報を紐付けたデータベースである。
【００５２】
制御部２０３は、サーバ２０のプロセッサがプログラムにしたがって処理を行うことにより、各種モジュールとして示す機能を発揮する。各種モジュールは、受信制御モジュール２０３１、送信制御モジュール２０３２、ユーザ情報受付モジュール２０３３、スケジュール情報取得モジュール（スケジュール情報取得部）２０３４、食事情報取得モジュール（食事情報取得部）２０３５、献立情報決定モジュール（情報生成部）２０３６、スケジュール情報生成モジュール（情報生成部）２０３７、レコメンドモジュール（レコメンド部）２０３８を含む。
【００５３】
受信制御モジュール２０３１は、サーバ２０が外部の装置から通信プロトコルにしたがって信号を受信する処理を制御する。
【００５４】
送信制御モジュール２０３２は、サーバ２０が外部の装置に対し通信プロトコルにしたがって信号を送信する処理を制御する。
【００５５】
ユーザ情報受付モジュール２０３３は、レコメンドシステム１を利用して食事に関する情報のレコメンドを受けるユーザが、端末装置１０を操作して、ユーザ登録を行い、ユーザの識別情報や属性情報の入力を行うので、端末装置１０から送信されるユーザの識別情報や属性情報を受け付ける処理を制御する。ユーザの識別情報や属性情報として、例えば、ユーザの氏名、年齢、性別、職業、既往症や病歴、アレルギー、食事に対する好み、といった情報を受け付ける。ユーザ情報受付モジュール２０３３は、例えば、ユーザの年齢、性別、職業、既往症や病歴、アレルギー、食事に対する好みのような情報を属性情報として受け付け、「シニア」、「男性１人暮らし」、「オフィスワーカ」、「糖尿病」、「薄味好み」のようなタグ情報を付与し、ユーザデータベース２０２３に格納する。さらに、ユーザ自身の情報だけではなく、ユーザの居住環境や家族構成のような環境情報を属性情報として受け付けてもよく、家族構成が複数人からなる場合、ユーザの家族の構成員ごとに上記の年齢、性別、職業、既往症や病歴、アレルギー、食事に対する好みのような情報を受け付け、タグ情報を付与してもよい。
【００５６】
また、ユーザ情報受付モジュール２０３３は、例えば、ユーザが所持している、または使用可能な調理器具の情報や、ユーザ自身の調理技術に関する調理スキル情報を属性情報として受け付け、「調理初心者」、「調理経験１０年」、「フードプロセッサ使用可能」、「複雑な調理は困難」のようなタグ情報を付与し、ユーザデータベース２０２３に格納してもよい。
【００５７】
さらに、ユーザ情報受付モジュール２０３３は、後述するスケジュール情報取得モジュール２０３４、及び食事情報取得モジュール２０３５で外部サーバから情報取得を行うための、アカウント情報（ＩＤ及びパスワード等）を受け付けてもよい。
【００５８】
スケジュール情報取得モジュール２０３４は、ユーザ情報受付モジュール２０３３でユーザ登録を行ったユーザの行動予定に関する、スケジュール情報を取得する処理を制御する。スケジュール情報取得モジュール２０３４は、例えば、ユーザの端末装置１０にカレンダーのような表示画面のタイムチャートを表示させ、ユーザが端末装置１０を操作し、タイムチャートの所定の時間帯をタップすることで選択し、ユーザの各種行動予定情報を入力するので、その入力情報を受け付け、当該ユーザの予定情報としてユーザデータベース２０２３に格納する。ユーザの各種行動予定情報とは、例えば、「出勤（電車）」、「勤務（オフィス）」、「昼食」、「就寝」等である。スケジュール情報取得モジュール２０３４は、例えば、端末装置１０にインストールされているアプリが備えるスケジュール機能により、タイムチャートを表示させ、スケジュール情報の入力を受け付けてもよい。また、スケジュール情報取得モジュール２０３４は、ユーザが入力したスケジュール情報だけではなく、ユーザが当該アプリを起動し、または献立情報の検索等に利用した時間を取得してもよい。
【００５９】
また、スケジュール情報取得モジュール２０３４は、ユーザ情報受付モジュール２０３３が受け付けたアカウント情報を使用して外部サーバにアクセスし、ユーザのスケジュール情報を取得してもよい。ここで、外部サーバは、主にクラウドサービスによりカレンダーアプリ等の形態で提供されているスケジュール管理システムのサーバであり、ユーザの各種予定情報を受け付けて当該ユーザの予定情報として登録することで、当該予定情報の時間になると通知を行うサービスを提供するシステムである。この場合、スケジュール情報取得モジュール２０３４は、アカウント情報のＩＤ及びパスワード等により所定の認証を行い、定期的にアクセスすることで当該ユーザのスケジュール情報を同期するために取得する。
【００６０】
また、スケジュール情報取得モジュール２０３４は、後述する食事情報取得モジュール２０３５が受け付けた食事の画像データから、ユーザのスケジュール情報を推測して取得してもよい。端末装置１０のカメラ１６０で撮影された画像データには、通常、Ｅｘｉｆ（Exchangeable image file format）等のフォーマットに従って撮影時刻の情報が埋め込まれている。そのため、スケジュール情報取得モジュール２０３４は、この情報を読み込んで画像データが撮影された時刻の情報を取得し、食事が開始された時刻を推測して取得する。
【００６１】
食事情報取得モジュール２０３５は、ユーザ情報受付モジュール２０３３でユーザ登録を行ったユーザの過去の食事に関する情報を取得する処理を制御する。ここで、ユーザの過去の食事に関する情報とは、例えば、ユーザが過去に実際に摂取した食事情報であり、具体的には、食事の献立、食事の量、及びこれらの情報から推測されるユーザの摂取栄養価の情報である。食事情報取得モジュール２０３５は、例えば、ユーザの端末装置１０に献立に含まれる食材や料理の一覧を表示させ、ユーザが端末装置１０を操作し、摂取した食材や料理をタップすることで選択し、またはテキスト入力で記載することで食事情報を入力するので、その入力情報を受け付け、当該ユーザの食事情報としてユーザデータベース２０２３に格納する。ユーザの食事情報とは、例えば、「ごはん（白米）  茶碗１杯（１５０ｇ）」、「豚肉の生姜焼き  １人分」、「牛乳  ２００ｍｌ」等である。
【００６２】
また、食事情報取得モジュール２０３５は、ユーザが端末装置１０のカメラ１６０で撮影した、ユーザが摂取した食事の画像データを取得し、ユーザの食事情報を推測して取得してもよい。食事情報取得モジュール２０３５は、例えば、ユーザが端末装置１０を操作して、撮影した食事の画像データをサーバ２０へ送信するので、この画像データを受信する。また、食事情報取得モジュール２０３５は、受信した画像データの画像解析を行うことで、ユーザが摂取した食事の献立及び食事の量を推測し、さらにこれらの情報から推測されるユーザの摂取栄養価の情報を取得する。食事情報取得モジュール２０３５は、例えば、端末装置１０にインストールされているアプリが備える食事記録機能により、カメラ機能を起動させ、食事の撮影を行わせてもよい。
【００６３】
食事情報取得モジュール２０３５で行われる画像データの画像解析は、例えば、既知の技術であるパターン認識技術が用いられ、写真の被写体である料理の外観やその料理が盛り付けられた食器等から特徴量抽出を行い、また、例えば料理レシピデータベース２０２１に格納されている料理の画像データからも同様に特徴量抽出を行い、所定の値以上の一致度で一致しているか否かで、料理の種類や量を推定する。また、食事情報取得モジュール２０３５で行われる画像データの画像解析において、料理レシピデータベース２０２１に格納されている料理の画像データからから、教師あり学習やディープラーニング等の手法による機械学習を行い、学習結果により料理の種類や量を推定してもよい。
【００６４】
また、食事情報取得モジュール２０３５は、ユーザ情報受付モジュール２０３３が受け付けたアカウント情報を使用して外部サーバにアクセスし、ユーザの食事の画像データを取得してもよい。ここで、外部サーバは、主にクラウドサービスにより提供されている写真や動画の画像データ共有サービスやＳＮＳであり、ユーザが食事を撮影した画像データを送信すると、その画像データを受け付けて公開するシステムである。この場合、食事情報取得モジュール２０３５は、アカウント情報のＩＤ及びパスワード（公開情報を取得する場合、パスワードはなくてもよい。）等により定期的にアクセスし、当該ユーザの画像データから食事の画像データを取得する。
【００６５】
さらに、食事情報取得モジュール２０３５は、後述するレコメンドモジュール２０３８でレコメンドされた食事の献立情報に対する紐付け情報を取得してもよい。紐付け情報とは、レコメンドされた食事の献立情報に対して、ユーザが実際にその献立（料理）を調理して食事をしたか、食事をした場合にはいつなのか、を示す情報である。例えば、ある献立をレコメンドされたユーザが、実際にはレコメンドされた日ではなく、翌日やさらにその後に食事をする場合や、夕食としてレコメンドしたが、実際には翌日以降の昼食として食事をする場合もあるため、食事情報取得モジュール２０３５は、レコメンドされた食事の献立情報と実際の食事の情報との紐づけ情報を取得する。食事情報取得モジュール２０３５は、具体的には、食事に関する情報を取得する際、ユーザに対してどのレコメンド情報に基づくものかを質問し、その質問に対する回答を取得してもよく、過去のレコメンド情報から推測してもよい。
【００６６】
献立情報決定モジュール２０３６は、ユーザ情報受付モジュール２０３３が受け付けたユーザの属性情報、スケジュール情報取得モジュール２０３４が取得したユーザのスケジュール情報、及び食事情報取得モジュール２０３５が取得したユーザの過去の食事に関する情報に基づき、ユーザが摂取する食事の献立情報を生成し、献立を決定する処理を制御する。このとき、献立情報決定モジュール２０３６は、ユーザが個々の状況に応じて健康上好ましい食事をするように、食事の献立情報を生成する。なお、献立情報決定モジュール２０３６は、所定の特徴から料理レシピデータベース２０２１の料理の情報を組み合わせ、献立構成データベース２０２２を参照して献立を決定してもよく、所定の特徴から献立構成データベース２０２２を参照し、当該特徴に該当する料理の特徴を料理レシピデータベース２０２１の料理の情報から組み合わせて献立を決定してもよい。また、献立情報決定モジュール２０３６は、献立の一部の料理（例えば、主菜）をレコメンドし、この料理、またはユーザから他の料理への変更情報を受け付け、変更された料理に合わせてユーザにその他の料理等（付け合わせ、主食、汁物等）を一覧表示して決定させ、献立を作成させて決定してもよい。
【００６７】
献立情報決定モジュール２０３６は、例えば、ユーザデータベース２０２３に格納されている、当該ユーザの年齢、性別、職業、既往症や病歴、アレルギー、食事に対する好み、居住環境、家屋構成、調理スキル等といった属性情報（病態情報、症状情報、嗜好情報、調理スキル情報、環境情報のうちの１つまたは複数）、及びスケジュール情報を参照し、これからレコメンドすべき献立の特徴を決定する。献立の特徴とは、その献立の全体または一部の食材や栄養価、調理をする上での特徴を示す情報であり、例えば、「簡単手軽」、「旬の食材」、「塩分ひかえめ」等の情報である。献立情報決定モジュール２０３６は、献立構成データベース２０２２を参照し、決定した特徴に合致する献立を抽出する。さらに、献立情報決定モジュール２０３６は、当該ユーザの過去の食事に関する情報から、直近の食事の献立と重複しないように献立を決定する。また、献立情報決定モジュール２０３６は、当該ユーザの属性情報、スケジュール情報、またはユーザの過去の食事に関する情報から、他のユーザに対してレコメンドした食事の献立情報を当該ユーザの献立として決定してもよい。
【００６８】
また、献立情報決定モジュール２０３６は、ユーザの家族構成に応じた献立を決定してもよい。献立情報決定モジュール２０３６は、ユーザの家族構成が複数人からなる場合、人数分の献立を決定するだけではなく、複数人の家族の状況に応じて最適な献立を決定する。具体的には、家族のうちの一部の者について、所定の食品についてのアレルギー情報が登録されている場合には、家族全員の献立の料理から当該食品を除外してもよく、家族のうちの一部の者について、所定の食品や料理ジャンルについての嗜好情報（主に嫌いなものについての情報）が登録されている場合、その者について代替可能な料理、例えば途中までの調理工程が共通する料理を含む献立としてもよい。また、家族のスケジュール情報を参照して共通の食事時間が確保可能な場合には、その食事時間に合わせた献立を決定し、共通の食事時間が確保不可能で家族の食事時間がずれる場合には、後で食事をする者が温め直して食事可能なように、温め直し可能な（味が劣化しにくい）料理を含む献立を決定してもよい。
【００６９】
また、献立情報決定モジュール２０３６は、ユーザが食事を調理するために購入した食材の情報の入力を、例えば、いわゆる買い物リストのような形式で受け付け、食材の情報から料理レシピデータベース２０２１を参照して献立を構成する料理を決定し、その他の料理を組み合わせて献立を決定してもよい。さらに、献立情報決定モジュール２０３６は、ユーザが過去に購入した食材の情報と、食事情報取得モジュール２０３５が取得した食事の情報から、余剰食材を推定し、余剰食材から献立を決定してもよい。例えば、キャベツを１個購入し、そのキャベツの１／２個を使用して調理をした場合、残りのキャベツ１／２個が余剰食材となっていることが把握できるので、残りのキャベツ１／２個を使用する料理が入った献立を決定してもよい。
【００７０】
さらに、献立情報決定モジュール２０３６は、後述するレコメンドモジュール２０３８でレコメンドされた食事の献立情報と、そのレコメンドに対するユーザの過去の食事に関する情報とを比較し、最適化を行って献立情報を決定してもよい。レコメンドした食事の献立情報についてフィードバックするためである。このとき、上記の紐づけ情報に基づいて最適化を行ってもよい。
【００７１】
スケジュール情報生成モジュール２０３７は、ユーザ情報受付モジュール２０３３が受け付けたユーザの属性情報、スケジュール情報取得モジュール２０３４が取得したユーザのスケジュール情報、食事情報取得モジュール２０３５が取得したユーザの過去の食事に関する情報に基づき、ユーザの食事に関するスケジュール情報を生成する処理を制御する。このとき、スケジュール情報生成モジュール２０３７は、ユーザが個々の状況に応じて健康上好ましい食事をするように、食事に関するスケジュール情報を生成する。
【００７２】
スケジュール情報生成モジュール２０３７は、例えば、ユーザの過去のスケジュール情報から、当該ユーザの起床時刻、仕事の勤務時間帯、運動を行う時間帯、就寝時刻等を把握し、これらの情報のうちいずれか１つまたは複数に基づき、ユーザが食事を開始すべき時刻を算出し、ユーザのスケジュール情報に当てはめて情報生成する。例えば、ユーザの就寝時刻を過去のスケジュール情報の平均値から算出し、夕食の終了時刻から睡眠時刻まで所定の時間（例えば、２時間）空けることが望ましいため、スケジュール情報生成モジュール２０３７は、睡眠時刻の所定時間に加えて、食事時間も考慮して夕食の開始時刻を決定する。また、スケジュール情報生成モジュール２０３７は、ユーザの家族構成が複数人からなる場合、ユーザの人数分のスケジュール情報に当てはめて情報生成する。具体的には、ユーザの家族全員について食事時間に相当する時間帯が空いている場合、家族の食事時間としてスケジュール情報を生成してもよく、家族のうちの一部の者について食事時間に相当する時間帯が空いていない場合、その者のみ異なる食事時間としてスケジュール情報を生成してもよい。さらに、スケジュール情報生成モジュール２０３７は、当該ユーザの属性情報、スケジュール情報、またはユーザの過去の食事に関する情報から、他のユーザに対してレコメンドしたスケジュール情報を当該ユーザのスケジュール情報として決定し、情報生成してもよい。
【００７３】
また、スケジュール情報生成モジュール２０３７は、例えば、算出したユーザが食事を開始すべき時刻から、食事の調理時間を考慮して、食事の調理を開始すべき時刻を算出し、ユーザのスケジュール情報に当てはめて情報生成してもよい。このとき、食事の調理時間は、献立情報決定モジュール２０３６が決定した献立を調理するための標準的な時間を適用してもよい。献立を調理するための時間は、例えば、料理レシピデータベース２０２１に格納されている料理の調理時間を、献立を構成する複数の料理について組み合わせを行い、同時進行可能な調理工程を考慮して算出される。
【００７４】
さらに、スケジュール情報生成モジュール２０３７は、例えば、算出した食事の調理を開始すべき時刻から、食材を購入するための時間を考慮して、食材の購入を開始すべき時刻を算出し、ユーザのスケジュール情報に当てはめて情報生成してもよい。食材を購入するための時間は、ユーザの過去のスケジュール情報から食材購入の時間を平均値等により求めてもよい。また、食材を購入する購入先（スーパーマーケット等の店舗）への移動時間を考慮して適用してもよい。
【００７５】
さらにまた、スケジュール情報生成モジュール２０３７は、例えば、起床時刻、運動を行う時間帯、就寝時刻といった生活リズムに関するスケジュール情報を生成してもよい。
【００７６】
さらに、スケジュール情報生成モジュール２０３７は、後述するレコメンドモジュール２０３８でレコメンドされたユーザの食事に関するスケジュール情報と、そのレコメンドに対するユーザのスケジュール情報とを比較し、最適化を行ってもよい。レコメンドしたスケジュール情報についてフィードバックするためである。
【００７７】
ここで、スケジュール情報取得モジュール２０３４によるユーザのスケジュール情報の取得、及びスケジュール情報生成モジュール２０３７によるユーザの生活リズムの推測について説明する。例えば、スケジュール情報取得モジュール２０３４は、ユーザの端末装置１０にインストールされている、サーバ２０を運営する管理者が提供するアプリが入力を促すことにより、ユーザの起床時刻の情報を取得する。このとき、ユーザの端末装置１０にインストールされている他のアプリに登録されているユーザの起床時刻の情報を取得してもよく、朝の時間帯に当該アプリが起動された場合にその時刻を起床時刻と推定してもよい。この起床時刻を起点として、スケジュール情報生成モジュール２０３７は、ユーザのスケジュール情報に基づいてユーザの１日の行動の中でどの時間帯に食事をすることが可能か、または所定の基準からユーザの健康上好ましいか、という点を考慮してユーザの食事時間を推測する。例えば、スケジュール情報生成モジュール２０３７は、食事情報取得モジュール２０３５が取得したユーザの食事情報の送信時刻から食事時間を推測してもよく、スケジュール情報取得モジュール２０３４が取得したスケジュール情報から食事ができそうにない時間帯を除外して食事時間を推測してもよい。具体的には、スケジュール情報に健康診断の予定がある場合、その前日の夜（例えば、午後１０時）以降は食事時間としないように推測する。
【００７８】
また、スケジュール情報生成モジュール２０３７は、ユーザのスケジュール情報に基づき、曜日ごとの行動パターンからユーザの食事時間を推測してもよい。例えば、過去のユーザのスケジュール情報から平日は仕事をしているので朝食時刻は早くなり、土曜、日曜及び祝日は朝食時刻が遅くなり、所定の曜日は在宅勤務の予定なので朝食時刻は少し遅くなるように推測する。また、ユーザ本人及び家族の年齢等から、通勤または通学していると推測し、曜日ごとの行動パターンを推測してユーザの食事時間を推測してもよい。さらに、休日と推測される日に外出予定のスケジュール情報（例えば、公共交通機関の予約情報や宿泊施設の予約情報）がある場合、食事時間が変動すると推測してもよい。
【００７９】
また、スケジュール情報生成モジュール２０３７は、推測した食事時間から逆算を行い、ユーザの調理時間を推測する。例えば、食事時間の直前であり、ユーザのスケジュール情報が入っていない時間帯を調理時間と推測してもよく、家族の送迎や帰宅時刻を推測して調理時間を推測してもよい。このとき、決定した献立の標準的な調理時間（または、他のユーザの調理時間）からユーザの調理時間が決定されるが、ユーザの調理スキル情報から調整されてもよい。
【００８０】
さらに、スケジュール情報生成モジュール２０３７は、推測した食事時間から逆算を行い、食材の購入に行ける時間帯を推測する。例えば、ユーザのスケジュール情報が入っていない時間帯を食材の購入に行ける時間帯と推測してもよく、家族の送迎や帰宅時刻を推測して食材の購入に行ける時間帯を推測してもよい。食材の購入に行ける時間帯を推測する際、ユーザの住所情報等から、食材を購入する購入先の開店時刻や当該店舗への移動時間を考慮して推測してもよい。また、スケジュール情報生成モジュール２０３７は、ユーザが購入した食材の情報から食材の購入に必要な時間を推測してもよく、例えば、食材の残りが十分にある場合には食材の購入に必要な時間の短縮が可能であると推測してもよく、または食材の購入の必要がないと推測してもよい。
【００８１】
さらにまた、スケジュール情報生成モジュール２０３７は、位置情報センサ１５０の検出結果や、ユーザの端末装置１０にインストールされている、ユーザの生体情報や健康に関する情報を登録するアプリに登録されている歩数データ等の情報との連携を行い、ユーザの通勤時間や運動時間（例えば、ジョギングの時間）を推測してもよい。また、ユーザの生体情報に含まれる体温が高い場合や、推測されｔ通勤時間や運動時間に移動情報や歩数が検出されない場合、ユーザの体調が以上であると推測してもよい。この場合、献立情報決定モジュール２０３６は、体調不良時の献立を決定してもよい。
【００８２】
レコメンドモジュール２０３８は、献立情報決定モジュール２０３６が決定した食事の献立情報、及びスケジュール情報生成モジュール２０３７が決定した食事に関するスケジュール情報をレコメンドするため、当該ユーザの端末装置１０へ送信する処理を制御する。レコメンドモジュール２０３８は、食事の献立情報、食事に関するスケジュール情報のうちいずれか１つをレコメンドしてもよく、両方をレコメンドしてもよい。食事の献立情報をレコメンドする場合、料理のレシピ情報や、料理の完成状態を撮影した画像データも端末装置１０へ送信してもよい。また、食事に関するスケジュール情報をレコメンドする場合、ユーザの端末装置１０にカレンダーのような表示画面にタイムチャートを表示させ、当該スケジュール情報を表示させてレコメンドしてもよい。また、レコメンドモジュール２０３８は、ユーザに対してレコメンドを行った食事の献立情報及び食事に関するスケジュール情報を、レコメンドデータベース２０２４に格納する。
【００８３】
＜２  データ構造＞
図４は、サーバ２０が記憶する料理レシピデータベース２０２１、献立構成データベース２０２２のデータ構造を示す図である。また、図５は、サーバ２０が記憶するユーザデータベース２０２３のデータ構造を示す図である。
【００８４】
図４に示すように、料理レシピデータベース２０２１のレコードのそれぞれは、項目「料理ＩＤ」と、項目「料理名」と、項目「料理特徴ＩＤ」と、項目「食材」と、項目「レシピ情報」等を含む。
【００８５】
項目「料理ＩＤ」は、サーバ２０の献立情報決定モジュール２０３６が決定する、献立を構成する料理の情報それぞれを識別する情報である。
【００８６】
項目「料理名」は、サーバ２０の献立情報決定モジュール２０３６が決定する、献立を構成する料理の名称の情報である。
【００８７】
項目「料理特徴ＩＤ」は、サーバ２０の献立情報決定モジュール２０３６が決定する、献立を構成する料理の特徴を識別する情報であり、例えば、料理の特徴を示す「簡単手軽」、「旬の食材」、「塩分ひかえめ」等の情報ごとにタグ付けされた識別情報が格納されている。なお、項目「料理特徴ＩＤ」には、料理の特徴を示す「簡単手軽」等の文言がそのまま格納されてもよい。
【００８８】
項目「食材」は、サーバ２０の献立情報決定モジュール２０３６が決定する、献立を構成する料理を調理するために必要な食材の情報である。図４に示すように、項目「食材」には、食材の分量の情報が含まれてもよく、所定の人数分の分量として統一された情報が格納されてもよい。
【００８９】
項目「レシピ情報」は、サーバ２０の献立情報決定モジュール２０３６が決定する、献立を構成する料理を調理するための工程を示すレシピ情報であり、具体的には、項目「調理工程」と、項目「画像ＩＤ」等を含む。
【００９０】
項目「調理工程」は、料理を調理するための工程を詳細に示すであり、料理レシピをレコメンドする際にＷｅｂページに掲載される文言情報である。
【００９１】
項目「画像ＩＤ」は、項目「調理工程」の工程の状態を示す画像データを識別する情報であり、料理レシピをレコメンドする際にＷｅｂページに掲載される画像データである。
【００９２】
献立情報決定モジュール２０３６は、献立を構成する料理を決定する際に、料理レシピデータベース２０２１を参照する。
【００９３】
献立構成データベース２０２２のレコードのそれぞれは、項目「献立ＩＤ」と、項目「特徴ＩＤ」と、項目「料理ＩＤ」と、項目「料理特徴ＩＤ」等を含む。
【００９４】
項目「献立ＩＤ」は、サーバ２０の献立情報決定モジュール２０３６が決定する、献立の情報それぞれを識別する情報である。
【００９５】
項目「特徴ＩＤ」は、サーバ２０の献立情報決定モジュール２０３６が決定する、献立の特徴を識別する情報であり、例えば、献立を構成する料理の特徴や、献立全体の特徴を示す「塩分ひかえめ」、「低糖質」、「シニア向け」等の情報ごとにタグ付けされた識別情報が格納されている。なお、項目「特徴ＩＤ」には、献立の特徴を示す「塩分ひかえめ」等の文言がそのまま格納されてもよい。
【００９６】
項目「料理ＩＤ」は、サーバ２０の献立情報決定モジュール２０３６が決定する、献立を構成する料理の情報それぞれを識別する情報であり、料理レシピデータベース２０２１の項目「料理ＩＤ」に対応している。
【００９７】
項目「料理特徴ＩＤ」は、サーバ２０の献立情報決定モジュール２０３６が決定する、献立を構成する料理の特徴を識別する情報であり、料理レシピデータベース２０２１の項目「料理特徴ＩＤ」に対応している。
【００９８】
献立情報決定モジュール２０３６は、献立を決定する際に、献立構成データベース２０２２を参照する。
【００９９】
図５に示すように、ユーザデータベース２０２３のレコードのそれぞれは、項目「ユーザＩＤ」と、項目「氏名」と、項目「年齢」と、項目「性別」と、項目「特徴ＩＤ」と、項目「スケジュール情報」と、項目「食事情報」と、項目「閲覧登録情報」と、項目「購入履歴情報」等を含む。
【０１００】
項目「ユーザＩＤ」は、レコメンドシステム１で食事に関する情報のレコメンドを受けるユーザそれぞれを識別する情報である。
【０１０１】
項目「氏名」は、レコメンドシステム１で食事に関する情報のレコメンドを受けるユーザの氏名を示す情報である。
【０１０２】
項目「年齢」は、レコメンドシステム１で食事に関する情報のレコメンドを受けるユーザの年齢を示す情報である。
【０１０３】
項目「性別」は、レコメンドシステム１で食事に関する情報のレコメンドを受けるユーザの性別を示す情報である。
【０１０４】
項目「特徴ＩＤ」は、レコメンドシステム１で食事に関する情報のレコメンドを受けるユーザの特徴を識別する情報であり、献立構成データベース２０２２の項目「特徴ＩＤ」に対応している。項目「特徴ＩＤ」は、ユーザ情報受付モジュール２０３３が受け付けたユーザの属性情報等に基づき、ユーザの特徴を示すタグ情報を付与したものである。
【０１０５】
項目「スケジュール情報」は、レコメンドシステム１で食事に関する情報のレコメンドを受けるユーザのスケジュール情報であり、スケジュール情報取得モジュール２０３４が取得したスケジュール情報である。項目「スケジュール情報」は、具体的には、項目「日時」と、項目「摘要」等を含む。
【０１０６】
項目「日時」は、スケジュール情報の日時を示す情報である。項目「日時」は、ある時間帯を示す情報でもよく、特定の時刻を示す情報でもよい。
【０１０７】
項目「摘要」は、スケジュール情報の内容を示す情報であり、例えば、図５に示すように、ユーザの各種行動予定情報の内容を示す「勤務（オフィス）」、「夕食」等が格納されている。
【０１０８】
項目「食事情報」は、レコメンドシステム１で食事に関する情報のレコメンドを受けるユーザの過去の食事に関する情報であり、食事情報取得モジュール２０３５が取得した食事情報、例えばユーザが摂取した食事を撮影した画像データである。項目「食事情報」は、具体的には、項目「受信日時」と、項目「画像ＩＤ」等を含む。
【０１０９】
項目「受信日時」は、ユーザの過去の食事に関する情報、例えばユーザが摂取した食事の画像データをサーバ２０で受信した日時を示す情報である。
【０１１０】
項目「画像ＩＤ」は、ユーザが摂取した食事の画像データを識別する情報である。項目「画像ＩＤ」には、画像データが格納されてもよい。
【０１１１】
項目「閲覧登録情報」は、レコメンドシステム１で食事に関する情報のレコメンドを受けるユーザが過去に閲覧した料理に関する情報であり、具体的には、項目「閲覧日時」と、項目「料理ＩＤ」等を含む。当該項目の処理については後述する。
【０１１２】
項目「閲覧日時」は、ユーザが過去に、料理レシピデータベース２０２１に格納されている料理の情報を閲覧した日時を示す情報である。
【０１１３】
項目「料理ＩＤ」は、ユーザが過去に閲覧した料理の情報それぞれを識別する情報であり、料理レシピデータベース２０２１の項目「料理ＩＤ」に対応している。
【０１１４】
項目「購入履歴情報」は、レコメンドシステム１で食事に関する情報のレコメンドを受けるユーザが過去に購入した食材に関する情報であり、献立情報決定モジュール２０３６が受け付けたユーザの食材購入情報である。項目「購入履歴情報」は、具体的には、項目「日時」と、項目「購入品」等を含む。当該項目の処理については後述する。
【０１１５】
項目「日時」は、ユーザが過去に食材を購入した日時を示す情報である。ユーザが入力した日時情報でもよく、ユーザが購入した食材の情報を端末装置１０から送信し、サーバ２０で受信した日時情報でもよい。
【０１１６】
項目「購入品」は、ユーザが過去に購入した食材の名称や分量を示す情報である。
【０１１７】
ユーザ情報受付モジュール２０３３は、ユーザの端末装置１０から送信されたユーザの識別情報や属性情報を受け付けると、ユーザデータベース２０２３に格納する。スケジュール情報取得モジュール２０３４は、スケジュール情報を取得すると、ユーザデータベース２０２３の項目「スケジュール情報」に格納する。食事情報取得モジュール２０３５は、ユーザの過去の食事に関する情報を取得すると、ユーザデータベース２０２３の項目「食事情報」に格納する。また、献立情報決定モジュール２０３６は、ユーザの購入した食材の情報を取得すると、ユーザデータベース２０２３の項目「購入履歴情報」に格納する。
【０１１８】
＜３  動作＞
以下、図６ないし図８を参照しながら、実施の形態１におけるレコメンドシステム１によるレコメンド処理について説明する。
【０１１９】
図６は、実施の形態１のレコメンドシステム１により、レコメンド処理を行う流れの一例を示すフローチャートである。
【０１２０】
ステップＳ１１１において、端末装置１０の入力操作受付部１８１は、ユーザからレコメンドシステム１のサービスを利用するため、ユーザ情報の入力操作を受け付ける。例えばユーザは、サーバ２０が提供するＷｅｂページを参照し、ユーザの識別情報や属性情報を入力する操作を行う。送受信部１８２は、ユーザの識別情報や属性情報をサーバ２０へ送信する。
【０１２１】
ステップＳ１２１において、サーバ２０のユーザ情報受付モジュール２０３３は、端末装置１０から送信されたユーザの識別情報や属性情報を、通信部２０１を介して受け付ける。ユーザ情報受付モジュール２０３３は、受け付けたユーザの識別情報や属性情報を、ユーザデータベース２０２３に格納する処理を行う。
【０１２２】
ステップＳ１１２において、端末装置１０の入力操作受付部１８１は、ユーザから自己の行動予定に関する、スケジュール情報の入力操作を受け付ける。例えば、通知制御部１８４は、ディスプレイ１３２にカレンダーのような表示画面のタイムチャートを表示させ、入力操作受付部１８１は、ユーザがタイムチャートの所定の時間帯をタップすることで行う各種行動予定情報の入力操作を受け付ける。送受信部１８２は、スケジュール情報をサーバ２０へ送信する。
【０１２３】
ステップＳ１２２において、サーバ２０のスケジュール情報取得モジュール２０３４は、端末装置１０から送信されたユーザのスケジュール情報を、通信部２０１を介して受け付ける。スケジュール情報取得モジュール２０３４は、受け付けたユーザのスケジュール情報を、ユーザデータベース２０２３の項目「スケジュール情報」に格納する処理を行う。
【０１２４】
ステップＳ１１３において、端末装置１０の入力操作受付部１８１は、ユーザから自己の過去の食事に関する情報の入力操作を受け付ける。例えば、通知制御部１８４は、ディスプレイ１３２に献立に含まれる食材や料理の一覧を表示させ、入力操作受付部１８１は、ユーザが摂取した食材や料理をタップすることで選択し、またはテキスト入力で記載することで行う過去の食事に関する情報の入力操作を受け付ける。また、例えば、入力操作受付部１８１は、ユーザからカメラ１６０の操作を受け付ける。カメラ１６０は、ユーザの入力操作により撮影対象であるユーザの食事の撮影を行う。データ処理部１８３は、カメラ１６０が撮影した画像データと、撮影したときの時期情報とを記憶部１７０に格納する。送受信部１８２は、過去の食事に関する情報（食事の画像データ）をサーバ２０へ送信する。
【０１２５】
ステップＳ１２３において、サーバ２０の食事情報取得モジュール２０３５は、端末装置１０から送信されたユーザの過去の食事に関する情報（食事の画像データ）を、通信部２０１を介して受け付ける。食事情報取得モジュール２０３５は、受け付けたユーザの過去の食事に関する情報を、ユーザデータベース２０２３の項目「食事情報」に格納する処理を行う。
【０１２６】
ステップＳ１２４において、サーバ２０の献立情報決定モジュール２０３６は、ステップＳ１２１で受け付けたユーザの属性情報、ステップＳ１２２で取得したユーザのスケジュール情報、及びステップＳ１２３で取得したユーザの過去の食事に関する情報に基づき、料理レシピデータベース２０２１及び献立構成データベース２０２２を参照してユーザが摂取する食事の献立を決定して献立情報を生成する処理を行う。このとき、献立情報決定モジュール２０３６は、ユーザが個々の状況に応じて健康上好ましい食事をするように、食事の献立情報を生成する。
【０１２７】
ステップＳ１２５において、サーバ２０のスケジュール情報生成モジュール２０３７は、ステップＳ１２１で受け付けたユーザの属性情報、ステップＳ１２２で取得したユーザのスケジュール情報、及びステップＳ１２３で取得したユーザの過去の食事に関する情報に基づき、ユーザの食事に関するスケジュール情報を生成する処理を行う。このとき、スケジュール情報生成モジュール２０３７は、ユーザが個々の状況に応じて健康上好ましい食事をするように、食事の献立情報を生成する。
【０１２８】
ステップＳ１２６において、サーバ２０のレコメンドモジュール２０３８は、ステップＳ１２４で決定した食事の献立情報、及びステップＳ１２５で決定した食事に関するスケジュール情報をレコメンドするため、当該ユーザの端末装置１０へ送信する処理を行う。レコメンドモジュール２０３８は、食事の献立情報及び食事に関するスケジュール情報を、ユーザが使用する端末装置１０に対して、通信部２０１を介して送信する処理を行う。
【０１２９】
ステップＳ１１６において、端末装置１０の送受信部１８２は、サーバ２０から送信された食事の献立情報及び食事に関するスケジュール情報を受け付ける。通知制御部１８４は、受け付けた食事の献立情報及び食事に関するスケジュール情報をディスプレイ１３２に表示させ、当該ユーザにレコメンドする。
【０１３０】
ステップＳ１２７において、サーバ２０のレコメンドモジュール２０３８は、ユーザに対してレコメンドを行った食事の献立情報及び食事に関するスケジュール情報を、レコメンドデータベース２０２４に格納する処理を行う。
【０１３１】
以上のように、レコメンドシステム１では、ユーザの属性情報、ユーザのスケジュール情報、及びユーザの過去の食事に関する情報に基づき、ユーザが摂取する食事の献立、及びユーザの食事に関するスケジュール情報が生成される。食事の献立、及びユーザの食事に関するスケジュール情報は、ユーザに対して送信されてレコメンドされる。これにより、ユーザの過去の食事状況及びスケジュール情報に応じた、最適な食事に関する情報をレコメンドすることが可能になる。
【０１３２】
図７は、実施の形態１のレコメンドシステム１により、レコメンド処理を行う流れの他の例を示すフローチャートである。図７に示すフローチャートにおけるレコメンド処理は、図６に示すフローチャートにおけるレコメンド処理のステップＳ１１１ないしステップＳ１２３に代えて、ステップＳ２１１ないしステップＳ２２３が行われるため、重複する処理については繰り返して説明しない。
【０１３３】
ステップＳ２１１において、端末装置１０の入力操作受付部１８１は、ユーザからユーザの識別情報や属性情報の入力操作を受け付けると共に、外部サーバから情報取得を行うためのアカウント情報（ＩＤ及びパスワード等）の入力操作を受け付ける。送受信部１８２は、ユーザの識別情報や属性情報、及びユーザのアカウント情報をサーバ２０へ送信する。
【０１３４】
ステップＳ２２１において、サーバ２０のユーザ情報受付モジュール２０３３は、端末装置１０から送信されたユーザの識別情報や属性情報、及びユーザのアカウント情報を、通信部２０１を介して受け付ける。ユーザ情報受付モジュール２０３３は、受け付けたユーザの識別情報や属性情報、及びユーザのアカウント情報を、ユーザデータベース２０２３に格納する処理を行う。
【０１３５】
ステップＳ２２２において、サーバ２０のスケジュール情報取得モジュール２０３４は、ステップＳ２２１で受け付けたアカウント情報を使用して外部サーバにアクセスし、ユーザのスケジュール情報を取得する。スケジュール情報取得モジュール２０３４は、取得したユーザのスケジュール情報を、ユーザデータベース２０２３の項目「スケジュール情報」に格納する処理を行う。
【０１３６】
ステップＳ２２３において、サーバ２０の食事情報取得モジュール２０３５は、ステップＳ２２１で受け付けたアカウント情報を使用して外部サーバにアクセスし、ユーザの食事の画像データを取得する。スケジュール情報取得モジュール２０３４は、受け付けたユーザの過去の食事に関する情報を、ユーザデータベース２０２３の項目「食事情報」に格納する処理を行う。
【０１３７】
以上のように、レコメンドシステム１では、入力されたアカウント情報を使用して外部サーバにアクセスされ、ユーザのスケジュール情報、及びユーザの食事の画像データが取得される。そのため、ユーザが普段使用しているスケジュール管理システムや画像データ共有サービス、またはＳＮＳから情報提供を受けることが可能になる。これにより、ユーザはレコメンドシステム１に入力することなく、他のクラウドサービス等と同期することが可能になる。
【０１３８】
図８は、実施の形態１のレコメンドシステム１により、レコメンド処理を行う流れの他の例を示すフローチャートである。図８に示すフローチャートにおけるレコメンド処理は、図６に示すフローチャートにおけるレコメンド処理のステップＳ１１２及びステップＳ１２２の後続処理として、ステップＳ３１１及びステップＳ３２１が追加され、ステップＳ１２４に代えて、ステップＳ３２２が行われるため、重複する処理については繰り返して説明しない。なお、ステップＳ３１１及びステップＳ３２１の処理は、ステップＳ１１２及びステップＳ１２２の後続処理とは限られず、例えば、ステップＳ１１３及びステップＳ１２３の後続処理として行われてもよい。また、図８に示すフローチャートでは、ステップＳ１１１及びステップＳ１２１の図示を省略する。
【０１３９】
ステップＳ３１１において、端末装置１０の入力操作受付部１８１は、ユーザから食事を調理するために購入した食材の情報の入力を受け付ける。送受信部１８２は、ユーザが購入した食材の情報をサーバ２０へ送信する。
【０１４０】
ステップＳ３２１において、サーバ２０の献立情報決定モジュール２０３６は、端末装置１０から送信された、ユーザが購入した食材の情報を、通信部２０１を介して受け付ける。献立情報決定モジュール２０３６は、受け付けたユーザが購入した食材の情報を、ユーザデータベース２０２３の項目「購入履歴情報」に格納する処理を行う。
【０１４１】
ステップＳ３２２において、サーバ２０の献立情報決定モジュール２０３６は、ステップＳ３２１で受け付けた食材の情報から、料理レシピデータベース２０２１及び献立構成データベース２０２２を参照して献立を構成する料理を決定し、その他の料理を組み合わせて献立を決定する処理を行う。
【０１４２】
以上のように、レコメンドシステム１では、入力されたユーザが購入した食材の情報に基づき、ユーザが摂取する食事の献立情報が生成され、献立が決定される。これにより、余剰食材を有効活用する献立のレコメンドが可能になる。
【０１４３】
＜４  画面例＞
以下、図９ないし図１１を参照しながら、レコメンドシステム１による食事の献立情報、及び食事に関するスケジュール情報のレコメンド処理の画面例について説明する。
【０１４４】
図９は、レコメンド処理における端末装置１０のカレンダー表示の画面例を示す図である。図９の画面例は、食事の献立情報、及び食事に関するスケジュール情報をレコメンドするために日付を選択するためのカレンダーが表示された状態の画面例を示す。図６ないし図８のステップＳ１１６に相当する。
【０１４５】
図９に示すように、端末装置１０のディスプレイ１３２には、カレンダー表示１０３１ａが表示される。カレンダー表示１０３１ａは、レコメンドするスケジュール情報の日付（例えば、当該サービスを提供するアプリを起動した日付）が含まれるカレンダーを月単位で表示したものであり、この表示形式は、１日単位、週単位、２カ月単位等に変更することが可能になっている。また、カレンダー表示１０３１ａには、レコメンドするスケジュール情報の日付を示す日付表示１０３１ｂが強調表示されており、この日付をタップ等することで選択すると、日付表示１０３１ｂが示す日付の、後述する献立予定が表示されるようになっている。また、このカレンダー表示１０３１ａ内の別の日付をタップ等することで選択すると、日付表示１０３１ｂが選択した別の日付に移動し、当該日付の献立予定が表示されるようになっている。
【０１４６】
図１０は、レコメンド処理における端末装置１０の献立予定表示の画面例を示す図である。図１０の画面例は、レコメンドされる１日の食事の献立情報、及び食事に関するスケジュール情報が表示された状態の画面例を示す。図６ないし図８のステップＳ１１６に相当する。
【０１４７】
図１０に示すように、端末装置１０のディスプレイ１３２には、レコメンドするスケジュール情報の日付を示す日付表示１０３２ａが上方に表示される。また、日付表示１０３２ａの下方には、食事の献立情報、及び食事に関するスケジュール情報として、レコメンドされる１日の食事に関するスケジュール情報の時間表示１０３２ｂと、それぞれの食事の献立概要情報１０３２ｃとが表示される。なお、献立概要情報１０３２ｃ以外に、起床や通勤といった食事以外の情報が時間表示１０３２ｂの下に表示されてもよい。この献立概要情報１０３２ｃをタップ等することで選択すると、当該献立の、後述する献立詳細が表示されるようになっている。また、この日付表示１０３２ａ内の別の日付をタップ等することで選択すると、日付表示１０３２ａが選択した別の日付に移動し、当該日付の食事の献立情報及び食事に関するスケジュール情報が表示されるようになっている。さらに、この画面には献立追加ボタン１０３２ｄが設けられており、この献立追加ボタン１０３２ｄをタップ等することで選択すると、任意の献立を追加できるようになっている。
【０１４８】
図１１は、レコメンド処理における端末装置１０の献立詳細表示の画面例を示す図である。図１１の画面例は、レコメンドされる献立情報の詳細が表示された状態の画面例を示す。図６ないし図８のステップＳ１１６に相当する。
【０１４９】
図１１に示すように、端末装置１０のディスプレイ１３２には、献立タイトル表示１０３３ａが表示される。献立タイトル表示１０３３ａは、当該献立の特徴を一言で示した文言がタイトルとして示され、さらに当該献立で摂取可能なエネルギーや栄養価等が表示されている。また、献立タイトル表示１０３３ａの下方には、詳細情報１０３３ｂが表示されており、この献立を食べる日時の情報や、当該献立の食事メモ（他のユーザによる感想等）、及び完成写真等が表示されている。詳細情報１０３３ｂに表示させる情報はこれらの情報に限られず、例えばレシピ情報や、その他の栄養価の情報が表示されてもよい。
【０１５０】
＜小括＞
以上のように、本実施形態によると、ユーザの属性情報、ユーザのスケジュール情報、及びユーザの過去の食事に関する情報が取得され、これらの情報に基づき、ユーザが摂取する食事の献立、及びユーザの食事に関するスケジュール情報が生成される。食事の献立、及びユーザの食事に関するスケジュール情報は、ユーザに対して送信されてレコメンドされる。これにより、ユーザの過去の食事状況及びスケジュール情報に応じた、最適な食事に関する情報をレコメンドすることが可能になる。
【０１５１】
また、レコメンドされるユーザの食事に関するスケジュール情報は、ユーザのスケジュール情報に当てはめて生成され、ユーザが食事を開始すべき時刻、食事の調理を開始すべき時刻、または食材の購入を開始すべき時刻がレコメンドされる。これにより、精度の高いスケジュール情報をレコメンドすることが可能になる。
【０１５２】
また、レコメンドされるユーザが摂取する食事の献立情報は、ユーザの病態情報、症状情報、嗜好情報といった属性情報、及びユーザのスケジュール情報に当てはめて生成され、レコメンドされる。これにより、ユーザの状態に合わせた献立をレコメンドすることが可能になる。
【０１５３】
＜第２の実施の形態＞
以下、レコメンドシステム１の他の実施の形態について説明する。
【０１５４】
＜１  レコメンドシステム１の全体構成＞
図１２は、実施の形態２のレコメンドシステム１を構成するサーバ２０の機能的な構成を示す図である。第２の実施の形態におけるレコメンドシステム１の全体の構成、端末装置１０の構成は、第１の実施の形態と同様であるので、繰り返して説明しない。サーバ２０の構成については、図１２に示すように、新たに献立履歴取得モジュール（献立履歴取得部）２０３９の機能を備える以外、第１の実施の形態と同様である。以下、第２の実施の形態における献立履歴取得モジュール２０３９の機能について説明する。
【０１５５】
献立履歴取得モジュール２０３９は、サーバ２０が提供する、料理レシピや献立の情報を掲載するＷｅｂページにユーザが端末装置１０でアクセスして閲覧した履歴の情報、ユーザが閲覧した料理レシピや献立の情報、またはユーザが料理の情報を閲覧して構成した献立の情報を登録した履歴の情報を取得する処理を制御する。献立履歴取得モジュール２０３９は、ユーザが閲覧した履歴の情報をアクセスログやトラッキングログ等から取得し、ユーザが登録した履歴の情報はユーザの操作により端末装置１０から送信されるので、その情報を受信して取得する。ユーザが登録した履歴の情報とは、例えば、お気に入りメニューとして登録する機能等により登録される情報や、お気に入りや将来作ってみたいと希望する料理を組み合わせて構成した献立を登録した情報である。
【０１５６】
本実施形態の献立情報決定モジュール２０３６は、ユーザの属性情報、ユーザのスケジュール情報、ユーザの過去の食事に関する情報に加えて、献立履歴取得モジュール２０３９が取得した履歴の情報に基づき、ユーザが摂取する食事の献立を決定し、献立情報を生成する処理を制御する。例えば、献立情報決定モジュール２０３６は、ユーザが登録した自己で構成した献立情報やお気に入りとして登録した献立情報から、当該献立の主菜の料理ジャンルが直近のユーザの過去の食事に関する情報と重複しない場合、献立として決定してもよい。また、献立情報決定モジュール２０３６は、ユーザの過去の食事に関する情報が、ユーザの家族構成から推測して余分に調理している料理がある場合、作り置きをしていると推測し、次の食事の際に当該料理やその料理を利用したアレンジ料理を献立として組み合わせてもよい。さらに、献立情報決定モジュール２０３６は、ユーザのスケジュール情報からユーザの仕事が休日であると推測される場合、調理時間が十分に確保できると推測し、ユーザの過去の食事に関する情報から比較して調理時間が余計に必要な、手間のかかる料理であっても、献立に組み合わせてもよく、さらに、上記のようなユーザが閲覧した履歴の情報やお気に入りとして登録されている料理の情報を献立に組み合わせて決定してもよい。さらにまた、ユーザが料理や献立の情報を閲覧している際、特定の検索ワードを用いている場合、当該検索ワードからユーザの症状や体調を推測し、当該検索ワードがタグ情報として登録されている献立情報を決定してもよい。例えば、検索ワードとして「風邪」、「二日酔い」等の検索がされた場合である。
【０１５７】
本実施形態のスケジュール情報生成モジュール２０３７は、例えば、ユーザが料理や献立、レシピの情報を長時間閲覧していたような場合、ユーザが調理することが可能な時間帯であると推測してもよい。また、スケジュール情報生成モジュール２０３７は、上記のようにユーザの過去の食事に関する情報から、ユーザが料理の作り置きをしていると推測される場合、調理時間の短縮が可能であると推測し、食事の調理を開始すべき時刻を算出してスケジュール情報を生成してもよい。さらに、スケジュール情報生成モジュール２０３７は、ユーザのスケジュール情報からユーザの仕事が休日であると推測される場合、調理時間が十分に確保できると推測し、調理時間を長めにするようにスケジュール情報を生成してもよい。
【０１５８】
＜２  データ構造＞
実施の形態２におけるデータ構造は、実施の形態１と同様である。
【０１５９】
献立履歴取得モジュール２０３９は、履歴の情報を取得すると、図５に示すユーザデータベース２０２３の項目「閲覧登録情報」に格納する。また、献立情報決定モジュール２０３６は、ユーザデータベース２０２３の項目「閲覧登録情報」を参照して、ユーザが摂取する食事の献立情報を生成する
【０１６０】
＜小括＞
以上のように、本実施形態によると、ユーザが閲覧した料理レシピや献立の情報の履歴の情報、またはユーザが登録した料理レシピや献立の情報の履歴の情報に基づき、ユーザが摂取する食事の献立情報を生成する。そのため、ユーザが興味ありと推測される料理レシピや献立の情報から献立をレコメンドすることができる。これにより、ユーザの嗜好に沿った献立のレコメンドが可能になる。
【０１６１】
＜第３の実施の形態＞
以下、レコメンドシステム１の他の実施の形態について説明する。
【０１６２】
＜１  レコメンドシステム１の全体構成＞
図１３は、実施の形態３のレコメンドシステム１を構成するサーバ２０の機能的な構成を示す図である。第３の実施の形態におけるレコメンドシステム１の全体の構成、端末装置１０の構成は、第１の実施の形態と同様であるので、繰り返して説明しない。サーバ２０の構成については、図１３に示すように、新たに位置情報取得モジュール（位置情報取得部）２０４０の機能を備える以外、第１の実施の形態と同様である。以下、第３の実施の形態における位置情報取得モジュール２０４０の機能について説明する。
【０１６３】
位置情報取得モジュール２０４０は、レコメンドシステム１を利用して食事に関する情報のレコメンドを受けるユーザが使用する、端末装置１０の位置情報送信部１８６が端末装置１０の位置情報をサーバ２０へ送信するので、送信された位置情報を取得する処理を制御する。位置情報取得モジュール２０４０は、端末装置１０に対して位置情報の送信要求を送信し、位置情報センサ１５０が検出した現在位置の情報を位置情報送信部１８６が送信するので、送信された位置情報を取得する。位置情報取得モジュール２０４０は、取得した位置情報をユーザデータベース２０２３に格納するが、図示を省略する。
【０１６４】
本実施形態のスケジュール情報生成モジュール２０３７は、位置情報取得モジュール２０４０が取得した位置情報に基づき、ユーザの現在位置から最適な食材を購入する購入先（スーパーマーケット等の店舗）を決定し、当該店舗への移動時間を考慮して食材の購入を開始すべき時刻を算出し、ユーザのスケジュール情報に当てはめて情報生成する処理を制御する。例えば、スケジュール情報生成モジュール２０３７は、食材の購入に行ける時間帯を推測する際、位置情報取得モジュール２０４０が取得した位置情報に基づき、食材を購入する購入先の開店時刻や当該店舗への移動時間を考慮して推測してもよい。
【０１６５】
＜２  データ構造＞
実施の形態３におけるデータ構造は、実施の形態１と同様である。
【０１６６】
＜３  動作＞
以下、図１４を参照しながら、実施の形態３におけるレコメンドシステム１によるレコメンド処理について説明する。図１４は、実施の形態３のレコメンドシステム１により、レコメンド処理を行う流れの一例を示すフローチャートである。図１４に示すフローチャートにおけるレコメンド処理は、図６に示すフローチャートにおけるレコメンド処理のステップＳ１１３及びステップＳ１２３の後続処理として、ステップＳ４１１、ステップＳ４２１及びステップＳ４２２が追加されたものであるため、重複する処理については繰り返して説明しない。なお、図１４に示すフローチャートでは、ステップＳ１１１及びステップＳ１２１の図示を省略する。
【０１６７】
ステップＳ４１１において、端末装置１０の位置情報センサ１５０は、端末装置１０の現在位置を検出する。データ処理部１８３は、位置情報センサ１５０が検出した位置情報を記憶部１７０に格納する処理を行う。送受信部１８２は、ユーザの位置情報をサーバ２０へ送信する。
【０１６８】
ステップＳ４２１において、サーバ２０の位置情報取得モジュール２０４０は、端末装置１０から送信されたユーザの位置情報を、通信部２０１を介して受け付ける処理を行う。位置情報取得モジュール２０４０は、受け付けたユーザの位置情報を、ユーザデータベース２０２３に格納する。
【０１６９】
ステップＳ４２２において、サーバ２０のスケジュール情報生成モジュール２０３７は、ステップＳ４２１で取得した位置情報に基づき、ユーザの現在位置から最適な食材を購入する購入先（スーパーマーケット等の店舗）を決定する処理を行う。スケジュール情報生成モジュール２０３７は、決定した当該店舗への移動時間を考慮して食材の購入を開始すべき時刻を算出し、ユーザのスケジュール情報に当てはめて情報生成する。
【０１７０】
＜小括＞
以上のように、本実施形態によると、ユーザの現在位置が取得され、ユーザの現在位置から最適な食材を購入する購入先（スーパーマーケット等の店舗）が決定される。当該店舗への移動時間から、食材の購入を開始すべき時刻が算出され、スケジュール情報の生成が行われ、レコメンドされる。これにより、ユーザの現在位置に沿った適切なスケジュール情報の生成及びレコメンドが可能になる。
【０１７１】
以上、開示に係る実施形態について説明したが、これらはその他の様々な形態で実施することが可能であり、種々の省略、置換及び変更を行なって実施することができる。これらの実施形態及び変形例ならびに省略、置換及び変更を行なったものは、特許請求の範囲の技術的範囲とその均等の範囲に含まれる。
【０１７２】
＜付記＞
以上の各実施形態で説明した事項を、以下に付記する。
【０１７３】
（付記１）制御部を備え、食事に関する情報をレコメンドするサービスを提供するための情報処理装置であって、制御部は、サービスの提供を受けるユーザのスケジュール情報を取得するスケジュール情報取得部と、ユーザの過去に摂取した食事に関する情報を取得する食事情報取得部と、ユーザの属性情報、スケジュール情報、及びユーザの過去に摂取した食事に関する情報に基づき、ユーザの食事に関する情報を生成する情報生成部と、ユーザの食事に関する情報をレコメンドするレコメンド部と、を備える、情報処理装置。
【０１７４】
（付記２）情報生成部は、ユーザの食事に関するスケジュール情報を生成し、レコメンド部は、ユーザの食事に関するスケジュール情報をレコメンドする、（付記１）に記載の情報処理装置。
【０１７５】
（付記３）レコメンド部は、ユーザの食事に関するスケジュール情報を、ユーザが閲覧可能なタイムチャートに表示させてレコメンドする、（付記２）に記載の情報処理装置。
【０１７６】
（付記４）情報生成部は、ユーザが食事を開始すべき時刻を算出し、ユーザの食事開始時刻に合わせて食事に関するスケジュール情報を生成する、（付記２）または（付記３）に記載の情報処理装置。
【０１７７】
（付記５）情報生成部は、スケジュール情報におけるユーザの過去の起床時刻、仕事の勤務時間帯、運動を行う時間帯、就寝時刻のいずれか１つまたは複数に基づき、ユーザが食事を開始すべき時刻を算出する、（付記４）に記載の情報処理装置。
【０１７８】
（付記６）情報生成部は、ユーザが食事の調理を開始すべき時刻を算出し、ユーザの調理開始時刻に合わせて食事に関するスケジュール情報を生成する、（付記２）または（付記３）に記載の情報処理装置。
【０１７９】
（付記７）情報生成部は、ユーザにレコメンドする食事の献立を決定し、ユーザが食事の献立の調理を開始すべき時刻を算出し、ユーザの調理開始時刻に合わせて食事に関するスケジュール情報を生成し、レコメンド部は、食事の献立と、ユーザの食事に関するスケジュール情報とをレコメンドする、（付記６）に記載の情報処理装置。
【０１８０】
（付記８）情報生成部は、ユーザの属性情報に含まれるユーザの病態情報、症状情報、嗜好情報、調理スキル情報、環境情報のいずれか１つまたは複数に基づき、食事の献立を決定する、（付記７）に記載の情報処理装置。
【０１８１】
（付記９）制御部は、さらに、ユーザが閲覧または登録した献立情報の履歴を取得する献立履歴取得部を備え、情報生成部は、ユーザが閲覧または登録した献立情報に基づき、食事の献立を決定する、（付記７）または（付記８）に記載の情報処理装置。
【０１８２】
（付記１０）情報生成部は、ユーザが食事の献立を調理するための食材の購入を開始すべき時刻を算出し、ユーザの食材購入開始時刻に合わせて食事に関するスケジュール情報を生成し、レコメンド部は、ユーザが購入すべき食材をレコメンドする、（付記７）から（付記９）のいずれかに記載の情報処理装置。
【０１８３】
（付記１１）制御部は、さらに、ユーザが使用する端末装置の位置情報を取得する位置情報取得部を備え、情報生成部は、位置情報に基づき食材を購入する購入先を決定し、ユーザの購入先への移動時間を算出して食材の購入を開始すべき時刻を算出する、（付記１０）に記載の情報処理装置。
【０１８４】
（付記１２）情報生成部は、ユーザが過去に購入した食材の情報に基づき、食事の献立を決定する、（付記１０）または（付記１１）に記載の情報処理装置。
【０１８５】
（付記１３）レコメンド部は、食事の献立を調理するためのレシピ情報をレコメンドする、（付記７）から（付記１２）のいずれかに記載の情報処理装置。
【０１８６】
（付記１４）情報生成部は、ユーザの生活リズムに関するスケジュール情報を生成し、レコメンド部は、ユーザの生活リズムに関するスケジュール情報をレコメンドする、（付記１）から（付記１３）のいずれかに記載の情報処理装置。
【０１８７】
（付記１５）情報生成部は、スケジュール情報に基づきユーザの生活リズムを推測し、ユーザの生活リズムに関するスケジュール情報を生成する、（付記１４）に記載の情報処理装置。
【０１８８】
（付記１６）食事情報取得部は、ユーザの食事を撮影した画像データに基づき、ユーザの過去に摂取した食事に関する情報を取得する、（付記１）から（付記１５）のいずれかに記載の情報処理装置。
【０１８９】
（付記１７）スケジュール情報取得部は、ユーザの食事を撮影した画像データに基づき、ユーザの食事に関するスケジュール情報を推測して取得する、（付記１）から（付記１６）のいずれかに記載の情報処理装置。
【０１９０】
（付記１８）情報生成部は、ユーザにレコメンドしたユーザの食事に関する情報と、ユーザに当該情報をレコメンドした後に取得されたユーザの食事に関する情報と、に基づき、ユーザの食事に関する情報を生成する、（付記１）から（付記１７）のいずれかに記載の情報処理装置。
【０１９１】
（付記１９）情報生成部は、ユーザにレコメンドしたユーザの食事に関する情報を、ユーザの属性情報、スケジュール情報、またはユーザの過去に摂取した食事に関する情報が類似する他のユーザの食事に関する情報を生成する、（付記１）から（付記１８）のいずれかに記載の情報処理装置。
【０１９２】
（付記２０）プロセッサを備えるコンピュータにより実行され、食事に関する情報をレコメンドするサービスを提供するための方法であって、方法は、プロセッサが、サービスの提供を受けるユーザのスケジュール情報を取得するステップと、ユーザの過去に摂取した食事に関する情報を取得するステップと、ユーザの属性情報、スケジュール情報、及びユーザの過去に摂取した食事に関する情報に基づき、ユーザの食事に関する情報を生成するステップと、ユーザの食事に関する情報をレコメンドするステップと、を実行する、方法。
【０１９３】
（付記２１）プロセッサを備えるコンピュータに実行させ、食事に関する情報をレコメンドするサービスを提供するためのプログラムであって、プログラムは、プロセッサに、サービスの提供を受けるユーザのスケジュール情報を取得するステップと、ユーザの過去に摂取した食事に関する情報を取得するステップと、ユーザの属性情報、スケジュール情報、及びユーザの過去に摂取した食事に関する情報に基づき、ユーザの食事に関する情報を生成するステップと、ユーザの食事に関する情報をレコメンドするステップと、を実行させる、プログラム。
【符号の説明】
【０１９４】
１０  端末装置、２０  サーバ、８０  ネットワーク、１７１  ユーザ情報、２２  通信ＩＦ、２３  入出力ＩＦ、２５  メモリ、２６  ストレージ、２９  プロセッサ、２０１  通信部、２０２  記憶部、２０２１  料理レシピデータベース、２０２２  献立構成データベース、２０２３  ユーザデータベース、２０２４  レコメンドデータベース、２０３  制御部、２０３１  受信制御モジュール、２０３２  送信制御モジュール、２０３３  ユーザ情報受付モジュール、２０３４  スケジュール情報取得モジュール（スケジュール情報取得部）、２０３５  食事情報取得モジュール（食事情報取得部）、２０３６  献立情報決定モジュール（情報生成部）、２０３７  スケジュール情報生成モジュール（情報生成部）、２０３８  レコメンドモジュール（レコメンド部）、２０３９  献立履歴取得モジュール（献立履歴取得部）、２０４０  位置情報取得モジュール（位置情報取得部）
【要約】
【課題】ユーザのスケジュール情報に応じた、最適な食事に関する情報をレコメンドすることが可能な技術を提供する。
【解決手段】レコメンドシステム１のサーバ２０は、その機能として、ユーザの行動予定に関する、スケジュール情報を取得するスケジュール情報取得モジュール２０３４と、ユーザの過去の食事に関する情報を取得する食事情報取得モジュール２０３５と、ユーザの属性情報、ユーザのスケジュール情報、及びユーザの過去の食事に関する情報に基づき、ユーザが摂取する食事の献立を生成し、献立を決定する献立情報決定モジュール２０３６と、ユーザの食事に関するスケジュール情報を生成するスケジュール情報生成モジュール２０３７と、食事の献立情報、及び食事に関するスケジュール情報をレコメンドするレコメンドモジュール２０３８と、を備える。
【選択図】図３【図１】
0006882746.tif 000002
【図２】
0006882746.tif 000003
【図３】
0006882746.tif 000004
【図４】
0006882746.tif 000005
【図５】
0006882746.tif 000006
【図６】
0006882746.tif 000007
【図７】
0006882746.tif 000008
【図８】
0006882746.tif 000009
【図９】
0006882746.tif 000010
【図１０】
0006882746.tif 000011
【図１１】
0006882746.tif 000012
【図１２】
0006882746.tif 000013
【図１３】
0006882746.tif 000014
【図１４】
0006882746.tif 000015