以下、情報処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態)
図1は、本実施の形態における情報処理システム100のブロック図である。
情報処理システム100は、情報処理装置1と、1以上の情報処理端末2を備える。情報処理装置1は、1以上の情報処理端末2と、有線または無線のネットワーク等を介して通信可能に接続されている。ここでは、情報処理端末2を3以上備えている場合を例に挙げて説明してする。説明の便宜上、3つの情報処理端末2を、情報処理端末2a〜2cで示している。ただし、接続される情報処理端末2の数等は問わない。また、情報処理端末2は、同様の構成を有している端末であれば、必ずしも同じ機種等でなくても良い。
情報処理装置1は、送信管理情報格納部11、受信部12、グループ管理情報格納部13、閲覧管理情報格納部14、関連ユーザ識別情報取得部15、地図情報格納部16、地点情報取得部17、出力部18、送信情報受信部19を備える。
情報処理端末2は、現在地情報取得部20、受付部21、送信部22、地点情報受信部23、地点情報出力部24を備える。
送信管理情報格納部11には、送信情報と、この送信情報を送信したユーザのユーザ識別情報とを有する複数の送信管理情報が格納される。送信情報は、ソーシャルネットワークサービス(以下、SNSと称す)を利用する複数のユーザがSNSに対して送信した情報である。
SNS(ソーシャルネットワークサービス)とは、例えば、インターネット等のネットワークを介して人同士のつながりを形成したり、サポートしたり、促進したりするサービスである。また、インターネットを介してコミュニティを構築するサービスと考えても良い。あるいは、コミュニティ型の会員制サービスと考えても良い。SNSにおいては、通常、SNSに登録されているユーザに対してサービスの提供が行われる。SNSの利用者とは、例えば、SNSの登録ユーザである。
送信情報は、SNSの各利用者(ユーザ)によって、各利用者が利用する情報処理端末2から、例えば、SNSを提供するサーバ装置等に送信された情報である。SNSを提供するサーバ装置は、例えば、情報処理装置1である。送信情報は、例えば、SNSが提供する各ユーザ専用のいわゆるブログやミニブログ、SNSが提供する写真等の情報を共有する情報共有サービスや、SNSが提供する飲食店等の情報を共有する情報共有サービス等に対してアップロードされる情報である。送信情報は、例えば、テキストまたは画像の少なくとも一方を有する情報である。ここでの画像情報は、静止画像であっても動画像であっても良い。また、送信情報は、送信される情報の属性を示す情報、例えば、いわゆるタグの情報を有していても良い。属性を示す情報は、例えば、送信情報のジャンルや、カテゴリーや、話題、関心事等を示す情報である。この属性の情報は、例えば、ユーザが送信情報に対してタグ等として付与されていてもよい。このようなタグは、送信情報の一部を構成するものと考えて良い。また、送信情報は、送信情報を送信した地点を示す情報、例えば、送信した地点の座標の情報や、送信した地点の地点情報を、送信情報内の他の情報に対して識別可能となるよう有していても良い。例えば、地点の座標の情報や地点情報を、送信情報に付与されたタグの情報として有していても良い。この場合の地点情報であるタグの情報は、送信情報に含まれる情報と考えて良い。地点情報の詳細については、後述する。
ユーザ識別情報は、送信情報を送信したユーザの識別情報である。例えば、ユーザ識別情報は、ユーザの氏名や、会員番号、ユーザのメールアドレスや、携帯電話の電話番号等である。ログイン時等に利用されるアカウント等でもよい。
送信管理情報格納部11に送信情報が記憶される過程は問わない。ここでは、一例として、後述する送信情報受信部19が受信した送信情報とユーザ識別情報とを有する送信管理情報が、送信管理情報格納部11に蓄積される場合を例に挙げて説明する。但し、図示しない記憶媒体等から読み出した送信管理情報や、入力デバイスを介して入力された送信管理情報が送信管理情報格納部11に蓄積されるようにしてもよい。
送信管理情報格納部11は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。かかることは、以下の他の格納部においても同様である。
受信部12は、一のユーザのユーザ識別情報である指定ユーザ識別情報と、この指定ユーザ識別情報に対応するユーザの現在地の情報である現在地情報とを受信する。一のユーザとは、例えば、SNSを利用する複数のユーザ(利用者)のうちの一のユーザである。例えば、受信部12は、ネットワーク等を介して一の情報処理端末2から送信される指定ユーザ識別情報と現在地情報とを受信する。現在地情報は、通常は、緯度と経度との組合せ等で示される座標であるが、現在地が指定可能な情報であれば他の情報でもよく、現在地に対応する地名や、住所や、建造物名や、ランドマーク名等の情報であっても良い。また、受信部12は、指定ユーザ識別情報と現在地情報とともに、1以上のキーワードを更に一の情報処理端末2等から受信してもよい。キーワードは文字列である。ここでは、1以上の文字を文字列と考える。かかることは以下においても同様である。なお、受信部12は、キーワードに加えて、通常の検索等に用いられる検索用の演算子等を受信しても良い。検索用の演算子とは、例えば、1以上のキーワードの含む、含まない、を指定する情報や、2以上のキーワードをAND条件として用いるか、OR条件として用いるかを指定する情報である。
受信部12は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。受信部12は、通信デバイスを含むと考えても、含まないと考えても良い。
グループ管理情報格納部13には、1以上のグループ管理情報が格納される。グループ管理情報は、グループを管理する情報であり、1以上のユーザ識別情報で構成される。グループは、ユーザ識別情報が示すユーザのグループと考えても良い。グループ管理情報は、グループに属する1以上のユーザ識別情報を結果的に管理可能な情報であればよい。グループ管理情報とは、例えば、ユーザIDと、グループIDとを対応付けて有する情報であって、同じグループに属する異なるユーザIDに対して、同じグループIDを対応付けて有する情報である。また、グループ管理情報は、一のグループに属するグループ管理情報を、一のレコードで管理する情報である。
閲覧管理情報格納部14には、1以上の閲覧管理情報が格納される。閲覧管理情報は、一のユーザ識別情報と、このユーザ識別情報が示すユーザが送信する送信情報の閲覧を求めるユーザのユーザ識別情報である閲覧ユーザ識別情報とを有する情報である。閲覧を求めるユーザとは、例えば、いわゆる一のユーザの送信情報をフォローするユーザである。通常、一のユーザと、閲覧を求めるユーザとは、同じSNSの利用者、好ましくは登録者(登録ユーザ)である。SNSの登録者とは、SNSの利用登録を行ったユーザや、SNSを提供するサーバ装置等に登録されているユーザのことと考えても良い。閲覧管理情報格納部14に格納される閲覧管理情報は、例えば、一のユーザ識別情報と、このユーザ識別情報が送信する送信情報の閲覧が許可されたユーザのユーザ識別情報である閲覧ユーザ識別情報とを有する情報であることが好ましい。例えば、閲覧が許可されたユーザとは、いわゆるフォローが許可されたユーザである。
関連ユーザ識別情報取得部15は、受信部12が受信した指定ユーザ識別情報との関連性が高い1以上のユーザ識別情報である関連ユーザ識別情報を取得する。指定ユーザ識別情報との関連性が高いユーザ識別情報とは、指定ユーザ識別情報が示すユーザとの、関連性が高いユーザのユーザ識別情報である。
ここでは、関連ユーザ識別情報を取得する処理の例として、関連ユーザ識別情報取得部15が、(1)送信管理情報に含まれる各ユーザ識別情報と対応付けられた送信情報を用いて関連ユーザ識別情報を取得する場合、(2)指定ユーザ識別情報と同じグループのユーザ識別情報を関連ユーザ識別情報として取得する場合とについて説明する。
(1)送信情報を用いて取得する場合
関連ユーザ識別情報取得部15は、送信管理情報に含まれる送信情報のうちの、同じユーザ識別情報と対応付けられた送信情報に含まれる文字列の出現状況に応じて、送信間連情報に含まれるユーザ識別情報の中から関連ユーザ識別情報を取得する。
例えば、関連ユーザ識別情報取得部15は、送信管理情報に含まれるユーザ識別情報ごとに、ユーザ識別情報と対応付けられた送信情報に含まれる文字列の出現状況を取得し、出現状況に応じて、指定ユーザ識別情報についての関連ユーザ識別情報を取得する。ここでの文字列とは、例えば、予め指定されたルールを満たす文字列である。ここでの文字列は、例えば、一文字以上の連続した文字群である。ここでのルールは、例えば、条件または属性のうちの1以上の組合せである。予め指定されたルールを満たす文字列は、例えば、予め指定された品詞(例えば、名詞、固有名詞等)の単語や、自立語、語句等である。また、予め指定された文字列は、特定の文字列(いわゆる決まり文句等)を含む単語(例えば、店、ショップ等を含む単語)等であっても良い。また、予め指定されたルールを満たす文字列は、送信情報に含まれるタグであってもよい。また、予め指定されたルールを満たす文字列は、送信情報に含まれる特定の項目と対応付けられた文字列であっても良い。出現状況とは、例えば、一のユーザ識別情報と対応付けられた送信情報に含まれる文字列のうちの、文字列ごとの出現数(同じ文字列の出現回数を集計した数)でもよいし、この出現数が、予め指定されている閾値を超えたか否かの判断結果であっても良いし、この出現数の、予め指定されたルールを満たす全ての文字列の出現数に対する比率等であっても良い。また、予め指定されている1以上の文字列の出現数であっても良い。また、出現する文字列の種類や種類数であっても良い。例えば、出現する全ての文字列のリスト等であっても良い。
関連ユーザ識別情報取得部15は、例えば以下のようにして、出現状況に応じて関連ユーザ識別情報を取得する。例えば、関連ユーザ識別情報取得部15は、一のユーザ識別情報と対応する送信情報に含まれる文字列と、指定ユーザ識別情報に対応付けられた送信情報に含まれる文字列とにおいて、共通する文字列を検出し、共通する文字列の種類数(出現状況に相当)が、予め指定された値以上である場合、この一のユーザ識別情報と、指定ユーザ識別情報との関連性が高いと考えて、この一のユーザ識別情報を関連ユーザ識別情報として取得するようにしてもよい。この場合、関連ユーザ識別情報取得部15は、この処理を、送信情報と対応する他のユーザ識別情報に対しても繰り返す。
また、関連ユーザ識別情報取得部15は、例えば、一のユーザ識別情報と対応する送信情報と、指定ユーザ識別情報に対応付けられた送信情報とのそれぞれについて、予め指定された1以上の文字列の出現数を取得し、出現数が閾値以上である文字列のうちの予め指定された数以上が一致する場合に、この一のユーザ識別情報と、指定ユーザ識別情報との関連性が高いと考えて、この一のユーザ識別情報を関連ユーザ識別情報として取得するようにしてもよい。この場合、関連ユーザ識別情報取得部15は、この処理を、送信情報と対応する他のユーザ識別情報に対しても繰り返す。
また、関連ユーザ識別情報取得部15は、例えば、一のユーザ識別情報と対応する送信情報と、指定ユーザ識別情報に対応付けられた送信情報とのそれぞれに含まれる文字列について、文字列毎に出現数を取得し、それぞれの文字列の中から、出現数が閾値以上である文字列をそれぞれ取得し、取得した文字列の中に、共通する文字列が閾値以上存在する場合に、この一のユーザ識別情報と、指定ユーザ識別情報との関連性が高いと考えて、この一のユーザ識別情報を関連ユーザ識別情報として取得する。関連ユーザ識別情報取得部15は、この処理を、送信情報と対応するユーザ識別情報に対して繰り返す。
また、関連ユーザ識別情報取得部15は、各ユーザ識別情報と対応する送信情報における文字列の出現数をベクトルの成分値として、各ユーザ識別情報に対応するユーザの関心や嗜好を、ベクトルで表し、このベクトルを用いて、指定ユーザ識別情報と関連性が高い関連ユーザ識別情報を取得するようにしても良い。以下、ベクトルを用いて、関連ユーザ識別情報を取得する処理について具体的に説明する。
関連ユーザ識別情報取得部15は、指定ユーザ識別情報とは異なる一のユーザ識別情報に対応する送信情報から、上記と同様に文字列を取得する。また、指定ユーザ識別情報に対応する送信情報からも、同様に文字列を取得する。そして、これらの文字列の中からユニーク処理(重複を無くす処理)を行って、一のユーザ識別情報に対応する送信情報と、指定ユーザ識別情報に対応する送信情報とのいずれかに出現する文字列の群を取得する。この群を構成する各文字列が、ベクトルの成分となる。そして、一のユーザ識別情報に対応する送信情報と、指定ユーザ識別情報に対応する送信情報とのそれぞれについて、この群を構成する各文字列の出現数を取得する。そして、一のユーザ識別情報について取得した各文字列の出現数を一のユーザ識別情報のベクトルの成分値とし、指定ユーザ識別情報について取得した各文字列の出現数を指定ユーザ識別情報のベクトルの成分値とする。
例えば、群を構成する文字列数をN(Nは1以上の整数)とし、ユーザ識別情報iに対応する送信情報における各文字列の出現数をui,1〜ui,Nで表すと、ユーザ識別情報iに対応するベクトルは、
そして、これらの成分値を用いて、一のユーザ識別情報のベクトルと、指定ユーザ識別情報のベクトルとの類似度を示す値として、ベクトル間のコサイン類似度を算出する。一のユーザ識別情報iのベクトルと、指定ユーザ識別情報jのベクトルとのコサイン類似度cosθi,jは以下の式により算出される。
更に、関連ユーザ識別情報取得部15は、指定ユーザ識別情報とは異なる他のユーザ識別情報についても、順次、上記と同様の処理を行って、ユーザ識別情報のベクトルと、指定ユーザ識別情報のベクトルとのコサイン類似度を算出する。
そして、関連ユーザ識別情報取得部15は、コサイン類似度cosθi,jの値が大きい(即ち、ベクトル間の距離が短い)ユーザ識別情報を、関連ユーザ識別情報として取得する。ここでの値が大きいユーザ識別情報とは、コサイン類似度の値が予め指定された閾値以上であるユーザ識別情報としても良いし、対応するコサイン類似度の値が、最も大きいものから数えて、予め指定された順位までに含まれるユーザ識別情報としてもよい。
なお、上記の例においては、関連ユーザ識別情報の検出対象となる複数のユーザ識別情報に対応する送信情報にそれぞれ含まれる文字列と、指定ユーザ識別情報に対応する送信情報に含まれる文字列とをユニーク処理して得られた文字列を、ベクトルの成分として用いるようにしても良い。
また、ここでは、文字列の出現状況として、複数の文字列の組合せの出現状況を用いるようにしても良い。例えば、固有名詞と、評価を示す文字列(例えば、「良い」、「いいね」、「GOOD」等の予め指定された文字列)との組合せの出現する数等をカウントした値を用いて出現状況を示す情報を取得しても良い。あるいは、一の固有名詞と、肯定的な評価を示す文字列(例えば、「良い」、「いいね」、「GOOD」等の予め指定された文字列)との組合せが出現する数から、同じ固有名詞と、否定的な評価を示す文字列(例えば、「良くない」、「悪い」、「BAD」等の文字列との組合せが出現する数を減算した値を用いて一の固有名詞についての出現状況を示す情報を取得しても良い。例えば、「カレー」と、「おいしい」等の肯定的な文字列との組合せが出現した場合は、カウント値を「1」増加させ、「カレー」と、「おいしくない」等の否定的な文字列との組合せが出現した場合に、カウント値を、「1」減少させて、「カレー」についての出現状況を示す情報を取得してもよい。
また、送信情報格納部11に格納されている各送信情報に、予め各送信情報に対する評価を示す点数の情報が対応付けられている場合、送信情報に含まれる文字列の出現数を、この点数の情報によって重み付けするようにし、このようにして重み付けした出現数の情報を、上述したような出現状況を示す情報を取得する際に用いるようにしても良い。評価を示す点数の情報とは、例えば、各送信情報に対して、各送信情報の提供を受けたユーザが評価した点数を集計した値である。例えば、送信情報の提供を受けた各ユーザが、送信情報を評価するためのボタン(例えば、「Good」であることを示すボタンや、評価点を一点加えるボタン等)を押した数の合計であっても良い。例えば、一の送信情報に対応付けられた点数が、「5点」であった場合、この送信情報に含まれる所定のルールを満たす文字列の出現数を、「5」としても良い。
また、出現状況の取得対象となる送信情報を、受信部12が受信したキーワードと一致する文字列を有する送信情報や、受信部12が受信したキーワードと一致する属性を示す情報(例えばタグ)が付与された送信情報に限定するようにしても良い。例えば、キーワードが「カレー」であり、送信情報において検出する文字列が、「レストラン」や「店」を含む店名であった場合、関連ユーザ識別情報取得部15は、「カレー」を提供する店の名前の出現状況を取得することが可能となる。
(2)同じグループのユーザ識別情報を取得する場合
関連ユーザ識別情報取得部15は、例えば、受信部12が受信した指定ユーザ識別情報と同じグループに含まれるユーザ識別情報を関連ユーザ識別情報として取得する。具体的には、関連ユーザ識別情報取得部15は、例えば、グループ管理情報格納部13に格納されているグループ管理情報から、受信部12が受信した指定ユーザ識別情報と同じグループに含まれるユーザ識別情報を関連ユーザ識別情報として取得する。同じグループに含まれるユーザ識別情報は、通常は、関連性が高いと判断されることから、このような処理似より、指定ユーザ識別情報に対して関連性の高いユーザ識別情報を関連ユーザ識別情報として取得することができる。
更に、関連ユーザ識別情報取得部15は、閲覧管理情報格納部14に格納されている閲覧管理情報から、受信部12が受信した指定ユーザ識別情報と同じグループに含まれる各ユーザ識別情報ごとに、対応する閲覧ユーザ識別情報数を取得し、受信部12が受信した指定ユーザ識別情報と同じグループに含まれるユーザ識別情報のうちの、取得した閲覧ユーザ識別情報数が多いユーザ識別情報を関連ユーザ識別情報として取得するようにしてもよい。これにより、グループに属するユーザの多くが閲覧しているユーザのユーザ識別情報を優先的に関連ユーザ識別情報として取得することができる。例えば、多くのユーザにより送信情報の閲覧を要求されているユーザは、信頼性の高い送信情報や、興味深い送信情報を提供するユーザであると考えられることから、このようにして関連ユーザ識別情報を取得することで、より適切なユーザのユーザ識別情報を関連ユーザ識別情報として取得することができる。
なお、関連性が高い1以上のユーザ識別情報を上記の(1)、(2)以外の処理により取得しても良い。例えば、関連ユーザ識別情報取得部15は、送信管理情報に含まれる送信情報のうちの、同じユーザ識別情報と対応付けられた送信情報から、いわゆる話題抽出の処理を行って、これにより得られた話題によって、関連性の高い1以上のユーザ識別情報を取得しても良い。例えば、各ユーザ識別情報と対応する送信情報から話題抽出により得られた話題と、指定ユーザ識別情報に対応付けられた送信情報から話題抽出により得られた話題とが類似するか否かを判断し、類似すると判断された話題に対応するユーザ識別情報と、指定ユーザ識別情報との関連性が高いと判断する。ここでの類似するか否かの判断は、例えば、話題抽出により得られた文字列のうちの予め指定された数以上が一致するか否かや、話題抽出により得られた文の類似度の値を閾値等と比較することで判断される。
なお、話題抽出の処理については、以下の非特許文献を参照されたい「非特許文献:石井 恵、外2名、"名詞句と単語の勢いを用いた話題抽出手法の提案"、[online]、平成16年3月5日、情報処理学会、[平成23年11月22日検索]、インターネット<URL: http://ci.nii.ac.jp/elS210002911697.pdf?id=ART0003258384&type=pdf&lang=jp&host=cinii&order_no=&ppv_type=0&lang_sw=&no=1321944202&cp=>」。
また、文の類似度を検出する処理としては、N-gram等が利用可能である。N-gramに関しては、以下の文献を参照されたい「"N-gramモデルを利用したテキスト分析"、[平成23年10月20日検索]、インターネット(URL:http://www.shuiren.org/chuden/teach/n-gram/index-j.html)」。
関連ユーザ識別情報取得部15は、通常、MPUやメモリ等から実現され得る。関連ユーザ識別情報取得部15の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
地図情報格納部16には、地図情報が格納される。地図情報は、地図の情報である。地図情報は、通常、地図の画像である地図図柄情報を有している。地図図柄情報は、例えば、地図を構成するビットマップデータ(ラスタデータ)またはベクタデータ、またはこれらの組合せなどである。地図図柄情報のファイル形式は、GIF形式やJPEG形式や、PNG形式等問わない。地図情報は、ISOのkiwi地図データフォーマットであっても良い。地図情報は、地図上に表記されている地名や、建物や名勝や場所の名称などの文字列を有していても良い。
地図情報は、例えば、その地図情報が表示する領域の経度や緯度を有する座標情報等の、絶対的な位置を示す位置情報や、各地図情報間においてそれぞれの地図が示す領域間の位置関係が分かるような相対的な位置を示す位置情報を有している。例えば、地図情報が示す地図の地表上の実際の範囲や中心点を、緯度と経度との範囲で定義する位置情報を有していてもよい。また、例えば、地図情報が示す地図上の座標と、地図上のこの座標が示す地表上の実際の位置の緯度および経度の値とを対応付けて管理する位置情報を有していても良い。地図上の座標とは、地図図柄情報上の座標と考えてもよい。このような位置情報を用いることで、地図上の座標と、地表上(実空間)における座標(例えば、緯度及び経度)とを適宜変換することが可能となる。
また、地図情報は、当該地図情報により示される地図上の地点を特定する情報(例えば、店名、建物名、ランドマーク名、駅名、住所等)を有していても良い。この地点を特定する情報を、ここでは、地点情報と呼ぶ。地点情報は、通常、文字列の情報である。但し、コード番号等であっても良い。地点情報は、上述した地域識別情報を含むものと考えて良い。また、地図情報は、地点情報と、この地点情報が示す地点の座標とを対応付けて有する地点管理情報を有していても良い。ここでの座標は、例えば、緯度と経度との組合せで構成される座標である。
また、地図情報は、例えば、地図の縮尺と対応付けて管理されていてもよい。具体的には、地図情報は、当該地図情報により出力される地図の縮尺の値の情報を有している。また、地図情報は、縮尺ごとに用意されていても良い。また、地図情報や、一の領域についての縮尺が異なる複数の地図図柄情報を有していてもよい。ここでの地図の縮尺とは、地図の縮尺の値を示す情報と考えても良い。
また、地図情報は、道路情報を有していてもよい。道路情報は、地図が示す道路に関する情報である。また、地図情報は、いわゆるリンクデータやノードデータ等を有していても良い。また、地図情報は、その他の情報を有していても良い。
なお、ここでの格納とは、一時記憶も含む概念である。例えば、インターネット等のネットワークを介して外部のサーバ等から取得した(例えば、受信した)地図情報を一時的に格納することも、ここでは格納と考える。
地点情報取得部17は、関連ユーザ識別情報と対応付けられた送信情報に含まれる地点を示す情報である地点情報であって、受信部12が受信した現在地情報が示す現在地を含む予め指定された領域内に位置する地点情報を、送信管理情報から取得する。現在地を含む予め指定された領域は、現在地を含む領域であれば、その形状やサイズ等は問わない。現在地を含む予め指定された領域は、例えば、現在地の距離が、予め指定された距離以下となる領域(即ち、現在地を中心とした半径が予め指定された距離である領域)である。また、現在地を中心とした、予め指定されたサイズの矩形の領域であっても良い。予め指定された領域の、サイズや形状や等を設定する情報は、例えば、地点情報取得部17等が予め記憶しておくようにすればよい。また、現在地を含む予め指定された領域は、現在地を含む地域(例えば都道府県や、市町村や地区等が示す地域)や、その地域の輪郭を示す情報(例えば、地域の輪郭を示す座標等の情報)が示す領域であっても良い。
以下、地点情報取得部17が地点情報を取得する処理の2つの例について説明する。ただし、以下の処理以外の処理によって地点情報を取得しても良い。
(a)例えば、地点情報取得部17は、地図情報格納部16に格納されている地図情報を用いて、現在地情報が示す現在地を含む予め指定された領域内に位置する座標と対応付けられた1以上の地点情報を取得する。具体例を挙げると、地点情報取得部17は、地図情報格納部16に格納されている地図情報が有する地点管理情報を用いて、現在地情報が示す現在地を含む予め指定された領域内に位置する座標と対応付けられた1以上の地点情報を取得する。例えば、各地点管理情報が有する座標が、現在地を含む領域内の座標であるか否かを判断し、領域内の座標であれば、この地点管理情報に含まれる地点情報をメモリ等の記憶媒体に一時的に読み出す。そして、取得した各地点情報と一致する情報(例えば、文字列等)が、関連ユーザ識別情報取得部15が取得した関連ユーザ識別情報と対応付けられた送信情報に含まれるか否かを判断する。そして、地点情報取得部17は、含まれると判断された地点情報を取得する。
なお、ここでは、地点情報取得部17は、地図情報、具体的には、地図情報に含まれる地点管理情報を用いて現在地を含む領域内の地点情報を取得するようにしたが、地点情報取得部17は、図示しない記憶媒体等の格納部に、地図情報に含まれる地点管理情報と同様の地点管理情報を蓄積しておくようにして、この地点管理情報を用いて、現在地を含む領域内の地点情報を取得するようにしても良い。あるいは、情報処理装置1の外部のサーバ装置(図示せず)等の記憶媒体に格納されている地点管理情報(地図情報に含まれる地点管理情報も含む)等をネットワーク等経由等で利用して、上記と同様に地点情報を取得しても良い。
また、地点管理情報において、地点情報が示す地点の座標の代わりに、地点の住所の情報が格納されている場合、例えば、地点情報取得部17は、地図情報格納部16に格納されている地図情報を用いて(具体的には地点管理情報を用いて)、現在地情報が示す現在地の住所と、予め指定されたレベルの住所が同じである(例えば、市町村レベルの住所が同じである)1以上の地点情報を取得するようにしてもよい。例えば、現在地の住所が、「A県B市C町1−22−33」であった場合、対応する地点の住所の一部に「A県B市C町」が含まれる1以上の地点情報を地点管理情報から取得し、取得した各地点情報と一致する情報が、関連ユーザ識別情報取得部15が取得した関連ユーザ識別情報と対応付けられた送信情報に含まれるか否かを判断するようにしても良い。なお、地図情報等を用いて現在地の座標等から住所の情報等を取得する技術については、公知の技術であるので、ここでは、詳細な処理の説明は省略する。
(b)地点情報取得部17は、送信管理情報に格納されている送信管理情報の中から、関連ユーザ識別情報と対応付けられた1以上の送信情報を取得し、取得した各送信情報から、地点情報を検出する。地点情報は、例えば、予め用意された1以上の決まり文句や、文字列の形態素解析等を用いて、予め指定されたルール等に従って取得する。例えば、地点情報として飲食店の店名を取得する場合、「レストラン」という文字列に続く1以上の名詞句や、「店」の前に配置された1以上の名詞句等を取得する。また、予め地点情報のリストを用意しておくようにして、このリストと一致する地点情報を取得するようにしても良い。なお、送信情報内に、予め地点情報が、他の情報に対して識別可能に含まれている場合(例えば、送信情報が、地点情報が入力された項目を有している場合等)においては、地点情報取得部17は、この地点情報だけを選択的に取得してもよい。また、送信情報に地点情報を示すタグが付与されている場合、地点情報取得部17は、この地点情報を示すタグを、地点情報として取得しても良い。あるいは、送信情報内に、地点情報に対応する座標の情報が、他の情報に対して識別可能に付与されている場合、地点情報取得部17は、この座標の情報を取得して、この座標の情報から、地点情報等を取得するようにしても良い。例えば、地点管理情報から、送信情報に付与されている座標(例えば、緯度、経度)との距離が最も短い座標と対応付けられた地点情報を検索するようにしても良い。
そして、地点情報取得部17は、検出した地点情報に対応する座標を、地図情報格納部16に格納されている地図情報が有する地点管理情報や、図示しない記憶媒体等に格納されている地点管理情報や、ネットワーク等で接続された地点管理情報が格納されている図示しないサーバ装置等から取得する。そして、地点情報取得部17は、地点情報に対応する座標が、上記と同様の現在地を含む領域内の座標であるか否かを判断し、領域内の座標であれば、その地点情報を取得する。
なお、この場合においても、上記の(a)の場合と同様に、座標の代わりに、住所等を用いるようにしても良い。
地点情報取得部17は、上述した地点情報の取得処理において、更に、受信部12が受け付けたキーワードを含む送信情報に含まれる地点情報を取得するようにしても良い。キーワードを含む送信情報とは、受信部12が受け付けたキーワードと一致する文字列を含む送信情報であってもよいし、受信部12が受け付けたキーワードと一致する文字列が、送信情報の属性等を示すタグ等として付与されている送信情報であっても良い。なお、この場合の送信情報に付与されたタグは、送信情報と一部と考えて良い。また、ここでの一致は、通常は完全一致であるが、部分一致としても良い。
例えば、上記の(a)の場合、地点情報取得部17は、現在地情報が示す現在地を含む予め指定された領域内に位置する地点の地点情報を取得した後、この地点情報と、キーワードとの両方を含む送信情報(例えば、地点情報と一致する文字列と、キーワードと一致する文字列を含む送信情報)が、関連ユーザ識別情報取得部15が取得した関連ユーザ識別情報と対応付けられた送信情報に含まれるか否かを判断し、含まれる場合に、その地点情報を取得するようにしても良い。
同様に、上記の(b)の場合、地点情報取得部17は、送信管理情報に格納されている送信管理情報の中から、関連ユーザ識別情報と対応付けられた1以上の送信情報であって、受信部12が受信したキーワードを含む送信情報を取得し、取得した各送信情報から、地点情報を検出し、この地点情報に対応する座標が、現在地を含む領域内の座標であるか否かを判断し、領域内の座標であれば、その地点情報を取得するようにしてもよい。
地点情報取得部17は、通常、MPUやメモリ等から実現され得る。地点情報取得部17の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力部18は、地点情報取得部17が取得した地点情報を出力する。出力部18は、例えば、地点情報取得部17が取得した地点情報のリストを出力しても良い。また、出力部18は、地点情報取得部17が取得した地点情報が示す地点を、他の地点や領域等に対して識別可能となるように示した地図を出力しても良く、この場合も地点情報を出力すると考えて良い。出力部18が、地図を出力する際には、地図情報格納部16に格納されている地図情報等を適宜読み出すようにすればよい。出力部18は、例えば、地点情報を、受信部12が受信した指定ユーザ識別情報を送信した送信元の情報処理端末2に対して出力(例えば送信)する。
また、出力部18は、関連ユーザ識別情報と対応付けられた送信情報のうちの、出力する地点情報を含む送信情報の少なくとも一部を、地点情報とともに出力しても良い。また、送信情報に付与されたキーワード等も送信しても良い。これにより、例えば、地点情報を表示したユーザが、地点情報に関して、関連ユーザ識別情報が示すユーザがどのような説明等を行っているかを知ることができる。なお、一の地点情報について、対応する複数の送信情報が存在する場合は、これらをまとめたリスト等を地点情報とともに送信するようにしても良い。あるいは、出力する側で、一の地点情報に対応する複数の送信情報をまとめて表示するようにしても良い。
ここで述べる出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
出力部18は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部18は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
送信情報受信部19は、例えば、情報処理端末2等からネットワーク等を介して送信される送信情報と、当該送信情報を送信したユーザのユーザ識別情報と、を受信する。この送信情報には、送信した地点の地点情報が付与されていても良い。送信情報受信部19は、例えば、受信した送信情報とユーザ識別情報とを有する送信管理情報を、送信管理情報格納部11に蓄積する。送信情報受信部19は、例えば、通信手段や、通信手段とそのドライバとの組合せ等により実現される。
現在地情報取得部20は、現在地情報を取得する。現在地情報は、現在地の位置情報である。現在地情報取得部20は、例えば、予め指定された一定または不定のタイミングごとに、現在地の位置情報を取得する。また、現在地情報取得部20は、予め指定されたトリガーに応じて、現在地の位置情報を取得しても良い。例えば、予め指定された操作(例えば、何らかのボタン等を押す操作等)が行われたことをトリガーとして、現在地の位置情報を取得しても良い。位置情報は、例えば、現在地の緯度および経度の座標や、現在地の住所等の現在地を識別可能な情報である
現在地情報取得部20は、例えば、GPS(グローバルポジショニングシステム)受信機と同様の処理を行うことで、現在地の位置情報を取得する。また、無線LANや携帯電話の位置検出を行う処理等と同様の処理により位置情報を取得しても良い。また、その他の処理によって、位置情報を取得しても良い。
現在地情報取得部20は、例えばGPS受信機で実現可能である。また、無線LANや携帯電話の位置検出を行う処理部と同様の構成等により実現可能である。
受付部21は、現在地情報と、指定ユーザ識別情報とを受け付ける。更に、受付部21は、キーワード等を受け付けても良い。例えば、受付部21は、現在地情報取得部20が取得して図示しないメモリ等の記憶媒体に蓄積した最新の現在地情報を取得する。この場合の取得は受付と考えて良い。但し、受付部21は、ユーザが入力手段等を用いて入力する現在地情報を受け付けても良い。例えば、受付部21は、ユーザが入力した当該ユーザのユーザ識別情報を指定ユーザ識別情報として受け付ける。受付部21は、例えば、ユーザがキーボードやタッチパネル等の入力手段等を介して入力した指定ユーザ識別情報を受け付ける。なお、受付部21は、一旦入力された指定ユーザ識別情報を、メモリ等の記憶媒体に蓄積するようにして、入力が必要な際にこの記憶媒体に蓄積された指定ユーザ識別情報を読み出して受け付けるようにしても良い。また、受付部21は、ユーザがキーボードやタッチパネル等の入力手段等を介して入力した1以上のキーワードを更に受け付けるようにしても良い。なお、受付部21は、音声入力により指定ユーザ識別情報や、キーワード等を受け付けても良い。
また、受付部21は、SNSのユーザのユーザ識別情報と、SNSに対して送信するための情報との入力を受け付けても良い。また、これらの情報の受付の際に、現在地情報を、現在地情報取得部20等から取得しても(即ち、受け付けても)良い。
指定ユーザ識別情報等の入力手段は、テンキーやキーボードやタッチパネルやメニュー画面によるもの等、何でも良い。受付部21は、キーボードやタッチパネル等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
送信部22は、受付部21が受け付けた現在地情報と指定ユーザ識別情報とを情報処理装置1に対して送信する。また、受付部21が更にキーワードを受け付けている場合、現在地情報と指定ユーザ識別情報とキーワードとを送信する。また、受付部21が、ユーザ識別情報と、SNSに対して送信するための情報である送信情報との入力を受け付けた場合、これらの情報を情報処理装置1に対して送信する。また、受付部21が受け付けた現在地情報を送信情報に付与して送信するようにしてもよい。
送信部22は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。送信部22は、通信デバイスを含むと考えても、含まないと考えても良い。
地点情報受信部23は、情報処理装置1の出力部18が送信する地点情報を受信する。また、出力部18が地点情報を示す地図の情報を出力する場合、地点情報受信部23は、この地図の情報を受信しても良く、この場合も地点情報を受信したと考えて良い。
地点情報受信部23は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。地点情報受信部23は、通信デバイスを含むと考えても、含まないと考えても良い。
地点情報出力部24は、地点情報受信部23が受信した地点情報を出力する。例えば、地点情報出力部24は、受信した地点情報をモニタ等に表示する。また、地点情報受信部23が地点情報を示す地図の情報を受信した場合、この地図の情報を出力(例えば表示)してよく、このような場合も地点情報の出力と考えて良い。
地点情報出力部24は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。地点情報出力部24は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報処理装置1の動作の一例について図2のフローチャートを用いて説明する。なお、ここでは、送信情報における文字列の出現状況を利用して取得した関連ユーザ識別情報を用いて、地点情報を取得する場合の一例について説明する。なお、このフローチャートの処理を行う場合、グループ管理情報格納部13および閲覧管理情報格納部14は省略可能である。
(ステップS201)受信部12は、指定ユーザ識別情報と現在地情報とを受信したか否かを判断する。なお、これらに加えて、ここでは更に一例として、キーワードも受信したか否かを判断する。受信した場合、ステップS202に進み、受信していない場合、ステップS216に進む。
(ステップS202)関連ユーザ識別情報取得部15は、各ユーザ識別情報について、文字列の出現状況を成分としたベクトルが取得済であるか否かを判断する。ここでのベクトルは、後述するステップS219で取得されて蓄積されたベクトルである。取得済である場合、ステップS203に進み、取得済でない場合、ステップS217に進む。
(ステップS203)関連ユーザ識別情報取得部15は、ステップS201で受信した指定ユーザ識別情報に対応するベクトルと、送信管理情報に格納されている送信情報と対応付けられている指定ユーザ識別情報以外の1以上のユーザ識別情報のそれぞれに対応するベクトルとの、コサイン類似度を算出する。
(ステップS204)関連ユーザ識別情報取得部15は、ステップS203で取得したコサイン類似度のうちの、値が予め指定された閾値以上となるコサイン類似度と対応する1以上のユーザ識別情報を関連ユーザ識別情報として取得する。取得した関連ユーザ識別情報は、図示しない記憶媒体等に一時記憶する。なお、関連ユーザ識別情報取得部15は、一のユーザ識別情報についてコサイン類似度を算出するごとに、算出した値を閾値と比較して関連ユーザ識別情報を検出する処理を、指定ユーザ識別情報以外のユーザ識別情報についてくり返し行うようにしても良い。
(ステップS205)地点情報取得部17は、地図情報に含まれる地点管理情報を用いて、ステップS201で受け付けた現在地情報が示す現在地を含む予め指定された領域内に位置する1以上の地点情報を取得する。取得した地点情報は、図示しない記憶媒体等に一時記憶する。
(ステップS206)地点情報取得部17は、カウンターnの値を1インクリメントする。
(ステップS207)地点情報取得部17は、ステップS204で検出した1以上の関連ユーザ識別情報のいずれかに対応付けられた送信情報において、ステップS205で取得した1以上の地点情報のうちのn番目の地点情報を有し、かつ、ステップS201で受信したキーワードを含む送信情報が1以上あるか否かの検索を行う。
(ステップS208)地点情報取得部17は、ステップS207で、送信情報が1以上検出されたか否かを判断する。検出された場合、ステップS209に進み、検出されなかった場合、ステップS210に進む。
(ステップS209)地点情報取得部17は、n番目の地点情報を、図示しない記憶媒体等に蓄積する。ここでの蓄積は例えば追記である。
(ステップS210)地点情報取得部17は、カウンターnの値を1インクリメントする。
(ステップS211)地点情報取得部17は、ステップS205で取得した地点情報にn番目の地点情報があるか否かを判断する。ある場合、ステップS207に戻り、ない場合、ステップS212に進む。
(ステップS212)地点情報取得部17は、1以上の地点情報が取得できたか否かを判断する。ここでは、ステップS209において地点情報を蓄積する図示しない記憶媒体に、1以上の地点情報が格納されているか否かを判断する。1以上の地点情報が取得できた場合、ステップS213に進み、取得されていない場合、ステップS215に進む。
(ステップS213)地点情報取得部17は、ステップS210において蓄積した地点情報において、重複をなくす処理(いわゆるユニーク処理)を行う。なお、重複を無くす処理は、省略しても良い。
(ステップS214)出力部18は、ステップS213で得られた地点情報を出力する。そして、ステップS201に戻る。
(ステップS215)出力部18は、適切な地点情報がなかった旨の出力を行う。そして、ステップS201に戻る。
(ステップS216)関連ユーザ識別情報取得部15は、送信管理情報に格納されている送信情報と対応付けられているユーザ識別情報ごとに文字列の出現状況に応じたベクトルを取得するタイミングであるか否かを判断する。例えば、予め指定された日時になった場合や、予め指定された経過時間が経過するごとに、取得するタイミングであると判断する。タイミングである場合、ステップS217に進み、タイミングでない場合、ステップS220に進む。なお、予め指定されたトリガーを受け付けたか否かを判断し、受け付けた場合に、ステップS217に進むようにしても良い。
(ステップS217)関連ユーザ識別情報取得部15は、カウンターmの値を1インクリメントする。
(ステップS218)関連ユーザ識別情報取得部15は、m番目のユーザ識別情報と対応付けられた各送信情報を順次読み出し、読み出した送信情報から予め指定されたルールを満たす文字列を検索し、検索された文字列の出現数を、文字列ごとにカウントしていく。
(ステップS219)関連ユーザ識別情報取得部15は、ステップS218で取得した文字列ごとのカウント数を、文字列と対応付けて図示しない記憶媒体等に蓄積(例えば、一時記憶)する。
(ステップS220)関連ユーザ識別情報取得部15は、カウンターmの値を1インクリメントする。
(ステップS221)関連ユーザ識別情報取得部15は、送信情報と対応付けられたm番目のユーザ識別情報があるか否かを判断する。ある場合、ステップS218に戻り、ない場合、ステップS222に進む。
(ステップS222)関連ユーザ識別情報取得部15は、ステップS218の処理を全てのユーザ識別情報について行った時点で出現した全ての文字列を、重複がないように取得して、図示しない記憶媒体等に一時記憶する。例えば、出現した全ての文字列に対してユニーク処理を行う。
(ステップS223)関連ユーザ識別情報取得部15は、ステップS219において各ユーザ識別情報ごとに蓄積した文字列ごとのカウント数を、ステップS222で取得した全ての文字列を各成分としたベクトルの、一致する文字列に対応する成分値として割り当てることにより、各ユーザ識別情報ごとにベクトルを取得する。なお、ステップS222で取得した全ての文字列のうちの、ステップS219において各ユーザ識別情報ごとに蓄積した文字列と一致するものがない文字列に対応するベクトルの成分については、ここでは、その成分値は「0」に設定する。そして、取得したベクトルを、各ユーザ識別情報と対応付けて、図示しない記憶媒体等に蓄積する。そして、ステップS201に戻る。
(ステップS224)送信情報受信部19は、送信情報とユーザ識別情報とを受信したか否かを判断する。なお、送信情報受信部19は、地点情報が付与された送信情報を受信しても良い。受信した場合、ステップS225に進み、受信していない場合、ステップS201に戻る。
(ステップS225)送信情報受信部19は、ステップS224で受信した送信情報とユーザ識別情報とを有する送信管理情報を、送信管理情報格納部11に蓄積する。そして、ステップS201に戻る。
なお、図2のフローチャートにおいて、ステップS207からステップS211の処理の代わりに、関連ユーザ識別情報のいずれかと対応付けられた送信情報の中から、地点情報を含む送信情報であって、ステップS201で受け付けたキーワードを含む送信情報を順次検出し、このような送信情報が検出されるごとに、この送信情報に含まれる地点情報が、ステップS205で取得した現在地を含む領域内の地点情報のいずれかと一致するか否かを判断し、地点情報取得部17が、一致すると判断した地点情報を取得して、順次記憶媒体等(図示せず)に一時記憶していくようにし、関連ユーザ識別情報のいずれかと対応付けられた送信情報の全てについてこれらの処理が完了した時点で、1以上の地点情報が一時記憶されていれば、ステップS213に進み、記憶されていなければ、ステップS215に進むようにしても良い。
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、情報処理装置1の動作の他の一例について図3のフローチャートを用いて説明する。なお、この動作は、グループ管理情報を用いて、関連ユーザ識別情報を取得する場合の例を示すものである。なお、上記図2と同一符号は同一または相当する処理ステップを示しており、ここでは説明は省略する。
(ステップS301)関連ユーザ識別情報取得部15は、グループ管理情報を用いて、ステップS201で受信した指定ユーザ識別情報と、同じグループに属するユーザ識別情報を検出する。そして、ステップS302に進む。
(ステップS302)関連ユーザ識別情報取得部15は、閲覧管理情報格納部14に格納されている閲覧管理情報を用いて、ステップS301で検出した各ユーザ識別情報に対応する閲覧ユーザ識別情報の数をカウントし、カウント数が多いユーザ識別情報を、関連ユーザ識別情報として取得する。例えば、関連ユーザ識別情報取得部15は、対応するカウント数が閾値以上であるユーザ識別情報を、カウント数の多いユーザ識別情報として取得する。また、関連ユーザ識別情報取得部15は、カウント数の多いものから数えた順位が、予め指定された順位以内のカウント数と対応付けられたユーザ識別情報を、カウント数の多いユーザ識別情報として取得しても良い。そして、ステップS205に進む。
なお、図3のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
また、図3において、ステップS302の処理は省略して、関連ユーザ識別情報取得部15は、ステップS301で取得したユーザ識別情報を関連ユーザ識別情報としても良い。
次に、本実施の形態における情報処理端末2の動作を簡単に説明する。
現在地情報取得部20は、一定または不定のタイミングで現在地情報を繰り返して取得する。情報処理端末2の受付部21が、入力デバイス等を介して、ユーザからユーザ識別情報(指定ユーザ識別情報)およびキーワードと、地点情報を取得する指示等とを受け付けると、受付部21は、現在地情報取得部20から、最新の現在地情報を取得する。そして、送信部22は、受付部21が受け付けたユーザ識別情報と、キーワードと、現在地情報とを、ネットワーク等を介して情報処理装置1に送信する。
また、受付部21が、ユーザからユーザ識別情報とともに、送信情報を受け付けると、送信部22は、これらの情報を情報処理装置1に対して送信する。ここでの送信情報は地点情報等が付与されたものであっても良い。
また、地点情報受信部23は、情報処理装置1から送信される地点情報を受信する。なお、地点情報とともに送信される送信情報や、地図情報等も受信するようにしても良い。そして、地点情報出力部24は、地点情報受信部23が受信した地点情報を送信する。
以下、本実施の形態における情報処理システム100の具体的な動作について一例を用いて説明する。
(具体例1)
ここでは、まず、情報処理装置1が、図2に示すフローチャートと同様の動作を行う場合の具体例について説明する。また、ここでは、送信情報に含まれる地名情報の出現状況に応じて、ユーザ識別情報語のベクトル等を取得して、関連ユーザ識別情報を取得する場合を例に挙げて説明する。
情報処理システム100の概念図は図4である。ここでは、一例として、情報処理システム100は、情報処理装置1と、複数の情報処理端末2とを備えており、情報処理装置1は、複数の情報処理端末2と、有線または無線のネットワーク等を介して通信可能に接続されているものとする。情報処理装置1は、SNSを提供するサーバであるとする。ここでは、特に、情報処理端末2を3以上備えている場合を例に挙げて説明してする。説明の便宜上、3つの情報処理端末2を、情報処理端末2a〜2cで示している。但し、接続される情報処理端末2の数等は問わない。ここでは、情報処理装置1が、サーバ装置であるとする。また、各情報処理端末2は、いわゆるスマートフォンを兼用している携帯型の情報処理端末であるとする。各情報処理端末2は、表示デバイスとしてモニタ18aを有しており、このモニタ18a上にはタッチパネル(図示せず)が設けられているものとする。
図5は、地図情報格納部16に格納されている地図情報を構成する地図図柄情報を管理するための地図図柄情報管理表である。地図図柄情報管理表は、「地図ID」、「地図図柄情報」、「緯度」、および「経度」等の項目を有している。「地図ID」は地図図柄情報を管理する識別情報である。「地図図柄情報」は、地図図柄情報であり、ここでは、地図図柄情報のファイル名を示している。「緯度」および「経度」は、地図図柄情報が示す地図の中心の緯度および経度を示す。なお、本実施の形態においては、緯度を示すx1,x2……等や、経度を示すy1,y2…等は、それぞれ実際の一の値を示すものとする。かかることは、以下においても同様であるとする。
図6は、地図情報格納部16に格納された地図情報が有している、地点情報を管理する地点管理情報の一例を示す図である。地点管理情報は、「地点識別情報」と、「座標」と、いう項目を有している。「地点識別情報」は、一の地点を識別するための識別情報である。ここでは、地点情報と考えて良い。「地点識別情報」は、例えば一の地点にある建物や、店舗や、ランドマーク等の名称や、住所等である。「座標」は、地点識別情報が示す一の地点の位置を指定する座標である。
例えば、情報処理端末2bのユーザBが、図7に示すような、SNSに対してユーザBが利用した店舗についての感想を送信するために、予め用意されている店舗についてのコメントを入力するための入力画面等を表示させ、タッチパネル等を操作して、ユーザBのユーザ識別情報である「userB」をユーザ識別情報の入力欄71に、コメントの入力対象となる店舗名である「ゴーゴー一番」を場所名の入力欄72に、また、この店舗についてのコメント「ここのカレーはめちゃくちゃおいしい。特に、スペシャルカレーは最高。」をコメントの入力欄73に、それぞれ入力し、送信ボタン74を押したとする。送信部22は、入力画面に入力された情報に基づいて、「ユーザID:userB」というユーザ識別情報と、「場所名:ゴーゴー一番,コメント:ここのカレーはめちゃくちゃおいしい。特に、スペシャルカレーは最高。」という送信情報とを、情報処理装置1に対して送信する。
情報処理装置1の送信情報受信部19は、情報処理端末2bから送信されるユーザ識別情報と送信情報とを受信し、送信管理情報格納部11に蓄積する。ここでの蓄積は追記である。
図8は、送信管理情報格納部11に蓄積されている送信管理情報を示す図である。送信管理情報は、「ユーザID」と「送信情報」という項目を有している。図8において、各レコード(行)が送信管理情報である。「送信情報」は、更に、「場所名」と「コメント」という項目を有しているとする。「ユーザID」は、ユーザ識別情報であり、例えば、送信情報受信部19が受信したユーザ識別情報のうちの「ユーザID:」以降の文字列が蓄積される。また、「送信情報」は、送信情報である。「場所名」は、送信情報に含まれる地点情報であり、送信情報受信部19が受信した送信情報のうちの、「場所名:」という文字列と、次に最初に現れる「,」までの文字列が蓄積される。「コメント」は、送信情報の地点情報以外の部分であり、送信情報受信部19が受信した送信情報のうちの、「コメント:」という文字列以降の文字列が蓄積される。例えば、図8においては、一番上のレコードが、上記ユーザBが送信した送信情報等を含む送信管理情報である。
ここで、例えば、送信管理情報に格納されている送信情報と対応付けられているユーザ識別情報ごとに、文字列の出現状況に応じたベクトルを取得するタイミングになったとする。例えば、予め指定された日時(例えば、毎週の金曜日の午後5時等)になったとする。関連ユーザ識別情報取得部15は、ベクトルを取得するタイミングになったと判断して、ユーザ識別情報ごとにベクトルを取得する処理を行う。
まず、関連ユーザ識別情報取得部15は、図8に示した送信管理情報の全てのレコードの「ユーザID」の値を取得して、ユニーク処理を行って、送信管理情報全てに現れるユーザ識別情報を、重複のないよう取得する。なお、ここでは、全ての送信管理情報としたが、予め指定された条件を満たす送信管理情報についてのみユーザ識別情報を取得しても良い。例えば、送信管理情報に、送信管理情報の送信日時や、受信日時等の情報を付与しておくようにし、この日時によって、所定の期間内に送信された(あるいは受信した)送信情報を含む送信管理情報からのみユーザ識別情報を取得するようにしても良い。
図9は、関連ユーザ識別情報取得部15が取得したユーザ識別情報を示す図である。
次に、関連ユーザ識別情報取得部15は、図8に示した送信管理情報の全てのレコードの「場所名」という項目と対応付けられた情報を取得して、ユニーク処理を行って、送信管理情報全てに現れる「場所名」という項目と対応付けられた情報である地名情報を重複しないように取得する。
図10は、関連ユーザ識別情報取得部15が取得した地名情報(「場所名」)を示す図である。この具体例においては、この「場所名」という項目と対応付けられた文字列である地名情報の出現状況を利用して得られる各ユーザ識別情報についてのベクトルを用いて、関連ユーザ識別情報の取得を行う。
関連ユーザ識別情報取得部15は、まず、図9に示したユーザ識別情報のうちの1番目のレコードの「ユーザID」の値「userA」と、図10に示した地名情報のうちの1番目のレコードの「場所名」の値である「インド料理インディア」とを読み出し、図8に示した送信管理情報のうちの、「ユーザID」が「userA」である全てのレコードについて、「場所名」の値が、上記で読み出した「インド料理インディア」と一致するレコードの数をカウントする。そして、カウント数を、ユーザID「userA」と、地名情報「インド料理インディア」と対応付けて、図示しない記憶媒体に蓄積する。
さらに、図10に示した地名情報のうちの2番目以降のレコードの「場所名」についても同様に、順次、この「場所名」と一致する「場所名」を有する送信管理情報の数をカウントする。
そして、図10の「場所名」の全てについての処理が終わった時点で、次に、図9に示したユーザ識別情報のうちの2番目以降のレコードの「ユーザID」に対応する送信管理情報についても、順次、「場所名」の値が、図10に示した地名情報の各レコードの「場所名」と一致するレコードの数を、各「場所名」ごとにカウントし、カウント数を、「ユーザID」の値と、カウントした地名情報(「場所名」)の値と対応付けて、上記と同様に、図示しない記憶媒体に蓄積(ここでは追記)していく。
これによって、図9に示した各ユーザ識別情報ごとに対応する送信情報における、図10に示した各地名情報の出現数を取得することができる。このようにして取得した各ユーザ識別情報ごとの、各地名情報の出現数が、各ユーザ識別情報ごとの、ベクトルの成分となる。
図11は、関連ユーザ識別情報取得部15が各ユーザ識別情報ごとに取得した各地名情報の出現数を管理する地名出現数管理表である。
ここで、各ユーザに対応する送信情報における文字列(ここでは、地名情報)の出現頻度に基づくベクトルを(インド料理インディアのカウント値,カフェブリュのカウント値,カフェマンデイのカウント値,カレージャンボのカウント値…)で表すと、例えば、「userA」の場所名のカウント値は、上から順に「2」、「2」、「1」、「1」…となるため、「userA」に対応する送信情報における文字列(ここでは、地名情報)の出現頻度に基づくベクトルは(2,2,1,1…)となる。また、「userB」のベクトルは、(1,0,0,0…)となる。他のユーザについてのベクトルに関しても同様である。
ここで、情報処理端末2aを利用するユーザAが、現在地の付近で、自分と同じような好みの他のユーザが勧めているカレーを提供する飲食店の情報を知りたいと考えて、図12に示すような情報処理端末2aの入力画面のキーワード入力欄12aにキーワード「カレー」を、ユーザID入力欄12bに、ユーザAのユーザID「userA」を入力して、検索ボタン12cを押したとする。情報処理端末2aの地点情報受信部23は、GPSの機能を有しており、情報処理端末2aの起動直後から、例えば1分ごとに、現在地情報として現在地の座標(緯度と経度との組合わせ)の取得を繰り返しており、受付部21は、検索ボタン12cが押された時点の座標(x100,y100)を地点情報受信部23から取得する。そして、出力部18は、受付部21が取得したユーザIDとキーワードと現在地情報とを情報処理装置1に送信する。出力部18が送信するユーザIDは、指定ユーザ識別情報である。
情報処理装置1の受信部12は、情報処理端末2aから送信されたキーワード「カレー」と、指定ユーザ識別情報「userA」と、現在地情報「(x100,y100)」とを受信する。関連ユーザ識別情報取得部15は、受信部12が指定ユーザ識別情報を受信すると、関連ユーザ識別情報を取得する処理を行う。
具体的には、関連ユーザ識別情報取得部15は、上述したように、指定ユーザ識別情報「userA」と一致する「ユーザID」に対応する「場所名」と「カウント数」との組を、図11に示した地名出現数管理表を用いて取得し、これらの「場所名」と「カウント数」との組を用いて、指定ユーザ識別情報「userA」に対応するベクトルを上記と同様に取得する。ここで取得される「userA」に対応するベクトルは、上述したように「(2,2,1,1…)」となる。そして、同様に、関連ユーザ識別情報取得部15は、地名出現数管理表で管理されている他のユーザ識別情報ごとに、「userA」の場合と同様にベクトルを取得し、取得したベクトルと、「userA」に対応するベクトルとのベクトルコサイン類似度を、上述した式1を用いて算出していく。そして、算出したコサイン類似度の値を、予め用意された閾値と比較して、閾値以上の値となるベクトルと対応付けられた「ユーザID」の値を関連ユーザ識別情報として順次取得し、図示しない記憶媒体等に蓄積していく。このようにして取得された関連ユーザ識別情報は、「userB」、および「userG」であったとする。
次に、地点情報取得部17は、受信部12が受信した現在地情報を用いて、現在地を含む予め指定された形状およびサイズの領域を示す情報を取得する。例えば、現在地(x100,y100)を中心とした、一辺が予め指定された距離(例えば500m)の正方形の地表上の領域を示す情報を取得する。例えば、ここでは、このような正方形の4隅の緯度と経度とを示す座標を取得する。
次に、地点情報取得部17は、このようにして設定した現在地を含む領域内に位置する地点情報を、図6に示した地点管理情報から取得する。例えば、各地点管理情報の一のレコードの「座標」の値を、取得し、この「座標」が、上記で設定した現在値を含む領域内の座標であるか否かを判断し、領域内の座標であると判断された場合にのみ、この「座標」に対応付けられた「地点識別情報」を取得して、図示しない記憶媒体に蓄積する。この処理を、地点管理情報の各レコードに対して繰り返すことで、領域内に位置する地点についての、地点識別情報(地点情報)を取得することができる。
図13は、地点情報取得部17が取得した、現在地情報が示す現在地を含む領域内に位置する地点情報を示す図である。
地点情報取得部17は、図13に示した現在地を含む領域内の地点情報の中から1番目の地点情報「無機領域」を取得し、図8に示した送信管理情報の各レコードの中から、「ユーザID」が「userB」または「userG」のいずれかと一致し、「場所名」が1番目の地点情報「無機領域」と一致し、かつ、「送信情報」内に受信部12が受信したキーワードである「カレー」と一致する文字列を含むレコードを検索する。そして、条件に願値するレコードが検出された場合、検出された各レコードにそれぞれ含まれる「場所名」と「コメント」との組を図示しない記憶媒体に蓄積する。ここでは、検索の条件を満たすレコードが検出されないため、「場所名」と「コメント」との組は蓄積されない。
次に、図13に示した現在地を含む領域内の地点情報の中から2番目の地点情報「ゴーゴー一番」を取得し、上記と同様に、ユーザID」が「userB」または「userG」のいずれかと一致し、「場所名」が2番目の地点情報「ゴーゴー一番」と一致し、かつ、「送信情報」内に受信部12が受信したキーワードである「カレー」と一致する文字列を含むレコードを検索する。ここでは、この検索条件を満たすレコードが、2つ検出されたとすると、この2つのレコードにそれぞれ含まれる地点情報「ゴーゴー一番」と、「送信情報」の値との組が、図示しない記憶媒体に蓄積される。
以下、同様に、地点情報取得部17は、図13に示した現在地を含む領域内の地点情報のうちの3番目以降の地点情報についても、それぞれ上記と同様の処理を行う。
図14は、地点情報取得部17が取得した「地点情報」と「送信情報」との組を管理する取得地点情報管理表である。
そして、地点情報取得部17は、図14に示した取得地点情報管理表において、地点情報の重複を無くすユニーク処理を行う。但し、同じ地点情報と対応付けられていた異なる送信情報については、ユニーク処理後の一の地点情報に対応付けておくようにする。
そして、出力部18は、地点情報取得部17によりユニーク処理されて得られた地点情報と送信情報との組を、指定ユーザ識別情報の送信元となる情報処理端末2aに対して送信する。
情報処理端末2aの地点情報受信部23が、出力部18から送信される地点情報と送信情報との組を受信すると、地点情報出力部24は、受信した地点情報をリストとして、情報処理端末2aのモニタ18aに表示する。
図15は、地点情報出力部24による地点情報の表示例を示す図である。
そして、リスト化された地点情報の一つに対して、クリックやタップ等の予め指定された操作が行われた場合に、地点情報受信部23は、操作対象となった地点情報に対応付けられた1以上の送信情報をモニタ18aに表示する。
図16は、地点情報出力部24による送信情報の表示例を示す図である。
なお、ここでは、地点情報をリストとして表示したが、情報処理装置1の地点情報取得部17が、ユニーク処理した地点情報に対応する座標を、図6に示した地点管理情報から取得し、さらに、現在地情報が示す地図図柄情報を地図情報格納部16から取得して、この地図図柄情報上の、地点情報に対応する座標が示す位置上に、地点情報に対応付けられたマーカーやピン等の画像を配置した地図図柄情報を、地点情報と送信情報とともに、情報処理端末2aに送信するようにしても良い。そして、情報処理端末2aの地点情報出力部24が、地点情報に対応するマーカーやピン等が配置された地図図柄情報をモニタ18aに表示するようにしても良い。そして、地図図柄情報上のマーカーに対してクリックやタップ等のあら予め指定された操作を受け付けた場合に、地点情報出力部24が、このマーカーに対応した地点情報や、送信情報をモニタ18a上に表示するようにしてもよい。
このような具体例においては、例えば、一のユーザと同じ(あるいは提携関係にある)SNSを利用するユーザが提供する送信情報を用いて、一のユーザと嗜好等が似ている他のユーザを検出して、検出された他のユーザが、現在地付近において勧めている、あるいは紹介している地点情報を取得して一のユーザに提供することができるため、一のユーザに対して、このユーザの嗜好にあった適切な地点情報を提供することが可能となる。
(具体例2)
以下、本実施の形態の情報処理システムの動作の具体例2について説明する。ここでは、情報処理装置1が、グループ管理情報格納部13と、閲覧管理情報格納部14とを用いて、図3に示すフローチャートと同様の動作を行う場合の具体例について説明する。
関連ユーザ識別情報を取得するための関連ユーザ識別情報取得部15の処理以外の処理については、上記の具体例1と同様であるので、ここでは、詳細な説明は省略する。また、関連ユーザ識別情報取得部15が、ユーザごとのベクトルを取得するために用いられる地名出現数管理表を取得する処理等についても省略される。
図17は、グループ管理情報格納部13に格納されているグループ管理情報を示す図出ある。グループ管理情報は、「グループID」と「ユーザID」という項目を有している。「グループID」は、グループの識別情報である。また、「ユーザID」はユーザ識別情報である。同じグループに属するユーザIDに対しては同じグループIDが対応付けられているものとする。
図18は、閲覧管理情報格納部14に格納されている閲覧管理情報を示す図である。閲覧管理情報は、「ユーザID」と「閲覧ユーザID」という項目を有している。ここでの「ユーザID」は、閲覧を求められた(閲覧が許可された)ユーザのユーザ識別情報(閲覧される側のユーザ識別情報)であり、「閲覧ユーザID」は、対応する「ユーザID」が提供する送信情報の閲覧を求めるユーザのユーザ識別情報(閲覧する側のユーザ識別情報)である。
情報処理装置1の受信部12が、上記の具体例1と同様に、指定ユーザ識別情報「userA」等を受信したとすると、関連ユーザ識別情報取得部15は、図17に示したグループ管理情報から、「userA」と対応する「グループID」である「G01」を取得する。そして、グループID「G01」と対応付けられた「userA」以外の「ユーザID」をグループ管理情報から取得する。ここで取得した「ユーザID」は、「userA」と同じグループに属するユーザ識別情報である。
図19は、関連ユーザ識別情報取得部15が取得した「userA」と同じグループに属するユーザ識別情報を示す図である。
次に、関連ユーザ識別情報取得部15は、図19に示したユーザ識別情報の1番目のユーザ識別情報「userB」を取り出し、図18に示した閲覧管理情報において、「ユーザID」が「userB」であるレコードの数をカウントする。そして、カウント値を、ユーザ識別情報「userB」と対応付けて、図示しない記憶媒体に蓄積する。これにより、「userB」が示すユーザが提供する送信情報の閲覧を求めたユーザ(ユーザ識別情報)の数を取得することができる。同様にして、図18に示した閲覧管理情報の2番目以降の「ユーザID」についても同様の処理を行う。
図20は、関連ユーザ識別情報取得部15が取得したユーザ識別情報ごとの、このユーザ識別情報が提供する送信情報の閲覧を求めたユーザのユーザ識別情報数を示す図である。「閲覧要求数」は、閲覧を求めたユーザの数(ユーザ識別情報数)である。
そして、関連ユーザ識別情報取得部15は、図20に示したユーザ識別情報ごとの、閲覧を求めたユーザ識別情報数において、「閲覧要求数」の値が多いレコードを検出し、そのレコードの「ユーザID」を関連ユーザ識別情報として取得する。ここでは、「閲覧要求数」の値が「3」以上であるレコードの「ユーザID」を関連ユーザ識別情報として取得する。具体的には、関連ユーザ識別情報取得部15は、「userB」と、「userH」とを関連ユーザ識別情報として取得する。
その後の処理については、上記具体例1と同様であるので、ここでは説明は省略する。
例えば、SNSにおいて、一のユーザと同じグループに属しているユーザは、一のユーザと嗜好等が似ている可能性が高いと考えられる。また、送信情報を多くのユーザに閲覧されているユーザは、その送信情報の内容が適切である場合が多いと考えられる。従って、このような具体例においては、一のユーザと同じグループにあるユーザで、かつ、送信情報の閲覧の要求を受けている数の多いユーザが、現在地付近において勧めている、あるいは紹介している地点情報を取得して一のユーザに提供することができるため、一のユーザに対して、このユーザの嗜好にあった適切な地点情報を提供することが可能となる。
以上、本実施の形態によれば、SNSを利用する一のユーザに対して、このユーザの指定ユーザ識別情報と関連性が高い関連ユーザ識別情報と対応付けられた送信情報に含まれる地点情報を出力することにより、一のユーザと嗜好等が似ているユーザが送信した送信情報に含まれる地点情報を、一のユーザに提供することができ、ユーザの嗜好に応じた適切な地点情報を提供することができる。
なお、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段(受信部、送信情報受信部など)は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、関連ユーザ識別情報取得部15や、地点情報取得部17等の各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、格納部(例えば、ハードディスクやメモリ等の記録媒体)にアクセスしながらプログラムを実行してもよい。
なお、上記各実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、ソーシャルネットワークサービス(以下、SNSと称す)を利用する複数のユーザが送信した情報である送信情報と、送信情報を送信したユーザの識別情報であるユーザ識別情報とを有する情報である複数の送信管理情報が格納される送信管理情報格納部にアクセス可能なコンピュータを、一のユーザのユーザ識別情報である指定ユーザ識別情報と、指定ユーザ識別情報に対応するユーザの現在地の情報である現在地情報とを受信する受信部と、受信部が受信した指定ユーザ識別情報との関連性が高い1以上のユーザ識別情報である関連ユーザ識別情報を取得する関連ユーザ識別情報取得部と、関連ユーザ識別情報と対応付けられた送信情報に含まれる地点を示す情報である地点情報であって、現在地情報が示す現在地を含む予め指定された領域内に位置する地点情報を、送信管理情報から取得する地点情報取得部と、地点情報を出力する出力部として機能させるためのプログラムである。
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には含まれない。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図21は、上記プログラムを実行して、上記実施の形態による情報処理装置を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
図21において、コンピュータシステム900は、CD−ROM(Compact Disk Read Only Memory)ドライブ905、FD(Floppy(登録商標) Disk)ドライブ906を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
図22は、コンピュータシステム900の内部構成を示す図である。図22において、コンピュータ901は、CD−ROMドライブ905、FDドライブ906に加えて、MPU(Micro Processing Unit)911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM(Random Access Memory)913と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク914と、MPU911、ROM912等を相互に接続するバス915とを備える。なお、コンピュータ901は、LANへの接続を提供する図示しないネットワークカードを含んでいてもよい。
コンピュータシステム900に、上記実施の形態による情報処理装置等の機能を実行させるプログラムは、CD−ROM921、またはFD922に記憶されて、CD−ROMドライブ905、またはFDドライブ906に挿入され、ハードディスク914に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ901に送信され、ハードディスク914に記憶されてもよい。プログラムは実行の際にRAM913にロードされる。なお、プログラムは、CD−ROM921やFD922、またはネットワークから直接、ロードされてもよい。
プログラムは、コンピュータ901に、上記実施の形態による情報処理装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。