(58)【調査した分野】(Int.Cl.,DB名)
前記選択部は、前記検索用ワードの種類に応じた優先度に基づいて、優先度の高い種類の検索用ワードに合致する地点情報を優先して、前記コンテンツに一部または全部を付加する一以上の地点情報として選択する、
請求項1から7のうちいずれか1項記載の情報処理装置。
前記コンテンツ提供部は、前記提示部により提示された地点情報に対して前記利用者により確認操作が行われた場合に、前記地点情報を付加したコンテンツの提供を開始する、
請求項9記載のコンテンツ提供システム。
【発明を実施するための形態】
【0009】
以下、図面を参照し、本発明の情報処理装置、コンテンツ提供装置、コンテンツ提供システム、情報処理方法、およびプログラムの実施形態について説明する。
【0010】
[概要]
情報処理装置は、一以上のプロセッサにより実現される。情報処理装置は、利用者により投稿されるコンテンツの作成を支援する装置である。コンテンツとは、例えば、ブログ、ミニブログ、交流サイトなどのソーシャル・ネットワーキング・サービス(SNS)における一つの投稿コンテンツである。また、コンテンツとは、メッセージサービスにおける一つのメッセージであってもよいし、画像や映像などであってもよい。以下の説明では、コンテンツが、ブログにおいて投稿される一つの記事であるものとして説明する。この場合、コンテンツ提供装置は、ブログサービスを利用者に提供する装置である。また、コンテンツは、ブラウザによって再生されるものであってもよいし、アプリケーションプログラムによって再生されるものであってもよい。
【0011】
情報処理装置は、例えば、利用者が投稿しようとする記事の内容を取得し、特に記事の本文が指し示すと推定される一以上の地点を特定し、特定した地点の地点情報をコンテンツ提供装置に提供する。コンテンツ提供装置は、情報処理装置から取得した地点情報を利用者の端末装置に送信する。地点情報とは、例えば、地図上の特定の地点に関する情報であり、POI(Point Of Interest)と称されることがある。POIは、ナビゲーションシステムなどにおける「目標物」を意味する場合がある。より具体的に、地点情報は、地図における店舗や施設などを指すものであってよい。利用者が地点情報を記事に付加する(埋め込む)ことに合意した場合、地点情報が埋め込まれた記事が作成され、ブログの一部として提供される。このようにして、利用者が地点情報へのリンクをわざわざ自分で探して貼り付けるといった操作をしなくても、地点情報へのリンクが貼られたブログが作成されるという便利な機能が提供される。「地点」とは、あらゆる種類の地点を指すものであってもよいし、飲食店や宿泊施設などの「店舗」に限定されてもよい。
【0012】
[全体構成]
図1は、コンテンツ提供装置100と情報処理装置200とを含むコンテンツ提供システム1の構成および使用環境を示す図である。コンテンツ提供装置100は、利用者によって使用される一以上の端末装置300にブログサービスを提供する。コンテンツ提供装置100、情報処理装置200、および端末装置300は、ネットワークNWに接続するためのインターフェースを備える。ネットワークNWは、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)、セルラー網、Wi−Fi網、無線基地局、プロバイダ端末などを含む。インターフェースは、NIC(Network Interface Card)や無線通信モジュールなどである。
【0013】
端末装置300は、スマートフォンなどの携帯電話、タブレット端末、パーソナルコンピュータなどである。端末装置300では、ブラウザやアプリケーションプログラムなどのUA(User Agent)310が起動し、利用者によるブログへの投稿およびブログの閲覧を可能とする。
【0014】
[コンテンツ提供装置]
コンテンツ提供装置100は、例えば、受付部110と、コンテンツ確定処理部(提示部)120と、コンテンツ提供部130とを備える。これらの構成要素は、例えば、CPU(Central Processing Unit)などのハードウェアプロセッサがプログラム(ソフトウェア)を実行することにより実現される。また、これらの構成要素のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、GPU(Graphics Processing Unit)などのハードウェア(回路部;circuitryを含む)によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
【0015】
コンテンツ提供装置100は、HDD(Hard Disk Drive)やフラッシュメモリ、RAM(Random Access Memory)などの記憶装置に、コンテンツ150を格納している。なお、この記憶装置は、コンテンツ提供装置100がネットワークNWを介してアクセス可能なNAS(Network Attached Storage)などの外部記憶装置であってもよい。
【0016】
受付部110は、端末装置300からのHTTPリクエストなどの各種リクエスト、端末装置300の利用者によって投稿される記事の内容(コンテンツの元情報)などを受け付ける。この記事の内容のうち、本文は、テキストによって記述されており、原則的にハイパーリンクや位置情報などの電子情報が埋め込まれていない情報である。なお、電子情報が埋め込まれた記事が混入していても構わない。コンテンツ提供装置100は、端末装置300の利用者によって投稿されようとしている記事の本文を情報処理装置200に送信する。
【0017】
コンテンツ確定処理部120は、端末装置300の利用者によって投稿されようとしている記事の本文に、情報処理装置200から取得した地点情報を追加して、端末装置300に提供するブログの記事の内容を確定する。
【0018】
コンテンツ提供部130は、受付部110によって受け付けられた端末装置300からのリクエストに応じて、端末装置300にブログ(より正確にはブログを再生するためのウェブページ)を提供する。
【0019】
[情報処理装置]
情報処理装置200は、例えば、取得部210と、タグ抽出部220と、電話番号抽出部222と、住所抽出部224と、地域情報抽出部226と、選択部230とを備える。これらの構成要素は、例えば、CPUなどのハードウェアプロセッサがプログラム(ソフトウェア)を実行することにより実現される。また、これらの構成要素のうち一部または全部は、LSIやASIC、FPGA、GPUなどのハードウェア(回路部;circuitryを含む)によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
【0020】
情報処理装置200は、HDDやフラッシュメモリ、RAMなどの記憶装置に、投稿情報250、地点情報データベース260などの情報を格納している。なお、この記憶装置は、情報処理装置200がネットワークNWを介してアクセス可能なNASなどの外部記憶装置であってもよい。また、地点情報データベース260は、地点情報を提供する他のサーバ装置によって保持されてもよい。この場合、他のサーバ装置は、情報処理装置200からの検索要求に応じて地点情報データベース260を検索した結果を情報処理装置200に返す。
【0021】
取得部210は、利用者によって投稿されようとしている記事の本文をコンテンツ提供装置100から取得し、投稿情報250として記憶装置に記憶させる。
【0022】
タグ抽出部220、電話番号抽出部222、住所抽出部224、および地域情報抽出部226は、それぞれの基準に基づいて、投稿情報250に含まれる一つの記事の本文(以下、対象テキストと称する)から複数種類の検索用ワードをそれぞれ抽出する。
【0023】
タグ抽出部220は、対象テキストに対してテキスト解析を行うことによって、対象テキストから検索用ワードの一つである「タグ」を抽出する。タグとは、対象テキストを形態素解析した結果として得られるワード(単語)のそれぞれに対し、特有の意味を有するものに対して高いスコアを付与してランク付けし、上位ランクに絞り込むことで、一まとまりの意味情報とみなされるワードを抽出したものである。例えば、飲食店名、宿泊施設名、ランドマーク名、鉄道路線名、史跡名所名、飲食店や宿泊施設のメニューの料理名などの一部または全部、或いは組み合わせなどがタグに該当する。タグを抽出する際にワードに与えられるスコアは、コーパスにおけるtf−idfなどに基づいて計算される。このスコアは、抽出されたタグに対するスコアとしても使用されてよい。コーパスについて特段の制限は存在しないが、情報処理装置200がブログに対する処理を行う場合、ブログの記事を集めたテキストをコーパスとして使用すると好適である。
【0024】
電話番号抽出部222は、対象テキストから検索用ワードの一つである「電話番号」を抽出する。電話番号抽出部222は、ハイフンを含み、或いは含まない所定の桁数の数字列を抽出することで、対象テキストから電話番号を抽出する。
【0025】
住所抽出部224は、対象テキストから検索用ワードの一つである「住所」を抽出する。住所抽出部224は、例えば、対象テキストに対してテキスト解析を行うことによって、対象テキストから住所を抽出する。より具体的に、住所抽出部224は、対象テキストを形態素解析した結果として得られるワードのそれぞれから、住所とみなされるワード以外を除外することで、コメントから住所を抽出する。
【0026】
地域情報抽出部226は、対象テキストに含まれるランドマーク情報や地域を表す文字列を抽出し、GIS(Geographic Information System)情報などを利用して、対象テキストが示唆する地域を推定する。そして、地域を住所に変換することで、対象テキストから検索用ワードの一つである「住所」の少なくとも一部を抽出する。例えば、地域情報抽出部226は、「スカイツリーに行く。」という対象テキストから、東京スカイツリーの所在地である「東京都墨田区押上」を推定し、「東京都墨田区押上」を住所の一部として抽出する。
【0027】
選択部230は、タグ抽出部220、電話番号抽出部222、および住所抽出部224により抽出されたタグ、電話番号、および住所を用いて地点情報データベース260を検索し、地点情報データベース260に格納された複数の地点情報のうち、対象テキストが指し示す一以上の地点情報を、ブログの記事に付加する一以上の地点情報として選択する。一例として、選択部230は、所定数N1の地点情報を選択し、選択した地点情報をコンテンツ提供装置100に送信する。所定数N1は1であってもよいし、2以上であってもよい。以下の説明ではN1=1であるものとする。
【0028】
図2は、地点情報データベース260の内容の一例を示す図である。地点情報データベース260は、例えば、地点の識別情報である地点IDに対し、店名、緯度経度(位置)、カテゴリ、読み、住所、別表記、エリアコード、電話番号などが対応付けられた情報である。エリアコードとは、住所の属するエリアを段階的に示すコードである。また、地点情報データベース260は、対象とする地点が飲食店や宿泊施設である場合、メニューに掲載された料理名を含んでもよい。これによって、料理名から地点をサジェストすることが可能となる。以下、一つの地点IDに対応する情報を、地点情報エントリと称する。地点情報エントリは、地点情報の一例である。
【0029】
選択部230は、例えば、以下の4つのカテゴリに分けて地点(地点情報エントリ)を抽出する。なお、(1)〜(4)は、地点を特定する精度が高い順、且つ地点のカバレッジが低い順である。
(1)電話番号が合致する地点
(2)住所(緯度経度まで認識できるもの)+タグに合致する地点
(3)住所(上記(2)よりも広範囲にしか認識できないの)+タグに合致する地点
(4)タグにのみ合致する地点
【0030】
(1)に関して、選択部230は、電話番号抽出部222により抽出された電話番号と完全一致または部分一致する地点情報エントリを地点情報データベース260から抽出する。部分一致とは、例えば、電話番号抽出部222により抽出された電話番号に市外局番が含まれておらず、市外局番以外の部分が完全一致することなどをいう。
【0031】
(2)に関して、選択部230は、住所抽出部224により抽出された住所から認識可能な緯度経度を導出し、導出した緯度経度を中心として所定距離以内(絶対距離に限らず、道なり距離でもよい)にある地点情報エントリを地点情報データベース260から抽出し、距離が近い順に所定数N2の地点情報エントリを抽出する。選択部230は、例えば、住所を入力すると緯度経度を出力するAPIを利用して緯度経度を導出する(取得する)。このAPIは、情報処理装置200の一機能であってもよいし、他の装置により提供される機能であってもよい。選択部230は、所定数N2を超える地点情報エントリが抽出された場合、タグに合致する地点情報エントリに絞り込んでよい。タグに合致するとは、例えば、地点名、読み、別表記など、地点の名称または名称と同視できるものと、タグの文言とが所定文字数以上一致することをいう。タグに合致するとは、カテゴリの一項目がタグの全部を含むことをいう。住所が駅である場合、駅ナカには多くの店舗が存在する場合がある。このような場合にも、タグを用いて絞り込みを行うことで、精度の高い地点情報を提供することができる。
【0032】
(3)に関して、選択部230は、住所抽出部224または地域情報抽出部226により抽出された住所から認識可能なエリアを導出し、そのエリアのエリアコードと一致するエリアコードを有する地点情報エントリを地点情報データベース260から抽出し、タグに合致する地点情報エントリに絞り込む。選択部230は、例えば、住所を入力するとエリアコードを出力するAPIを利用してエリアコードを導出する(取得する)。このAPIは、情報処理装置200の一機能であってもよいし、他の装置により提供される機能であってもよい。「合致する」の意味に関しては(2)と同様である。
【0033】
(4)に関して、選択部230は、タグに合致する地点情報エントリを地点情報データベース260から抽出する。「合致する」の意味に関しては(2)と同様である。
【0034】
選択部230は、例えば、所定数N3の地点情報エントリを、(1)から順に選択する。なお、所定数N1≦N3である。例えば、N3=5である場合、(1)により1つの地点情報エントリが、(2)により2つの地点情報エントリが、(3)により2つの地点情報エントリが抽出された場合、その合計5つの地点情報エントリを次の段階の処理に用い、(4)の抽出結果は採用しない。このようにして、選択部230は、検索用ワードの種類に応じた優先度に基づいて、優先度の高い種類の検索用ワードに合致する地点情報エントリを優先して、対象テキストに付加する一以上の地点情報エントリとして選択する。
【0035】
更に、選択部230は、所定数N1の地点情報エントリを対応するタグごとにカウントし、出現数と合致度合に基づいて地点情報エントリごとのスコアを計算し、スコアに基づいて地点情報エントリをランク付けする。そして、選択部230は、ランキング上位のものから順に所定数N1の地点情報エントリを選択し、コンテンツ提供装置100に送信する。なお、電話番号は地点を特定するための有力な情報であるため、選択部230は、電話番号が合致する地点が存在する場合、その地点の地点情報エントリのみコンテンツ提供装置100に送信してもよい。
【0036】
図3は、選択部230により計算されるスコアの内容を説明するための図である。選択部230は、例えば、対象テキストから抽出されたタグと住所の組み合わせに対し(住所が認識できていない場合はタグに対し)、地点情報データベース260を検索して抽出できた結果を対応付ける。そして、選択部230は、各地点情報エントリについて、(A)出現数に基づくポイントPAと、(B)文言一致程度に基づくポイントPBとを計算し、ポイントPAとPBとを加算して(或いは乗算、加重加算、その他の演算を行って)、地点情報エントリのスコアを計算する。
【0037】
(A)出現数に基づくポイントPBは、当該地点情報エントリが、対象テキストからの検索結果の中に出現した回数である。
図3の例では、地点情報エントリ「AAAAAA六本木店」が2回出現しており、地点情報エントリ「BBB六本木店」および「CCCCC六本木店」が1回ずつ出現しているため、地点情報エントリ「AAAAAA六本木店」にはポイントPAが2ポイント、地点情報エントリ「BBB六本木店」および「CCCCC六本木店」にはポイントPAが1ポイント付与される。
【0038】
(B)文言一致程度に基づくポイントPBは、タグと地点情報エントリの地点名(読みや別表記でもよい)とが文言上、何割一致しているかに基づいて計算される。例えば、文言一致程度に基づくポイントPBは、以下のように計算される。
・完全一致:5ポイント
・7割以上、10割未満一致:4ポイント
・5割以上、7割未満一致:2ポイント
・それ以下の部分一致:1ポイント
【0039】
図3の例では、地点情報エントリ「AAAAAA六本木店」は、地点名がタグ「AAAAAA」と6割一致しているため、ポイントPBが2ポイント付与され、地点情報エントリ「BBB六本木店」および「CCCCC六本木店」は、地点名がどのタグとも部分一致していないため、ポイントPBは付与されない。
【0040】
この結果、
図3の例において各地点情報エントリのスコアは以下のようになる。
・「AAAAAA六本木店」:PA+PB=2+2=4
・「BBB六本木店」 :PA+PB=1+0=1
・「CCCCC六本木店」 :PA+PB=1+0=1
所定数N1=1であれば、選択部230は、地点情報エントリ「AAAAAA六本木店」のみを選択し、コンテンツ提供装置100に送信する。
【0041】
[処理フロー、シーケンス]
図4は、情報処理装置200において実行される処理の流れの一例を示すフローチャートである。まず、取得部210が、対象テキストとなる記事の本文を取得する(S100)。
【0042】
次に、タグ抽出部220、電話番号抽出部222、および住所抽出部224が、それぞれタグ、電話番号、および住所を対象テキストから抽出する(S102)。
【0043】
次に、選択部230が、地点情報データベース260に格納されている地点情報エントリのうち、S102で抽出されたタグ、電話番号、または住所に合致する所定数N2の地点情報エントリを選択する(S104)。
【0044】
次に、選択部230が、S104で選択した各地点情報エントリに対してスコアを計算し(S106)、スコアが上位のものから所定数N1の地点情報エントリを選択してコンテンツ提供装置100に送信する(S108)。
【0045】
地点情報エントリを取得したコンテンツ提供装置100では、ブログの記事の本文中に、地点情報エントリに基づく情報を埋め込んで、ブログを提供する。地点情報エントリに基づく情報とは、地点に関する各種情報であってもよいし、地点のホームページにアクセスするためのリンクであってもよい。
【0046】
図5は、コンテンツ提供装置100、情報処理装置200、および端末装置300により実行される処理の流れを示すシーケンス図である。まず、端末装置300が、これからブログに投稿しようとしている記事の内容をコンテンツ提供装置100に送信する(S200)。コンテンツ提供装置100のコンテンツ確定処理部120は、受信した記事の内容を情報処理装置200に転送する(S202)。情報処理装置200は、受信した記事の内容を対象テキストとして扱い、
図4のフローチャートに示す処理を行い(S204)、処理の結果、選択された地点情報エントリをコンテンツ提供装置100に返信する(S206)。
【0047】
コンテンツ提供装置100のコンテンツ確定処理部120は、地点情報エントリに基づく情報を付加した(埋め込んだ)記事の本文を、端末装置300に送信する(S208)。端末装置300から情報の埋め込みについて同意する旨の情報が得られると(S210)、コンテンツ提供装置100のコンテンツ提供部130は、地点情報エントリに基づく情報を付加した(埋め込んだ)記事の配信を開始する(S212)。
【0048】
[画面例]
以下、上記説明した処理によって実現される端末装置300の表示画面について例示する。
図6〜
図9は、上記説明した処理によって端末装置300により表示される画面を例示したものである。なお、ここでは、所定数N1=3であるものとする。
【0049】
図6は、ブログの記事投稿画面IM1の一例を示す図である。記事投稿画面IM1には、タイトル入力領域A1−1、カテゴリ選択欄A1−2、本文入力領域A1−3、各種設定領域A1−4などが設定される。また、記事投稿画面IM1には、確認ボタンB1−1、および決定ボタンB1−2が設定される。本文入力領域A1−3に図示するような情報が入力され、確認ボタンB1−1が操作されると、確認画面IM2が表示される。
【0050】
確認ボタンB1−1が操作されると、バックグラウンドでは、本文入力領域A1−3に入力されたテキストがコンテンツ提供装置100に送信され、情報処理装置200に転送され、情報処理装置200において地点情報エントリが選択されてコンテンツ提供装置100に返信される。そして、コンテンツ提供装置100は、情報処理装置200から取得した情報に基づいて確認画面IM2を生成する。なお、コンテンツ提供装置100は、この処理を行うために、不図示の地図情報などを保持しており、或いは地図情報を提供する装置にアクセスして部分的な地図を取得する。
【0051】
図7は、確認画面IM2の一例を示す図である。確認画面IM2には、例えば、記事本文表示領域A2−1の中に、地点位置表示領域A2−2が設けられている。地点位置表示領域A2−2において、情報処理装置200によって選択された地点情報エントリの示す地点の位置には、アイコンIc−1〜Ic−3が設定されている。利用者がいずれかのアイコンを選択すると、地点選択確定画面IM3が表示される。なお、このアイコンは、地点情報エントリのカテゴリの内容を示すシンボルで表されてもよい。
【0052】
図8は、地点選択確定画面IM3の一例を示す図である。地点選択確定画面IM3では、利用者により選択されたアイコンに対応する地点情報を、アイコンの位置に対応付けて示す地点情報表示領域A3−1が設けられている。また、地点選択確定画面IM3では、地点選択確定ボタンB3−1が設定されている。利用者によって地点選択確定ボタンB3−1が操作され、その後、記事投稿画面IM1において決定ボタンB1−2が操作されると、選択されたアイコンに対応する地点情報の埋め込みについて同意する旨の情報がコンテンツ提供装置100に送信される。これによってコンテンツ提供装置100は、地点情報を埋め込んだブログの記事の配信を開始する。
【0053】
図9は、
図6〜
図8の手順によって作成されたブログの記事を表示するブログ記事表示画面IM4の一例を示す図である。ブログ記事表示画面IM4の本文表示領域A4−1における地点に対応する文言(情報処理装置200において「タグ」として抽出されたもの)には、当該地点のホームページ等にアクセスするためのリンクLKが貼られている。利用者がリンクLKを操作すると、当該地点のホームページにジャンプする。また、本文表示領域A4−1には、地点の位置と説明文が地図上に表示された地図表示領域A4−2が設けられている。この地図表示領域A4−2が操作された場合も、当該地点のホームページにジャンプしてよい。
【0054】
このような手順によって、利用者(ブロガー)は、本文を入力するという従来と同じ操作を行い、コンテンツ提供装置100により提示された地点の候補の中から地点を選択して確定するという簡易な操作を行うだけで、本文中で示唆した地点情報をブログの記事に含めることができる。情報処理装置200は、このような利便性の高いサービスの提供を支援することができる。
【0055】
なお、上記説明した手順および画面の遷移順序は、あくまで一例であり、本発明の態様がこれに限定されるものではない。例えば、確認画面IM2または地点選択確定画面IM3において、複数の地点を選択できるようにしてもよい。また、記事投稿画面IM1における決定ボタンB1−2が操作された場合に、確認画面IM2が表示され、その後、地点選択確定画面IM3において地点選択確定ボタンB3−1が操作されると、選択されたアイコンに対応する地点情報の埋め込みについて同意する旨の情報がコンテンツ提供装置100に送信されるようにしてもよい。
【0056】
また、利用者による地点情報の確認操作を省略し、コンテンツ提供装置100は、自動的に地点情報が埋め込まれたブログの記事を作成してもよい。この場合、地点情報の埋め込みについて「おまかせ」設定されることにより、自動的に地点情報が埋め込まれたブログの記事が作成されるようにしてもよい。これらが「所定条件」の一例である。
【0057】
[まとめ]
以上説明した情報処理装置200によれば、利用者によって投稿されるコンテンツ(記事の本文)を取得する取得部210と、複数の地点情報エントリが格納された地点情報データベース260を参照し、複数の地点情報エントリのうち、取得部210により取得されたコンテンツが指し示す一以上の地点情報エントリを、その一部または全部をコンテンツに付加する一以上の地点情報エントリとして選択する選択部230と、を備えることにより、コンテンツを作成する際の利便性を高めることができる。
【0058】
また、以上説明したコンテンツ提供装置100によれば、利用者によるコンテンツの投稿を受け付ける受付部110と、コンテンツに付加する地点情報を利用者の端末装置300に提示するコンテンツ確定処理部(提示部)120と、所定条件に基づき、コンテンツ確定処理部120により提示された地点情報が付加されたコンテンツを提供するコンテンツ提供部130と、を備えることにより、情報処理装置200と協働してコンテンツを作成する際の利便性を高めることができる。
【0059】
上記実施形態は、以下のように表現できる。
プログラムを実行するハードウェアプロセッサと、
前記ハードウェアプロセッサにより実行されるプログラムを格納する記憶装置と、
を備え、
前記プログラムは、前記ハードウェアプロセッサに、
利用者によって投稿されたコンテンツを取得させ、
複数の地点情報が格納されたデータベースを参照し、前記複数の地点情報のうち、前記取得させたコンテンツが指し示す一以上の地点情報を、前記コンテンツに付加する一以上の地点情報として選択させる。
【0060】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【解決手段】コンテンツ提供システム1において、情報処理装置200は、利用者によって投稿されるコンテンツを取得する取得部210と、複数の地点情報が格納されたデータベース260を参照し、複数の地点情報のうち、取得部210により取得されたコンテンツが指し示す一以上の地点情報を、コンテンツに付加する一以上の地点情報として選択する選択部230と、を備える。