以下、図面と共に本発明に係る抽出装置の実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
図1に本実施形態に係る推定装置10を示す。推定装置10(抽出装置)は、混雑状況推定対象の場所に対応する文書の内容に基づいて、混雑状況推定対象の場所の混雑状況を推定する装置である。また、推定装置10は、混雑状況推定対象の場所の混雑状況を推定する際に、混雑関連特徴語を用いる。推定装置10は、上記推定の前に、混雑状況推定対象の場所に対応する文書以外の文書から当該混雑関連特徴語を抽出する。混雑状況推定対象の場所とは、例えば、イベントの開催場所である。「イベント」とは、例えばイベント名称、開催場所、及び開催期間によって一意に特定される任意の催しである。イベントの具体例として、例えばスポーツイベント、バンドのライブイベント等の規模の大きいイベント(参加人数が多いと想定されるイベント)もあれば、例えばCDのリリースイベント、ミニライブ等の規模の小さいイベント(参加人数が少ないと想定されるイベント)もある。
上記文書は、例えば、インターネット上で様々なユーザによってマイクロブログに投稿されたテキストデータである。この場合、1つの投稿のテキストデータを、1つの文書とする。この文書には、イベントに関する情報が含まれ得る。推定装置10は、文書からイベント情報を抽出する。ここでイベント情報とは、イベントを示す情報であり、イベント名称、開催場所、及び開催期間を示す情報を含む。
推定装置10は、上記の文書を取得(受信)できるように、文書を出力するテキスト出力装置(例えば、マイクロブログのサービスを提供するサーバ)とインターネット等のネットワークを介して接続されており、情報の送受信を行うことができるようになっている。
推定装置10は、上記文書からイベント情報を抽出し、イベント情報のイベントの混雑状況を判断して、当該判断結果に基づいて文書から混雑関連特徴語を抽出する。また、推定装置10は、イベント(例えば、将来開催されるイベント)に関する文書(混雑状況推定対象の場所に対応する文書)を参照して、抽出した混雑関連特徴語を用いて、当該イベントの混雑状況を推定する。
推定装置10は、情報取得部11と、抽出文書データベース12と、POIデータベース13と、動態人数データベース14と、イベントデータベース15と、抽出部16と、推定対象文書データベース17と、推定部18と、を備える。
情報取得部11は、抽出元となる文書と、当該文書の内容に対応する場所の混雑状況を示す混雑情報とを取得する。また、情報取得部11は、取得した文書の内容に基づいて当該文書の内容に対応する場所を特定し、当該場所の混雑度合いを示す指標値を取得し、当該指標値に基づいて混雑情報を生成することにより、混雑情報を取得する。
情報取得部11は、所定のタイミング(例えば、月に1度)でテキスト出力装置に対して、抽出元となる文書の送信要求をすることで、テキスト出力装置から文書を取得する。
なお、情報取得部11は、各ユーザの文書全てをテキスト出力装置から取得することとしてもよいし、例えば、過去一か月分等の一定期間にユーザによって投稿された文書のみを取得することとしてもよい。情報取得部11は、取得した文書を抽出文書データベース12へ記憶する。抽出文書データベース12は、文書を記憶する手段である。
情報取得部11は、所定のタイミング(例えば、月に1度)で、抽出文書データベース12から文書を取得して、当該文書からイベント情報を抽出する。情報取得部11は、例えば、参考文献1(マイクロブログを用いたイベント情報抽出技術、山田渉,菊池悠,落合桂一,鳥居大祐,稲村浩,太田賢、情報処理学会論文誌 Vol.57 No.1 123-132(Jan.2016))に示されるようなSVM(Support Vector Machine)及びCRF(Conditional Random Fields)等を用いた手法によりイベント情報を抽出する。この手法によれば、上述のような文書からイベント名称、開催期間、及び開催場所を示す文字列をそれぞれ抽出することができる。このように、情報取得部11は、取得した文書の内容に基づいて当該文書の内容に対応する開催場所を特定する。
例えば、「5/2(土) AチームvsBチーム レフト外野指定席ペアチケット 2015プロ野球Aチーム主催試合AチームvsBチームレフト外野指定席2連番のチケットです。日付2015年5月2日(土)14時試合開始C野球場座席レフト外野8http://t.co/xxyyzz」という文書がある場合、イベント名称として「AチームvsBチーム」、開催期間として「2015年5月2日」、開催場所を示す施設名称(POI(Point of interest)名称)として「C野球場」を抽出し、抽出したイベント情報と、抽出元の文書とを対応付ける。
情報取得部11は、抽出文書データベース12に記憶されている文書を参照して、当該文書から上記手法によりイベント情報を抽出した場合、イベント情報と、当該文書とを対応付ける。続いて、情報取得部11は、抽出したイベント情報のPOI名称が示すPOIの混雑状況を判断し、判断した結果に基づいて混雑情報を生成する。抽出したイベント情報のPOI名称が示すPOIの混雑状況を判断する方法として、POIの人気度に基づいて判断する方法(方式1)と、イベント開催による動態人数の増分の大小の比により混雑状況を判断する方法(方式2)とがある。
方式1による混雑状況を判断する方法から説明する。まず、情報取得部11は、POIデータベース13を参照し、抽出したイベント情報のPOI名称に対応するPOIの人気度(指標値)を取得する。POIの人気度とは、当該POIに人が集まる度合いを示す。ここで、POIデータベース13のデータ例を図2に示す。人気度が高い場合、人が多く集まる傾向にあるので、混雑する可能性が高いことを示す。上記POIの人気度は、例えば、ユーザにより入力されたPOIの評価値、POIを示すキーワードで検索された回数を集計した値等であり、公知のPOIの人気度算出方法により算出された値である。
POIデータベース13は、POI毎に、POIの人気度を示す情報を対応付けたデータベースである。図2に示すデータベースは、「POI名称」と、「緯度経度」と、「メッシュコード」と、「人気度」と、を対応付けて記憶している。
「POI名称」は、POIを示す名称である。このPOI名称は、POIデータベース13のレコード間で一意な情報(ID)である。「緯度経度」は、POIの位置を示す情報であり、緯度経度の値である。「メッシュコード」は、POIの緯度経度に対応するメッシュの識別子を示す。メッシュとは、緯度経度に基づいて地域をメッシュ状(矩形状)に区切った範囲をいう。「人気度」は、当該POIの人気度である。
情報取得部11は、POIデータベース13を参照して、抽出した全てのイベント情報それぞれのPOI名称を含むレコードの人気度を取得する。すなわち、情報取得部11は、抽出した全てのイベント情報それぞれのPOI名称を検索キーとして、POIデータベース13を参照して、当該POI名称に対応する人気度を取得する。情報取得部11は、全てのイベント情報のPOI名称に対応する人気度を取得すると、当該全てのイベント情報のPOI名称が示すPOI間の人気度を比較する。情報取得部11は、当該比較をした結果、POI名称に対応する人気度が予め定められている上位一定の割合(例えば、上位10%)に含まれる人気度であるPOI名称が示すPOIのイベントの混雑状況が、混雑であると判断する。情報取得部11は、上記比較をした結果、POI名称に対応する人気度が予め定められている下位一定の割合(例えば、下位10%)に含まれる人気度であるPOI名称が示すPOIのイベントの混雑状況が、非混雑であると判断する。ここで、非混雑とは、空いている(参加する人数が少ない)ことをいう。このように、方式1では、POI名称に対応する人気度によりPOI名称が示すPOIのイベントの混雑状況を判断する。
続いて、方式2による混雑状況を判断する方法を説明する。まず、情報取得部11は、抽出したイベント情報の開催期間を参照し、現状の時刻より前であるか否かを判断する。すなわち、情報取得部11は、イベント情報のイベントが過去のものであるか否か(イベントが終了しているか否か)を判断する。情報取得部11は、イベント情報のイベントが過去のイベントではない場合、抽出したイベント情報を破棄する。続いて、情報取得部11は、POIデータベース13を参照し、抽出したイベント情報のうち、破棄したイベント情報を除く全てのイベント情報それぞれのPOI名称を検索キーとして、POIデータベース13を参照して当該POI名称に対応するメッシュコードを取得する。続いて、情報取得部11は、動態人数データベース14を参照し、当該メッシュコードに対応する各時刻の推計人数を取得する。ここで、動態人数データベース14のデータ例を図3に示す。
動態人数データベース14は、メッシュコード毎に、各時刻の推計人数を記憶するデータベースである。図3に示すデータベースは、「メッシュコード」と、「時刻」と、「推計人数」と、を対応付けて記憶している。
「メッシュコード」は、推計したメッシュを示すメッシュコードである。「時刻」は、推計人数を計測した時刻である。なお、この「時刻」には、推計人数を計測した期間を示す情報(例えば、計測開始時刻と計測終了時刻)が入力されてもよい。「推計人数」は、上記「時刻」にメッシュコードが示すメッシュ内に位置していた推計人数である。この推計人数は、例えば、端末装置の位置情報に基づいて各メッシュに位置する端末装置の数を特定し、当該端末装置の数に基づいて算出された値である。
情報取得部11は、動態人数データベース14を参照し、当該メッシュコードに対応する各時刻の推計人数を取得する。具体的に、情報取得部11は、メッシュコードを検索キーとして、イベント情報それぞれの開催期間及び当該開催期間の前の一定期間(例えば、2週間)の推計人数を取得する。なお、イベント情報のPOI名称のメッシュコードにおける各時刻の推計人数が取得できなかった場合、イベント情報のイベントが混雑しているか否かを判断できないため、当該イベント情報を破棄する。
情報取得部11は、メッシュコードに対応する各時刻の推計人数を取得した後、開催期間に対応する時刻の推計人数の平均人数(イベント開催中平均人数)を算出する。続いて、情報取得部11は、開催期間の前の過去一定期間の平均人数を算出し、この人数を平常時人数とする。情報取得部11は、イベント開催中平均人数から平常時人数を減算した減算値、又はイベント開催中平均人数を平常時人数で除算した除算値を算出する。当該減算値又は除算値(指標値)が、予め定めている混雑閾値以上の場合、情報取得部11は、対象のイベント情報のイベントが混雑していると判断する。また、情報取得部11は、上記減算値又は除算値が、予め定めている非混雑閾値未満である場合、対象のイベント情報のイベントが非混雑であると判断する。なお、混雑閾値は、非混雑閾値以上である。上記減算値又は除算値が、混雑閾値未満であり、且つ非混雑閾値以上である場合、情報取得部11は、対象のイベント情報のイベントが混雑しておらず、且つ非混雑でもないと判断する。このように、方式2では、イベントの開催期間中の推計人数と、通常時の推計人数とを比較した結果に基づいて、イベント情報のイベントの混雑状況を判断する。
情報取得部11は、方式1又は方式2により各イベント情報のイベントの混雑状況を判断すると、当該判断に基づいて、混雑情報として、混雑であるか否かを示すフラグ情報(混雑フラグ)と、非混雑であるか否かを示すフラグ情報(非混雑フラグ)とを生成する。情報取得部11は、混雑状況を判断した結果、混雑したと判断した場合、混雑フラグを「True」として、非混雑フラグを「False」とする。情報取得部11は、イベント情報のイベントが非混雑であると判断した場合、混雑フラグを「False」として、非混雑フラグを「True」とする。また、情報取得部11は、混雑状況を判断した結果、イベント情報のイベントが、混雑ではなく、非混雑でもないと判断した場合、混雑フラグ及び非混雑フラグを「False」とする。すなわち、混雑フラグ及び非混雑フラグが「False」となるイベントもあり得る。このように、情報取得部11は、イベント情報のPOI名称の混雑状況を示す混雑フラグ及び非混雑フラグを生成することにより、混雑情報を取得する。なお、情報取得部11は、混雑フラグ及び非混雑フラグの何れか一方を生成するようにしてもよい。情報取得部11は、各イベント情報のイベントの混雑フラグ及び非混雑フラグを生成した後、イベント情報と、文書と、混雑フラグと、非混雑フラグとを対応付けた情報をイベントデータとして、当該イベントデータをイベントデータベース15に記憶する。ここで、イベントデータベース15のデータ例を図4に示す。
イベントデータベース15は、「イベント名称」と、「POI名称」と、「開催期間」と、「投稿文」と、「混雑フラグ」と、「非混雑フラグ」とを対応付けて記憶している。
「イベント名称」は、イベント情報のイベント名称である。「POI名称」は、イベント情報のPOI名称である。「開催期間」は、イベント情報の開催期間である。「投稿文」は、イベント情報に対応する文書である。「混雑フラグ」は、情報取得部11が生成した混雑フラグである。「非混雑フラグ」は、情報取得部11が生成した非混雑フラグである。
情報取得部11は、文書からイベント情報を抽出し、抽出した全てのイベント情報のイベントデータをイベントデータベース15に記憶した後、イベントデータを記憶した旨を抽出部16へ通知する。抽出部16は、これに応じて混雑関連特徴語を抽出する。
抽出部16は、混雑フラグ又は非混雑フラグが予め設定された条件を満たす混雑状況の場所に対応する文書における語の出現度合いに基づいて、抽出元となる文書から混雑関連特徴語を抽出する部分である。また、抽出部16は、混雑フラグ又は非混雑フラグが予め設定された第1の条件を満たす混雑状況の場所に対応する文書における語の出現度合いと、当該第1の条件とは異なる第2の条件を満たす混雑状況の場所に対応する文書における語の出現度合いとに基づいて混雑関連特徴語を抽出する。
抽出部16は、イベントデータがイベントデータベース15に記憶された旨の通知を情報取得部11から受信すると、混雑関連特徴語の抽出処理を開始する。具体的に、抽出部16は、混雑時の混雑関連特徴語を抽出する場合、混雑フラグが「True」である(第1の条件)イベントの文書を公知技術により形態素解析して、混雑関連特徴語の候補として、形態素を抽出する。抽出部16は、抽出した形態素毎に、当該形態素が混雑関連特徴語となるか否かを判断するためのスコアを算出する。抽出部16は、混雑フラグが「True」であるイベントデータの文書の集合(混雑時イベント集合)における、抽出した形態素の出現頻度を算出する。また、抽出部16は、全てのイベントデータの文書の集合(混雑フラグが「True」又は混雑フラグが「False」である(第2の条件)イベントデータの文書の集合)における、抽出した形態素の出現頻度を算出する。抽出部16は、上記混雑時イベント集合の文書数を算出し、算出した文書数と、混雑時イベント集合における、抽出した形態素の出現頻度と、全てのイベントデータの文書の集合における抽出した形態素の出現頻度とに基づいた、スコアを算出する。例えば、以下の式(1)により、混雑時における混雑関連特徴語の候補となる形態素のスコアを算出する(ダイス係数を用いた場合)。Scorewordは、混雑時の混雑関連特徴語の候補となる形態素のスコアである。df(word in setcongestion)は、混雑時イベント集合における形態素の出現頻度である。num(setcongestion)は、上記の混雑時イベント集合の文書数である。df(word in setevent)は、全てのイベントデータの文書の集合における形態素の出現頻度である。
Scoreword=2×df(word in setcongestion)/{num(setcongestion)+df(word in setevent)} ・・・(1)
上記の式は、混雑フラグが「True」である文書の集合だけでなく、全てのイベントデータの文書の集合における形態素の出現頻度(混雑フラグが「True」でないイベントデータの文書も含む集合における形態素の出現頻度)にも基づいている。すなわち、イベントデータの混雑フラグが「True」である文書における形態素の出現度合いと、全てのイベントデータの文書における形態素の出現度合いとに基づいてスコアを算出し、当該スコアに基づいて混雑関連特徴語を抽出する。全てのイベントデータの文書の集合における形態素の出現頻度が高いと、混雑時イベント集合における形態素の出現頻度が高くてもスコアが高くならない。よって、形態素が、混雑時イベント集合に特有の語であれば、スコアが高くなる。なお、上記全てのイベントデータの文書の集合の代わりに、混雑フラグが「True」であるイベントデータの文書の集合と、非混雑フラグが「True」であるイベントデータの文書の集合とを合わせた集合としてもよい。
なお、非混雑時の混雑関連特徴語を抽出する場合、抽出部16は、非混雑フラグが「True」であるイベントの文書を形態素解析して、非混雑時における混雑関連特徴語の候補として形態素を抽出し、形態素毎に以下の式(2)に示すスコアを算出する。Scorewordは、非混雑時の混雑関連特徴語の候補となる形態素のスコアである。df(word in setvacant)は、非混雑時イベント集合(非混雑フラグが「True」であるイベントデータの文書の集合)における形態素の出現頻度である。num(setvacant)は、非混雑時イベント集合の文書数である。df(word in setevent)は、全てのイベントデータの文書の集合における形態素の出現頻度である。
Scoreword=2×df(word in setvacant)/{num(setvacant)+df(word in setevent)} ・・・(2)
抽出部16は、スコアを算出すると、算出したスコアが予め定められているスコア閾値(例えば、0.3)以上である場合、当該スコアの混雑関連特徴語の候補の形態素を混雑関連特徴語として記憶する。このように、抽出部16は、混雑関連特徴語を抽出する。
抽出部16は、例えば、図4に示したイベントデータベース15のレコードR1の文書に含まれる「外野指定席」と「チケット」を混雑時の混雑関連特徴語(イベントの規模が大きいことを示唆する語)として抽出する。また、抽出部16は、イベントデータベース15のレコードR2の文書に含まれる「ミニライブ」、「サイン会」、「CD」を非混雑時の混雑関連特徴語(イベントの規模が小さいことを示唆する語)として抽出する。また、抽出部16は、イベントデータベース15のレコードR3の文書に含まれる「チケ」を混雑時の混雑関連特徴語として抽出する。また、抽出部16は、イベントデータベース15のレコードR4の文書に含まれる「生中継」を混雑時の混雑関連特徴語として抽出する。また、抽出部16は、イベントデータベース15のレコードR5の文書に含まれる「リリース」、「タワーレコード」を非混雑時の混雑関連特徴語として抽出する。抽出部16は、混雑関連特徴語の抽出を完了すると、推定部18へ混雑関連特徴語の抽出が完了した旨を通知する。
推定部18は、混雑状況推定対象の場所に対応する文書を取得し、抽出部16により抽出された混雑関連特徴語が、当該文書に含まれているか否かに基づいて上記場所の混雑状況を推定する。
まず、推定部18は、過去のイベントで、混雑有無のフラグが付与されたデータ(イベントデータ)を用いて機械学習により判別器(モデル)を作成する。具体的に、推定部18は、抽出部16から混雑関連特徴語の抽出が完了した旨の通知を受け付けると、イベントデータベース15を参照し、各イベントデータを取得する。また、推定部18は、抽出部16から混雑時の混雑関連特徴語及び非混雑時の混雑関連特徴語を取得する。続いて、推定部18は、抽出部16によって抽出された混雑時の混雑関連特徴語に対応する要素のそれぞれが、当該混雑関連特徴語がイベントデータの文書に含まれるか否かを示す(例えば、混雑時の混雑関連特徴語のそれぞれの有無をフラグ付けした)混雑判断用の特徴ベクトルを生成する。この特徴ベクトルの次元数は、混雑関連特徴語の数である。また、推定部18は、抽出部16によって抽出された非混雑時の混雑関連特徴語に対応する要素のそれぞれが、当該混雑関連特徴語がイベントデータの文書に含まれるか否かを示す非混雑判断用の特徴ベクトルを生成する。続いて、推定部18は、上記混雑判断用の特徴ベクトルを説明変数とし、イベントデータの混雑フラグを目的変数とした混雑判断用の学習データを生成する。また、推定部18は、上記非混雑判断用の特徴ベクトルを説明変数とし、イベントデータの非混雑フラグを目的変数とした非混雑判断用の学習データを生成する。そして、推定部18は、混雑判断用の学習データを用いて機械学習を実行し、混雑時の混雑関連特徴語のそれぞれを文書に含むか否かを示す特徴ベクトルを入力として、混雑フラグを出力するモデルを生成する。また、推定部18は、非混雑判断用の学習データを用いて機械学習を実行し、非混雑時の混雑関連特徴語のそれぞれを文書を含むか否かを示す特徴ベクトルを入力として、非混雑フラグを出力するモデルを生成する。
このような機械学習の手法としては、例えば、サポートベクターマシン(SVM)、ニューラルネットワーク、及びナイーブベイズに代表されるブースティング等の教師あり機械学習を用いることができる。
推定部18は、当該モデルを用いて混雑推定対象の文書が示すイベントの混雑状態を示す情報を生成する。推定部18は、混雑関連特徴語が抽出された後(抽出部16から混雑関連特徴語が抽出された旨の情報を取得した後)に、推定対象文書として文書をテキスト出力装置から取得した場合、当該文書から上述と同様の方法によりイベント情報を抽出して、当該イベント情報と文書とを対応付けて推定対象文書データベース17へ記憶する。
推定部18は、当該文書が上記混雑時の混雑関連特徴語又は非混雑時の混雑関連特徴語のそれぞれを含むか否かを示す特徴ベクトルを生成し、当該特徴ベクトルを入力値として、上記モデルを用いて、混雑フラグ又は非混雑フラグを出力する。推定部18は、出力した混雑フラグ又は非混雑フラグを推定対象文書データベース17に記憶されている上記文書に対応付けて記憶する。推定部18は、他の装置からイベントの混雑状況の確認要求があった場合、推定対象文書データベース17を参照して、当該イベントに対応する混雑フラグ又は非混雑フラグの情報に基づいて混雑状況を出力する。
なお、推定部18は、上記のように、テキスト出力装置から取得した文書に示されるイベントの混雑状況を示す混雑フラグ又は非混雑フラグを記憶するだけでなく、当該混雑フラグ又は非混雑フラグに基づいて、イベントの混雑状況を示す文章の情報を生成し、生成した文章の情報をユーザへ提供するようにしてもよい。例えば、推定部18は、当該文章の情報をテキスト出力装置へ送信し、テキスト出力装置が、ユーザへ当該文章の情報を送信するようにしてもよい。
このように、推定部18は、テキスト出力装置から取得した文書に示されるイベントについて、混雑フラグ又は非混雑フラグを出力することにより、当該イベントの混雑状況を推定した結果を出力する。
続いて、図5に本実施形態に係る推定装置10のハードウェア構成を示す。推定装置10の機能ブロック(構成部)は、ハードウェア及び/又はソフトウェアの任意の組み合わせによって実現される。また、各機能ブロックの実現手段は特に限定されない。すなわち、各機能ブロックは、物理的及び/又は論理的に結合した1つの装置により実現されてもよいし、物理的及び/又は論理的に分離した2つ以上の装置を直接的及び/又は間接的に(例えば、有線及び/又は無線)で接続し、これら複数の装置により実現されてもよい。
例えば、本発明の一実施の形態における推定装置10などは、混雑関連特徴語を抽出するコンピュータとして機能してもよい。上述の推定装置10は、物理的には、プロセッサ101、メモリ102、ストレージ103、及び通信モジュール104などを含むコンピュータ装置として構成されてもよい。
なお、以下の説明では、「装置」という文言は、回路、デバイス、ユニットなどに読み替えることができる。推定装置10のハードウェア構成は、図に示した各装置を1つ又は複数含むように構成されてもよいし、一部の装置を含まずに構成されてもよい。
推定装置10における各機能は、プロセッサ101、メモリ102などのハードウェア上に所定のソフトウェア(プログラム)を読み込ませることで、プロセッサ101が演算を行い、通信モジュール104による通信や、メモリ102及びストレージ103におけるデータの読み出し及び/又は書き込みを制御することで実現される。
プロセッサ101は、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。プロセッサ101は、周辺装置とのインターフェース、制御装置、演算装置、レジスタなどを含む中央処理装置(CPU:Central Processing Unit)で構成されてもよい。例えば、上述の抽出部16及び推定部18などは、プロセッサ101で実現されてもよい。
また、プロセッサ101は、プログラム(プログラムコード)、ソフトウェアモジュールやデータを、ストレージ103及び/又は通信モジュール104からメモリ102に読み出し、これらに従って各種の処理を実行する。プログラムとしては、上述の実施の形態で説明した動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。例えば、推定装置10は、メモリ102に格納され、プロセッサ101で動作する制御プログラムによって実現されてもよく、他の機能ブロックについても同様に実現されてもよい。上述の各種処理は、1つのプロセッサ101で実行される旨を説明してきたが、2以上のプロセッサ101により同時又は逐次に実行されてもよい。プロセッサ101は、1以上のチップで実装されてもよい。なお、プログラムは、電気通信回線を介してネットワークから送信されてもよい。
メモリ102は、コンピュータ読み取り可能な記録媒体であり、例えば、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、RAM(Random Access Memory)などの少なくとも1つで構成されてもよい。メモリ202は、レジスタ、キャッシュ、メインメモリ(主記憶装置)などと呼ばれてもよい。メモリ202は、本発明の一実施の形態に係る方法を実施するために実行可能なプログラム(プログラムコード)、ソフトウェアモジュールなどを保存することができる。
ストレージ103は、コンピュータ読み取り可能な記録媒体であり、例えば、CD−ROM(Compact Disc ROM)などの光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、デジタル多用途ディスク、Blu−ray(登録商標)ディスク)、スマートカード、フラッシュメモリ(例えば、カード、スティック、キードライブ)、フロッピー(登録商標)ディスク、磁気ストリップなどの少なくとも1つで構成されてもよい。ストレージ103は、補助記憶装置と呼ばれてもよい。上述の記憶媒体は、例えば、メモリ102及び/又はストレージ103を含むデータベース、サーバその他の適切な媒体であってもよい。
通信モジュール104は、有線及び/又は無線ネットワークを介してコンピュータ間の通信を行うためのハードウェア(送受信デバイス)であり、例えばネットワークデバイス、ネットワークコントローラ、ネットワークカードなどともいう。
また、プロセッサ101やメモリ102などの各装置は、情報を通信するためのバス105で接続される。バス105は、単一のバスで構成されてもよいし、装置間で異なるバスで構成されてもよい。
また、推定装置10は、マイクロプロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)などのハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部又は全てが実現されてもよい。例えば、プロセッサ101は、これらのハードウェアの少なくとも1つで実装されてもよい。以上が、本実施形態に係る推定装置10の構成である。
続いて、図6のフローチャートを用いて、本実施形態に係る推定装置10の動作方法である抽出方法を説明する。本処理では、まず、情報取得部11が、抽出元の文書である文書を取得すると、当該文書を抽出文書データベース12へ登録する(ステップS1)。情報取得部11は、所定のタイミングで、抽出文書データベース12に記憶されている文書からイベントの名称、POI名称、及び開催期間を抽出する。また、情報取得部11は、抽出したPOI名称に対応するPOIデータベース13のPOI名称の人気度に基づいて、イベント名称、POI名称、及び開催期間に混雑フラグを紐付けることによって、イベントデータを生成し、生成したイベントデータをイベントデータベース15へ登録する(ステップS2)。
抽出部16は、イベントデータベース15に記憶されているイベントデータの内、混雑フラグが「True」であるイベントデータの文書に対して形態素解析をして、形態素毎にスコアを算出して、当該スコアが所定閾値以上である場合、当該形態素を混雑関連特徴語として抽出する。また、抽出部16は、イベントデータベース15に記憶されているイベントデータの内、非混雑フラグが「True」である文書に対して形態素解析をして、形態素毎にスコアを算出して、当該スコアが所定閾値以上である場合、当該形態素を混雑関連特徴語として抽出する。このように、抽出部16は、混雑関連特徴語を抽出する(ステップS3)。混雑関連特徴語を抽出した後に、推定部18が、推定対象文書となる文書を取得し、推定対象文書データベース17へ記憶する(ステップS4)。推定部18は、イベントデータベース15に記憶されている情報と、抽出部16により抽出された混雑関連特徴語とに基づいてモデルを生成する。推定部18は、推定対象文書データベース17に記憶されている文書からイベント情報を抽出し、当該モデルを用いて、文書から抽出されるイベントの混雑状況を推定する(ステップS5)。
上述の実施形態では、1語の形態素を混雑関連特徴語とする場合について述べたが、複数の語からなるフレーズを混雑関連特徴語とするようにしてもよい。例えば、図7に示すように、「××に来たら人が多すぎて大変。」という文を含む文書がある場合、抽出部16は、形態素解析して、「××」、「に」、「来」、「たら」、「人」、「が」、「多」、「すぎ」、「て」、「大変。」と形態素に分ける。続いて、抽出部16は、公知の方法により、助詞及び句読点を除去して、上記の形態素の内、対象とする形態素を「××」、「来」、「たら」、「人」、「多」、「すぎ」、「大変」とする。続いて、抽出部16は、公知の方法により、接尾辞(たら、すぎ)を語幹(来、多)と結合し、「××」、「来たら」、「人」、「多すぎ」、「大変」に分ける。続いて、抽出部16は、上記の形態素の内、混雑関連特徴語の候補として、2語の形態素の組を生成する(すなわち、上記各形態素を1文字と仮定して2−gramを抽出)。例えば、抽出部16は、(××、来たら)、(来たら、人)、(人、多すぎ)、(多すぎ、大変)という混雑関連特徴語の候補となる形態素の組を生成する。生成した形態素の組が混雑関連特徴語の抽出対象となるか否かを判断する方法は、上述のスコアを算出して、当該スコアに基づいて判断する方法と同じである。この結果、抽出部16は、(人、多すぎ)という組のスコアが閾値を上回る場合、当該(人、多すぎ)という組を混雑関連特徴語として抽出する。このように、抽出部16は、混雑関連特徴語として、複数の語の組み合わせを抽出してもよい。この場合、「人が多い」、「すごい人」、「黒山の人」、「身動きできない」、「長い行列」、「混雑がやばい」を示す複数の語の組み合わせを抽出することができる。すなわち、語ではなく、「特定の語と近傍に出現する語の組み合わせ」により混雑関連特徴語群を定義、または抽出してもよい。例えば、「人」と「すごい、多い、黒山」の組み合わせにより、「すごい人」「人が多い」「黒山の人」などを抽出する。なお、N−gram(上記の例では2−gram)を形成する形態素の組の一部を予め記憶しておき、記憶している語と、文書を形態素解析した結果得られる形態素との組を生成するようにしてもよい。また、N−gram(上記の例では2−gram)を形成する形態素の組の全部又は一部を予め記憶しておき、当該形態素の組についてのスコアを上述と同様の方法により算出し、算出したスコアに基づいて混雑関連特徴語を抽出するようにしてもよい。
上述の実施形態では、イベントの場所の混雑を判断する場合について述べたが、文書に含まれる場所(例えば、観光スポット)を示す情報(場所を示す名称、位置)を抽出して、抽出した場所の混雑の有無を判断するようにしてもよい。この場合に、方式2により混雑判断する場合、文書が投稿された時刻が、上述のイベント開催期間を示す時刻に対応する。
上述の実施形態では、場所を示す情報(イベントの開催場所の情報)を含む文書を取得する場合について述べたが、場所に関連することが予め定められている文書を取得するようにしてもよい。
上述の実施形態では、方式2として、イベント開催による動態人数の増分の大小により混雑していたか否かを判断する場合について述べたが、各イベント会場のチェックイン数の大小により混雑していたか否かを判断するようにしてもよい。
上述したように、推定装置10の情報取得部11は、抽出元となる文書と、文書の内容に対応するイベント場所の混雑フラグ、非混雑フラグとを取得する。抽出部16は、混雑フラグが予め設定された条件を満たす文書における語の出現度合いに基づいて、文書から混雑関連特徴語として抽出する。
この場合、推定装置10は、所定条件を満たす混雑状況の場所に対応する文書に特有の混雑関連特徴語を適切に抽出することができる。すなわち、推定装置10は、イベントの特徴語のうち、イベントの混雑を示唆する語、または混雑しないことを示唆する語を抽出することができる。この結果、推定装置10は、混雑状況推定対象を示す情報を含む文書(例えば、将来実施予定のイベントの場所に関する文書等の、イベントの説明文)に、抽出した語を含むか否かを判断した結果に基づいて、当該文書に対応する場所の混雑状況を推定することができる。すなわち、将来実施予定のイベントの場所に関する文書に、上記抽出した語を含むか否かを判断することにより、未来の混雑状態を推定することができる。また、現在実施中のイベント又は過去に実施されたイベントの場所に関する文書に、上記抽出した語を含むか否かを判断することにより、現状又は過去の混雑状態を推定することができる。このように、推定装置10は、混雑状況推定対象を示す情報を含む文書の内容に基づいて、混雑状況推定対象の場所の混雑状況を推定するための混雑関連特徴語を適切に抽出することができる。
また、抽出部16は、混雑フラグが予め設定された条件(混雑フラグがTrue)を満たす文書における語の出現度合いと、混雑フラグが予め設定された別の条件(混雑フラグがFalse)を満たす文書における語の出現度合いとに基づいて、混雑関連特徴語を抽出する。この場合、推定装置10は、混雑状況が互いに異なる文書の集合における語の出現度合いの場所に対応する文書に基づいて混雑関連特徴語を抽出するので、一方の条件を満たす混雑状況の場所に対応する文書のみに頻出する語を特定することができる。この結果、当該条件を満たす混雑状況に特有の混雑関連特徴語を適切に抽出することができる。なお、抽出部16は、混雑フラグが予め設定された条件(混雑フラグがTrue)を満たす文書における語の出現度合いのみに基づいて、混雑関連特徴語を抽出するようにしてもよい。抽出部16は、当該出現度合いが予め定められた閾値以上である場合に、当該混雑関連特徴語の候補を混雑関連特徴語として抽出する。
情報取得部11は、取得した文書(抽出文書データベース12に記憶されている文書)の内容に基づいて、文書の内容に対応する場所(イベント情報のPOI名称)を特定し、当該場所の混雑度合いを示す指標値(POIの人気度、動態人数の比率)を取得し、当該指標値に基づいて、混雑フラグを生成することにより混雑フラグを取得する。
この場合、推定装置10は、他の装置から混雑フラグを取得する必要がなく、簡易な構成で文書の内容に対応する場所の混雑状況を推定するための語を抽出できる。なお、情報取得部11は、文書の内容に対応する場所の混雑状況を判断せずに、他の装置から混雑状況の判断に基づいた混雑フラグ又は非混雑フラグを含むイベントデータを取得するようにしてもよい。
抽出部16は、混雑関連特徴語として、複数の語の組み合わせを抽出する。この場合、一語では混雑状況を推定できないが、複数語を組み合わせることにより混雑状況を推定できる語を抽出することができる。
推定部18は、混雑状況推定対象を示す文書を取得し、抽出部16により抽出された混雑関連特徴語が、当該文書が含まれているか否かに基づいて、当該文書に対応する場所の混雑状況を推定する。
この場合、混雑関連特徴語を含むか否かを判断した結果に基づいて、当該文書に対応する場所の混雑状況を適切に推定することができる。また、推定装置10は、混雑関連特徴語を用いて推定するので、動態人数の統計処理がリアルタイムでない場合でも、混雑状況の推定結果を提示することができる。また、推定装置10は、動態人数に基づいた数値ではなく、上記の混雑フラグに基づいて、イベントの混雑状況を示す文章で表示すれば、分かりやすい情報を提示することができる。なお、推定装置10では、抽出部16により抽出された混雑関連特徴語を用いて混雑状況推定対象を示す文書に対応する場所の混雑状況を推定したが、当該推定処理を他の装置で行うようにしてもよい。
イベントが開催されるPOIの人気度や規模に基づいて、混雑の有無を判定する方法では、同一POIで参加人数の規模が異なるイベントが同時に行われることもあるので、適切に混雑状況を推定することができない。しかし、上記のように混雑関連特徴語が、文書に含まれているか否かに基づいて混雑状況を推定すれば、混雑状況推定対象の場所の人気度を用いずに混雑状況に特有の特徴語の有無に基づいて推定するので、適切に混雑状況を推定することができる。
また、イベントが開催されるPOIを含むエリアの動態人数の情報を用いて、混雑を推定する場合、当該イベントの場所の混雑状況を推定することができるが、他のイベントの混雑状況を推定することができない。しかし、上記のように混雑関連特徴語が、文書に含まれているか否かに基づいて混雑状況を推定すれば、混雑状況推定対象の場所の動態人数を用いずに混雑状況に特有の特徴語の有無に基づいて推定するので、適切に混雑状況を推定することができる。
ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。
また、ソフトウェア、命令などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア及びデジタル加入者回線(DSL)などの有線技術及び/又は赤外線、無線及びマイクロ波などの無線技術を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び/又は無線技術は、伝送媒体の定義内に含まれる。
本明細書で説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、又はこれらの任意の組み合わせによって表されてもよい。
なお、本明細書で説明した用語及び/又は本明細書の理解に必要な用語については、同一の又は類似する意味を有する用語と置き換えてもよい。
本明細書で使用する「システム」および「ネットワーク」という用語は、互換的に使用される。
また、本明細書で説明した情報、パラメータなどは、絶対値で表されてもよいし、所定の値からの相対値で表されてもよいし、対応する別の情報で表されてもよい。
また、本明細書で使用する「判断(determining)」という用語は、多種多様な動作を包含する。「判断」は、例えば、判定(judging)、計算(calculating)、算出(computing)、処理(processing)、導出(deriving)、調査(investigating)、探索(looking up)(例えば、テーブル、データベースまたは別のデータ構造での探索)、確認(ascertaining)した事を「判断」したとみなす事などを含み得る。また、「判断」は、受信(receiving)(例えば、情報を受信すること)、送信(transmitting)(例えば、情報を送信すること)、入力(input)、出力(output)、アクセス(accessing)(例えば、メモリ中のデータにアクセスすること)した事を「判断」したとみなす事などを含み得る。また、「判断」は、解決(resolving)、選択(selecting)、選定(choosing)、確立(establishing)、比較(comparing)などした事を「判断」したとみなす事を含み得る。つまり、「判断」は、何らかの動作を「判断」したとみなす事を含み得る。
本明細書で使用する「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。
また、上記の各装置の構成における「手段」を、「部」、「回路」、「デバイス」等に置き換えてもよい。
本明細書で「第1の」、「第2の」などの呼称を使用した場合においては、その要素へのいかなる参照も、それらの要素の量または順序を全般的に限定するものではない。これらの呼称は、2つ以上の要素間を区別する便利な方法として本明細書で使用され得る。したがって、第1および第2の要素への参照は、2つの要素のみがそこで採用され得ること、または何らかの形で第1の要素が第2の要素に先行しなければならないことを意味しない。
「含む(including)」、「含んでいる(comprising)」、およびそれらの変形が、本明細書あるいは特許請求の範囲で使用されている限り、これら用語は、用語「備える」と同様に、包括的であることが意図される。さらに、本明細書あるいは特許請求の範囲において使用されている用語「または(or)」は、排他的論理和ではないことが意図される。
本明細書において、文脈または技術的に明らかに1つのみしか存在しない装置である場合以外は、複数の装置をも含むものとする。
また、本明細書で説明した各態様/実施形態は、LTE(Long Term Evolution)、LTE−A(LTE-Advanced)、SUPER 3G、IMT−Advanced、4G、5G、FRA(Future Radio Access)、W−CDMA(登録商標)、GSM(登録商標)、CDMA2000、UMB(Ultra Mobile Broadband)、IEEE 802.11(Wi−Fi)、IEEE 802.16(WiMAX)、IEEE 802.20、UWB(Ultra-WideBand)、Bluetooth(登録商標)、その他の適切なシステムを利用するシステム及び/又はこれらに基づいて拡張された次世代システムに適用されてもよい。
また、本明細書で説明した各態様/実施形態の処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本明細書で説明した方法については、例示的な順序で様々なステップの要素を提示しており、提示した特定の順序に限定されない。
入出力された情報等は特定の場所(例えば、メモリ)に保存されてもよいし、管理テーブルで管理してもよい。入出力される情報等は、上書き、更新、または追記され得る。出力された情報等は削除されてもよい。入力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
本明細書で説明した各態様/実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知(例えば、「Xであること」の通知)は、明示的に行うものに限られず、暗黙的(例えば、当該所定の情報の通知を行わない)ことによって行われてもよい。
本開示の全体において、明らかに単数であることを示しているものではない限り、単数および複数の両方のものを含むものとする。
以上、本発明について詳細に説明したが、当業者にとっては、本発明が本明細書中に説明した実施形態に限定されるものではないということは明らかである。本発明は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。したがって、本明細書の記載は、例示説明を目的とするものであり、本発明に対して何ら制限的な意味を有するものではない。