【解決手段】予約支援装置は、各ユーザに関してそのゴルファー特性を含むユーザ情報を記憶する記憶部と、前記ユーザ情報を用いて、対象ユーザのゴルファー特性に適合するゴルファー特性を有する一人以上の候補ユーザを抽出するマッチング部と、前記対象ユーザと前記一人以上の候補ユーザを含むパーティが予約可能な一つ以上のプランを計画する計画部と、前記一つ以上のプランから選択されたプランの予約を実行する予約部とを備える。
各ユーザに関してそのゴルファー特性を含むユーザ情報を用いて、対象ユーザのゴルファー特性に適合するゴルファー特性を有する一人以上の候補ユーザを抽出するマッチングステップと、
前記対象ユーザと前記一人以上の候補ユーザを含むパーティが予約可能な一つ以上のプランを計画する計画ステップと、
前記一つ以上のプランから選択されたプランの予約を実行する予約ステップと
をコンピュータに実行させるプログラム。
【発明を実施するための形態】
【0026】
以下、本発明の複数の実施形態について図面に基づいて説明する。なお、各実施形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。また、以下の各実施形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。また、特にその要素のみである旨明示した場合等を除き、それ以外の要素を排除するものでないことは言うまでもない。同様に、以下の各実施形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状、位置関係等に近似または類似するもの等を含むものとする。
【0027】
[予約支援システムの構成例]
図1は、本発明の一実施形態に係る予約支援システムの構成例を示す図である。予約支援システムは、予約支援装置1、複数台のユーザの端末装置2(1台のみ図示)、及び1台以上の予約システム3(1台のみ図示)を備える。予約支援装置1は、インターネット等の通信ネットワークNに接続され、複数のユーザの端末装置2、及び1つ以上の予約システム3と通信することができる。
【0028】
予約支援装置1は、ゴルフプレイヤである各ユーザに対して、ゴルフコース(の利用)の予約支援、ユーザ間のソーシャルネットワーキング、などを含むゴルフに関する統合的なサービスを提供する。予約支援装置1は、例えば1台又は複数台のサーバコンピュータなどのコンピュータにより実現可能である。予約支援装置1の提供する機能については後に詳述する。
【0029】
端末装置2は、ユーザが使用する端末であり、ユーザの操作に従って予約支援装置1にアクセスして各種サービスに関する情報を表示する。端末装置2は、例えばスマートフォン、タブレットコンピュータ、モバイルコンピュータ、PC(Personal Computer)、ウェアラブルコンピュータなどのコンピュータにより実現できる。
【0030】
予約システム3は、既存のゴルフ予約システムであり、例えば、WEBサイトを介してユーザの希望条件(日時、プレイエリア、人数など)に合致するラウンドプランの検索、予約などのサービスを提供するWEBシステムである。
【0031】
ただし、本実施形態では、予約システム3は、予約支援装置1からの要求に応じてプランの検索及び予約を行うことができるものとする。予約システム3と予約支援装置1の間のデータのやり取りは、例えば、予約システム3に実装されるWeb API(Application Programming Interface)により実現できる。
【0032】
端末装置2は、処理部210、記憶部220、通信部230、表示部240、及び入力部250を有する。これらの構成要素は、それぞれ例えば、プロセッサ、メモリ又はストレージ、通信インターフェイス、ディスプレイ、キーボード等の入力装置により実現できる。
【0033】
処理部210は、端末装置2を統合的に制御する。処理部210は、アプリ211を含む機能を有する。これらの機能は、例えばプロセッサが所定のプログラムを実行することで実現される。
【0034】
アプリ211は、例えば、汎用的なブラウザソフトウェア、あるいは、予約支援装置1にアクセスするための専用アプリケーションソフトウェアであり、予約支援装置1が提供するWEBサイトへのアクセスをユーザに提供する。アプリ211は、予約支援装置1から通信部230を介してWEBページを取得して表示部240に出力したり、表示されたWEBページへの情報の入力をユーザから入力部250を介して受け付け、通信部230を介して予約支援装置1に送信したりする。
【0035】
予約支援装置1は、処理部10、記憶部20、及び通信部30を有する。これらの構成要素は、それぞれ例えば、プロセッサ、メモリ又はストレージ、通信インターフェイスにより実現できる。
【0036】
処理部10は、予約支援装置1を統合的に制御する。処理部10は、インターフェイス制御部11、ユーザ管理部12、コミュニティ管理部13、マッチング部14、計画部15、予約部16、及び学習部17を含む機能を有する。これらの機能は、例えばプロセッサが所定のプログラムを実行することで実現される。記憶部20は、ユーザ情報21、コミュニティ情報22、及び学習済データ23を含む情報を格納する。
【0037】
インターフェイス制御部11は、アプリ211からの要求に応じて各種の操作画面(例えばWEBページ)の情報を生成し、アプリ211に送信する。また、インターフェイス制御部11は、アプリ211により表示された操作画面に入力された情報を受信する。
【0038】
ユーザ管理部12は、各ユーザのユーザ情報21を管理する。
【0039】
図2は、ユーザ情報21のデータ構造例を示す図である。ユーザ情報21は、ユーザの識別子であるユーザIDに関連付けて、基本プロフィール、詳細プロフィール、関係データ、及び変動データを含む。
【0040】
基本プロフィールには、ユーザに関して、名前、画像、性別、年齢、連絡先、プレイエリアなどのデータ項目が含まれる。画像は、例えばユーザのアバターや写真などである。プレイエリアは、ユーザが訪問可能なゴルフコースのエリアであり、例えば県名などの行政区画である。これらのデータは、例えば最初のユーザ登録時に設定されるが、ユーザの操作によって適宜変更可能である。
【0041】
詳細プロフィールには、ユーザに関して、性格、プレイスタイル、プレイ目的などのデータ項目が含まれる。性格は、例えば、パーソナリティ特性を表すビッグファイブと呼ばれる五因子(開放性、誠実性、外向性、協調性、及び神経症傾向)を数値化したデータ群である。プレイスタイルは、例えば、アスリート、エンジョイゴルファー、などの分類を示すデータである。プレイ目的は、例えば、ゴルフの上達、ネッワーキング、エンジョイする、などの分類を示すデータである。これらのデータは、例えば最初のユーザ登録時に設定されるが、ユーザの操作によって適宜変更可能である。
【0042】
関係データには、ユーザに関して、所属コミュニティ、友達などのデータ項目が含まれる。所属コミュニティは、例えば、ユーザが所属する1つ以上のコミュニティの識別子、名称である。友達は、例えば、ユーザの友達であるユーザの識別子、名前である。これらの関係データは、ユーザのソーシャルネットワーキングの状況に応じて変化する。
【0043】
変動データには、ユーザに関して、スケジュール、レビュー、獲得メダル、モチベーションなどのデータ項目が含まれる。スケジュールは、例えば、ユーザがプレイ可能な日、予約されたラウンドの日、などが設定される。レビューは、例えば、ユーザに対する他のユーザからの評価点数、評価コメント、などが設定される。獲得メダルは、例えば、ラウンドの回数や友達の数などに応じて、予約支援装置1から授与された各種のメダル、などが設定される。モチベーションは、ゴルフに対する現在の気持ちを表し、例えば、今すぐラウンドしたい、ラウンドへ誘いを待っている、ラウンドへは不参加、などの分類を示すデータである。スケジュール及びモチベーションは、ユーザの操作によって適宜変更可能である。レビュー及び獲得メダルは、ユーザの活動の状況に応じて追加される。
【0044】
例えば、ユーザ管理部12は、アプリ211を介してユーザから、基本プロフィール、詳細プロフィールの入力を受け付け、ユーザ情報21に格納する。また、ユーザ管理部12は、ユーザからスケジュール及びモチベーションの入力を受け付け、ユーザ情報21に格納する。また、ユーザ管理部12は、当該ユーザに対して他のユーザからレビューを受け付け、ユーザ情報21に格納する。また、ユーザ管理部12は、当該ユーザと繋がった友達ユーザの識別子及び名前を、ユーザ情報21に格納する。また、ユーザ管理部12は、当該ユーザが所属するコミュニティの識別子及び名称を、ユーザ情報21に格納する。
【0045】
図1を参照すると、コミュニティ管理部13は、各ユーザが所属するコミュニティに関するコミュニティ情報22を管理する。
【0046】
図3は、コミュニティ情報22のデータ構造例を示す図である。コミュニティ情報22は、コミュニティの識別子であるコミュニティIDに関連付けて、基本プロフィール、関係データ、及び変動データを含む。
【0047】
基本プロフィールには、コミュニティに関して、名称、管理者などのデータ項目が含まれる。管理者は、例えば、当該コミュニティを管理するユーザの識別子、名前である。これらのデータは、例えば最初のコミュニティ登録時に設定されるが、コミュニティの管理者の操作によって適宜変更可能である。
【0048】
関係データには、コミュニティに関して、所属ユーザ、関連コミュニティなどのデータ項目が含まれる。所属ユーザは、例えば、当該コミュニティに所属する1又は複数のユーザの識別子、名称である。関連コミュニティは、例えば、当該コミュニティに関連付けられた他のコミュニティの識別子、名称である。これらの関係データは、コミュニティの状況に応じて変化する。
【0049】
変動データには、コミュニティに関して、スケジュール、モチベーションなどのデータ項目が含まれる。スケジュールは、例えば、コミュニティにおけるイベントの日、コミュニティ内で作成されたパーティにより予約されたラウンドの日、などが設定される。モチベーションは、コミュニティのゴルフに対する現在の気持ちを表し、例えば、コミュニティに所属するユーザのモチベーションを基に決定される。スケジュールは、管理者の操作によって適宜変更可能である。モチベーションは、所属するユーザのモチベーションに応じて変化する。
【0050】
例えば、コミュニティ管理部13は、アプリ211を介して管理者から、基本プロフィールの入力を受け付け、コミュニティ情報22に格納する。また、コミュニティ管理部13は、当該コミュニティに所属するユーザの識別子及び名前を、コミュニティ情報22に格納する。また、コミュニティ管理部13は、当該コミュニティと繋がった他のコミュニティの識別子及び名称を、コミュニティ情報22に格納する。また、コミュニティ管理部13は、管理者からスケジュールの入力を受け付け、コミュニティ情報22に格納する。また、コミュニティ管理部13は、所定のタイミングで、当該コミュニティに所属する各ユーザのモチベーションを取得し、これのモチベーションに基づいてコミュニティのモチベーションを決定し(例えば各ユーザのモチベーションを数値化して平均値を算出する)、コミュニティ情報22に格納する。
【0051】
図1を参照すると、マッチング部14は、マッチングを指示したユーザ(対象ユーザ)に適合する一人以上の候補ユーザを抽出するマッチング処理を実行する。具体的には、マッチング部14は、対象ユーザのゴルファー特性に適合するゴルファー特性を有する一人以上の候補ユーザを抽出する。ゴルファー特性は、ゴルファーとしてのユーザのゴルフに関する属性の集合である。本実施形態では、マッチング部14は、マッチング用の学習済データ23を用いる。
【0052】
学習済データ23は、例えば、機械学習又は深層学習により構築されたニューラルネットワークである学習済モデルである。この学習済モデルは、過去の複数の対象ユーザに関する属性情報と、それぞれの対象ユーザに対して適合した又は適合しなかった他のユーザに関する属性情報とを含む教師データに基づいて、対象ユーザに関する属性情報に基づいて適合する他のユーザの情報を出力するように学習された学習済モデルである。
【0053】
なお、学習済モデルは、例えば、入力値に対して所定の演算を行って出力値を出力する複数のノードで構成されており、学習済データ23には各ノードの演算を規定する関数の係数や閾値等のデータが記憶される。
【0054】
図4は、学習済データ23のデータ構造例を示す図である。具体例としては、学習済データ23は、例えば、入力層に対象ユーザのゴルファー特性が入力され、複数段の中間層(1段のみ図示)を経て、出力層から各ゴルファー特性の分類に対する一致率が出力されるニューラルネットワークである。
【0055】
入力層に入力されるゴルファー特性は、ユーザ情報21に含まれるデータ項目のうち、例えば、性格(開放性、誠実性、外向性、協調性、及び神経症傾向のうち少なくとも1つ)、プレイスタイル、プレイ目的、性別、及び年齢の少なくとも1つを採用することができる。複数段の中間層は、例えば、ゴルファー特性のデータ項目数分用意される。出力層では、ゴルファー特性の各データ項目の取り得る値の組み合わせ毎に分類されており、入力されたゴルファー特性の各分類に対する一致率が出力される。
【0056】
各ユーザには、例えば、そのユーザのゴルファー特性のデータ項目の値の組み合わせに対する分類が付与される。学習済モデルの出力に基づき分類を選択し、選択した分類に対応する分類を有するユーザを特定することで、候補ユーザを抽出することができる。
【0057】
例えば、マッチング部14は、対象ユーザのゴルファー特性を学習済データ23に入力し、その出力に基づいて、一致率が最も高い分類を取得する。それから、マッチング部14は、ユーザ情報21を参照し、取得した分類に対応する分類を有する候補ユーザを抽出する。もちろん、抽出可能な候補ユーザが見つからない場合は、次に高い一致率の分類を取得して、候補ユーザを抽出してもよい。
【0058】
ゴルフにおいては、パーティは長時間一緒にラウンドを回るため、ゴルファー特性を考慮することは、パーティのメンバを決定する上で非常に重要である。上述のようなマッチング処理を行うことで、対象ユーザにより相性の良い候補ユーザを抽出することができる。
【0059】
なお、ゴルファー特性として、性格、プレイスタイル、プレイ目的、性別、及び年齢の1つ以上の組み合わせを例示したが、これに限られるものではない。ゴルファー特性には他のデータ項目が含まれてもよい。
【0060】
他の例としては、ユーザのゴルフに関する買い物履歴、ゴルフに関する行動履歴なども採用し得る。ゴルフに関する買い物履歴には、例えば、購入日時、購入した商品やサービスの種類、価格などが含まれ得る。ゴルフに関する行動履歴には、例えば、ラウンド日時、練習日時などが含まれ得る。これらの情報は、ユーザ管理部12が、ユーザによってアプリ211から入力されたものを取得するか、ユーザが利用する外部のEC(Electronic Commerce)サイトシステムから取得して、ユーザ情報21に格納すればよい。また、ユーザ管理部12は、取得した買い物履歴を分析して、買い物頻度、平均購入価格、種類別購入数などの集計データを取得し、ユーザ情報21の買い物履歴に含めてもよい。また、ユーザ管理部12は、取得した行動履歴を分析して、ラウンド頻度、練習頻度などの集計データを取得し、ユーザ情報21の行動履歴に含めてもよい。
【0061】
さらに他の例としては、ユーザが使用するゴルフクラブのブランド、ユーザが好みのゴルフ場の種類(例えば、安い、名門など)も採用し得る。これらの情報は、ユーザ管理部12が、ユーザによってアプリ211から入力されたものを取得して、ユーザ情報21に格納すればよい。
【0062】
本実施形態では、マッチング部14は、マッチング用の学習済モデルを用いるが、ルールベースの処理によりマッチング処理を行ってもよい。すなわち、ゴルファー特性の各分類に対して適合する分類を、予め統計的にルールとして求めておく。そして、マッチング部14は、データベースあるいはアルゴリズムとして実装されたルールに基づき、対象ユーザのゴルファー特性の分類に適合するゴルファー特性の分類を有する候補ユーザを抽出する。
【0063】
なお、候補ユーザを抽出する際に、マッチング部14は、対象ユーザとラウンド日のスケジュールが合う候補ユーザを抽出してもよい。対象ユーザとプレイエリアが重複する候補ユーザを抽出してもよい。対象ユーザが属するコミュニティの中で候補ユーザを抽出してもよい。モチベーションが所定基準を超える候補ユーザを抽出してもよい。
【0064】
また、マッチング部14は、対象ユーザによりペアユーザが指名されている場合(後述する2人予約)、これら二人のユーザのゴルファー特性に適合するゴルファー特性を有する一人又は二人の候補ユーザを抽出する。例えば、対象ユーザに適合する候補ユーザを一人と、ペアユーザに適合する候補ユーザを一人の少なくとも一方を抽出すればよい。
【0065】
図1を参照すると、計画部15は、ラウンドの計画を指示したユーザ(対象ユーザ)と、マッチング部14により抽出された対象ユーザに適合する一人以上の候補ユーザとを含むパーティが予約可能な一つ以上のプランを計画する。
【0066】
例えば、計画部15は、対象ユーザと一人以上の候補ユーザの様々な組み合わせからなる1つ以上のパーティを作成する。また、計画部15は、各パーティについて、ユーザ情報21に基づいて、メンバ全員のスケジュールが合うラウンド日と、メンバ全員の重複するプレイエリアを特定する。
【0067】
また、計画部15は、各パーティについて、人数、ラウンド日、プレイエリア等の希望条件を含むプランの検索要求を、予約システム3に送信する。計画部15は、検索要求への応答として予約システム3から1つ以上のプランの情報を受信すると、当該プランの情報を対象ユーザの端末装置2のアプリ211に送信し、表示させる。プランの情報には、例えば、プランの識別子、ラウンド日、ゴルフコースの名称、プレイエリア、所在地、連絡先、料金などが含まれる。
【0068】
予約部16は、対象ユーザによりアプリ211を介して予約すべきプランが選択されると、当該選択されたプランの識別子を含む予約要求を、予約システム3に送信する。予約部16は、予約が完了すると、当該予約されたプランに関する情報(例えば、ラウンド日、参加ユーザの識別子及び名前、ゴルフコースの名称、プレイエリアなど)を、各参加ユーザのスケジュールに記録する。
【0069】
学習部17は、学習済データ23に対する学習を行う。例えば、学習部17は、ユーザ情報21に基づいて、対象ユーザのゴルファー特性と、対象ユーザをレビューした他のユーザのゴルファー特性と、当該他のユーザによるレビュー情報を定量化したラベルデータ(例えば相性の良好さの度合を示す)とをセットとする教師データを生成し、深層学習アルゴリズムにより学習済モデルに学習させる。例えば、学習部17は、対象ユーザのゴルファー特性を入力した場合に、相性がより良好な他のユーザのゴルファー特性の分類に対応する出力ノードからの出力値が1.0に近づき、その他の出力ノードからの出力値が0に近づくように学習する。また、学習部17は、入力値に対して行う所定の演算を規定する関数の係数や閾値等のデータを最適化する。これにより、実際にラウンドしたパーティのメンバ同士の双方向の感想が、ゴルファー特性間の相性として、学習済モデルに反映される。
【0070】
なお、ルールベースの場合、学習部17は、外部のコンピュータで学習されたルール、又は、自ら学習したルールを取得し、データベースあるいはアルゴリズムとして実装されたルールを更新すればよい。
【0071】
[予約支援装置の処理例]
まず、友達機能の一例について説明する。ユーザは、友達ユーザを追加したり削除したりすることができる。
【0072】
具体的には、インターフェイス制御部11は、対象ユーザが操作するアプリ211からの要求に応じて、所定の友達検索画面をアプリ211に表示させ、対象ユーザが入力した検索キーワード等を受信する。ユーザ管理部12は、検索キーワードを使って、ユーザ情報21の名前を検索する。ユーザ管理部12は、マッチング部14に指示して、対象ユーザに適合する候補ユーザを検索するようにしてもよい。インターフェイス制御部11は、検索結果を友達検索画面に表示させ、対象ユーザが選択した友達ユーザのユーザID及び名前を受信する。ユーザ管理部12は、入力されたユーザID及び名前を対象ユーザの関係データの友達に追加するとともに、対象ユーザのユーザID及び名前を友達ユーザの関係データの友達に追加する。このようにして、ユーザ同士が友達として関連付けられる。
【0073】
次に、コミュニティ機能の一例について説明する。ユーザは、コミュニティを作成したり、コミュニティ同士を関連付けたり合併したりすることができる。
【0074】
具体的には、インターフェイス制御部11は、管理者ユーザが操作するアプリ211からの要求に応じて、所定のコミュニティ作成画面をアプリ211に表示させ、管理者ユーザが入力したコミュニティの情報(例えば、コミュニティの名称、管理者のID及び名前、所属させるユーザのID及び名前等)を受信する。コミュニティ管理部13は、新しいコミュニティ情報22を作成し、そこに受信した情報を格納する。また、コミュニティ管理部13は、管理者ユーザ及び各所属ユーザの関係データの所属コミュニティに、新しいコミュニティのID及び名称を登録する。このようにして、コミュニティが作成される。
【0075】
また、インターフェイス制御部11は、管理者ユーザが操作するアプリ211からの要求に応じて、所定のコミュニティ連携画面をアプリ211に表示させ、管理者ユーザが入力したコミュニティの連携情報(例えば、関連付ける複数のコミュニティのID及び名称、合併する複数のコミュニティのID及び名称等)を受信する。コミュニティ管理部13は、コミュニティ同士を関連付ける場合、それぞれのコミュニティの関係データの関連コミュニティに、相互のコミュニティID及び名称を登録する。コミュニティ管理部13は、コミュニティ同士を合併する場合、それらのコミュニティのコミュニティ情報22を統合する。このようにしてコミュニティ同士が関連付けられたり合併されたりする。コミュニティを分割できてもよい。
【0076】
次に、予約支援機能の一例について説明する。ユーザは、パーティを作成したり、ラウンドを予約したりすることができる。
【0077】
図5は、予約支援処理の一例を示すフローチャートである。本フローチャートは、予約支援装置1により提供されるサービスの大まかな流れを示している。既に、複数のユーザのユーザ情報21が登録されており、複数のコミュニティのコミュニティ情報22が登録されているものとする。また、学習済データ23も記憶部20に格納されているものとする。
【0078】
まず、ユーザはユーザ登録を行う(ステップS1)。具体的には、インターフェイス制御部11は、当該ユーザが操作するアプリ211からの要求に応じて、所定のユーザ登録画面をアプリ211に送信して表示させる。また、インターフェイス制御部11は、当該ユーザ登録画面上でユーザが入力したユーザ情報(例えば、基本プロフィール、詳細プロフィール)を受信する。ユーザ管理部12は、新しいユーザ情報21を作成し、そこに受信された情報を格納する。このようにして、ユーザ登録が完了すると、インターフェイス制御部11は、
図9に示すようなホーム画面500をアプリ211に表示させることができる。
【0079】
図9は、端末装置2に表示されるホーム画面500の一例を示す図である。ホーム画面500には、ホームボタン501、スケジュールボタン502、友達ボタン503、コミュニティボタン504、チャットボタン505、及びユーザ情報欄506が表示されている。ボタン501〜505は、ぞれぞれの機能に対応する操作画面に遷移するためのボタンであり、後述する他の操作画面でも共通に表示される。ユーザ情報欄506には、ユーザの名前と、ユーザIDと、基本プロフィール及び詳細プロフィールに含まれるデータ項目の少なくとも一部とが表示されている。
【0080】
図5を参照すると、次に、ユーザはコミュニティ参加を行う(ステップS2)。具体的には、インターフェイス制御部11は、当該ユーザが操作するアプリ211からの要求に応じて、所定のコミュニティ検索画面をアプリ211に表示させ、ユーザが入力した検索キーワード等を受信する。コミュニティ管理部13は、検索キーワードを使って、コミュニティ情報22の名称を検索する。インターフェイス制御部11は、検索結果をコミュニティ検索画面に表示させ、ユーザが入力した参加先のコミュニティのID及び名称を受信する。なお、検索画面には、検索されたコミュニティの情報に加え、関連コミュニティの情報が表示されてもよい。コミュニティ管理部13は、入力されたコミュニティID及び名称に基づいて、当該ユーザの関係データの所属コミュニティの更新と、参加先のコミュニティの関係データの所属ユーザの更新とを行う。このようにして、コミュニティ参加が完了すると、インターフェイス制御部11は、
図10に示すようなコミュニティ一覧画面510や
図11に示すようなコミュニティ画面520をアプリ211に表示させることができる。
【0081】
図10は、端末装置2に表示されるコミュニティ一覧画面510の一例を示す図である。コミュニティ一覧画面510には、ボタン501〜505、コミュニティ毎のコミュニティ情報欄511、及びラウンド計画(2人予約)ボタン513が表示されている。コミュニティ情報欄511には、コミュニティの名称及びIDと、関係データの所属ユーザから特定されるユーザの画像の一覧と、コミュニティの変動データのモチベーションを表すモチベーション情報512とが表示されている。ボタン513は、後述するラウンド計画(2人予約)を実行するためのボタンである。
【0082】
図11は、端末装置2に表示されるコミュニティ画面520の一例を示す図である。コミュニティ画面520は、例えばコミュニティ一覧画面510で選択されたコミュニティの情報が表示される。コミュニティ画面520には、ボタン501〜505、コミュニティ情報欄521、ステータス欄523、及びラウンド計画ボタン524が表示されている。コミュニティ情報欄521には、コミュニティの名称及びIDと、関係データの所属ユーザから特定されるユーザの画像の一覧と、コミュニティの変動データのモチベーションを表すモチベーション情報522とが表示されている。ステータス欄523には、コミュニティのスケジュール、関連コミュニティなどの情報が表示される。ボタン524は、後述するラウンド計画を実行するためのボタンである。
【0083】
図5を参照すると、次に、ユーザはラウンド計画を行う(ステップS3)。具体的には、例えば選択したコミュニティのコミュニティ画面520でラウンド計画524ボタンがクリック又はタップされるなど、ユーザ(対象ユーザ)の操作に応じて、計画部15は、ユーザのIDと選択されたコミュニティのIDとを取得し、
図6に示すラウンド計画処理を実行する。
【0084】
図6は、ラウンド計画処理の一例を示すフローチャートである。まず、マッチング部14は、対象ユーザのゴルファー特性を取得する(ステップS31)。具体的には、マッチング部14は、対象ユーザのゴルファー特性をユーザ情報21から取得する。
【0085】
それから、マッチング部14は、対象ユーザのゴルファー特性に適合するゴルファー特性を有する一人以上の候補ユーザを抽出する(ステップS32)。具体的には、マッチング部14は、ステップS31で取得した対象ユーザのゴルファー特性を、学習済モデルである学習済データ23に入力し、その出力に基づいて、一致率が最も高い分類を取得する。また、マッチング部14は、選択されたコミュニティのコミュニティ情報22に基づいて、所属するユーザを特定する。そして、マッチング部14は、特定した各所属ユーザのユーザ情報21を参照し、取得した分類に対応する分類を有する一人以上の候補ユーザを抽出する。抽出可能な候補ユーザが見つからない場合は、次に高い一致率の分類を取得して、候補ユーザを抽出してもよい。
【0086】
それから、計画部15は、対象ユーザと一人以上の候補ユーザを含むパーティを作成する(ステップS33)。具体的には、計画部15は、対象ユーザとステップS32で抽出された一人以上の候補ユーザの様々な組み合わせからなる1つ以上のパーティを作成する。パーティは、通常、ラウンドが許可され得る3人又は4人である。
【0087】
それから、計画部15は、パーティが予約可能なプランを計画する(ステップS34)。具体的には、計画部15は、ステップS33で作成した各パーティについて、ユーザ情報21に基づいて、メンバ全員のスケジュールが合うラウンド日と、メンバ全員の重複するプレイエリアを特定する。また、計画部15は、各パーティについて、人数、ラウンド日、プレイエリア等の希望条件を含むプランの検索要求を、予約システム3に送信する。そして、計画部15は、各パーティについて、予約システム3から1つ以上のプランの情報を受信する。
【0088】
それから、計画部15は、プランを提示する(ステップS35)。具体的には、計画部15の要求に応じて、インターフェイス制御部11は、ステップS34で取得された各プランの情報を含む、
図12に示すようなラウンド計画結果画面530を、対象ユーザのアプリ211に表示させる。
【0089】
図12は、端末装置2に表示されるラウンド計画結果画面530の一例を示す図である。ラウンド計画結果画面530には、ボタン501〜505、コミュニティ情報欄531、及びパーティ毎の計画結果欄532が表示されている。コミュニティ情報欄531には、ラウンド計画で選択されたコミュニティの名前及びIDが表示されている。計画結果欄532には、同一パーティについて、1又は複数のプランが表示されている。また、計画結果欄532には、各プランの詳細情報を表示するための詳細ボタンや、各プランを予約するための予約ボタンが表示されている。
【0090】
図5を参照すると、ステップS3において、例えばコミュニティ一覧画面510でラウンド計画(2人予約)ボタン513がクリック又はタップされるなど、ユーザ(対象ユーザ)の操作に応じて、計画部15は、対象ユーザのIDと、予め指名されたペアユーザのIDとを取得し、
図7に示すラウンド計画(2人予約)処理を実行する。ペアユーザの指名は、例えばコミュニティ一覧画面510に表示されたユーザの画像の一覧から受け付けることができる。
【0091】
図7は、ラウンド計画(2人予約)処理の一例を示すフローチャートである。
図6の処理と異なる点を中心に説明する。まず、マッチング部14は、対象ユーザ及びペアユーザのゴルファー特性を取得する(ステップS31a)。
【0092】
それから、マッチング部14は、対象ユーザ及びペアユーザのゴルファー特性に適合するゴルファー特性を有する一人以上の候補ユーザを抽出する(ステップS32a)。具体的には、マッチング部14は、ステップS31aで取得した対象ユーザのゴルファー特性を、学習済モデルである学習済データ23に入力し、その出力に基づいて、一致率が最も高い分類を取得する。ステップS31aで取得したペアユーザのゴルファー特性についても同様に、適合する分類を得る。また、マッチング部14は、対象ユーザの所属する各コミュニティのコミュニティ情報22基づいて、各コミュニティに所属するユーザを特定する。ペアユーザについても同様に、ペアユーザの所属する各コミュニティに所属するユーザを特定する。そして、マッチング部14は、特定した各所属ユーザのユーザ情報21を参照し、対象ユーザ及びペアユーザに関して取得した2つの分類に対応する分類を有する一人以上の候補ユーザを抽出する。抽出可能な候補ユーザが見つからない場合は、次に高い一致率の分類を取得して、候補ユーザを抽出してもよい。
【0093】
それから、計画部15は、対象ユーザ及びペアユーザと一人以上の候補ユーザとを含むパーティを作成する(ステップS33a)。具体的には、計画部15は、対象ユーザ及びペアユーザと、ステップS32aで抽出された一人以上の候補ユーザの様々な組み合わせからなる1つ以上のパーティを作成する。パーティは、通常は、ラウンドが許可され得る3人又は4人である。
【0094】
それから、計画部15は、パーティが予約可能なプランを計画する(ステップS34a)。この処理は
図6のステップS34と同様である。
【0095】
それから、計画部15は、プランを提示する(ステップS35a)。具体的には、計画部15の要求に応じて、インターフェイス制御部11は、ステップS34aで取得された各プランの情報を含む、
図13に示すようなラウンド計画(2人予約)結果画面540を、アプリ211に表示させる。
【0096】
図13は、端末装置2に表示されるラウンド計画(2人予約)結果画面540の一例を示す図である。ラウンド計画(2人予約)結果画面540には、ボタン501〜505、及びパーティ毎の計画結果欄542が表示されている。計画結果欄542には、同一パーティについて、1又は複数のプランが表示されている。また、計画結果欄542には、各プランの詳細情報を表示するための詳細ボタンや、各プランを予約するための予約ボタンが表示されている。
【0097】
なお、上述のラウンド計画処理では、対象ユーザ又はペアユーザの所属するコミュニティ内に限って候補ユーザを抽出しているが、コミュニティ内に限らず、ユーザ登録している全員又はその中から検索条件により絞り込まれたユーザの中から、候補ユーザを抽出してもよい。ただし、一般的に同一コミュニティ内のユーザには何らかの共通点(例えば、友達同士、同僚同士など)があることを前提とすれば、コミュニティ内に限った方が相性が良く、心理的な抵抗が低減される可能性が高い。
【0098】
図5を参照すると、次に、ユーザはラウンド予約を行う(ステップS4)。具体的には、例えば画面530又は画面540でいずれかのプランの予約ボタンがクリック又はタップされるなど、ユーザ(対象ユーザ)の操作に応じて、予約部16は、当該選択されたプランの予約要求を、予約システム3に送信する。予約部16は、予約が完了すると、当該予約されたプランに関する情報(例えば、ラウンド日、参加ユーザのID及び名前、ゴルフコースの名称、プレイエリアなど)を、各参加ユーザのスケジュールに記録する。プランの予約が行われた後、ユーザは、実際に予約されたゴルフコースを訪問し、ラウンドをプレイする。
【0099】
次に、ユーザはラウンドレビューを行う(ステップS5)。具体的には、当該プランの終了後、ユーザ(対象ユーザ)の操作に応じて、インターフェイス制御部11は、
図14に示すようなラウンドレビュー画面550を、アプリ211に表示させる。
【0100】
図14は、端末装置2に表示されるラウンドレビュー画面550の一例を示す図である。ラウンドレビュー画面550には、ボタン501〜505、ラウンド情報欄551、ラウンドレビュー欄552、参加ユーザ毎のメンバレビュー欄553、及び送信ボタン554が表示されている。ラウンド情報欄551には、ラウンドを特定する情報(例えば、ラウンド日、ゴルフコースの名称など)が表示される。ラウンドレビュー欄552には、ラウンドに対する評価点数と評価コメントを入力することができる。メンバレビュー欄553には、対象ユーザ以外の参加ユーザ個人に対する評価点数と評価コメントを入力することができる。送信ボタン554は、画面550で入力されたレビュー情報を送信するためのボタンである。
【0101】
送信ボタン554がクリック又はタップされると、ユーザ管理部12は、画面550で入力されたレビュー情報を取得し、各参加ユーザ個人に対するレビュー情報をそれぞれ、当該参加ユーザのユーザ情報21の変動データに記録する。また、ラウンドに対するレビュー情報も、各参加ユーザの変動データに記録する。
【0102】
なお、各参加ユーザも、同様にラウンドレビューを行うことができる。従って、ユーザ同士の相互のレビュー情報は、それぞれのユーザ情報21に記録される。例えば、ユーザA〜Dの4人のパーティでラウンドした場合、ユーザAのユーザ情報21には、ユーザB〜DによるユーザA個人に対するレビューと、ユーザB〜Dによるラウンドに対するレビューとが記録される。ユーザB〜Dについても同様である。
【0103】
以上のようにして、各ユーザによるラウンドレビューが行われると、バックグラウンドで学習処理が実行されてもよい。
【0104】
図8は、学習処理の一例を示すフローチャートである。まず、学習部17は、レビューされた対象ユーザのゴルファー特性とレビュー情報を、ユーザ情報21から取得する(ステップS51)。また、学習部17は、対象ユーザをレビューした他のユーザのゴルファー特性を、ユーザ情報21から取得する(ステップS52)。
【0105】
それから、学習部17は、教師データを生成する(ステップS53)。具体的には、例えば、学習部17は、ステップS51で取得した対象ユーザのゴルファー特性と、ステップS52で取得した他のユーザのゴルファー特性と、ステップS51で取得した他のユーザによるレビュー情報を定量化したラベルデータとをセットとする教師データを生成する。そして、学習部17は、ステップS53で生成した教師データを使って、深層学習アルゴリズムにより学習済モデルに学習させる(ステップS54)。
【0106】
以上、本発明の一実施形態について説明した。本実施形態によれば、ラウンドへの参加の障壁を低くし、ラウンドプレイヤの増加に寄与することができる。例えば、本実施形態の予約支援サービスを利用することで、ユーザは、予定の合うメンバを募ったりゴルフコースを探したりすることなく、簡単にラウンドを計画することができる。さらに、学習済データを使って相性の良いメンバからなるパーティが作成されるため、初見のメンバであったとしても心理的な抵抗が低減される。
【0107】
本発明は、上記の各実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能であり、それらの態様を含むものである。ある実施形態の一部の構成要素を、他の実施形態に加えたり、他の実施形態の一部の構成要素と置換したりしてもよい。ある実施形態の構成要素のうち、一部の構成要素を省略することもできる。
【0108】
また、予約支援装置の少なくとも一部の機能は、予約システムの機能に含まれていてもよいし、予約システムの少なくとも一部の機能は、予約支援装置の機能に含まれていてもよい。また、予約支援装置の少なくとも一部の機能は、端末装置のアプリの機能に含まれていてもよい。
【0109】
本発明は、ラウンドの予約に限らず、ハーフラウンドの予約、ゴルフ練習場の予約など、様々な場所の利用の予約に適用することができる。また、本発明は、装置に限らず、装置を含むシステム、方法、コンピュータ読み取り可能なプログラムなどの様々な態様で提供することができる。