(58)【調査した分野】(Int.Cl.,DB名)
前記特定部によって特定されたグループに属するユーザをメンバとし、各メンバがメッセージをチャット形式で投稿可能なチャットルームをネットワーク上に生成させる生成部をさらに備えることを特徴とする請求項1から5のいずれか一項に記載の情報提供装置。
【発明を実施するための形態】
【0011】
[情報提供システム10の構成]
図1は、実施形態における情報システムの一例を示すシステム構成図である。本実施形態における情報提供システム10は、情報提供装置20および複数のユーザ端末13−1〜nを備える。情報提供装置20は、通信回線11に通信可能に接続されている。なお、以下では、ユーザ端末13−1〜nを区別することなく総称する場合に「ユーザ端末13」と記載する。
【0012】
それぞれのユーザU
1〜U
nが操作するユーザ端末13−1〜nは、最寄りの基地局12と無線通信し、基地局12および通信回線11を介して、情報提供装置20と通信する。本実施形態において、それぞれのユーザ端末13−1〜nは、例えばスマートフォンや、携帯型PC(Personal Computer)、PDA(Personal Digital Assistant)、タブレット型情報端末などの携帯可能なスマートデバイスである。
【0013】
ユーザ端末13は、位置測定機能およびブラウザ機能を有する。また、ユーザ端末13は、所定のタイミング毎に(例えば10分毎に)、ユーザ端末13の位置情報と、Webページの閲覧履歴の情報を、それぞれのユーザを識別するユーザIDと共に、基地局12および通信回線11を介して情報提供装置20へ送信する。
【0014】
また、ユーザ端末13は、ユーザの指示に応じて、当該ユーザのユーザIDと共に、グループ情報を情報提供装置20に要求する。グループ情報には、集団の地図上の位置や当該集団を表すキーワード等の情報が含まれる。そして、ユーザ端末13は、グループ情報の要求に応じて情報提供装置20から提供された表示データに基づいてグループの情報を示す画像を作成し、作成した画像を画面に表示する。
【0015】
情報提供装置20は、収集部21、算出部22、特定部23、送信部24、およびユーザ情報格納部25を有する。収集部21は、通信回線11を介してそれぞれのユーザ端末13−1〜nから、ユーザID、位置情報、および閲覧履歴を受信する。そして、収集部21は、受信した位置情報および閲覧履歴を、受信したユーザIDに対応付けてユーザ情報格納部25に登録する。ユーザ情報格納部25には、例えば
図1に示すように、それぞれのユーザを識別するユーザID250に対応付けて、当該ユーザの位置情報251、および、当該ユーザの閲覧履歴252が格納される。
【0016】
算出部22は、通信回線11を介して、ユーザIDと共にグループ情報の要求をユーザ端末13から受信した場合に、ユーザ情報格納部25を参照する。そして、算出部22は、ユーザ間の位置情報および閲覧履歴に基づいて、それぞれの閲覧履歴に含まれるWebページ内のキーワード毎に、ユーザ間の嗜好の類似度を示す類似スコアを算出する。
【0017】
特定部23は、算出部22によってキーワード毎に算出されたユーザ間の類似スコアに基づいて、キーワード毎に、類似スコアが所定値以上のユーザをグループとして特定する。
【0018】
送信部24は、特定部23によって特定されたグループの情報を、当該グループに対応するキーワードと共に地図上に重ねて表示する表示データを作成する。そして、送信部24は、作成した表示データをユーザ端末13へ送信する。ユーザ端末13は、情報提供装置20から受信した表示データに基づいて画像を作成し、作成した画像を表示する。ユーザ端末13に表示される画像には、グループの位置を示す情報と、そのグループを表すキーワードとが含まれ、これらが地図上に表示される。
【0019】
ここで、複数の人が密集しているからといって、その集団が共通の目的をもって集まっている集団とは限らない。これに対し、本実施形態における情報提供装置20では、各ユーザの閲覧履歴に基づいて、それぞれのユーザ間の嗜好の類似度を示す類似スコアを算出する。そして、位置が近く、かつ、類似スコアも高いユーザの集まりを1つの集団としてグループ化する。そのため、本実施形態における情報提供装置20は、共通の目的を持った集団を高い精度でグループ化することができる。
【0020】
そして、本実施形態における情報提供装置20は、グループ化された集団を、その集団を表すキーワードと共に地図上に表示する表示データをユーザ端末13に提供する。ユーザ端末13のユーザは、表示データに基づいて表示された画像を閲覧することにより、どのような集団がどの辺りに存在するかを知ることができる。これにより、ユーザは、街で見かけた集団が何の集団なのかを迅速に認識することができる。
【0021】
[情報提供装置20の機能の詳細]
次に、情報提供装置20が有する算出部22、特定部23、および送信部24の機能の詳細について説明する。
【0022】
算出部22は、通信回線11を介して、ユーザIDと共にグループ情報の要求を受信した場合に、ユーザ情報格納部25内の位置情報を参照し、2人のユーザの全ての組合せについて、当該2人のユーザ間の距離L(単位はメートル)を算出する。そして、算出部22は、2人のユーザ間の距離Lに基づいて、例えば下記の算出式(1)を用いて距離スコアS
Lを算出する。
S
L=10−0.5L (ただし、L>10でS
L=0) ・・・(1)
【0023】
そして、算出部22は、距離スコアテーブル30を作成し、作成した距離スコアテーブル30に、上記(1)を用いて算出した距離スコアS
Lを登録する。
図2は、距離スコアテーブルの一例を示す図である。距離スコアテーブル30では、例えば
図2に示すように、2人のユーザ間の距離スコアS
Lが、当該2人のユーザのユーザIDに対応付けられている欄に登録されている。
図2に例示した距離スコアテーブル30では、「U
1」のユーザIDと、「U
2」のユーザIDとに対応付けられている欄に、「5.3」の距離スコアS
Lが登録されている。
【0024】
また、算出部22は、それぞれのユーザについてユーザ情報格納部25を参照し、当該ユーザの閲覧履歴に含まれているそれぞれのWebページについて、当該Webページのキーワードを特定する。算出部22は、例えば、それぞれのWebページ内のテキストを形態素解析により単語に分解し、それぞれの単語のTF−IDF値を求める。そして、算出部22は、TF−IDF値の最も大きい単語を、そのWebページのキーワードとして特定する。
【0025】
なお、算出部22は、TF−IDF値が大きい上位所定数の単語や、TF−IDF値が所定値以上の複数の単語をキーワードとして特定してもよい。また、算出部22は、閲覧履歴に含まれているそれぞれのWebページ内のテキストデータとは別に、または、これに加えて、画像データ、当該画像データのメタ情報、当該WebページのHTMLヘッダ情報、または、当該WebページのURLの少なくともいずれかに基づいて当該Webページのキーワードを特定してもよい。
【0026】
そして、算出部22は、特定したキーワード毎に、閲覧履歴において当該キーワードが抽出されたWebページの数を閲覧回数として、例えば、
図3に示すようなユーザ別のキーワードテーブル31を作成する。
図3は、ユーザ別のキーワードテーブルの一例を示す図である。キーワードテーブル31には、ユーザID310に対応付けて個別テーブル311が格納される。それぞれの個別テーブル311には、キーワード312に対応付けて、閲覧回数313が格納される。
【0027】
図3に例示したキーワードテーブル31では、「U
1」のユーザID310に対応付けて個別テーブル311が格納されており、当該個別テーブル311には、「w
1」のキーワード312に対応付けて、「60」の閲覧回数313が格納されている。
【0028】
次に、算出部22は、作成したキーワードテーブル31を参照して、キーワード毎に、2人のユーザの全ての組合せについて閲覧回数を合計し、当該2人のユーザ間の履歴スコアS
Hを算出する。そして、算出部22は、履歴スコアテーブル32を作成し、作成した履歴スコアテーブル32に、キーワード毎に、2人のユーザの全ての組合せについて算出した履歴スコアS
Hを登録する。
【0029】
なお、算出部22は、2人のユーザの全ての組合せについて、当該2人の閲覧回数を平均した値を履歴スコアS
Hとして算出してもよい。例えば、あるキーワードについて、「U
1」のユーザの閲覧回数が60回であり、「U
2」のユーザの閲覧回数が9回である場合、当該キーワードについての当該2人のユーザ間の履歴スコアS
Hは「34.5」となる。
【0030】
図4は、履歴スコアテーブルの一例を示す図である。履歴スコアテーブル32には、例えば
図4に示すように、キーワード320毎に個別テーブル321が格納される。それぞれの個別テーブル321では、2人のユーザ間の履歴スコアS
Hが、当該2人のユーザのユーザIDに対応付けられている欄に登録されている。
図4に例示した履歴スコアテーブル32では、「w
1」のキーワード320に対応付けて個別テーブル321が格納されており、当該個別テーブル321では、「U
1」のユーザIDと、「U
2」のユーザIDとに対応付けられている欄に、「300」の履歴スコアS
Hが登録されている。
【0031】
次に、算出部22は、
図2に示した距離スコアテーブル30と、
図4に示した履歴スコアテーブル32とを参照して、キーワード毎に、2人のユーザの全ての組合せについて距離スコアS
Lと履歴スコアS
Hとを掛け合わせることにより、類似スコアSを算出する。そして、算出部22は類似スコアテーブル33を作成し、作成した類似スコアテーブル33に、算出した類似スコアSを登録する。
【0032】
図5は、類似スコアテーブルの一例を示す図である。類似スコアテーブル33には、例えば
図5に示すように、キーワード330毎に個別テーブル331が格納される。それぞれの個別テーブル331では、2人のユーザ間の類似スコアSが、当該2人のユーザのユーザIDに対応付けられている欄に登録されている。
図5に例示した類似スコアテーブル33では、「w
1」のキーワード330に対応付けて個別テーブル331が格納されており、当該個別テーブル331では、「U
1」のユーザIDと、「U
2」のユーザIDとに対応付けられている欄に、「1590」の類似スコアSが登録されている。
【0033】
特定部23は、算出部22によって作成された類似スコアテーブル33を参照して、キーワード毎に、所定値以上の類似スコアSが対応付けられているユーザIDのユーザを、グループとして特定する。そして、特定部23は、それぞれのグループにグループIDを割り当てる。
【0034】
そして、特定部23は、特定したグループ毎に、当該グループに属するユーザの類似スコアSを合計して、当該グループの強度を算出する。そして、特定部23は、グループテーブル34を作成し、作成したグループテーブル34に、グループのグループIDに対応付けて、当該グループのキーワード、当該グループに属するユーザのユーザID、および当該グループの強度の情報を登録する。
【0035】
図6は、グループテーブルの一例を示す図である。グループテーブル34には、例えば
図6に示すように、グループID340に対応付けて、キーワード341、グループID340に対応するグループに属するユーザのユーザIDを示すメンバ342、および当該グループの強度343が格納される。
図6に例示したグループテーブル34では、「G
1」のグループID340に対応付けて、「w
1」のキーワード341、「U
1、U
2、・・・」のメンバ342、および「6527.1」の強度343が登録されている。
【0036】
送信部24は、特定部23によって作成されたグループテーブル34を参照して、それぞれのグループに属するユーザのユーザIDを特定する。そして、送信部24は、
図3に例示したキーワードテーブル31を参照して、グループに属するそれぞれのユーザの個別テーブル311を抽出する。そして、送信部24は、抽出した個別テーブル311を統合して、キーワードと閲覧回数とを対応付けたグループ別のキーワードテーブル35を作成する。
【0037】
図7は、グループ別のキーワードテーブルの一例を示す図である。キーワードテーブル35には、グループID350毎に個別テーブル351が格納される。それぞれの個別テーブル351には、キーワード352に対応付けて、閲覧回数353が格納される。
図7に例示したキーワードテーブル35では、「G
1」のグループID350に対応付けて個別テーブル351が格納されており、当該個別テーブル351には、「w
1」のキーワード352に対応付けて、「1680」の閲覧回数353が格納されている。
【0038】
また、送信部24は、グループ情報の要求と共に受信したユーザID(グループ情報を要求したユーザのユーザID)に基づいてキーワードテーブル31を参照し、当該ユーザIDに対応付けられている個別テーブル311を特定する。そして、送信部24は、特定した個別テーブル311に含まれるキーワードを要素とする特徴ベクトルと、キーワードテーブル35内の個別テーブル351に含まれるキーワードを要素とする特徴ベクトルとの類似度を、グループ毎に算出する。類似度は、例えば、2つの特徴ベクトルのなす角度の余弦(コサイン)によって求めることができる。このとき、それぞれのキーワードに対応付けられている閲覧回数が、それぞれのキーワードの重みとして適用されてもよい。
【0039】
そして、送信部24は、例えば、類似度の高い順に上位所定数のグループを、表示対象のグループとして特定する。また、送信部24は、類似度が所定値以上となったグループを、表示対象のグループとして特定してもよい。
【0040】
次に、送信部24は、表示対象のグループ毎に、
図7に例示したキーワードテーブル35内の個別テーブル351を参照し、個別テーブル351の中で、閲覧回数の最も多いキーワードをグループ毎に特定する。そして、送信部24は、表示対象のグループ毎に、
図6に例示したグループテーブル34を参照し、表示対象のグループの強度を抽出する。そして、送信部24は、表示対象のグループ毎に、抽出した強度に応じて、特定したキーワードを地図上に表示する場合の文字の大きさを決定する。本実施形態において、送信部24は、グループの強度が大きいほど、当該グループについて地図上に表示されるキーワードの文字が大きくなるように文字の大きさを決定する。
【0041】
そして、送信部24は、例えば
図8に示すように、グループの情報を表示する画像40を作成する。
図8は、グループの情報を表示する画像の一例を示す図である。画像40には、例えば
図8に示すように、各ユーザの位置を示す図形41が地図上に配置されている。また、画像40では、表示対象のグループ毎に、当該グループに属するユーザを示す図形41が、グループを示す図形42で囲まれている。また、画像40では、グループについて特定されたキーワードを示す文字43が、当該グループの強度に応じた大きさで、当該グループの図形42の周辺に配置されている。
【0042】
送信部24は、作成したグループ情報の表示データを、通信回線11を介してユーザ端末13へ送信する。ユーザ端末13は、受信した表示データに基づいて画像を作成し、作成した画像をユーザ端末13の画面に表示する。
【0043】
画面に表示された画像を参照することにより、ユーザは、どの辺りにどのような集団がいるのかを迅速に認識することができる。また、グループの強度に応じて、グループの周辺に表示させるキーワードの大きさを変えることにより、集団の周囲に表示されたキーワードを閲覧したユーザは、どれほど関連性の強い人々が集まった集団なのかを迅速に把握することができる。これにより、ユーザは、コンサート会場等において、特定のアーティストのファンが集まっているエリアを特定することもできる。
【0044】
[情報提供装置20の動作]
図9は、情報提供装置の動作の一例を示すフローチャートである。通信回線11を介して、ユーザIDと共に、グループ情報の要求をユーザ端末13から受信した場合に、情報提供装置20は、本フローチャートに示す動作を開始する。なお、
図9のフローチャートに示す動作の開始前に、収集部21は、ユーザID、位置情報、および閲覧履歴を各ユーザ端末13から随時収集し、ユーザ情報格納部25に格納しているものとする。
【0045】
まず、算出部22は、2人のユーザの全ての組合せについて、前述の式(1)を用いて距離スコアS
Lを算出し、算出した距離スコアS
Lを距離スコアテーブル30に登録する距離スコア算出処理を実行する(S100)。距離スコア算出処理の詳細については、
図10を用いて後述する。
【0046】
次に、算出部22は、それぞれのユーザについて、閲覧履歴に含まれているWebページのキーワードを特定し、特定したキーワードに閲覧回数を対応付けたユーザ別のキーワードテーブル31を作成するキーワードテーブル作成処理を実行する(S200)。キーワードテーブル作成処理の詳細については、
図11を用いて後述する。
【0047】
次に、算出部22は、キーワード毎に、2人のユーザの閲覧回数を合計して、当該2人のユーザ間の履歴スコアS
Hを算出し、算出した履歴スコアS
Hを履歴スコアテーブル32に登録する履歴スコア算出処理を実行する(S300)。履歴スコア算出処理の詳細については、
図12を用いて後述する。
【0048】
次に、算出部22は、キーワード毎に、2人のユーザの全ての組合せについて距離スコアS
Lと履歴スコアS
Hとを掛け合わせることにより、類似スコアSを算出し、算出した類似スコアSを類似スコアテーブル33に登録する類似スコア算出処理を実行する(S400)。類似スコア算出処理の詳細については、
図13を用いて後述する。
【0049】
次に、特定部23は、キーワード毎に、所定値以上の類似スコアSが対応付けられているユーザIDのユーザをグループとして特定し、特定したグループ毎の情報を格納したグループテーブル34を作成するグルーピング処理を実行する(S500)。グルーピング処理の詳細については、
図14を用いて後述する。
【0050】
次に、送信部24は、特定したグループの中で、表示対象となるグループを特定する表示グループ特定処理を実行する(S600)。表示グループ特定処理の詳細については、
図15を用いて後述する。
【0051】
次に、送信部24は、表示対象のグループ毎に、
図7に例示したキーワードテーブル35内の個別テーブル351を参照し、個別テーブル351の中で、閲覧回数の最も多いキーワードを特定する。そして、送信部24は、表示対象のグループ毎に、
図6に例示したグループテーブル34を参照し、表示対象のグループの強度を抽出する。そして、送信部24は、表示対象のグループ毎に、抽出した強度に応じて、特定したキーワードを地図上に表示する場合の文字の大きさを決定する。
【0052】
そして、送信部24は、例えば
図8に示した画像40を作成し、作成した画像40の表示データを、通信回線11を介してユーザ端末13へ送信し(S700)、情報提供装置20は、本フローチャートに示した動作を終了する。
【0053】
図10は、距離スコア算出処理の一例を示すフローチャートである。
【0054】
まず、算出部22は、ユーザ情報格納部25内に登録されているユーザIDの中で、未選択のユーザIDを1つ選択する(S101)。そして、算出部22は、選択したユーザID以外の他のユーザIDを1つ選択する(S102)。そして、算出部22は、ステップS101で選択したユーザIDに対応付けられている位置情報と、ステップS102で選択したユーザIDに対応付けられている位置情報とをユーザ情報格納部25から抽出し、抽出した位置情報を用いてユーザ間の距離Lを算出する(S103)。
【0055】
次に、算出部22は、算出したユーザ間の距離Lが10m以下か否かを判定する(S104)。ユーザ間の距離Lが10m以下である場合(S104:Yes)、算出部22は、前述の式(1)を用いて距離スコアS
Lを算出し(S105)、ステップS107に示す処理を実行する。一方、ユーザ間の距離Lが10mよりも長い場合(S104:No)、算出部22は、距離スコアS
Lを0と算出する(S106)。そして、算出部22は、算出した距離スコアS
Lを距離スコアテーブル30に登録する(S107)。
【0056】
次に、算出部22は、他のユーザIDを全て選択したか否かを判定する(S108)。未選択の他のユーザIDがある場合(S108:No)、算出部22は、再びステップS102に示した処理を実行する。一方、他のユーザIDを全て選択した場合(S108:Yes)、算出部22は、ユーザ情報格納部25内に登録されているユーザIDを全て選択したか否かを判定する(S109)。未選択のユーザIDがある場合(S109:No)、算出部22は、再びステップS101に示した処理を実行する。一方、ユーザIDを全て選択した場合(S109:Yes)、算出部22は、
図10に示した距離スコア算出処理を終了する。
【0057】
図11は、キーワードテーブル作成処理の一例を示すフローチャートである。
【0058】
まず、算出部22は、ユーザ情報格納部25内に登録されているユーザIDの中で、未選択のユーザIDを1つ選択する(S201)。そして、算出部22は、選択したユーザIDに対応付けられている閲覧履歴をユーザ情報格納部25から抽出し、抽出した閲覧履歴に含まれているWebページの中で、未選択のWebページを1つ選択する(S202)。
【0059】
次に、算出部22は、選択したWebページを参照し、当該Webページのキーワードを特定する(S203)。そして、算出部22は、
図3に例示したキーワードテーブル31を参照し、ステップS201で選択したユーザIDに対応付けられている個別テーブル311を特定する。そして、算出部22は、特定した個別テーブル311内に、ステップS203において特定したキーワードが既に登録されているか否かを判定する(S204)。
【0060】
個別テーブル311内に、ステップS203において特定したキーワードが既に登録されている場合(S204:Yes)、算出部22は、特定したキーワードの閲覧回数を1増やし(S205)、ステップS207に示す処理を実行する。一方、個別テーブル311内に、ステップS203において特定したキーワードが登録されていない場合(S204:No)、算出部22は、個別テーブル311内に、特定したキーワードを、閲覧回数を1として新規登録する(S206)。
【0061】
そして、算出部22は、ステップS202において抽出した閲覧履歴に含まれているWebページを全て選択したか否かを判定する(S207)。閲覧履歴の中に未選択のWebページがある場合(S207:No)、算出部22は、再びステップS202に示した処理を実行する。
【0062】
一方、閲覧履歴の中で全てのWebページを選択した場合(S207:Yes)、算出部22は、ユーザ情報格納部25内に登録されているユーザIDを全て選択したか否かを判定する(S208)。未選択のユーザIDがある場合(S208:No)、算出部22は、再びステップS201に示した処理を実行する。一方、ユーザIDを全て選択した場合(S208:Yes)、算出部22は、
図11に示したキーワードテーブル作成処理を終了する。
【0063】
図12は、履歴スコア算出処理の一例を示すフローチャートである。
【0064】
まず、算出部22は、
図3に例示したキーワードテーブル31に登録されているユーザIDの中で、未選択のユーザIDを1つ選択する(S301)。そして、算出部22は、選択したユーザIDに対応付けられている個別テーブル311を参照し、未選択のキーワードを1つ選択する(S302)。
【0065】
次に、算出部22は、ステップS301において選択したユーザID以外の他のユーザIDを1つ選択する(S303)。そして、算出部22は、ステップS302において選択したキーワードについて、ステップS301で選択したユーザIDに対応付けられている個別テーブル311内の閲覧回数と、ステップS303で選択したユーザIDに対応付けられている個別テーブル311内の閲覧回数とを合計して履歴スコアS
Hを算出する(S304)。
【0066】
そして、算出部22は、
図4に例示した履歴スコアテーブル32を参照し、ステップS302において選択したキーワードに対応付けられている個別テーブル321内において、ステップS301において選択したユーザIDと、ステップS303において選択したユーザIDとに対応付けられている欄に、算出した履歴スコアS
Hを登録する(S305)。
【0067】
次に、算出部22は、他のユーザIDを全て選択したか否かを判定する(S306)。未選択の他のユーザIDがある場合(S306:No)、算出部22は、再びステップS303に示した処理を実行する。一方、他のユーザIDを全て選択した場合(S306:Yes)、算出部22は、ステップS302において参照した個別テーブル311内のキーワードを全て選択したか否かを判定する(S307)。
【0068】
未選択のキーワードがある場合(S307:No)、算出部22は、再びステップS302に示した処理を実行する。一方、キーワードを全て選択した場合(S307:Yes)、算出部22は、キーワードテーブル31に登録されているユーザIDを全て選択したか否かを判定する(S308)。未選択のユーザIDがある場合(S308:No)、算出部22は、再びステップS301に示した処理を実行する。一方、ユーザIDを全て選択した場合(S308:Yes)、算出部22は、
図12に示した履歴スコア算出処理を終了する。
【0069】
図13は、類似スコア算出処理の一例を示すフローチャートである。
【0070】
まず、算出部22は、
図4に例示した履歴スコアテーブル32に登録されているキーワードの中で、未選択のキーワードを1つ選択する(S401)。そして、算出部22は、選択したキーワードに対応付けられている個別テーブル321を参照し、未選択のユーザIDを1つ選択する(S402)。そして、算出部22は、ステップS402において選択したユーザID以外の他のユーザIDを1つ選択する(S403)。
【0071】
次に、算出部22は、ステップS402で選択したユーザID、および、ステップS403で選択したユーザIDに対応付けられている距離スコアS
Lを、
図2に例示した距離スコアテーブル30から抽出する。また、算出部22は、
図4に例示した履歴スコアテーブル32を参照し、ステップS402で選択したユーザID、および、ステップS403で選択したユーザIDに対応付けられている履歴スコアS
Hを、ステップS401において選択したキーワードに対応付けられている個別テーブルから抽出する。
【0072】
次に、算出部22は、抽出した距離スコアS
Lと履歴スコアS
Hとを掛け合わせて、類似スコアSを算出する(S404)。そして、算出部22は、
図5に例示した類似スコアテーブル33を参照し、ステップS401において選択したキーワードに対応付けられている個別テーブル331内において、ステップS402において選択したユーザIDと、ステップS403において選択したユーザIDとに対応付けられている欄に、算出した類似スコアSを登録する(S405)。
【0073】
次に、算出部22は、他のユーザIDを全て選択したか否かを判定する(S406)。未選択の他のユーザIDがある場合(S406:No)、算出部22は、再びステップS403に示した処理を実行する。一方、他のユーザIDを全て選択した場合(S406:Yes)、算出部22は、ステップS402において参照した個別テーブル321内のユーザIDを全て選択したか否かを判定する(S407)。
【0074】
未選択のユーザIDがある場合(S407:No)、算出部22は、再びステップS402に示した処理を実行する。一方、ユーザIDを全て選択した場合(S407:Yes)、算出部22は、履歴スコアテーブル32に登録されているキーワードを全て選択したか否かを判定する(S408)。未選択のキーワードがある場合(S408:No)、算出部22は、再びステップS401に示した処理を実行する。一方、キーワードを全て選択した場合(S408:Yes)、算出部22は、
図13に示した類似スコア算出処理を終了する。
【0075】
図14は、グルーピング処理の一例を示すフローチャートである。
【0076】
まず、特定部23は、
図5に例示した類似スコアテーブル33内に登録されているキーワードの中で、未選択のキーワードを1つ選択する(S501)。そして、特定部23は、選択したキーワードに対応付けられている個別テーブル331を参照し、所定値以上の類似スコアSが対応付けられているユーザIDを、同じグループに属するユーザのユーザIDとして抽出する(S502)。そして、特定部23は、抽出したユーザIDに対応付けられている類似スコアSを合計してグループの強度を算出する(S503)。
【0077】
次に、特定部23は、抽出されたユーザIDのグループにグループIDを割り当て、グループIDに対応付けて、ステップS501で選択したキーワードと、ステップS502で抽出したユーザIDと、ステップS503で算出した強度とを、
図6に例示したグループテーブル34に登録する(S504)。
【0078】
次に、特定部23は、類似スコアテーブル33内に登録されているキーワードを全て選択したか否かを判定する(S505)。未選択のキーワードがある場合(S505:No)、特定部23は、再びステップS501に示した処理を実行する。一方、キーワードを全て選択した場合(S505:Yes)、特定部23は、
図14に示したグルーピング処理を終了する。
【0079】
図15は、表示グループ特定処理の一例を示すフローチャートである。
【0080】
まず、送信部24は、グループ情報を要求したユーザのユーザIDに対応付けられている個別テーブル311を、
図3に例示したキーワードテーブル31から抽出する(S601)。そして、送信部24は、
図6に例示したグループテーブル34を参照して、それぞれのグループに属するユーザのユーザIDを特定する。そして、送信部24は、
図3に例示したキーワードテーブル31を参照して、グループに属するそれぞれのユーザの個別テーブル311を抽出し、抽出した個別テーブル311を統合して、キーワードと閲覧回数とを対応付けたグループ別のキーワードテーブル35(
図7参照)を作成する(S602)。
【0081】
次に、送信部24は、グループ別のキーワードテーブル35において未選択のグループIDを1つ選択する(S603)。そして、送信部24は、選択したグループIDに対応付けられている個別テーブル351内のキーワードを要素とする特徴ベクトルと、ステップS601において抽出した個別テーブル311内のキーワードを要素とする特徴ベクトルとの類似度を算出する(S604)。
【0082】
次に、送信部24は、グループ別のキーワードテーブル35において、グループIDを全て選択したか否かを判定する(S605)。未選択のグループIDがある場合(S605:No)、送信部24は、再びステップS603に示した処理を実行する。
【0083】
一方、グループIDを全て選択した場合(S605:Yes)、送信部24は、それぞれのグループIDについて算出した類似度の中で、類似度の高い順に、上位所定数のグループIDに対応するグループを、表示対象のグループとして特定する(S606)。そして、送信部24は、
図15に示した表示グループ特定処理を終了する。
【0084】
[ハードウェア構成]
図16は、情報提供装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ60は、CPU(Central Processing Unit)61、RAM(Random Access Memory)62、ROM(Read Only Memory)63、HDD(Hard Disk Drive)64、通信インターフェイス(I/F)65、入出力インターフェイス(I/F)66、およびメディアインターフェイス(I/F)67を備える。
【0085】
CPU61は、ROM63またはHDD64に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM63は、コンピュータ60の起動時にCPU61によって実行されるブートプログラムや、コンピュータ60のハードウェアに依存するプログラム等を格納する。
【0086】
HDD64は、CPU61によって実行されるプログラムおよび当該プログラムによって使用されるデータ等を格納する。通信インターフェイス65は、通信回線11を介して他の機器からデータを受信してCPU61へ送り、CPU61が生成したデータを、通信回線11を介して他の機器へ送信する。
【0087】
CPU61は、入出力インターフェイス66を介して、ディスプレイやプリンタ等の出力装置、および、キーボードやマウス等の入力装置を制御する。CPU61は、入出力インターフェイス66を介して、入力装置からデータを取得する。また、CPU61は、生成したデータを、入出力インターフェイス66を介して出力装置へ出力する。
【0088】
メディアインターフェイス67は、記録媒体68に格納されたプログラムまたはデータを読み取り、RAM62を介してCPU61に提供する。CPU61は、当該プログラムを、メディアインターフェイス67を介して記録媒体68からRAM62上にロードし、ロードしたプログラムを実行する。記録媒体68は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【0089】
コンピュータ60のCPU61は、RAM62上にロードされたプログラムを実行することにより、収集部21、算出部22、特定部23、送信部24、およびユーザ情報格納部25の各機能を実現する。また、HDD64には、ユーザ情報格納部25内のデータが格納される。
【0090】
コンピュータ60のCPU61は、これらのプログラムを、記録媒体68から読み取って実行するが、他の例として、他の装置から、通信回線11を介してこれらのプログラムを取得してもよい。
【0091】
以上、本発明の実施の形態について説明した。
【0092】
上記説明から明らかなように、本実施形態の情報提供システム10によれば、集団とその集団に関する情報を提供することができる。
【0093】
[変形例]
なお、情報提供装置20は、例えば
図17に示すように、特定部23によって特定されたグループに属するユーザをメンバとし、各メンバがメッセージをチャット形式で投稿可能なチャットルームをSNSサーバ50に生成させてもよい。
図17は、他の実施形態における情報提供システムの一例を示す概念図である。本実施形態における情報提供装置20は、生成部26をさらに有する。
【0094】
図17に示した他の実施形態において、ユーザ情報格納部25には、ユーザID250に対応付けて、ユーザのアドレス等の情報を含むユーザ情報253がさらに格納される。生成部26は、特定部23によってグループが特定された場合に、当該グループに属するユーザのユーザ情報をユーザ情報格納部25から抽出する。そして、生成部26は、抽出したユーザ情報を、通信回線11を介してSNSサーバ50へ送信することにより、SNSサーバ50にチャットルームの生成を依頼する。SNSサーバ50は、受信したユーザ情報に対応するユーザをメンバとするチャットルームをネットワーク上に生成し、当該メンバのユーザにチャットルームの開設を電子メール等で通知する。
【0095】
また、チャットルームのメンバ以外のユーザが、ユーザ端末13に表示されたグループ情報の画像において、グループを示す図形を選択した場合、ユーザ端末13は、ユーザのユーザIDと共に、選択されたグループのグループIDを情報提供装置20へ送信する。生成部26は、ユーザ端末13から受信したユーザIDに対応付けられているユーザ情報をユーザ情報格納部25から抽出し、抽出したユーザ情報を、ユーザ端末13から受信したグループIDに対応するチャットルームに新たに参加するユーザの情報としてSNSサーバ50へ送信する。これにより、ユーザ端末13のユーザは、指定したグループのチャットルームに参加することができる。
【0096】
なお、ユーザ端末13は、それぞれのユーザの位置を示す図形が選択された場合、当該図形に対応するユーザのユーザIDを通信相手のユーザIDとして、ユーザ端末13のユーザのユーザIDと共に情報提供装置20へ送信し、生成部26は、通信相手のユーザと、ユーザ端末13のユーザとの1対1のコミュニケーションを実現するようにしてもよい。これにより、グループに属していないユーザとのコミュニケーションも可能となる。
【0097】
また、情報提供装置20内のユーザ情報格納部25には、時間帯254毎に、ユーザID250に対応付けて位置情報251および閲覧履歴252が格納され、算出部22、特定部23、および送信部24は、ユーザ端末13から指定された時間帯における位置情報および閲覧履歴に基づいてグループに関する情報をユーザ端末13に提供するようにしてもよい。
【0098】
図18は、さらなる他の実施形態における情報提供システムの一例を示す概念図である。ユーザ端末13は、画面上にスライダ130を表示し、ユーザによるスライダ130の操作によって指定された時間帯の情報を情報提供装置20へ送信する。
【0099】
算出部22は、ユーザ情報格納部25を参照し、受信した時間帯に対応付けられているユーザID毎の位置情報および履歴情報を用いて、キーワード毎の類似スコアを算出する。特定部23は、算出部22によってキーワード毎に算出された類似スコアに基づいて、キーワード毎にグループを特定し、送信部24は、特定されたグループの情報を表示する表示データを作成してユーザ端末13へ送信する。
【0100】
ユーザは、ユーザ端末13の画面上に表示されたスライダ130を操作することにより、任意の時間帯におけるグループの情報を閲覧することができる。これにより、ユーザは、集団の位置や人数の変化、集団の強度や目的の変化等を、時間を追って把握することができる。集団の変化を時間を追って閲覧することにより、集団がこれからどこへ移動するのか、これからさらに大きくなるのかを予想することも可能となる。
【0101】
また、上記した実施形態において、送信部24は、グループ情報を要求したユーザの閲覧履歴に含まれるWebページから特定したキーワード群と、各グループに属するユーザの閲覧履に含まれるWebページから特定したキーワード群とを比較して、キーワード群の類似度の高い順に上位所定数のグループを表示対象のグループとして特定したが、本発明はこれに限られない。
【0102】
例えば、グループの情報を要求するユーザは、ユーザ端末13を操作して、表示したいグループに関連するキーワードを1つ以上指定する。ユーザ端末13は、指定されたキーワードを情報提供装置20へ送信する。送信部24は、ユーザ端末13から受信した1つ以上のキーワードと、各グループに属するユーザの閲覧履に含まれるWebページから特定したキーワード群とを比較して、類似度の高い順に上位所定数のグループを表示対象のグループとして特定してもよい。これにより、ユーザは、自身の閲覧履歴とは無関係に、任意のグループの情報を取得することができる。
【0103】
また、上記した実施形態では、情報提供装置20が、グループ情報の表示データを作成してユーザ端末13に提供するが、本発明はこれに限られない。例えば、他の形態として、送信部24は、表示対象のグループについて、グループID、メンバ、および強度の情報を
図6に例示したグループテーブル34から抽出してユーザ端末13へ送信する。また、送信部24は、表示対象のグループ毎に、
図7に例示したキーワードテーブル35内の個別テーブル351を参照し、閲覧回数の最も多いキーワードをグループ毎に特定し、特定したキーワードをグループID共にユーザ端末13へ送信する。また、送信部24は、それぞれのユーザの位置情報をユーザ情報格納部25から抽出してユーザ端末13へ送信する。
【0104】
ユーザ端末13は、地図情報を保持しているサーバから通信回線11を介して地図情報を取得する。そして、ユーザ端末13は、例えば
図8に示したように、取得した地図情報に基づく地図上に、各ユーザの位置を示す図形41を配置し、表示対象のグループ毎に、当該グループに属するユーザを示す図形41を、グループを示す図形42で囲む画像40を表示する。また、ユーザ端末13は、画像40において、グループ毎に情報提供装置20から受信したキーワードを、当該グループの強度に応じた大きさで、グループを示す図形42の周辺に配置する。
【0105】
また、上記した実施形態では、情報提供装置20について、1台の装置を用いて実現される例を用いて説明したが、本発明はこれに限られない。例えば、情報提供装置20内のそれぞれの機能が、複数の装置に分散配置され、これらの装置が通信回線11を介して互いに協調動作して、全体として情報提供装置20の機能が実現されるように構成されてもよい。
【0106】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に多様な変更または改良を加えることが可能であることが当業者には明らかである。また、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。