(57)【特許請求の範囲】
【請求項１】
複数の運動レッスンを識別可能なレッスン情報と、前記レッスン情報を検索可能な複数の検索条件の中で、前記レッスン情報が検索されたときに用いられた検索条件を示す第１条件情報と、前記レッスン情報を検索したユーザを識別可能なユーザ識別情報とを対応付けて複数記憶する記憶手段と、
前記複数の検索条件の中で特定の検索条件を示す第２条件情報を満たすレッスン情報を検索する検索手段と、
前記検索手段により検索を行ったユーザを識別可能なユーザ識別情報と、前記第２条件情報とを取得する取得手段と、
前記検索手段により検索されたレッスン情報と対応付けられて前記記憶手段に記憶されている前記第１条件情報の中で、使用頻度が所定以上である第１特定条件情報を決定する第１決定手段と、
前記取得手段により取得された前記ユーザ識別情報に対応付けて前記記憶手段に記憶された前記第１条件情報の中で、使用頻度が所定以上である第２特定条件情報を決定する第２決定手段と、
前記第１特定条件情報と前記第２特定条件情報とを満たすレッスン情報を、推薦するレッスン情報として決定する第３決定手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記第３決定手段は、前記第１特定条件情報と前記第２特定条件情報との間で共通する第３特定条件情報を特定し、前記第３特定条件情報を満たす前記レッスン情報を、推薦するレッスン情報として決定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記取得手段により取得された前記第２条件情報を前記第１条件情報として、前記取得手段により取得された前記ユーザ識別情報と、前記検索手段により検索された前記レッスン情報と対応付けて前記記憶手段に記憶させる制御手段を更に備えることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記記憶手段に記憶された複数の前記レッスン情報について、前記レッスン情報と対応付けて前記記憶手段に記憶されている前記第１条件情報の中で、使用頻度が所定以上である第４特定条件情報を決定する第４決定手段を更に備え、
前記第３決定手段は、前記第１特定条件情報と前記第２特定条件情報とを満たすレッスン情報のうち、前記第１特定条件情報及び前記第２特定条件情報の少なくとも何れかと一致する前記第４特定条件情報に対応するレッスン情報を、推薦するレッスン情報として決定することを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記検索手段により検索された前記レッスン情報が満たす複数の検索条件のうち前記ユーザに選択された検索条件を示す第５特定条件情報を取得する第２取得手段を更に備え、
前記第３決定手段は、前記第１特定条件情報、前記第２特定条件情報及び前記第５特定条件情報を満たすレッスン情報を、推薦するレッスン情報として決定することを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記第１決定手段は、前記複数の検索条件について、前記検索手段により検索された前記レッスン情報に対応付けて前記記憶手段に記憶された前記第１条件情報の数を決定し、決定された数が多い順に所定数の前記第１条件情報を前記第１特定条件情報に決定し、
前記第２決定手段は、前記複数の検索条件について、前記取得手段により取得された前記ユーザ識別情報に対応付けて前記記憶手段に記憶された前記第１条件情報の数を決定し、決定された数が多い順に所定数の前記第１条件情報を前記第２特定条件情報に決定することを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
複数の運動レッスンを識別可能なレッスン情報と、前記レッスン情報を検索可能な複数の検索条件の中で特定の検索条件を示す第２条件情報を満たすレッスン情報を検索する検索ステップと、
前記検索ステップにより検索を行ったユーザを識別可能なユーザ識別情報と、前記第２条件情報とを取得する取得ステップと、
前記レッスン情報と、前記レッスン情報を検索可能な複数の検索条件の中で、前記レッスン情報が検索されたときに用いられた検索条件を示す第１条件情報と、前記レッスン情報を検索したユーザを識別可能なユーザ識別情報とを対応付けて複数記憶する記憶手段に、前記検索ステップにより検索されたレッスン情報と対応付けられて記憶されている前記第１条件情報の中で、使用頻度が所定以上である第１特定条件情報を決定する第１決定ステップと、
前記取得ステップにより取得された前記ユーザ識別情報に対応付けて前記記憶手段に記憶された前記ああ第１条件情報の中で、使用頻度が所定以上である第２特定条件情報を決定する第２決定ステップと、
前記第１特定条件情報と前記第２特定条件情報とを満たすレッスン情報を、推薦するレッスン情報として決定する第３決定ステップと、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、運動レッスンを検索する技術分野に関する。
【背景技術】
【０００２】
例えば、特許文献１には、運動レッスンを構成する運動動作に割り当てられた楽曲の検索の経緯を記憶し、運動動作に割り当てる楽曲を再度検索するとき、検索の経緯を提示する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１６５９８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ユーザが運動レッスンを検索するとき、如何なる運動レッスンがユーザに合っているかを判断しがたい場合がある。そこで、これまでの検索の経緯を利用してユーザに合う運動レッスンを検索したいという要望がある。しかしながら、特許文献１に記載の技術では、検索の経緯を利用して楽曲を検索することはできるものの、運動レッスンを検索することはできない。
【０００５】
本発明は、以上の点に鑑みてなされたものであり、ユーザの検索の傾向に合う運動レッスンを推薦することを可能とする情報処理装置及びプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、請求項１に記載の発明は、複数の運動レッスンを識別可能なレッスン情報と、前記レッスン情報を検索可能な複数の検索条件の中で、前記レッスン情報が検索されたときに用いられた検索条件を示す第１条件情報と、前記レッスン情報を検索したユーザを識別可能なユーザ識別情報とを対応付けて複数記憶する記憶手段と、前記複数の検索条件の中で特定の検索条件を示す第２条件情報を満たすレッスン情報を検索する検索手段と、前記検索手段により検索を行ったユーザを識別可能なユーザ識別情報と、前記第２条件情報とを取得する取得手段と、前記検索手段により検索されたレッスン情報と対応付けられて前記記憶手段に記憶されている前記第１条件情報の中で、使用頻度が所定以上である第１特定条件情報を決定する第１決定手段と、前記取得手段により取得された前記ユーザ識別情報に対応付けて前記記憶手段に記憶された前記第１条件情報の中で、使用頻度が所定以上である第２特定条件情報を決定する第２決定手段と、前記第１特定条件情報と前記第２特定条件情報とを満たすレッスン情報を、推薦するレッスン情報として決定する第３決定手段と、を備えることを特徴とする。
【０００７】
請求項２に記載の発明は、前記第３決定手段は、前記第１特定条件情報と前記第２特定条件情報との間で共通する第３特定条件情報を特定し、前記第３特定条件情報を満たす前記レッスン情報を、推薦するレッスン情報として決定することを特徴とする。
【０００８】
請求項３に記載の発明は、前記取得手段により取得された前記第２条件情報を前記第１条件情報として、前記取得手段により取得された前記ユーザ識別情報と、前記検索手段により検索された前記レッスン情報と対応付けて前記記憶手段に記憶させる制御手段を更に備えることを特徴とする。
【０００９】
請求項４に記載の発明は、前記記憶手段に記憶された複数の前記レッスン情報について、前記レッスン情報と対応付けて前記記憶手段に記憶されている前記第１条件情報の中で、使用頻度が所定以上である第４特定条件情報を決定する第４決定手段を更に備え、前記第３決定手段は、前記第１特定条件情報と前記第２特定条件情報とを満たすレッスン情報のうち、前記第１特定条件情報及び前記第２特定条件情報の少なくとも何れかと一致する前記第４特定条件情報に対応するレッスン情報を、推薦するレッスン情報として決定することを特徴とする。
【００１０】
請求項５に記載の発明は、前記検索手段により検索された前記レッスン情報が満たす複数の検索条件のうち前記ユーザに選択された検索条件を示す第５特定条件情報を取得する第２取得手段を更に備え、前記第３決定手段は、前記第１特定条件情報、前記第２特定条件情報及び前記第５特定条件情報を満たすレッスン情報を、推薦するレッスン情報として決定することを特徴とする。
【００１１】
請求項６に記載の発明は、前記第１決定手段は、前記複数の検索条件について、前記検索手段により検索された前記レッスン情報に対応付けて前記記憶手段に記憶された前記第１条件情報の数を決定し、決定された数が多い順に所定数の前記第１条件情報を前記第１特定条件情報に決定し、前記第２決定手段は、前記複数の検索条件について、前記取得手段により取得された前記ユーザ識別情報に対応付けて前記記憶手段に記憶された前記第１条件情報の数を決定し、決定された数が多い順に所定数の前記第１条件情報を前記第２特定条件情報に決定することを特徴とする。
【００１２】
請求項７に記載の発明は、複数の運動レッスンを識別可能なレッスン情報と、前記レッスン情報を検索可能な複数の検索条件の中で特定の検索条件を示す第２条件情報を満たすレッスン情報を検索する検索ステップと、前記検索ステップにより検索を行ったユーザを識別可能なユーザ識別情報と、前記第２条件情報とを取得する取得ステップと、前記レッスン情報と、前記レッスン情報を検索可能な複数の検索条件の中で、前記レッスン情報が検索されたときに用いられた検索条件を示す第１条件情報と、前記レッスン情報を検索したユーザを識別可能なユーザ識別情報とを対応付けて複数記憶する記憶手段に、前記検索ステップにより検索されたレッスン情報と対応付けられて記憶されている前記第１条件情報の中で、使用頻度が所定以上である第１特定条件情報を決定する第１決定ステップと、前記取得ステップにより取得された前記ユーザ識別情報に対応付けて前記記憶手段に記憶された前記ああ第１条件情報の中で、使用頻度が所定以上である第２特定条件情報を決定する第２決定ステップと、前記第１特定条件情報と前記第２特定条件情報とを満たすレッスン情報を、推薦するレッスン情報として決定する第３決定ステップと、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１３】
請求項１又は７に記載の発明によれば、ユーザの検索傾向に合う検索条件と検索された運動レッスンの検索傾向に合う検索条件とを満たす運動レッスンを推薦することができる。
【００１４】
請求項２に記載の発明によれば、ユーザの検索傾向に合う検索条件と、検索された運動レッスンの検索傾向に合う検索条件とで共通する検索条件を満たす運動レッスンを推薦することができる。
【００１５】
請求項４に記載の発明によれば、ユーザ又は検索された運動レッスンと検索傾向が一致する運動レッスンを推薦することができる。
【００１６】
請求項５に記載の発明によれば、検索された運動レッスンが満たす複数の検索条件の中でユーザが選択した検索条件を満たす運動レッスンを推薦することができる。
【図面の簡単な説明】
【００１７】
【図１】一実施形態の運動レッスン支援システム１の概要構成例を示す図である。
【図２】（Ａ）は、検索条件一覧テーブルの構成例を示す図であり、（Ｂ）は、目的テーブルの構成例を示す図であり、（Ｃ）は、曜日テーブルの構成例を示す図であり、（Ｄ）は、時間帯テーブルの構成例を示す図であり、（Ｅ）は、レッスン種別テーブルの構成例を示す図であり、（Ｆ）は、インストラクターテーブルの構成例を示す図であり、（Ｇ）は、レッスン一覧テーブルの構成例を示す図であり、（Ｈ）は、履歴テーブルの構成例を示す図である。
【図３】（Ａ）は、検索画面の表示例を示す図であり、（Ｂ）は、詳細画面の表示例を示す図である。
【図４】配信サーバ２のＣＰＵ２１の処理例を示すフローチャートである。
【図５】（Ａ）は、配信サーバ２のＣＰＵ２１のレッスン優先検索条件決定処理の処理例を示すフローチャートであり、（Ｂ）は、配信サーバ２のＣＰＵ２１の利用者優先検索条件決定処理の処理例を示すフローチャートである。
【図６】配信サーバ２のＣＰＵ２１の推薦レッスン抽出処理の処理例を示すフローチャートである。
【図７】配信サーバ２のＣＰＵ２１の推薦処理の処理例を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、運動を支援する運動レッスン支援システムに本発明を適用した場合の実施形態である。
【００１９】
［１．運動レッスン支援システム１の構成］
始めに、図１を参照して、本実施形態の運動レッスン支援システム１の構成について説明する。図１は、本実施形態の運動レッスン支援システム１の概要構成例を示す図である。図１に示すように、運動レッスン支援システム１は、配信サーバ２と１つ以上の出力端末５と１つ以上のユーザ端末６とを含んで構成されている。配信サーバ２と出力端末５とは、ネットワーク１０を介して接続可能になっている。ネットワーク１０は、例えば、インターネットを含む。配信サーバ２には、データベース３が接続されている。データベース３には、運動に関する情報や楽曲に関する情報が登録されている。配信サーバ２は、データベース３に登録されている情報等を、定期的に又は出力端末５からの要求に応じて出力端末５に配信する。配信サーバ２は、本発明の情報処理装置の一例である。
【００２０】
出力端末５は、例えば、施設４に設置される端末装置である。出力端末５は、施設４の利用者４１により利用される。施設４は、例えば、スポーツ施設であってもよい。施設４においては、複数の利用者４１が運動レッスンを受ける。運動レッスンは、複数の運動から構成されるレッスンである。
【００２１】
出力端末５は、モニタ５７と接続可能である。モニタ５７は、複数のスピーカ６４とディスプレイ６７とを備える表示装置であってもよい。この場合、出力端末５は、ディスプレイ６７と接続可能である。また、出力端末５は、スピーカ６４と接続可能である。出力端末５がモニタ５７へ音声信号を出力することにより、スピーカ６４により楽曲等が出力される。出力端末５がモニタ５７へ映像信号を出力することにより、ディスプレイ６７に運動映像等が表示される。運動映像は、運動動作を行うフィギュア８３を映し出した動画である。フィギュア８３は、例えば、人、動物、仮想上の生き物、ロボット等のかたちをした仮想物である。フィギュア８３は、三次元仮想空間に配置される。出力端末５は、スピーカ６４から出力される楽曲と、ディスプレイ６７に表示されるフィギュア８３の動きとが同期するように、信号を出力する。楽曲と運動映像とを出力することは、運動コンテンツを出力することの一例である。利用者４１は、スピーカ６４により出力される楽曲を聴きながら、ディスプレイ６７に表示されるフィギュア８３を見て、スタジオ運動を行うことができる。操作者４２は、リモコン６６等を用いて出力端末５を操作することができる。利用者４１と操作者４２とは同一人物であってもよい。施設４がスポーツ施設である場合、操作者４２は、例えば、スポーツ施設の職員であってもよい。スポーツ施設の職員は、例えば、インストラクターであってもよい。
【００２２】
ユーザ端末６は、例えば、利用者４１が所有する端末装置である。ユーザ端末６は、例えば、利用者４１が運動レッスンを検索したり、検索した運動レッスンを予約したりするために用いられる。ユーザ端末６は、例えば、パーソナルコンピュータ、タブレット型コンピュータ、スマートフォン、携帯電話機等であってもよい。
【００２３】
［２．利用者４１による運動レッスンの検索］
運動レッスン支援システム１において、利用者４１は、運動レッスンを検索することができる。具体的に、利用者４１は、ユーザ端末６を操作して、検索条件を指定する。ユーザ端末６は、指定された検索条件を含む検索要求を配信サーバ２へ送信する。配信サーバ２は、指定された検索条件を満たす運動レッスンを検索する。指定可能な検索条件の種類として、例えば、運動レッスンの目的、運動レッスンが実施される曜日、運動レッスンが開始される時間帯、運動レッスンのレッスン種別、運動レッスンで利用者４１を指導するインストラクター等がある。
【００２４】
運動レッスンを検索するため、配信サーバ２のデータベース３には、検索条件一覧テーブル、目的テーブル、曜日テーブル、時間帯テーブル、レッスン種別テーブル、インストラクターテーブル、レッスン一覧テーブル等の情報が格納されている。
【００２５】
図２（Ａ）は、検索条件一覧テーブルの構成例を示す図である。検索条件一覧テーブルは、検索条件の種類の一覧を示すテーブルである。具体的に、検索条件一覧テーブルには、検索条件ＩＤ、検索条件名、及び、検索条件テーブルのテーブル名が対応付けて格納される。検索条件ＩＤは、検索条件の種類を識別可能な識別情報である。例えば、０は目的であり、１は曜日であり、２は時間帯であり、３はレッスン種別であり、４はインストラクターである。検索条件テーブルは、検索条件ＩＤに対応する検索条件の種類において、指定可能な条件を示す条件値が格納されるテーブルである。例えば、検索条件ＩＤと条件値との組合せが検索条件に相当する。検索条件テーブルとして、目的テーブル、曜日テーブル、時間帯テーブル、レッスン種別テーブル、インストラクターテーブルがある。
【００２６】
図２（Ｂ）は、目的テーブルの構成例を示す図である。目的テーブルには、検索条件として指定可能な目的を識別可能な条件値として、目的ＩＤが格納される。例えば、目的テーブルには、目的ＩＤとして０〜４等が格納される。例えば、０は指定なしであり、１は健康維持であり、２はダイエットであり、３は筋力アップであり、４は美容である。指定なしは、検索条件に目的を指定しないことを示す。
【００２７】
図２（Ｃ）は、曜日テーブルの構成例を示す図である。曜日テーブルには、検索条件として指定可能な曜日を識別可能な条件値として、曜日ＩＤが格納される。例えば、曜日テーブルには、曜日ＩＤとして０〜７が格納される。例えば、０は指定なしであり、１〜７はそれぞれ月曜日〜日曜日である。指定なしは、検索条件に曜日を指定しないことを示す。
【００２８】
図２（Ｄ）は、時間帯テーブルの構成例を示す図である。時間帯テーブルには、検索条件として指定可能な時間帯が格納されるとともに、時間帯を識別可能な条件値として、時間帯ＩＤが格納される。例えば、時間帯テーブルには、時間帯ＩＤとして０〜４等が格納される。例えば、０は指定なしであり、１は９時以上１２未満であり、２は１２時以上１５未満であり、３は１５時以上１８未満であり、４は１８時以上２１未満である。指定なしは、検索条件に時間帯を指定しないことを示す。
【００２９】
図２（Ｅ）は、レッスン種別テーブルの構成例を示す図である。レッスン種別テーブルには、検索条件として指定可能なレッスン種別を識別可能な条件値として、レッスン種別ＩＤが格納される。例えば、レッスン種別テーブルには、レッスン種別ＩＤとして０〜４等が格納される。例えば、０は指定なしであり、１はヨガであり、２はバーベルを用いた運動であり、３はストレッチであり、４はコアリズムである。指定なしは、検索条件にレッスン種別を指定しないことを示す。
【００３０】
図２（Ｆ）は、インストラクターテーブルの構成例を示す図である。インストラクターテーブルには、検索条件として指定可能なインストラクターを識別可能な条件値として、インストラクターＩＤが格納される。例えば、インストラクターテーブルには、インストラクターＩＤとして０〜４等が格納される。例えば、０は指定なしであり、１はＡ先生であり、２はＢ先生であり、３はＣ先生であり、４はＤ先生である。指定なしは、検索条件にインストラクターを指定しないことを示す。
【００３１】
図２（Ｇ）は、レッスン一覧テーブルの構成例を示す図である。レッスン一覧テーブルは、運動レッスンに関する情報を格納するレコードが登録されるテーブルである。図２（Ｇ）に示すように、レッスン一覧テーブルに登録されるレコードには、レッスンＩＤ、目的ＩＤ、曜日ＩＤ、開始時間、レッスン種別ＩＤ、インストラクターＩＤ、実施日、及び定員が対応付けて格納される。レッスンＩＤは、運動レッスンを識別可能な識別情報である。レッスンＩＤは、本発明のレッスン情報の一例である。目的ＩＤは、運動レッスンの目的を示す。曜日ＩＤは、運動レッスンが実施される曜日を示す。開始時間は、運動レッスンが開始される時刻を示す。レッスン種別ＩＤは、運動レッスンのレッスン種別を示す。インストラクターＩＤは、運動レッスンで利用者４１を指導するインストラクターを示す。実施日は、運動レッスンが実施される日付である。定員は、運動レッスンに参加可能な人数である。
【００３２】
図３（Ａ）は、検索画面の表示例を示す図である。検索画面は、運動レッスンを検索するための画面である。運動レッスンを検索する場合、ユーザ端末６は検索画面をディスプレイ６７に表示する。図３（Ａ）に示すように、検索画面には、条件指定リスト１１０、１２０、１３０、１４０、１５０、検索ボタン１６０等が表示される。条件指定リスト１１０〜１５０は、検索条件を指定するためのドロップダウンリストである。条件指定リスト１１０は目的に対応し、条件指定リスト１２０は曜日に対応し、条件指定リスト１３０は時間帯に対応し、条件指定リスト１４０はレッスン種別に対応し、条件指定リスト１５０はインストラクターに対応する。利用者４１は、目的、曜日、時間帯、レッスン種別、及びインストラクターのうち１以上の検索条件を指定することができる。利用者４１が検索ボタン１６０を選択すると、ユーザ端末６は、検索要求を配信サーバ２に送信する。検索要求は、条件指定リスト１１０〜１５０に対応した検索条件の情報を含む。具体的に、検索要求は、会員ＩＤを含む。会員ＩＤは、利用者４１を識別可能な識別情報である。会員ＩＤは、本発明のユーザ識別情報の一例である。検索要求に含まれる会員ＩＤは、検索要求を送信したユーザ端末６を利用する利用者４１を示す。検索要求に含まれる会員ＩＤが示す利用者４１を検索利用者という。また、検索要求は、検索条件の種類ごとに、検索条件ＩＤと条件値の組合せを含む。検索要求に含まれる検索条件ＩＤと条件値の組合せは、本発明の第２条件情報の一例である。図３（Ａ）の例では、曜日の検索条件として月曜日が指定されている。また、レッスン種別の検索条件としてストレッチが指定されている。そのため、検索要求は、検索条件ＩＤとしての１と、条件値としての１との組合せを含む。また、検索要求は、検索条件ＩＤとしての３と、条件値としての３との組合せを更に含む。その他の検索条件は指定されていない。そのため、検索要求は、検索条件ＩＤとしての０と条件値としての０の組合せ、検索条件ＩＤとしての２と条件値としての０の組合せ、及び検索条件ＩＤとしての４と条件値としての０の組合せを更に含む。
【００３３】
配信サーバ２は、検索要求に基づいて、検索条件を満たす運動レッスンのレッスンＩＤをレッスン一覧テーブルから検索する。具体的に、配信サーバ２は、検索要求に含まれる目的ＩＤと一致する目的ＩＤと、検索要求に含まれる曜日ＩＤと一致する曜日ＩＤと、検索要求に含まれる時間帯ＩＤが示す時間帯内にある開始時間と、検索要求に含まれるレッスン種別ＩＤと一致するレッスン種別ＩＤと、検索要求に含まれるインストラクターＩＤと一致するインストラクターＩＤとの全てを格納するレコードを検索する。そして、配信サーバ２は、検索されたレコードからレッスンＩＤを取得する。ただし、配信サーバ２は、検索要求に含まれる条件値が０である検索条件については、レッスンＩＤの検索に用いない。図３（Ａ）の例の場合、配信サーバ２は、曜日ＩＤとして１を格納し、且つ、レッスン種別ＩＤとして３を格納するレコードを検索する。
【００３４】
配信サーバ２は、検索されたレッスンＩＤを含む検索結果リストをユーザ端末６へ送信する。ユーザ端末６は、検索結果リストに基づいて、検索結果１７０を図３（Ａ）に示すように、検索画面に表示する。検索結果１７０は、検索された運動レッスンの一覧を示す。検索結果１７０において、検索された運動レッスンごとに詳細ボタン１７１が表示される。利用者４１が何れかの詳細ボタン１７１を選択すると、ユーザ端末６は詳細要求を配信サーバ２へ送信する。詳細要求は、検索利用者の会員ＩＤ及び選択された詳細ボタン１７１に対応する運動レッスンのレッスンＩＤを含む。詳細要求に含まれるレッスンＩＤが示す運動レッスンを、閲覧レッスンという。配信サーバ２は、レッスン一覧テーブルから、詳細要求に含まれるレッスンＩＤを格納するレコードを取得する。そして、配信サーバ２は、取得したレコードをユーザ端末６へ送信する。ユーザ端末６は、受信したレコードに基づいて詳細画面をディスプレイ６７に表示する。図３（Ｂ）は、詳細画面の表示例を示す図である。詳細画面には、詳細情報２１０、予約ボタン２１１等が表示される。詳細情報２１０は、選択された詳細ボタン１７１に対応する運動レッスンの詳細な情報である。詳細情報２１０として、例えばレッスン名、目的、曜日、開始時間、レッスン種別、インストラクター、実施日、定員等が表示される。予約ボタン２１１は、詳細情報２１０に対応する運動レッスンを予約するためのボタンである。
【００３５】
［３．運動レッスンの推薦］
運動レッスンを検索するとき、これまでの検索の経緯を利用して利用者４１に合う運動レッスンを検索したいという要望がある。そこで、配信サーバ２は、利用者４１の検索の傾向に合う運動レッスンを推薦するための処理を実行する。これまでの検索の経緯を利用するため、データベース３には、履歴テーブルが格納されている。図２（Ｈ）は、履歴テーブルの構成例を示す図である。履歴テーブルは、運動レッスンの検索に関する履歴の情報を格納するレコードが登録されるテーブルである。例えば、ユーザ端末６から詳細要求を受信するごとに、配信サーバ２は履歴テーブルにレコードを登録してもよい。図２（Ｈ）に示すように、履歴テーブルに登録されるレコードには、会員ＩＤ、レッスンＩＤ、目的ＩＤ、曜日ＩＤ、時間帯ＩＤ、レッスン種別ＩＤ、インストラクターＩＤ、閲覧日時、予約有無が対応付けて格納される。履歴テーブルに格納される目的ＩＤ、曜日ＩＤ、時間帯ＩＤ、レッスン種別ＩＤ、インストラクターＩＤは、本発明の第１条件情報の例である。
【００３６】
会員ＩＤ及びレッスンＩＤは、詳細要求に含まれていた会員ＩＤ及びレッスンＩＤである。目的ＩＤ、曜日ＩＤ、時間帯ＩＤ、レッスン種別ＩＤ及びインストラクターＩＤは、配信サーバ２が先に受信した検索要求に含まれていた条件値である。閲覧日時は、検索利用者が詳細情報２１０を閲覧した日時である。具体的に、閲覧日時は、配信サーバ２が詳細要求を受信した日時である。予約有無は、検索利用者が閲覧レッスンを予約したか否かを示す。詳細要求を受信したとき、配信サーバ２は、予約有無を「無し」に設定する。詳細画面において検索利用者が予約ボタン２１１を選択したとき、ユーザ端末６は、予約要求を配信サーバ２へ送信する。予約要求は、検索利用者の会員ＩＤ及び閲覧レッスンのレッスンＩＤを含む。配信サーバ２は、予約要求に含まれる会員ＩＤ及びレッスンＩＤに対応するレコードに格納されている予約有無を「有り」に変更する。
【００３７】
配信サーバ２は、履歴テーブルにおいて、閲覧レッスンのレッスンＩＤに対応するレコードに格納されている条件値の中で、検索条件としての使用頻度が所定以上である条件値、及びその条件値に対応する検索条件ＩＤを、閲覧レッスンの優先検索条件として決定する。閲覧レッスンの優先検索条件は、本発明の第１特定条件情報の一例である。また、配信サーバ２は、履歴テーブルにおいて、検索利用者の会員ＩＤに対応するレコードに格納されている条件値の中で、検索条件としての使用頻度が所定以上である条件値、及びその条件値に対応する検索条件ＩＤを、検索利用者の優先検索条件として決定する。検索利用者の優先検索条件は、本発明の第２特定条件情報の一例である。そして、配信サーバ２は、閲覧レッスンの優先検索条件と検索利用者の優先検索条件との何れをも満たす運動レッスンのレッスンＩＤを、検索利用者に推薦するレッスンＩＤとして決定する。閲覧レッスンの優先検索条件は、これまでに運動レッスンが検索されたときに、複数の利用者４１が重視している検索条件を示す。検索利用者の優先検索条件は、検索利用者がこれまで運動レッスンを検索するときに、検索利用者が重視している検索条件を示す。そのため、検索利用者が重視してきた検索条件及び閲覧レッスンが検索されたときに重視された検索条件を満たす運動レッスンが、推薦される運動レッスンに決定される。そのため、検索利用者の検索傾向に合う検索条件と閲覧レッスンの検索傾向に合う検索条件とを満たす運動レッスンを推薦することができる。ここで、閲覧レッスンの優先検索条件と検索利用者の優先検索条件とは一致してもよいし、異なっていてもよい。
【００３８】
閲覧レッスンの優先検索条件の具体的な決定方法の例として、配信サーバ２は、履歴テーブルから、閲覧レッスンのレッスンＩＤを格納するレコードのうち、例えば予約有無が「有り」であるレコードを検索する。なお、配信サーバ２は、予約有無に関係なく、閲覧レッスンのレッスンＩＤを格納するレコードを検索してもよい。そして、検索条件の種類及び条件値の組合せごとに、検索されたレコードのうち、その条件値と一致する条件値が格納されたレコードの数を、使用頻度として決定する。次いで、配信サーバ２は、検索条件の種類ごとに、使用頻度の合計を計算する。そして、配信サーバ２は、使用頻度が高い順に所定数の検索条件の種類を、閲覧レッスンの優先検索条件の種類として決定する。また、閲覧レッスンの優先検索条件の種類として決定された検索条件の種類に対応する条件値のうち、使用頻度が最も高い条件値を、閲覧レッスンの優先検索条件の条件値として決定する。検索利用者の優先検索条件を決定する場合、配信サーバ２は、履歴テーブルから、検索利用者の会員ＩＤを格納するレコードのうち予約有無が「有り」であるレコードを検索する。その後は、閲覧レッスンの優先検索条件の決定方法と同様である。
【００３９】
配信サーバ２は、閲覧レッスンの優先検索条件と検索利用者の優先検索条件との間で共通する優先検索条件を特定してもよい。共通する優先検索条件は、本発明の第３特定条件情報の一例である。例えば、配信サーバ２は、閲覧レッスンの優先検索条件のうち、検索利用者の優先検索条件と一致する優先検索条件を、共通する優先検索条件として特定してもよい。そして、配信サーバ２は、特定した共通の検索条件を満たす運動レッスンを、推薦する運動レッスンに決定してもよい。これにより、検索利用者の検索傾向に合う検索条件と、閲覧レッスンの検索傾向に合う検索条件とで共通する検索条件を満たす運動レッスンを推薦することができる。
【００４０】
配信サーバ２は、複数の運動レッスンのそれぞれについて、履歴テーブルにおいて、レッスンＩＤに対応するレコードに格納されている条件値の中で、検索条件としての使用頻度が所定以上である条件値、及びその条件値に対応する検索条件ＩＤを、優先検索条件として決定してもよい。各運動レッスンの優先検索条件は、本発明の第４特定条件情報の一例である。各運動レッスンの優先検索条件の決定方法は、閲覧レッスンの優先検索条件の具体的な決定方法と同様である。そして、配信サーバ２は、検索利用者の優先検索条件と閲覧レッスンの優先検索条件とのうち少なくとも何れかと一致する優先検索条件に対応する運動レッスンを、推薦する運動レッスンとして決定してもよい。これにより、検索利用者の検索傾向又は閲覧レッスンの検索傾向に合致する検索傾向がある運動レッスンを推薦することができる。
【００４１】
また、閲覧レッスンが満たす検索条件の中から、検索利用者４１が所望の検索条件を選択可能であってもよい。この検索条件を絞り込み条件という。絞り込み条件は、本発明の第５特定条件情報の一例である。配信サーバ２は、検索利用者の優先検索条件、閲覧レッスンの優先検索条件及び絞り込み条件の何れも満たす運動レッスンを、推薦する運動レッスンとして決定してもよい。これにより、閲覧レッスンが満たす検索条件のうち検索利用者が望む検索条件を満たす運動レッスンを推薦することができる。
【００４２】
図３（Ｂ）に示すように、ユーザ端末６は、詳細画面内に、タブ２２０、２３０、２４０、２５０及び２６０を表示する。タブ２２０は、閲覧レッスンの実施日に近い実施日を、絞り込み条件として選択するためのタブである。タブ２３０は、閲覧レッスンのレッスン種別を絞り込み条件として選択するためのタブである。タブ２４０は、閲覧レッスンで指導するインストラクターを絞り込み条件として選択するためのタブである。タブ２５０は、閲覧レッスンが実施される曜日を絞り込み条件として選択するためのタブである。タブ２６０は、閲覧レッスンが開始する時間帯と同一の時間帯を絞り込み条件として選択するためのタブである。利用者４１が何れかのタブを選択すると、配信サーバ２は、検索利用者の優先検索条件、及び閲覧レッスンの優先検索条件を満たす運動レッスンのレッスンＩＤのうち、選択されたタブに対応する絞り込み条件を満たす運動レッスンのレッスンＩＤを決定する。そして、配信サーバ２は、決定したレッスンＩＤを含む推薦リストをユーザ端末６へ送信する。ユーザ端末６は、推薦リストに基づいて、詳細画面に推薦レッスン一覧２７０を図３（Ｂ）に示すように表示する。図３（Ｂ）は、タブ２３０が選択された場合の推薦レッスン一覧２７０の表示例である。推薦レッスン一覧２７０は、推薦される運動レッスンの一覧を示す。推薦レッスン一覧２７０において、運動レッスンごとに詳細ボタン２７１が表示される。利用者４１が何れかの詳細ボタン２７１を選択すると、ユーザ端末６は、選択された詳細ボタン２７１に対応する運動レッスンの詳細情報２１０及び予約ボタン２１１を詳細画面に表示する。
【００４３】
［４．各装置の構成］
次に、図１を参照して、運動レッスン支援システムに含まれる各装置の構成について説明する。
【００４４】
［４−１．配信サーバ２の構成］
図１に示すように、配信サーバ２は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、バス２４、Ｉ／Ｏインタフェイス２５、表示制御部２６、ディスクドライブ２８、ネットワーク通信部３０及びＨＤＤ（ハードディスクドライブ）３７を備える。ＣＰＵ２１は、バス２４を介して、ＲＯＭ２２、ＲＡＭ２３、バス２４及びＩ／Ｏインタフェイス２５に接続されている。ＣＰＵ２１は、時計機能及びタイマー機能を有する。ＣＰＵ２１は、ＲＯＭ２２やＨＤＤ３７に記憶されたプログラムを実行することにより、配信サーバ２の各部を制御する。Ｉ／Ｏインタフェイス２５には、データベース３、表示制御部２６、ディスクドライブ２８、ネットワーク通信部３０、キーボード３１、マウス３２及びＨＤＤ３７が接続されている。ＣＰＵ２１は、Ｉ／Ｏインタフェイス２５を介してデータベース３にアクセスする。表示制御部２６は、ＣＰＵ２１の制御に基づいて映像信号をモニタ２７に出力する。ディスクドライブ２８は、記録媒体２９に対するデータの書き込み及び読み出しを行う。ネットワーク通信部３０は、配信サーバ２がネットワーク１０に接続するための制御を行う。ＨＤＤ３７には、ＯＳや各種制御プログラム等が記憶されている。
【００４５】
データベース３は、本発明における記憶手段の一例である。データベース３には、モーションデータ、楽曲データ、レッスン一覧テーブル、履歴テーブル、目的テーブル、曜日テーブル、時間帯テーブル、レッスン種別テーブル、インストラクターテーブル、検索条件一覧テーブル等のデータが登録されている。
【００４６】
モーションデータは、三次元仮想空間におけるフィギュア８３の運動動作を定義するデータである。モーションデータは、ディスプレイ６７にフィギュア８３の運動動作を表示させるためのデータである。モーションデータは、運動動作の進行に応じたフィギュア８３の身体の各部の座標を含む。モーションデータは、モーション情報と対応付けて登録される。モーション情報は、運動動作を示す識別情報である。楽曲データは、スピーカ６４により楽曲を出力するための演奏データである。楽曲データは、例えば、ＭＩＤＩ（Musical Instrument Digital Interface）形式のデータであってもよい。
【００４７】
ＨＤＤ３７には、ＯＳ、検索プログラム等の各種プログラム等が記憶されている。検索プログラムは、運動レッスンを検索するためのプログラムである。検索プログラムは、コンピュータとしてのＣＰＵ２１に、検索ステップと、取得ステップと、第１決定ステップと、第２決定ステップと、第３決定ステップとを少なくとも実行させる。各種プログラムは、例えば、所定のサーバ装置からネットワーク１０を介してダウンロードされるようにしてもよい。また、各種プログラムは、記録媒体２９に記録されてディスクドライブ２８を介して読み込まれるようにしてもよい。
【００４８】
［４−２．出力端末５の構成］
図１に示すように、出力端末５は、ＣＰＵ５１、ＲＯＭ５２、ＲＡＭ５３、バス５４、Ｉ／Ｏインタフェイス５５、表示制御部５６、ディスクドライブ５８、ネットワーク通信部６０、音声出力部６３、信号受信部６５及びＨＤＤ７を備える。ＣＰＵ５１は、バス５４を介して、ＲＯＭ５２、ＲＡＭ５３、バス５４及びＩ／Ｏインタフェイス５５に接続されている。ＣＰＵ５１は、ＲＯＭ５２やＨＤＤ７に記憶されたプログラムを実行することにより、出力端末５の各部を制御する。Ｉ／Ｏインタフェイス５５には、ＨＤＤ７、表示制御部５６、音声出力部６３、ディスクドライブ５８、ネットワーク通信部６０、キーボード６１、マウス６２及び信号受信部６５が接続されている。表示制御部５６は、ＣＰＵ５１の制御に基づいて映像信号をモニタ５７に出力する。音声出力部６３は、ＣＰＵ５１の制御に基づいて音声信号をモニタ５７に出力する。ディスクドライブ５８は、記録媒体５９に対するデータの書き込み及び読み出しを行う。信号受信部６５は、リモコン６６から出力される信号を受信する。リモコン６６は、操作者４２が出力端末５を操作するためのものである。
【００４９】
ＨＤＤ７には、配信サーバ２から配信されたモーションデータ、楽曲データ、レッスン一覧テーブル、履歴テーブル、目的テーブル、曜日テーブル、時間帯テーブル、レッスン種別テーブル、インストラクターテーブル、検索条件一覧テーブル等が記憶される。
【００５０】
ＨＤＤ７には、更に、ＯＳ、運動支援プログラム、３Ｄエンジン、ミュージックシーケンサ等の各種プログラム等が記憶されている。運動支援プログラムは、利用者４１の運動を支援するためのプログラムである。３Ｄエンジンは、モーションデータに基づいて、三次元仮想空間で運動動作するフィギュア８３を二次元平面に投影した画像を生成するためのプログラムである。画像を生成する処理は、射影変換、クリッピング、隠面消去、シェーディング、テクスチャマッピング等を含む。ＣＰＵ５１は、３Ｄエンジンを実行して、静止画像を順次生成する。ＣＰＵ５１は、順次生成した複数の静止画像から動画データを生成する。ＣＰＵ５１が動画データに含まれる静止画像を表示制御部５６へ順次出力することで、ディスプレイ６７には、運動映像が表示される。
【００５１】
ミュージックシーケンサは、楽曲データを再生するためのプログラムである。ＣＰＵ５１は、ミュージックシーケンサを実行することにより、楽曲データに対応する音声信号を生成する。また、ＣＰＵ５１は、ミュージックシーケンサを実行することにより、各種のメッセージ（イベント）を発生させる。メッセージとして、例えば、テンポに応じて所定時間間隔で発生するメッセージがある。このメッセージは、ＭＩＤＩクロックや同期メッセージと呼ばれる。
【００５２】
各種プログラムは、例えば、配信サーバ２等のサーバからネットワーク１０を介してダウンロードされるようにしてもよい。また、各種プログラムは、記録媒体５９に記録されてディスクドライブ５８を介して読み込まれるようにしてもよい。なお、３Ｄエンジンやミュージックシーケンサは、プログラムではなく、専用のハードウェアであってもよい。そして、出力端末５は、ハードウェアとしての３Ｄエンジンやミュージックシーケンサを備えてもよい。
【００５３】
ＣＰＵ５１は、設定されたテンポに従って、楽曲データに対応する音声信号を音声出力部６３へ出力させるとともに、生成した画像に対応する映像信号を表示制御部５６から出力させる。ＣＰＵ５１は、同期メッセージに基づいて、楽曲の音声信号の出力タイミングと運動映像の映像信号の出力タイミングとを同期させる。これにより、スピーカ６４から出力される楽曲に同期して運動動作を行うフィギュア８３がディスプレイ６７に表示される。
【００５４】
［５．運動レッスン支援システム１の動作］
次に、図４乃至図７を参照して、運動レッスン支援システム１の動作を説明する。図４は、配信サーバ２のＣＰＵ２１の処理例を示すフローチャートである。例えば、検索利用者の操作に基づいてユーザ端末６が配信サーバ２にアクセスしたとき、ＣＰＵ２１は、図４に示す処理を開始する。図４に示すように、ＣＰＵ２１は、ログイン認証を実行する（ステップＳ１）。具体的に、検索利用者は、会員ＩＤ及びパスワードを入力し、ユーザ端末６は、入力された会員ＩＤ及びパスワードを配信サーバ２へ送信する。配信サーバ２は、受信した会員ＩＤ及びパスワードに基づいて検索利用者の認証を行う。検索利用者の認証方法は公知であるので、詳細な説明は省略する。認証が成功すると、ＣＰＵ２１は、認証が成功したことを示す応答をユーザ端末６へ送信する。応答を受信したユーザ端末６は、検索画面を表示する。
【００５５】
検索画面において、検索利用者が条件選択リスト１１０〜１６０を操作して、検索条件を設定し、検索ボタン１６０を選択する。すると、ユーザ端末６は、検索要求を配信サーバ２へ送信し、ＣＰＵ２１は、検索要求を受信する（ステップＳ２）。ＣＰＵ２１は、検索要求から、検索条件としての目的ＩＤ、曜日ＩＤ、時間帯ＩＤ、レッスン種別ＩＤ及びインストラクターＩＤを取得する。次いで、ＣＰＵ２１は、検索条件を満たす運動レッスンのレッスンＩＤをレッスン一覧テーブルから検索する（ステップＳ３）。検索方法は既に説明しているので、ここでの詳細な説明は省略する。次いで、ＣＰＵ２１は、検索されたレッスンＩＤを含む検索結果リストをユーザ端末６へ送信する（ステップＳ４）。ユーザ端末６は、検索結果リストに基づいて、検索画面に検索結果１７０を表示する。
【００５６】
検索利用者は、検索結果１７０から、何れかの詳細ボタン１７１を選択する。すると、ユーザ端末６は詳細要求を配信サーバ２に送信し、ＣＰＵ２１は、ユーザ端末６から送信された詳細要求を受信する（ステップＳ５）。次いで、ＣＰＵ２１は、履歴テーブルにレコードの登録を行う（ステップＳ６）。具体的に、ＣＰＵ２１は、詳細要求から検索利用者の会員ＩＤ及び閲覧レッスンのレッスンＩＤを取得する。次いで、ＣＰＵ２１は、取得した会員ＩＤ及びレッスンＩＤを格納するレコードを生成する。また、ＣＰＵ２１は、ステップＳ２で取得した目的ＩＤ、曜日ＩＤ、時間帯ＩＤ、レッスン種別ＩＤ及びインストラクターＩＤを、生成したレコードに格納する。次いで、ＣＰＵ２１は、生成したレコードを履歴テーブルに登録する。
【００５７】
次いで、ＣＰＵ２１は、レッスン優先検索条件決定処理を実行する（ステップＳ７）。レッスン優先検索条件決定処理において、ＣＰＵ２１は、各運動レッスンについて、優先検索条件を決定する。次いで、ＣＰＵ２１は、利用者優先検索条件決定処理を実行する（ステップＳ８）。利用者優先検索条件決定処理において、ＣＰＵ２１は、検索利用者の優先検索条件を決定する。次いで、ＣＰＵ２１は、推薦レッスン抽出処理を実行する（ステップＳ９）。推薦レッスン抽出処理において、ＣＰＵ２１は、閲覧レッスンの優先検索条件と検索利用者の優先検索条件とを満たす運動レッスンのレッスンＩＤを決定する。レッスン優先検索条件決定処理、利用者優先検索条件決定処理、及び推薦レッスン抽出処理の詳細については後述する。
【００５８】
次いで、ＣＰＵ２１は、詳細要求に含まれる閲覧レッスンのレッスンＩＤに対応するレコードをレッスン一覧テーブルから取得する。そして、ＣＰＵ２１は取得したレコードをユーザ端末６へ送信する（ステップＳ１０）。ユーザ端末６は、詳細画面を表示すると共に、受信したレコードに基づいて詳細情報２１０を表示する。詳細画面において、検索利用者は、タブ２２０〜２６０のうちの何れかを選択する。すると、ユーザ端末６は、推薦要求を配信サーバ２に送信する。推薦要求は、絞り込み条件ＩＤを含む。絞り込み条件ＩＤは、選択されたタブに対応する絞り込み条件を識別可能な識別情報である。ＣＰＵ２１は、推薦要求を受信する（ステップＳ１１）。次いで、ＣＰＵ２１は、推薦処理を実行する（ステップＳ１２）。推薦処理において、ＣＰＵ２１は、推薦レッスン抽出処理で決定されたレッスンＩＤのうち、絞り込み条件を満たす運動レッスンのレッスンＩＤを決定する。そして、ＣＰＵ２１は、絞り込み条件を満たす運動レッスンをユーザ端末６により表示させる。推薦処理の詳細は後述する。ＣＰＵ２１は、ステップＳ１２を終えると、図４に示す処理を終了させる。
【００５９】
図５（Ａ）は、配信サーバ２のＣＰＵ２１のレッスン優先検索条件決定処理の処理例を示すフローチャートである。図５（Ａ）に示すように、ＣＰＵ２１は、運動レッスンの順番ｉを０に設定する（ステップＳ２１）。そして、ＣＰＵ２１は、レッスン一覧テーブルにおいてｉ番目に格納されているレコードから、レッスンＩＤを取得する。次いで、ＣＰＵ２１は、検索条件ＩＤの順番ｊを０に設定する（ステップＳ２２）。次いで、ＣＰＵ２１は、ｊ番目の検索条件テーブルを特定する（ステップＳ２３）。具体的に、ＣＰＵ２１は、検索条件一覧テーブルから、ｊ番目に格納されているテーブル名を取得する。そして、ＣＰＵ２１は、取得したテーブル名に基づいて、目的テーブル、曜日テーブル、時間帯テーブル、レッスン種別テーブル又はインストラクターテーブルを特定する。
【００６０】
次いで、ＣＰＵ２１は、条件値の順番ｃを１に設定する（ステップＳ２４）。そして、ＣＰＵ２１は、特定した検索条件テーブルから、ｃ番目に格納されている条件値を取得する。次いで、ＣＰＵ２１は、使用頻度を決定する（ステップＳ２５）。具体的に、ＣＰＵ２１は、履歴テーブルから予約有無が「有り」であるレコードを検索する。次いで、ＣＰＵ２１は、検索されたレコードのうち、ｉ番目のレッスンＩＤを格納し、且つ、ｊ番目の検索条件ＩＤに対応する条件値としてｃ番目の条件値を格納するレコードを検索する。そして、ＣＰＵ２１は、検索されたレコードの数を使用頻度として決定する。
【００６１】
次いで、ＣＰＵ２１は、順番ｃに１を加算する（ステップＳ２６）。次いで、ＣＰＵ２１は、順番ｃが、特定した検索条件テーブルに格納されている条件値の総数未満であるか否かを判定する（ステップＳ２７）。このとき、ＣＰＵ２１は、順番ｃが条件値の総数未満であると判定した場合には（ステップＳ２７：ＹＥＳ）、ステップＳ２５に進む。一方、ＣＰＵ２１は、順番ｃが条件値の総数未満ではないと判定した場合には（ステップＳ２７：ＮＯ）、ステップＳ２８に進む。ステップＳ２８において、ＣＰＵ２１は、順番ｊに１を加算する。次いで、ＣＰＵ２１は、順番ｊが、検索条件一覧テーブルに格納されている検索条件ＩＤの総数未満であるか否かを判定する（ステップＳ２９）。このとき、ＣＰＵ２１は、順番ｊが検索条件ＩＤの総数未満であると判定した場合には（ステップＳ２９：ＹＥＳ）、ステップＳ２３に進む。一方、ＣＰＵ２１は、順番ｊが検索条件ＩＤの総数未満ではないと判定した場合には（ステップＳ２９：ＮＯ）、ステップＳ３０に進む。
【００６２】
ステップＳ３０において、ＣＰＵ２１は、ｉ番目のレッスンＩＤの優先検索条件レコードを生成する。優先検索条件レコードには、優先検索条件を示す検索条件ＩＤ及び条件値の組合せが格納される。具体的に、ＣＰＵ２１は、検索条件ＩＤごとに、対応する全ての条件値の使用頻度を足し合わせて、使用頻度の合計値を計算する。次いで、ＣＰＵ２１は、使用頻度の合計値が多い順に、各検索条件ＩＤの優先順位を決定する。次いで、ＣＰＵ２１は、例えば優先順位が３位以上である検索条件ＩＤを特定する。次いで、ＣＰＵ２１は、特定した検索条件ＩＤに対応する条件値のうち、使用頻度が最も高い条件値を特定する。次いで、ＣＰＵ２１は、ｉ番目のレッスンＩＤを格納する優先検索条件レコードを生成する。次いで、ＣＰＵ２１は、優先順位が１位から３位までの検索条件ＩＤについて、特定した検索条件ＩＤ及び条件値を、優先順位に対応付けて優先検索条件レコードに格納する。なお、ＣＰＵ２１は、例えば、優先順位が１位である検索条件ＩＤのみを特定してもよいし、優先順位が２位以上である検索条件ＩＤを特定してもよい。
【００６３】
次いで、ＣＰＵ２１は、順番ｉに１を加算する（ステップＳ３１）。次いで、ＣＰＵ２１は、順番ｉが、レッスン一覧テーブルに格納されているレッスンＩＤの総数未満であるか否かを判定する（ステップＳ３２）。このとき、ＣＰＵ２１は、順番ｉがレッスンＩＤの総数未満であると判定した場合には（ステップＳ３２：ＹＥＳ）、ステップＳ２２に進む。一方、ＣＰＵ２１は、順番ｉがレッスンＩＤの総数未満ではないと判定した場合には（ステップＳ３２：ＮＯ）、レッスン優先検索条件決定処理を終了させる。
【００６４】
図５（Ｂ）は、配信サーバ２のＣＰＵ２１の利用者優先検索条件決定処理の処理例を示すフローチャートである。図５（Ｂ）に示すように、ＣＰＵ２１は、検索条件ＩＤの順番ｊを０に設定する（ステップＳ４１）。次いで、ＣＰＵ２１は、ｊ番目の検索条件テーブルを特定する（ステップＳ４２）。この処理は、レッスン優先検索条件決定処理のステップＳ２３と同様である。次いで、ＣＰＵ２１は、条件値の順番ｃを１に設定する（ステップＳ４３）。そして、ＣＰＵ２１は、特定した検索条件テーブルから、ｃ番目に格納されている条件値を取得する。次いで、ＣＰＵ２１は、使用頻度を決定する（ステップＳ４４）。具体的に、ＣＰＵ２１は、履歴テーブルから予約有無が「有り」であるレコードを検索する。次いで、ＣＰＵ２１は、検索されたレコードのうち、検索利用者の会員ＩＤを格納し、且つ、ｊ番目の検索条件ＩＤに対応する条件値としてｃ番目の条件値を格納するレコードを検索する。そして、ＣＰＵ２１は、検索されたレコードの数を使用頻度として決定する。
【００６５】
次いで、ＣＰＵ２１は、順番ｃに１を加算する（ステップＳ４５）。次いで、ＣＰＵ２１は、順番ｃが、特定した検索条件テーブルに格納されている条件値の総数未満であるか否かを判定する（ステップＳ４６）。このとき、ＣＰＵ２１は、順番ｃが条件値の総数未満であると判定した場合には（ステップＳ４６：ＹＥＳ）、ステップＳ４４に進む。一方、ＣＰＵ２１は、順番ｃが条件値の総数未満ではないと判定した場合には（ステップＳ４６：ＮＯ）、ステップＳ４７に進む。ステップＳ４７において、ＣＰＵ２１は、順番ｊに１を加算する。次いで、ＣＰＵ２１は、順番ｊが、検索条件一覧テーブルに格納されている検索条件ＩＤの総数未満であるか否かを判定する（ステップＳ４８）。このとき、ＣＰＵ２１は、順番ｊが検索条件ＩＤの総数未満であると判定した場合には（ステップＳ４８：ＹＥＳ）、ステップＳ４２に進む。一方、ＣＰＵ２１は、順番ｊが検索条件ＩＤの総数未満ではないと判定した場合には（ステップＳ４８：ＮＯ）、ステップＳ４９に進む。
【００６６】
ステップＳ４９において、ＣＰＵ２１は、検索利用者の優先検索条件レコードを生成する。検索利用者の優先検索条件レコードには、検索利用者の優先検索条件を示す検索条件ＩＤ及び条件値の組合せが格納される。検索利用者の優先検索条件レコードの生成方法は、優先検索条件レコードの生成方法と基本的に同様である。ただし、検索利用者の優先検索条件レコードには、レッスンＩＤではなく、検索利用者の会員ＩＤが格納される。ＣＰＵ２１は、ステップＳ４９を終えると、利用者優先検索条件決定処理を終了させる。
【００６７】
図６は、配信サーバ２のＣＰＵ２１の推薦レッスン抽出処理の処理例を示すフローチャートである。図６に示すように、ＣＰＵ２１は、レッスン優先検索条件決定処理で生成された優先検索条件レコードのうち、閲覧レッスンのレッスンＩＤに対応する優先検索条件レコードを取得する（ステップＳ６１）。
【００６８】
次いで、ＣＰＵ２１は、閲覧レッスンの優先検索条件レコードから優先順位が１位である検索条件ＩＤ及び条件値の組合せを取得する。次いで、ＣＰＵ２１は、取得した検索条件ＩＤ及び条件値の組合せと一致する組合せを格納する優先検索条件レコードを、レッスン優先検索条件決定処理で生成された優先検索条件レコードの中から抽出する（ステップＳ６２）。閲覧レッスンの検索条件ＩＤ及び条件値の組合せと一致する組合せを格納する優先検索条件レコードであれば、その組合せの優先順位は１〜３位の何れであってもよい。次いで、ＣＰＵ２１は、ステップＳ６２で抽出された優先検索条件レコードの数が５０以上であるか否かを判定する（ステップＳ６３）。このとき、ＣＰＵ２１は、優先検索条件レコードの数が５０以上ではないと判定した場合には（ステップＳ６３：ＮＯ）、ステップＳ６７に進む。一方、ＣＰＵ２１は、優先検索条件レコードの数が５０以上であると判定した場合には（ステップＳ６３：ＹＥＳ）、ステップＳ６４に進む。
【００６９】
ステップＳ６４において、ＣＰＵ２１は、閲覧レッスンの優先検索条件レコードから優先順位が２位である検索条件ＩＤ及び条件値の組合せを取得する。次いで、ＣＰＵ２１は、ステップＳ６２で抽出された優先検索条件レコードの中から、取得した検索条件ＩＤ及び条件値の組合せと一致する組合せを格納する優先検索条件レコードを抽出する。次いで、ＣＰＵ２１は、ステップＳ６４で抽出された優先検索条件レコードの数が５０以上であるか否かを判定する（ステップＳ６５）。このとき、ＣＰＵ２１は、優先検索条件レコードの数が５０以上ではないと判定した場合には（ステップＳ６５：ＮＯ）、ステップＳ６７に進む。一方、ＣＰＵ２１は、優先検索条件レコードの数が５０以上であると判定した場合には（ステップＳ６５：ＹＥＳ）、ステップＳ６６に進む。
【００７０】
ステップＳ６６において、ＣＰＵ２１は、閲覧レッスンの優先検索条件レコードから優先順位が３位である検索条件ＩＤ及び条件値の組合せを取得する。次いで、ＣＰＵ２１は、ステップＳ６４で抽出された優先検索条件レコードの中から、取得した検索条件ＩＤ及び条件値の組合せと一致する組合せを格納する優先検索条件レコードを抽出する。次いで、ＣＰＵ２１は、ステップＳ６７に進む。
【００７１】
ステップＳ６７において、ＣＰＵ２１は、検索利用者の優先検索条件レコードから優先順位が１位である検索条件ＩＤ及び条件値の組合せを取得する。次いで、ＣＰＵ２１は、ステップＳ６２、Ｓ６４又はＳ６６で抽出された優先検索条件レコードの中から、取得した検索条件ＩＤ及び条件値の組合せと一致する組合せを格納する優先検索条件レコードを抽出する。次いで、ＣＰＵ２１は、ステップＳ６７で抽出された優先検索条件レコードの数が１０以上であるか否かを判定する（ステップＳ６８）。このとき、ＣＰＵ２１は、優先検索条件レコードの数が１０以上ではないと判定した場合には（ステップＳ６８：ＮＯ）、ステップＳ７２に進む。一方、ＣＰＵ２１は、優先検索条件レコードの数が１０以上であると判定した場合には（ステップＳ６８：ＹＥＳ）、ステップＳ６９に進む。
【００７２】
ステップＳ６９において、ＣＰＵ２１は、検索利用者の優先検索条件レコードから優先順位が２位である検索条件ＩＤ及び条件値の組合せを取得する。次いで、ＣＰＵ２１は、ステップＳ６７で抽出された優先検索条件レコードの中から、取得した検索条件ＩＤ及び条件値の組合せと一致する組合せを格納する優先検索条件レコードを抽出する。次いで、ＣＰＵ２１は、ステップＳ６９で抽出された優先検索条件レコードの数が１０以上であるか否かを判定する（ステップＳ７０）。このとき、ＣＰＵ２１は、優先検索条件レコードの数が１０以上ではないと判定した場合には（ステップＳ７０：ＮＯ）、ステップＳ７２に進む。一方、ＣＰＵ２１は、優先検索条件レコードの数が１０以上であると判定した場合には（ステップＳ７０：ＹＥＳ）、ステップＳ７１に進む。
【００７３】
ステップＳ７１において、ＣＰＵ２１は、検索利用者の優先検索条件レコードから優先順位が３位である検索条件ＩＤ及び条件値の組合せを取得する。次いで、ＣＰＵ２１は、ステップＳ６９で抽出された優先検索条件レコードの中から、取得した検索条件ＩＤ及び条件値の組合せと一致する組合せを格納する優先検索条件レコードを抽出する。次いで、ＣＰＵ２１は、ステップＳ７２に進む。
【００７４】
ステップＳ７２において、ＣＰＵ２１は、ステップＳ６７、Ｓ６９又はＳ７１で抽出された各優先検索条件レコードから、レッスンＩＤを取得する。次いで、ＣＰＵ２１は、取得したレッスンＩＤを含む推薦候補リストを生成する。ＣＰＵ２１は、ステップＳ７２の処理を終えると、推薦レッスン抽出処理を終了させる。
【００７５】
図７は、配信サーバ２のＣＰＵ２１の推薦処理の処理例を示すフローチャートである。図７に示すように、ＣＰＵ２１は、レッスン一覧テーブルから、閲覧レッスンのレッスンＩＤに対応するレコードを取得する（ステップＳ８１）。次いで、ＣＰＵ２１は、推薦レッスン抽出処理で生成された推薦候補リストから各レッスンＩＤを取得する。そして、ＣＰＵ２１は、レッスン一覧テーブルから、取得したレッスンＩＤに対応するレコードを取得する（ステップＳ８２）。
【００７６】
次いで、ＣＰＵ２１は、推薦要求から絞り込み条件ＩＤを取得する。次いで、ＣＰＵ２１は、絞り込み条件ＩＤに基づいて、絞り込み条件が、閲覧レッスンの実施日と近い実施日であるかを判定する（ステップＳ８３）。このとき、ＣＰＵ２１は、絞り込み条件が、閲覧レッスンの実施日と近い実施日ではないと判定した場合には（ステップＳ８３：ＮＯ）、ステップＳ９０に進む。一方、ＣＰＵ２１は、絞り込み条件が、閲覧レッスンの実施日と近い実施日であると判定した場合には（ステップＳ８３：ＹＥＳ）、ステップＳ８４に進む。
【００７７】
ステップＳ８４において、ＣＰＵ２１は、日数ｉを１に設定する。次いで、ＣＰＵ２１は、閲覧レッスンの実施日のｉ日前からｉ日後までの間に実施日がある運動レッスンのレッスンＩＤを検索する（ステップＳ８５）。具体的に、ステップＳ８１で取得したレコードから実施日を取得する。次いで、ＣＰＵ２１は、実施日からｉを減算して、実施日範囲の開始日を計算し、実施日からｉを加算して、実施日範囲の終了日を計算する。次いで、ＣＰＵ２１は、ステップＳ８２で取得したレコードの中から、実施日範囲の開始日以降であり、且つ、実施日範囲の終了日以前である実施日を格納するレコードを検索する。次いで、ＣＰＵ２１は、検索されたレコードの数が０であるか否かを判定する（ステップＳ８６）。このとき、ＣＰＵ２１は、検索されたレコードの数が０ではないと判定した場合には（ステップＳ８６：ＮＯ）、ステップＳ９７に進む。一方、ＣＰＵ２１は、検索されたレコードの数が０であると判定した場合には（ステップＳ８６：ＹＥＳ）、ステップＳ８７に進む。
【００７８】
ステップＳ８７において、ＣＰＵ２１は、日数ｉに１を加算する。次いで、ＣＰＵ２１は、日数ｉが４未満であるか否かを判定する（ステップＳ８８）。このとき、ＣＰＵ２１は、日数ｉが４未満であると判定した場合には（ステップＳ８８：ＹＥＳ）、ステップＳ８５に進む。一方、ＣＰＵ２１は、日数ｉが４未満ではないと判定した場合には（ステップＳ８８：ＮＯ）、ステップＳステップＳ８９に進む。ステップＳ８９において、ＣＰＵ２１は、推薦する運動レッスンが存在しないことを示すメッセージをユーザ端末６へ送信する。ユーザ端末６は、受信したメッセージを詳細画面に表示する。ＣＰＵ２１は、ステップＳ８９を終えると、推薦処理を終了させる。
【００７９】
ステップＳ９０において、ＣＰＵ２１は、絞り込み条件ＩＤに基づいて、絞り込み条件がレッスン種別であるか否かを判定する。このとき、ＣＰＵ２１は、絞り込み条件がレッスン種別ではないと判定した場合には（ステップＳ９０：ＮＯ）、ステップＳ９２に進む。一方、ＣＰＵ２１は、絞り込み条件がレッスン種別であると判定した場合には（ステップＳ９０：ＹＥＳ）、ステップＳ９１に進む。ステップＳ９１において、ＣＰＵ２１は、ステップＳ８１で取得したレコードからレッスン種別ＩＤを取得する。次いで、ＣＰＵ２１は、ステップＳ８２で取得したレコードの中から、取得したレッスン種別ＩＤと一致するレッスン種別ＩＤを格納するレコードを検索する。次いで、ＣＰＵ２１は、ステップＳ９７に進む。
【００８０】
ステップＳ９２において、ＣＰＵ２１は、絞り込み条件ＩＤに基づいて、絞り込み条件がインストラクターであるか否かを判定する。このとき、ＣＰＵ２１は、絞り込み条件がインストラクターではないと判定した場合には（ステップＳ９２：ＮＯ）、ステップＳ９４に進む。一方、ＣＰＵ２１は、絞り込み条件がインストラクターであると判定した場合には（ステップＳ９２：ＹＥＳ）、ステップＳ９３に進む。ステップＳ９３において、ＣＰＵ２１は、ステップＳ８１で取得したレコードからインストラクターＩＤを取得する。次いで、ステップＳ８２で取得したレコードの中から、取得したインストラクターＩＤと一致するインストラクターＩＤを格納するレコードを検索する。次いで、ＣＰＵ２１は、ステップＳ９７に進む。
【００８１】
ステップＳ９４において、ＣＰＵ２１は、絞り込み条件ＩＤに基づいて、絞り込み条件が曜日であるか否かを判定する。このとき、ＣＰＵ２１は、絞り込み条件が曜日ではないと判定した場合には（ステップＳ９４：ＮＯ）、ステップＳ９６に進む。一方、ＣＰＵ２１は、絞り込み条件が曜日であると判定した場合には（ステップＳ９４：ＹＥＳ）、ステップＳ９５に進む。ステップＳ９５において、ＣＰＵ２１は、ステップＳ８１で取得したレコードから曜日ＩＤを取得する。次いで、ＣＰＵ２１は、ステップＳ８２で取得したレコードの中から、取得した曜日ＩＤと一致する曜日ＩＤを格納するレコードを検索する。次いで、ＣＰＵ２１は、ステップＳ９７に進む。
【００８２】
ステップＳ９６において、ＣＰＵ２１は、ステップＳ８１で取得したレコードから開始時間を取得する。次いで、ＣＰＵ２１は、時間帯テーブルから、取得した開始時間を含む時間帯を取得する。次いで、ＣＰＵ２１は、ステップＳ８２で取得したレコードの中から、取得した時間帯内にある開始時間を格納するレコードを検索する。次いで、ＣＰＵ２１は、ステップＳ９７に進む。
【００８３】
ステップＳ９７において、ＣＰＵ２１は、推薦リストをユーザ端末６へ送信する。具体的に、ＣＰＵ２１は、ステップＳ８５、Ｓ９１、Ｓ９３、Ｓ９５又はＳ９６で検索されたレコードから、レッスンＩＤを取得する。次いで、ＣＰＵ２１は、取得したレッスンＩＤを含む推薦リストを生成する。次いで、ＣＰＵ２１は、生成した推薦リストを送信する。ユーザ端末６は、推薦リストに基づいて、推薦レッスン一覧２７０を表示する。ＣＰＵ２１は、ステップＳ９７を終えると、推薦処理を終了させる。
【００８４】
以上説明したように、本実施形態によれば、ＣＰＵ２１が、閲覧レッスンの優先検索条件を決定し、検索利用者の優先検索条件を決定する。そして、ＣＰＵ２１が、閲覧レッスンの優先検索条件と検索利用者の優先検索条件とを満たす運動レッスンのレッスンＩＤを、推薦する運動レッスンのレッスンＩＤに決定する。そのため、検索４１の検索傾向に合う検索条件と検索された運動レッスンの検索傾向に合う検索条件とを満たす運動レッスンを推薦することができる。
【００８５】
なお、上記実施形態においては、本発明の情報処理装置が配信サーバ２に適用されていた。しかしながら、本発明の情報処理装置が出力端末５に適用されてもよい。そして、出力端末５が、検索利用者に推薦する運動レッスンを決定してもよい。また、本発明の情報処理装置が出力端末５及び配信サーバ２に適用されてもよい。そして、出力端末５及び配信サーバ２は協働して処理を行ってもよい。
【符号の説明】
【００８６】
１  運動レッスン支援システム
２  配信サーバ
３  データベース
５  出力端末
７  ＨＤＤ
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
５６  表示制御部
６０  ネットワーク通信部
６３  音声出力部
５７  モニタ
６４  スピーカ
６７  ディスプレイ
【図１】
0005884805.tif 000002
【図２】
0005884805.tif 000003
【図３】
0005884805.tif 000004
【図４】
0005884805.tif 000005
【図５】
0005884805.tif 000006
【図６】
0005884805.tif 000007
【図７】
0005884805.tif 000008