文書データ評価方法、文書データ評価装置、文書データ選択方法、文書データ選択装置、データベース生成方法、データベース生成装置、およびコンピュータプログラム
【課題】複数の文書の中から信頼性の高い文書を選択することによって、信頼性の高い情報を提供できるようにする。
【解決手段】上記目的を達成するために、本発明は、複数の文書データに基づいてデータベースを生成する。(a)住所を表す文字列である住所文字列と、店舗に関する記述である記事文字列と、を含む文書データを含む複数の文書データを準備する(S10)。(b)住所文字列のデータを解析して、住所文字列が表す住所の詳細さを検討する(S20〜S40)。(c)詳細さの検討結果に基づいて、複数の文書データの中から住所文字列を含む少なくとも一つの文書データを選択する(S45,S50)。(d)選択された文書データに基づいて、店舗に関するデータベースを生成する(S60)。
【解決手段】上記目的を達成するために、本発明は、複数の文書データに基づいてデータベースを生成する。(a)住所を表す文字列である住所文字列と、店舗に関する記述である記事文字列と、を含む文書データを含む複数の文書データを準備する(S10)。(b)住所文字列のデータを解析して、住所文字列が表す住所の詳細さを検討する(S20〜S40)。(c)詳細さの検討結果に基づいて、複数の文書データの中から住所文字列を含む少なくとも一つの文書データを選択する(S45,S50)。(d)選択された文書データに基づいて、店舗に関するデータベースを生成する(S60)。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、文書データが表す情報の質を評価する技術に関する。
【背景技術】
【0002】
インターネットの利用が一般に普及したことにより、商品やサービスを提供する様々な店舗に関して、一般の消費者が評価を行い、その評価の情報をインターネット上で公開するようになっている。しかし、それらインターネット上で公開されている情報には、第三者の役には立たない不正確なものも含まれる。このため、インターネット上で公開されている情報の中から高精度な情報を抽出することは容易ではない。
【0003】
ある従来技術においては、ホームページ103から主に記述されている情報に関する住所、地名、建物名、企業名、団体名もしくはそれらを導出する語句を抽出し、複数の地図データベース108、情報データベース109内におけるその情報を検索する。そして、最良の候補を求め、ホームページ103と地図上の情報の対を作成する。また、最良と選択された地図上の上から緯度経度もしくは地図特有の直角座標系の座標値を求め、ホームページ103と地図上の情報と座標値の組合わせを作成し、座標付きホームページ情報データベース110へ転送する。
【0004】
この技術においては、転送されたホームページ103を、デザイン、記述されている情報の公共性及び知名度、情報更新頻度及びホームページ作成者もしくは発信者の本人性及び信頼度で評価する。記述されている情報に関する評価は、一般品詞辞書及び固有名詞辞書112、各種の情報データベース109も参照して、いくつの情報源にその情報が紹介されているかという情報の出現頻度及び項目の大きさ等による公共性及び知名度の判断、ホームページファイルの作成時間の継続的監視によって求める。ホームページ作成者もしくは発信者の本人性及び信頼度に関する評価は、ホームページ103中での情報の記述方法、地図データベース108中及び各種の情報データベース109中での存在の有無、記述情報に関する検索サービス提供装置からの検索結果をそれぞれ得点化し、デザイン評価における得点とを足し合わせて評価する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2000−339330号公報
【0006】
しかし、上記の技術においては、ホームページの評価は、ホームページ上の情報の、他の既存のデータベース中における存在の有無、存在頻度、項目の大きさ等により行っている。このため、たとえばブログ(Weblog)などに記載されているような、一般の消費者が自ら店舗におもむいて収集した最新の情報や、独自の用語や表現で記載された記事については、有意義な情報を含んでいても、高評価が得られない。このような問題は、文書が表す情報の質を評価する際に、広く生じうる。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明は、上記の問題の少なくとも一部を取り扱うものであり、複数の文書の中から信頼性の高い文書を選択することによって、信頼性の高い情報を提供できるようにすることを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明は、複数の文書データに基づいてデータベースを生成する際に、以下のような処理を行う。
(a)住所を表す文字列である住所文字列と、店舗に関する記述である記事文字列と、を含む文書データを含む複数の文書データを準備する。
(b)住所文字列のデータを解析して、住所文字列が表す住所の詳細さを表す詳細レベルデータを生成する。
(c)詳細レベルデータに基づいて、複数の文書データの中から住所文字列を含む少なくとも一つの文書データを選択する。
(d)選択された文書データに基づいて、店舗に関するデータベースを生成する。
【0009】
文書中で住所を詳細に記述する作者は、文書中の他の記述についても正確かつ客観的に行っていると推定できる。よって、上記のような態様とすれば、複数の文書の中から信頼性の高い文書を選択し、その信頼性の高い文書に基づいて、信頼性の高い情報を有するデータベースを生成することができる。
【0010】
なお、工程(a)〜(d)は、コンピュータによって実行されることができる。たとえば、工程(a)は、第1のコンピュータが、第1のコンピュータとネットワークで接続された第2のコンピュータ(サーバ)が格納する原文書データから文字列のデータを取得することによって実行されることができる。そして、工程(b)は、第1のコンピュータが詳細レベルデータを生成し、所定の第1のメモリに格納することによって実行されることができる。さらに、工程(d)は、第1のコンピュータがデータベースを生成し、所定の第2のメモリに格納することによって実行されることができる。なお、第1と第2のメモリは、第1のコンピュータ内に設けられていてもよく、第1のコンピュータにネットワークを介して接続されている他の装置内に設けられていてもよい。
【0011】
なお、複数の文書データの中から住所文字列を含む少なくとも一つの文書データを選択する際には、少なくとも一つの文書データの一つとして、もっとも詳細な住所文字列を含む文書データを選択することが好ましい。
【0012】
上記(a)において、複数の文書データを準備する際には、以下のような処理を行うことが好ましい。すなわち、所定の契約をしたユーザに対して、文字列を含みユーザが作成した原文書データを、ネットワークを介して公開するサービスを提供するサービス提供者のサーバに、ネットワークを介してアクセスして、原文書データが含む前記文字列に基づいて前記文書データを生成する。
【0013】
このような態様とすれば、店舗と利害関係のないユーザによる店舗の記述を利用可能なデータベースを作成することができる。
【0014】
上記(d)において、店舗に関するデータベースを生成する際には、以下のような処理を行うことが好ましい。
(d1)住所文字列が表す地点の緯度および経度を特定する。
(d2)緯度および経度と、選択された文書データの前記住所文字列および前記記事文字列の取得先の情報と、を互いに関連づけて含むデータベースを作成する。
【0015】
このような態様とすれば、店舗に関する記述と、店舗の場所と、の両方の情報を容易に入手できるデータベースを作成することができる。
【0016】
なお、さらに、データベースを利用したサービスを提供する際には、以下のような処理を行うことが好ましい。
(e1)所定の領域の地図を表す地図データを準備する。
(e2)地図データに基づく地図を表示する。
(e3)地図上の、住所文字列が表す地点の緯度および経度に相当する位置に、所定のマークを表示する。
(e4)ユーザからのマークの指定を受け取って、文書データの前記住所文字列および前記記事文字列の取得先を表すデータを提供する。
【0017】
上記(b)において、住所文字列が表す住所の詳細さを表す詳細レベルデータを生成する際には、以下のような処理を行うことが好ましい。
(b1)文書データが含む文字列を、それぞれ1以上の文字からなる複数の語に分解する。
(b2)文書データが含む語を順に検討し、文書データから住所文字列を抽出する。
【0018】
そして、上記(b2)において、住所文字列を抽出する際には、以下のような処理を行うことが好ましい。
(b3)文書データが含む第1の語が、地域を表す語であることを含む所定の第1の条件を満たす場合に、第1の語を住所バッファの先頭に格納する。
(b4)住所バッファに格納された語に続く第2の語が、所定の第2の条件を満たす場合に、第2の語を住所バッファに追加的に格納する。
(b5)第2の語が、第2の条件とは異なる所定の第3の条件を満たす場合に、住所バッファ内に格納された文字列を、住所文字列として抽出する。
【0019】
このような態様とすれば、個々の語を解析することによって、文書データから住所文字列を抽出することができる。なお、住所バッファ内の文字列を住所文字列として抽出する際の住所バッファは、「直前に語が格納された住所バッファ」とすることが好ましい。
【0020】
なお、上記(b5)において、住所バッファ内に格納された文字列を、住所文字列として抽出する際には、以下のような処理を行うことが好ましい。
第3の条件が満たされた場合として、
第2の語が、
(下位条件1)地域を表す語であること、
(下位条件2)「東」、「西」、「南」、「北」、「大字」のいずれかの文字を含むこと、
(下位条件3)数を表す語であること、
(下位条件4)「字」の文字を含むこと、
のいずれにも該当しない場合に、住所バッファ内の文字列を住所文字列として抽出する。
【0021】
このような態様とすれば、「丁目」レベル以下の情報を含まない住所文字列を、住所文字列として抽出することができる。
【0022】
また、上記(b5)において、住所バッファ内に格納された文字列を、住所文字列として抽出する際には、以下のような処理を行うことも好ましい。
第3の条件が満たされた場合として、第2の語が、第2の語の直前に上記(b2)において検討された語よりも上位の地域を表す語である場合に、住所バッファ内の文字列を住所文字列として抽出する。
【0023】
このような態様とすれば、文書データ中に2組の住所文字列が連続して記載されているときに、それらを一体の住所文字列ではなく、2組の住所文字列として処理することができる。
【0024】
さらに、上記(b5)において、住所バッファ内に格納された文字列を、住所文字列として抽出する際には、以下のような処理を行うことも好ましい。
第3の条件が満たされた場合として、
第2の語が、
(下位条件5)数を表す語であること、
(下位条件6)数に続いて表示され数の単位を表す所定の語であること、
(下位条件7)名詞の後に表示され名詞の属性を表す所定の語であること、
(下位条件8)記号であること、
(下位条件9)名詞であること、
(下位条件10)数に続いて表示され数の接続を表す所定の語であること、
(下位条件11)名詞の前および後の少なくとも一方に表示され名詞を修飾する所定の語であること、
のいずれにも該当しない場合に、住所バッファ内の文字列を住所文字列として抽出する。
【0025】
このような態様とすれば、「丁目」、「番地」または「号」レベルの情報を含む住所文字列を、住所文字列として抽出することができる。
【0026】
上記(b4)において、第2の語を住所バッファに追加的に格納する際には、以下のような処理を行うことが好ましい。
第2の条件が満たされた場合として、
第2の語が、
(下位条件12)地域を表すこと、
(下位条件13)「東」、「西」、「南」、「北」、「大字」のいずれかの文字を含むこと、
のいずれかを満たす場合に、第2の語を住所バッファに追加的に格納する。
【0027】
このような態様とすれば、「字」(あざ)のレベルや「丁目」レベルよりも上位の住所を表す文字列を、住所文字列の一部として抽出することができる。
【0028】
また、上記(b4)において、第2の語を住所バッファに追加的に格納する際には、以下のような処理を行うことも好ましい。
第2の条件が満たされた場合として、
第2の語が、
(下位条件14)数を表す語であること、
(下位条件15)「字」の文字を含むこと、
のいずれかを満たす場合に、第2の語を住所バッファに追加的に格納する。
【0029】
このような態様とすれば、「字」(あざ)の文字や、「丁目」レベル以下のレベルの住所を表す先頭の数字を、住所文字列の一部として抽出することができる。
【0030】
さらに、上記(b4)において、第2の語を住所バッファに追加的に格納する際には、以下のような処理を行うことも好ましい。
第2の条件が満たされた場合として、
第2の語よりも前に検討された語が、
(下位条件14)数を表す語であること、
(下位条件15)「字」の文字を含むこと、
のいずれか満たし、かつ、
第2の語が、
(下位条件5)数を表す語であること、
(下位条件6)数に続いて表示され数の単位を表す所定の語であること、
(下位条件7)名詞の後に表示され名詞の属性を表す所定の語であること、
(下位条件8)記号であること、
(下位条件9)名詞であること、
(下位条件10)数に続いて表示され数の接続を表す所定の語であること、
(下位条件11)名詞の前および後の少なくとも一方に表示され名詞を修飾する所定の語であること、
のいずれかを満たす場合に、第2の語を住所バッファに追加的に格納する。
【0031】
このような態様とすれば、「丁目」レベル以下の住所を表す文字列を、住所文字列の一部として抽出することができる。
【0032】
上記(b)において住所文字列が表す住所の詳細さを表す詳細レベルデータを生成する際には、さらに、以下のような処理を行うことが好ましい。
(b7)住所文字列について、住所の一部であり区域を表す所定の語であって、互いに異なる複数の階層の区域に属する複数の所定の語を含むか否かを検討する。
【0033】
そして、上記(c)において、複数の文書データの中から住所文字列を含む少なくとも一つの文書データを選択する際には、以下のような処理を行うことが好ましい。
(c1)住所文字列に含まれる所定の語の最も下位の階層に基づいて、文書データを選択する。
【0034】
このような態様とすれば、住所文字列について客観的に詳細さの評価を行うことができる。そして、住所文字列の詳細さについての客観的な評価に基づいて、内容が正確かつ客観的である可能性が高い文書データを選択することができる。なお、文書データを選択する際には、さらに、住所文字列に含まれる所定の語の数を考慮することも好ましい。
【0035】
なお、複数の階層が、町域の階層と街区の階層とを含むことがある。そのような態様において、上記(b7)で、住所文字列が所定の語を含むか否かを検討する際には、以下のような処理を行うことが好ましい。
(b8)住所文字列について、上位の階層の区域を表す語から下位の階層の区域を表す語に向かう順番で、上記の区域を表す所定の語を含むか否かを検討する。
【0036】
そして、上記(b8)において、上記の順番で、区域を表す所定の語を含むか否かを検討する際には、以下のような処理を行うことが好ましい。
住所文字列中の、全角または半角のマイナスまたはハイフンで結ばれた数については、
全角または半角のマイナスまたはハイフンで結ばれた数の個数、ならびに
それまでに検出された町域の階層に含まれる語の有無、およびそれまでに検出された街区の階層に含まれる語の有無
に基づいて、所定の語を含むか否かの評価と同等の評価を行う。
【0037】
このような態様とすれば、たとえば、文書データ中において、「丁目」レベル以下の住所が、「○丁目×番地△号」や、「○丁目×−△」や、「○−×−△」と表記されているいずれの場合にも、正確に住所の詳細さを評価することができる。
【0038】
なお、上記(c)において、文書データを選択する際には、さらに、以下のような処理を行うことが好ましい。
(c2)住所文字列が「京都府」または「京都市」の文字列を含む場合であって、かつ、「上る」、「下る」、「東入る」、「西入る」、「南入る」、「北入る」、「上ル」、「下ル」、「東入ル」、「西入ル」、「南入ル」、「北入ル」のいずれかの文字列を含む場合には、
住所文字列が「京都府」および「京都市」の文字列を含まない場合であって、かつ、「丁目」の文字列を含む場合と同等に評価する。
【0039】
このような態様とすれば、京都独特の住所表記がされている場合にも、そのような文字列について正確に住所の詳細さの評価を行うことができる。なお、「同等に評価する」とは、より具体的には、詳細さの評価において、同じ評価点を加算する、という態様や、同じフラグを立てる、という態様をとることができる。
【0040】
なお、以下のような処理を行うことも好ましい。
(e)前記文書データ中から電話番号を取得する。
(f)電話番号と住所文字列とが関連づけられて格納されているデータベースを参照しつつ、前記取得された電話番号と関連づけられた住所文字列が、前記文書データに含まれるか否かを決定する。
【0041】
そして、複数の文書データの中から少なくとも一つの文書データを選択する際には、以下のような処理を行うことが好ましい。すなわち、前記取得された電話番号と関連づけられた住所文字列を含む文書データを、前記取得された電話番号と関連づけられた住所文字列を含まない文書データに比べて優先的に、前記少なくとも一つの文書データとして選択する。
【0042】
電話番号を正確に記載する作者は、文書中の他の記述についても正確かつ客観的に行っていると推定できる。よって、上記のような態様とすれば、複数の文書の中から信頼性の高い文書を選択し、その信頼性の高い文書に基づいて、信頼性の高い情報を有するデータベースを生成することができる。
【0043】
また、前記原文書データが、文字列を含む参照文書データと前記原文書データとを関連づけるためのリンクデータを含む場合には、以下のような処理を行うことも好ましい。
(e)前記リンクデータに基づいて前記参照文書データを参照しつつ、前記参照文書データが含む前記文字列に基づいてリンク先文書データを生成する。
(f)前記文書データが含む前記住所文字列を前記リンク先文書データが含むか否かを決定する。
【0044】
そして、複数の文書データの中から少なくとも一つの文書データを選択する際には、以下のような処理を行うことが好ましい。すなわち、前記リンク先文書データが前記文書データの前記住所文字列を含む文書データを、前記リンク先文書データが前記文書データの前記住所文字列を含まない文書データに比べて優先的に、前記少なくとも一つの文書データとして選択する。
【0045】
文書を作成する際に参照したデータが含む住所文字列を正確に引き写す作者は、文書中の他の記述についても正確かつ客観的に行っていると推定できる。よって、上記のような態様とすれば、複数の文書の中から信頼性の高い文書を選択し、その信頼性の高い文書に基づいて、信頼性の高い情報を有するデータベースを生成することができる。
【0046】
なお、「AをBに比べて優先的に選択する。」とは、選択の際に考慮される他の評価パラメータがAとBにおいて同じである場合に、BではなくAを選択することを意味する。ある文書データを優先的に選択する方法としては、たとえば、その文書データの詳細レベルデータを、より高い詳細さを表す値に改変して、工程(c)を実行する態様とすることができる。たとえば、詳細さを表す値にさらに所定の値を加えてもよい。また、詳細さを表す値を定数倍してもよい。また、工程(c)を実行するに際して、「取得された電話番号と関連づけられた住所文字列を含むこと」と「リンク先文書データが文書データの住所文字列を含むこと」一方または両方を選択の際の必要条件とする態様とすることもできる。
【0047】
なお、本発明は、一態様として、たとえば以下のような、文書データの内容の正確さを推定または評価する方法として実現することもできる。この方法においては、以下のような処理が行われる。
(a)住所を表す文字列である住所文字列と、住所を表す文字列以外の文字からなる記事文字列と、を含む複数の文書データを準備する。
(b)住所文字列のデータを解析して、住所文字列が表す住所の詳細さを検討する。
(c)詳細さの検討結果に基づいて、文書データの内容の正確さを表す評価を決定する。
【0048】
なお、「評価を決定する」には、たとえば、以下のような態様が含まれる。(i)評価を表す値を決定すること。(ii)複数セットの文書データに対して、評価の高い順番を表す順位をそれぞれ決定すること。
【0049】
また、本発明は、一態様として、たとえば以下のような、文書データの選択方法として実現することもできる。この方法においては、以下のような処理が行われる。
(a)住所を表す文字列である住所文字列と、住所を表す文字列以外の文字からなる記事文字列と、を含む複数の文書データを準備する。
(b)住所文字列のデータを解析して、住所文字列が表す住所の詳細さを検討する。
(c)詳細さの検討結果に基づいて、複数の文書データの中から住所文字列を含む少なくとも一つの文書データを選択する。
なお、本発明は、種々の形態で実現することが可能であり、例えば、文書評価方法および文書評価装置、文書選択方法および文書選択装置、文書データ処理方法および文書データ処理装置、データベース提供方法およびデータベース提供装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体等の形態で実現することができる。
【図面の簡単な説明】
【0050】
【図1】本発明の地図情報提供システムの概略を示す図。
【図2】クライアント200で記事リンク地図データベースMDBを利用する際の、ディスプレイ210上の表示の一例を示す図。
【図3】地図アプリケーションサーバの処理を示すフローチャート。
【図4】本明細書における「品詞」の例を示す表。
【図5】文書データ中の住所の文字列について、ステップS20の処理結果の例を示す図。
【図6】文書データ中の住所の文字列について、ステップS20の処理結果の例を示す図。
【図7】図3のステップS30の詳細な処理を示すフローチャート。
【図8】図3のステップS30の詳細な処理を示すフローチャート。
【図9】図3のステップS40の詳細な処理を示すフローチャート。
【図10】住所文字列において京都の住所表記がされている場合の、その住所文字列の詳細度の検討の処理を示すフローチャート。
【図11】住所文字列において丁目、番地、号が、ハイフン等でつながれて表記されている場合の、その住所文字列の詳細度の検討の処理を示すフローチャート。
【図12】地図アプリケーションサーバが詳細度を改変する処理を示すフローチャート。
【図13】地図アプリケーションサーバが詳細度を改変する処理を示すフローチャートである。
【発明を実施するための形態】
【0051】
A.第1実施例:
A1.装置の構成および機能の概要:
図1は、本発明の地図情報提供システムの概略を示す図である。インターネットINTには、アプリケーションサービスプロバイダのサーバAS1,AS2が接続されている。アプリケーションサービスプロバイダは、所定の契約をしたユーザに対して、そのユーザが作成した文字列や画像を含むデータをインターネットを介して公開するサービスを提供している。サーバAS1,AS2には、それらの複数のユーザが作成した文字や画像を含むデータである閲覧用データPD1,PD2が格納されている。これら閲覧用データPD1,PD2は、インターネットに接続された他の機器から閲覧することができる。
【0052】
閲覧用データPD1,PD2は、具体的には、ウェブページやブログのデータである。これらのウェブページやブログには、しばしばユーザが利用したレストランなどの店舗についての評価記事が、その店舗の住所とともに掲載される。閲覧用データPD1,PD2の少なくとも一部のページのデータは、住所を表す文字列である住所文字列と、住所文字列以外の文字からなる記事文字列と、を含む文字、画像(静止画、動画を含む)、ならびに音声のデータを含む。
【0053】
また、インターネットINTには、地図アプリケーションサーバ100が接続されている。地図アプリケーションサーバ100は、CPU110、メモリ120等の構成を備えている。地図アプリケーションサーバ100は、サーバAS1,AS2中の閲覧用データPD1,PD2のうち、住所の文字列を含むページのデータのurl(Uniform Resource Locator)と、地図情報とを関連づけてデータベースDB(以下「記事リンク地図データベースMDB」と呼ぶ)を生成し、インターネットを介して、有料または無料で閲覧可能とする。
【0054】
さらに、インターネットINTには、クライアント200が接続されている。クライアント200には、出力装置としての液晶ディスプレイ210、ならびに入力装置としてのキーボード220およびマウス230が接続されている。クライアント200は、インターネットINTを介して、地図アプリケーションサーバ100の記事リンク地図データベースMDBを利用することができる。
【0055】
なお、図1では、例示として、アプリケーションサービスプロバイダのサーバを2台、そして、クライアントを1台、示している。しかし、アプリケーションサービスプロバイダのサーバおよびクライアントは、それぞれインターネットINTに多数接続されている。
【0056】
図2は、クライアント200で記事リンク地図データベースMDBを利用する際の、ディスプレイ210上の表示の一例を示す図である。画面中央の領域A10には、クライアント200を介してユーザが指定した場所の地図が表示される。画面上段の領域A20には、検索用の入力窓A21と、検索ボタンA22が表示されている。
【0057】
ユーザが、記事リンク地図データベースMDBを利用する際には、以下のような処理が行われる。すなわち、ユーザは、マウス230およびキーボード220を使用して入力窓A21に所定の文字列を入力し、マウス230を使用して検索ボタンA22をクリックする。すると、地図アプリケーションサーバ100は、サーバAS1,AS2の閲覧用データPD1,PD2から収集した文書データから、該当する文字列を含むデータを検索する。そして、閲覧用データPD1,PD2から収集した文書データ中に、それらの文字列を含むデータが存在する場合には、地図アプリケーションサーバ100は、それらの文字列を含むデータ(以下、該当文書データという)の存在をクライアント200のディスプレイ210上に表示する。
【0058】
具体的には、地図アプリケーションサーバ100は、ディスプレイ210上の画面右側の領域A30に、該当文書データの一部を表示する。また、領域A10には、該当文書データ中に存在する住所の文字列が表す地点を、所定のマークで表示する。
【0059】
図2の例では、「イタリア料理」をいう文字列が入力窓A21に入力されている。そして、「イタリア料理」をいう文字列を含むブログやホームページの記事から生成された該当文書データの一部が、画面右側の領域A30に列挙されている。そして、画面中央の領域A10には、それらのブログの記事中の住所が表す地点が、吹き出しBLで表されている。なお、営利目的の広告であると思われる記事については、「PR」の文字を付した吹き出しが付される。ユーザは、領域A30内の記事のリスト、または領域A10内の吹き出しBLをクリックすることで、それらのブログやホームページにジャンプすることができる。
【0060】
このような態様によれば、ユーザは、入力窓A21から所定の言葉、たとえば「イタリア料理」、「おいしい」、「おすすめ」、などを入力することで、ブログやホームページでそれらの言葉を使って言及された店舗について、簡単な手順で地図上の場所を特定することができる。
【0061】
また、ユーザは、バルーンに基づいて、地図に表示された所定のエリア内から、ブログやホームページで言及された店舗を容易に発見することができる。そして、それらのブログやホームページにジャンプすることで、その店舗の評価を読むことができる。
【0062】
以下では、地図アプリケーションサーバ100が、閲覧用データPD1,PD2から、住所の文字列を含む文書データを抽出し、さらにその中から文書データを選択して、緯度および経度の情報と関連づけて記事リンク地図データベースMDBを生成する処理について、詳細に説明する。
【0063】
A2.地図アプリケーションサーバの動作:
図3は、地図アプリケーションサーバの処理を示すフローチャートである。ステップS10では、インターネットINTに接続されたサーバのうち、あらかじめ定められたサーバAS1,AS2等から文書データを取得する。ステップS10では、たとえば、サーバAS1の閲覧用データPD1のあるページから、html(HyperText Markup Language)データを収集し、その中から文字のデータのみを抽出して、文書データを生成する。一つの文書データは、閲覧用データPD1,PD2等をクライアント200等で閲覧する際に同時にディスプレイ210に表示される1ページ分の文字のデータからなる。また、ステップS10では、文書データのもととなったページ(以下「記事ページ」ともいう)のurlを取得し、メモリ120に記憶する。ステップS10の処理を行う地図アプリケーションサーバ100のCPU110の機能部を、文書データ取得部111として図1に示す。
【0064】
なお、ステップS10で準備される文書データには、住所の文字列を含まない文書データや、店舗の評価を含まない文書データも含まれる。しかし、図3のステップS10〜S60を繰り返し実行し、閲覧用データPD1,PD2から文字データを取得して複数の文書データを生成することで、そのうちの少なくとも一部の文書データは、住所を表す文字列である住所文字列と、店舗の紹介や評価などの店舗に関する記述である記事文字列と、を含む文書データとなる。
【0065】
ステップS20では、文書データの文を語に分解する。なお、ここでいう「語」とは、日本語の文法上の「単語」ではなく、文書を解析するために便宜的に定められた、1以上の文字からなる文字群である。本明細書では、この文字群を、便宜的に「語」と呼ぶ。たとえば、「東神奈川」という文字列は、日本語の文法上は一つの固有名詞であるが、ステップS20の処理では「東」という語と「神奈川」という語に分けられる。
【0066】
また、ステップS20では、各語の品詞を決定する。なお、ここでいう「品詞」も、日本語の文法上の「品詞」ではなく、文書を解析するために便宜的に定められた、語の属性を表す分類である。
【0067】
図4は、本明細書における「品詞」の例を示す表である。左端の列には、品詞の分類番号を示す。中央の列には、品詞の分類を示す。右端の列には、品詞の例を示す。本明細書における「品詞」は、分類番号と、1以上の階層の分類とを有している。たとえば、分類番号11は、「名詞−固有名詞−地域−一般」という「品詞」に与えられた分類番号である。「東京」という語は、この「名詞−固有名詞−地域−一般」という「品詞」に分類される。また、「東京」という語には、分類番号11番に分類される。なお、図4に示す「品詞」の分類は一例である。図3のステップS20の処理は、様々なエンジンによって実行可能であり、「品詞」の分類はそれらエンジンによって異なる場合がある。
【0068】
図5および図6は、文書データ中の住所の文字列について、ステップS20の処理結果の例を示す図である。なお、図5および図6では、各語に対して品詞の分類番号のみを示す。図5および図6では、文書データ中の住所の文字列の例を示すが、ステップS20における処理は、このような文字列に限らず、文書データのすべての文のすべての語に対して行われる。図3のステップS20で行われる処理を「形態素解析」と呼ぶ。
【0069】
図3のステップS30では、ステップS20で語に分解され、それぞれ品詞が対応づけられた文書データから、住所を表す文字列(以下「住所文字列」という)を抽出して、住所リストデータを作成する。
【0070】
図3のステップS40では、住所リストデータの各住所文字列の詳細度を決定する。より具体的には、詳細度を表す詳細レベルデータが生成される。ステップS20〜S40の処理を行う地図アプリケーションサーバ100のCPU110の機能部を、住所文字列検討部112として図1に示す。
【0071】
ステップS45では、住所リストデータの住所文字列の中に、所定のしきい値以上の詳細度を有する住所文字列が存在するか否かを判断する。所定のしきい値以上の詳細度を有する住所文字列が存在する場合には、処理はステップS50に進む。所定のしきい値以上の詳細度を有する住所文字列が存在しない場合には、処理はステップS65に進む。
【0072】
ステップS45においては、所定のしきい値以上の詳細度を有する住所文字列を含むと判断された文書データが選択される。所定のしきい値以上の詳細度を有する住所文字列を含む文書データは、この後、ステップS60においてデータベースに組み込まれる。所定のしきい値以上の詳細度を有する住所文字列を含まないと判断された文書データ、ならびに住所文字列を含まないと判断された文書データについては、ステップS50,S60の処理は行われないため、そのような文書データはデータベースに組み込まれない。ステップS45の処理を行う地図アプリケーションサーバ100のCPU110の機能部を、文書データ選択部113として図1に示す。
【0073】
図3のステップS50では、住所リストデータの中から詳細度の高い住所文字列を選択する。本実施例では、住所リストデータの中で最も詳細度の高い住所文字列が選択される。なお、最も詳細度の高い住所文字列が複数存在する場合には、そのうちで住所リストデータの最初に位置する住所文字列が選択される。
【0074】
図3のステップS60では、選択された住所文字列に基づいて、その住所文字列が表す緯度と経度を特定する。この処理を「ジオコーディング」という。
【0075】
ステップS60では、さらに、ステップS10で取得した記事ページのurlと、ステップS60で得た緯度と経度と、を関連づけて、記事リンク地図データベースMDBに追加する。そして、更新された記事リンク地図データベースMDBをメモリ120に格納する。なお、記事リンク地図データベースMDBには、さらに、閲覧用データPD1,PD2から収集した文書データ、ならびに文書データ中の同一の種類の同一のキーワードの出現回数が格納される。
【0076】
ここで、「同一の種類」とは、以下のような意味である。すなわち、各語は、ステップS20において、さらに、名詞、動詞、形容詞、形容動詞に分類される。そして、その分類が同じである場合は、「同一の種類」の語であるとされる。
【0077】
ステップS60の処理を行う地図アプリケーションサーバ100のCPU110の機能部を、データベース生成部114として図1に示す。データベース生成部114は、記事リンク地図データベースMDBの生成および更新を行う。
【0078】
図3のステップS65では、あらかじめ定められたすべてのサーバAS1,AS2等のすべての閲覧用データについて文書データを生成したか否かが判定される。判定結果がNoである場合は、処理はステップS10に戻り、あらかじめ定められたサーバAS1,AS2等の閲覧用データから新たな文書データが準備される。判定結果がYesである場合は、処理はステップS70に進む。
【0079】
図3のステップS70では、ユーザからの要求に応じて、記事リンク地図データベースMDBに基づいて図2に示すような表示を行うための表示データを作成し、クライアント200に送信する。ステップS70の処理を行う地図アプリケーションサーバ100のCPU110の機能部を、サービス提供部115として図1に示す。
【0080】
この表示データに基づく表示においては、地図上のステップS50で得た緯度と経度に相当する位置に、バルーンBLが表示される(図2参照)。また、領域A30に、ステップS10で準備した文書データの一部(すなわち、記事ページの一部)が表示される。そして、それらのバルーンBL、および記事ページの一部が表示される位置に、ステップS10で取得した記事ページのurlへのリンクが埋め込まれている。
【0081】
このような態様とすれば、利害関係のない素人が忌憚のない店舗評価を述べているブログやホームページに基づいて、記事リンク地図データベースMDBを生成することができる(特に、図3のステップS10参照)。よって、第三者にとって有益な記事リンク地図データベースMDBを生成し、提供することができる。
【0082】
また、ブログやホームページの記事において住所を詳細に記述するユーザは、同時に、記事中で高精度の店舗評価を行っていると推定できる。このため、上記のような態様とすることで(特にステップS45参照)、高精度な店舗評価を行っていると推定できるブログやホームページの文書データを選んで、それらに基づいて記事リンク地図データベースMDBを生成することができる。このため、精度の高い記事リンク地図データベースMDBを生成することができる。
【0083】
A3.住所リストデータの生成:
図7および図8は、図3のステップS30の詳細な処理を示すフローチャートである。ステップS310では、文書データから語を1個、取得する。なお、文書データからの語の取得は、文書データ中の語の並びの順に行われる。よって、最初にステップS310が実行されるときには、文書データの先頭の語が取得される。
【0084】
ステップS315では、取得した語の品詞が「地域」(分類番号10〜12,30など。図4参照)であり、かつ、品詞が「国」(分類番号12)でなく、かつ、取得した語がカタカナのみの語でないか、が検討される。
【0085】
なお、前述のとおり、品詞は1以上の階層を有している(図4参照)。「品詞が「地域」であるか」の判定においては、いずれかの階層に「地域」という分類を有している場合には、「その品詞は「地域」である」と判定される。「国」、「助数詞」など、他の品詞の分類について判定を行う場合も同様である。
【0086】
また、語に対する品詞の割り当ての際に参照されるデータベースにおいては、現実にある地名のうち、「地域」の品詞が割り当てられているのは、市町村レベルの名前までである。そして、たとえば「字」のあとに続く「大沢」など、市町村より下のレベルの地名については、「地域」の品詞は割り当てられておらず、「名詞−一般」が割り当てられている。
【0087】
文書データのうち、住所を表す語以外の語については、通常、品詞が「地域」ではない。このため、住所を表す語以外の語については、ステップS315の判断結果はNoとなる。また、たとえば、ステップS310で取得した語が「日本」の場合には、品詞が「国」であるため、ステップS315の判定結果はNoとなる。さらに、ステップS310で取得した語が「バージニア」の場合は、カタカナのみの語であるため、ステップS315の判定結果はNoとなる。
【0088】
判定結果がNoの場合には、処理はステップS310に戻る。そして、文書データから次の語が取得される。ステップS310で取得した語がステップS315の条件を満たす語となるまで、ステップS315〜S310の処理が繰り返される。
【0089】
一方、たとえば、語が「東京」の場合には、ステップS315の判定結果はYesとなる。判定結果がYesの場合には、処理はステップS320に進む。
【0090】
ステップS320では、ステップS310で取得した語を、新たな住所バッファAB(図1参照)に格納する。
【0091】
なお、地図アプリケーションサーバ100(住所リスト作成部112)は、メモリ120に複数の住所バッファABを有している。図7および図8の処理が行われると、1以上の住所バッファAB内に住所と推定される文字列が格納される。
【0092】
ステップS330では、文書データから次の語が取得される。ステップS335では、ステップS330で取得された語の品詞が「地域」(分類番号10〜12,30など)であるか、または語の文字が「東」、「西」、「南」、「北」、「大字」であるかが検討される。
【0093】
たとえば、ステップS330で取得された語が「都」、「道」、「府」、「県」、「区」や「神奈川」、「千代田」、「丸の内」の場合は、品詞が「地域」であるので、ステップS335の判定結果はYesとなる。また、ステップS330で取得された語が、前述の「東神奈川」の一部である「東」である場合にも、ステップS335の判定結果はYesとなる。判定結果がYesの場合には、処理はステップS340に進む。
【0094】
ステップS340では、ステップS330で取得した語を、住所バッファABに追加する。ステップS340で住所バッファABに格納される語は、ステップS320で住所バッファABに格納された語に続けてその住所バッファABに格納される。以下、「住所バッファABに追加する」と記述する場合、同様の処理が行われる。
【0095】
ステップS350では、文書データから次の語が取得される。その後、処理は、ステップS335に戻る。すなわち、ステップS335の条件を満たす語が続く限り、ステップS350,S340の処理にしたがって、それらの語は順に住所バッファABに格納される。
【0096】
一方、ステップS335の判定結果がNoとなった場合には、処理は、ステップS355に進む。ステップS335の判定結果がNoとなる場合とは、ステップS330で取得された語の品詞が「地域」ではなく、かつ、語の文字が「東」、「西」、「南」、「北」、「大字」でもない場合である。
【0097】
ステップS355では、ステップS330またはS350で取得した語の品詞が「数」(分類番号19)であるか、または検討対象の語が「字」(あざ)であるかが検討される。
【0098】
ステップS355の判定結果がYesの場合は、処理はステップS360に進む。ステップS360では、検討対象の語(数字または「字」(あざ))を、住所バッファABに追加する。ステップS370では、文書データから次の語が取得される。
【0099】
なお、ステップS355の判定結果がYesとなったということは、文書データ中で連続する1以上の語であって、かつ地域を表す1以上の語がすべて住所バッファABに格納された後(ステップS335,S340,S350)、それらに続いて、数字または「字」(あざ)の字が現れたということである。よって、この後に続く文字列は、たとえば「○丁目×番地△号」や「(字)大沢」といった、町域以下の住所を表す文字列であると推定できる。
【0100】
なお、「町域」とは、住所を表す語であって、「丁目」レベルの地域を表す語である。これに対して、「街区」とは、住所を表す語であって、「番地」レベルの地域を表す語である。「号」とは、住所を表す語であって、「号」レベルの地域を表す語である。
【0101】
一方、ステップS355の判定結果がNoの場合は、処理はステップS390に進む。
【0102】
なお、ステップS355の判定結果がNoとなったということは、文書データ中で連続する1以上の語であって、かつ地域を表す1以上の語がすべて住所バッファABに格納された後(ステップS335〜S350)、数字または「字」(あざ)の字が現れなかったということである。このような場合は、この後に続く文字列は、「字◇◇」、「○丁目」、「×番地」、「△号」といった、町域以下の情報を持っていないと推定できる。すなわち、住所文字列は終了したと推定できる。よって、後述するように、ステップS320で開始された住所バッファABへの文字列の蓄積は終了する(ステップS390参照)。
【0103】
図8のステップS375では、検討対象の語、すなわち最後に取得した語の品詞が、「地域」(分類番号10〜12,30など)であり、かつ、「品詞が「国」(分類番号12)でなく、かつ、取得した語がカタカナのみの語でない、か否かが検討される。ステップS375における判定の内容は、ステップS315における判定の内容と同じである。判定結果がYesの場合は、処理はステップS380に進む。
【0104】
なお、ステップS375の判定結果がYesとなったということは、以下のような意味を有する。すなわち、すでに文字列中に数字または「字」(あざ)の字が現れ、その後、町域以下の住所を表す文字列が現れると推定されたにもかかわらず(ステップS355においてYes)、数字や「丁目」等ではなく、より広い地域を表す語(たとえば、「東京」)が現れたということである。このような場合としては、たとえば、文字データが複数の住所の列挙を含んでいる場合がある。「丁目」以下の情報を持たない住所の文字列に続いて、次の住所の文字列が並んでいる場合である。
【0105】
ステップS380では、住所バッファABに格納されている文字列を住所リストデータAL(図1参照)に追加する。住所リストデータALに追加される文字列は、複数の語によって構成される文字列である。その後、処理はステップS320に戻る(図7および図8の[C]参照)。すなわち、ステップS320において、ステップS375においてYesと判定された語、すなわち、次の住所の先頭の語であると推定できる語が、新たな住所バッファABに格納される。
【0106】
一方、ステップS375の判定結果がNoの場合は、処理はステップS385に進む。
【0107】
ステップS385では、検討対象の語の品詞が「数」(分類番号19)、「助数詞」(分類番号35)、「接尾−一般」(分類番号28)、「記号−一般」(分類番号77)、もしくは「名詞−一般」(分類番号2)のいずれかであるか、または、検討対象の語が、「の」、「−」(全角マイナス)、「-」(半角マイナス)、「‐」(ハイフン)、「B」、「F」、「階」、「東」、「西」、「南」、もしくは「北」のいずれかであるかが検討される。
【0108】
なお、「助数詞」とは、図4に示すように、「丁目」、「番」などの、数に続いて示され、数の単位を表す語である。「B」、「F」、「階」も、同様に、数に続いて示され、数の単位を表す語である。
【0109】
「接尾−一般」とは、「号」などのように、名詞の後に表示され名詞の属性を表す所定の語である。「記号−一般」とは、記号を表す語である。「名詞−一般」とは、名詞である。「の」、「−」(全角マイナス)、「-」(半角マイナス)、「‐」(ハイフン)は、数に続いて表示され、数の接続を表す語である。「東」、「西」、「南」、「北」は、名詞の前および後の少なくとも一方に表示され名詞を修飾する語である。
【0110】
ステップS385の判定結果がYesの場合は、処理はステップS360に戻る(図7および図8の[D]参照)。ステップS360、S370,S375,S385,S360のループにおいて、町域以下の住所を表す文字列が、順に住所バッファABに蓄積される。
【0111】
一方、ステップS385の判定結果がNoの場合は、処理はステップS390に進む。
【0112】
なお、ステップS385の判定結果がNoとなったということは、町域以下の住所を表す文字列が、すべて住所バッファABに蓄積され、住所を表す文字列が終了したと推定できる。
【0113】
ステップS390では、住所バッファABに格納されている文字列を住所リストデータALに追加する。
【0114】
ステップS395では、文書データ中のすべての語についてステップS315〜S385の検討を終了したか否かを検討する。判定結果がNoである場合には、処理は、ステップS310に戻る(図7および図8の[E]参照)。判定結果がYesである場合には、図7および図8の処理(図3のステップS30の処理)は、終了する。
【0115】
図7および図8の処理を行うことで、文字からなる文書データ中からさまざまな詳細さおよび表記方法で記載された住所文字列を抽出することができる。
【0116】
A4.住所文字列の詳細さの評価:
図9〜図11は、図3のステップS40の詳細な処理を示すフローチャートである。図3のステップS40では、住所リストデータAL(図1参照)の住所文字列について詳細度が決定される。図3のステップS40では、図9〜図11の処理が、各住所文字列について実行される。図9〜図11の処理では、住所文字列について、住所の一部であり区域を表す所定の語であって、互いに異なる複数の階層の区域に属する所定の語を含むか否かが、順に検討される。
【0117】
図9のステップS405では、住所文字列中に「都」、「道」、「府」、「県」のいずれかの文字が含まれるか、が判定される。判定結果がYesの場合は、ステップS410において都道府県フラグがONにされる。都道府県フラグがONであるということは、住所文字列中に都道府県レベルの住所の情報が含まれていることを表す。
【0118】
ステップS410の後、処理はステップS415に進む。ステップS405において判定結果がNoであった場合も、同様に処理はステップS415に進む。
【0119】
なお、図9〜図11で説明する各フラグは、メモリ120内に格納される。また、初期状態において各フラグはOFFである。
【0120】
ステップS415では、住所文字列中に「京都府」の文字が含まれるか、が判定される。判定結果がYesの場合は、ステップS420において京都フラグがONにされる。京都フラグがONであるということは、住所文字列が表す住所が京都府または京都市の住所であることを表す。京都市の住所は、「四条河原町西入る」等の、他の地域とは異なる独自の表記がなされることがある。
【0121】
ステップS420の後、処理はステップS425に進む。ステップS415において判定結果がNoであった場合も、同様に処理はステップS425に進む。
【0122】
ステップS425では、住所文字列中に「市」、「町」、「村」のいずれかの文字が含まれるか、が判定される。判定結果がYesの場合は、ステップS430において市町村フラグがONにされる。市町村フラグがONであるということは、住所文字列中に市町村レベルの住所の情報が含まれていることを表す。
【0123】
ステップS430の後、処理はステップS435に進む。ステップS425において判定結果がNoであった場合も、同様に処理はステップS435に進む。
【0124】
ステップS435では、住所文字列中に「京都市」の文字が含まれるか、が判定される。判定結果がYesの場合は、ステップS440において京都フラグがONにされる。
【0125】
ステップS440の後、処理はステップS445に進む。ステップS435において判定結果がNoであった場合も、同様に処理はステップS445に進む。
【0126】
ステップS445では、住所文字列中に「丁目」の文字が含まれるか、が判定される。判定結果がYesの場合は、ステップS450において町域フラグがONにされる。町域フラグがONであるということは、住所文字列中に、「○丁目×番地△号」のうちの丁目レベルの住所の情報が含まれていることを表す。
【0127】
ステップS450の後、処理はステップS455に進む。ステップS445において判定結果がNoであった場合も、同様に処理はステップS445に進む。
【0128】
ステップS455では、京都フラグがONであるか、が判定される。判定結果がYesである場合には、処理は図10のステップS505に進む。一方、判定結果がNoである場合には、処理は図9のステップS465に進む。
【0129】
ステップS465では、住所文字列中に「番」の文字が含まれるか、が判定される。判定結果がYesの場合は、ステップS470において街区フラグがONにされる。街区フラグがONであるということは、住所文字列中に、「○丁目×番地△号」のうちの番地レベルの住所の情報が含まれていることを表す。
【0130】
ステップS470の後、処理はステップS475に進む。ステップS465において判定結果がNoであった場合も、同様に処理はステップS475に進む。
【0131】
ステップS475では、住所文字列中に「号」の文字が含まれるか、が判定される。判定結果がYesの場合は、ステップS480において号フラグがONにされる。号フラグがONであるということは、住所文字列中に、「○丁目×番地△号」のうちの号レベルの住所の情報が含まれていることを表す。
【0132】
ステップS480の後、処理はステップS485に進む。ステップS475において判定結果がNoであった場合も、同様に処理はステップS485に進む。
【0133】
以上で説明したステップS405,S425,S445,S465,S475では、上位の区域を表す語(たとえば、「都」、「道」、「府」、「県」)から下位の区域を表す語(たとえば、「号」)に向かう順番で、順に、区域を表す所定の語を含むか否かが検討され、各判定結果がフラグのON/OFFで記憶される。
【0134】
ステップS485では、住所文字列中において、数字と、「−」(全角マイナス)、「-」(半角マイナス)、または「‐」(ハイフン)とが、2個以上続いているか否か判定される。たとえば、住所文字列中において「3−」、「3-」、「3‐」などの文字列があれば、判定結果はYesとなる。ステップS485の判定結果がYesである場合は、処理は、図11のステップS610に進む。
【0135】
ステップS485の判定結果がYesであるという場合には、住所文字列において、「○丁目×番地△号」の情報の少なくとも一部が、数字をハイフンやマイナスでつなげた表記で表されていると推定できる。たとえば、「4丁目3−1」と表記されている場合である。
【0136】
一方、ステップS485の判定結果がNoである場合は、処理は、図9のステップS490に進む。
【0137】
ステップS485の判定結果がNoであるという場合には、住所文字列において、「○丁目×番地△号」の情報は、数字をハイフンやマイナスでつなげた表記で表されていないと推定できる。すなわち、ステップS475までの処理で、住所の情報のすべてについて検討され、検討結果が各フラグに反映されていると考えることができる。
【0138】
ステップS490では、都道府県フラグ、市町村フラグ、町域フラグ、街区フラグ、号フラグのON/OFFに基づいて、住所文字列の詳細度が決定される。
【0139】
具体的には、号フラグがONである場合には、その住所文字列の詳細度は5である。街区フラグがONである場合には、その住所文字列の詳細度は4である。町域フラグがONである場合には、その住所文字列の詳細度は3である。市町村フラグがONである場合には、その住所文字列の詳細度は2である。都道府県フラグがONである場合には、その住所文字列の詳細度は1である。複数のフラグがONである場合には、対応する詳細度のうちのより高い詳細度がその住所文字列に割り当てられる。このように決定された詳細度を表す詳細レベルデータがメモリ120に格納される。
【0140】
すなわち、住所文字列の詳細度は、住所文字列に含まれる地域を表す語の最も下位の階層に基づいて決定される。このような処理を行うことで、住所文字列に対する詳細度を客観的に決定することができる。
【0141】
図10は、住所文字列において京都の住所表記がされている場合(図9のステップS415,S435,S455参照)の、その住所文字列の詳細度の検討の処理を示すフローチャートである。図10の処理は、図9のステップS455の判定結果がYesである場合に実行される(図9,図10の[I]参照)。
【0142】
ステップS505では、住所文字列に「上る」、「下る」、「東入る」、「西入る」、「南入る」、「北入る」、「上ル」、「下ル」、「東入ル」、「西入ル」、「南入ル」、「北入ル」の文字があるか否かが判定される。判定結果がYesである場合には、ステップS510において、町域フラグがONにされる。
【0143】
すなわち、住所文字列の詳細さの検討において、「上る」、「下る」、「東入る」、「西入る」、「南入る」、「北入る」、「上ル」、「下ル」、「東入ル」、「西入ル」、「南入ル」、「北入ル」の表記があるという事実は、京都フラグがONでないときに「丁目」の表記があるという事実と同じ程度に評価される。その後、処理は、図9のステップS465に戻る(図9,図10の[K]参照)。
【0144】
ステップS455,S505,S510の処理を行うことで、住所文字列において京都独自の住所表記がされている場合にも、その住所文字列の詳細度さ評価することができる。
【0145】
なお、京都の住所を表記する場合にも、通常の「○丁目×番地△号」のような方式で表記することがある。本実施例においては、ステップS455,S505,S510の処理の後、通常のステップS465が行われる。このため、京都の住所が通常の「○丁目×番地△号」のような方式で表記されている場合にも、住所文字列の詳細さを評価することができる。
【0146】
図11は、住所文字列において丁目、番地、号が、ハイフン等でつながれて表記されている場合の、その住所文字列の詳細度の検討の処理を示すフローチャートである。図11の処理は、ステップS485の判定結果がYesである場合に実行される(図9,図10の[J]参照)。
【0147】
ステップS610では、図9のステップS485で検出された、数字と、「−」、「-」または「‐」等(全角または半角のマイナスまたはハイフン)と、で構成される2個以上の文字列が、マイナスやハイフンの部分で分割される。
【0148】
ステップS615では、分割結果が3個であるか、が判定される。判定結果がYesである場合には、処理は、ステップS620に進む。ステップS615の判定結果がYesであるということは、住所文字列において、「○丁目×番地△号」が「○−×−△」等と表記されているということである。なお、以下、全角または半角のマイナスまたはハイフンのうち、全角マイナスを例として使用して、住所表記の説明を行う。
【0149】
ステップS620では、町域フラグ、街区フラグ、および号フラグがONとされる。その後、処理は、図9のステップS490に進む(図9,図11の[L]参照)。
【0150】
ステップS615の判定結果がNoである場合には、処理は、ステップS625に進む。
【0151】
ステップS625では、分割結果が2個であるか、が判定される。判定結果がYesである場合には、処理は、ステップS627に進む。ステップS625の判定結果がYesであるということは、住所文字列において、「○丁目×番地」が「○−×」と表記されているか、「○丁目×番地△号」が「○丁目×−△」等と表記されているということである。
【0152】
ステップS627では、住所文字列に「丁目」レベルの情報が含まれるか否かを表す町域フラグがONとなっているか、が判定される。判定結果がYesである場合には、処理は、ステップS630に進む。ステップS627の判定結果がYesであるということは、住所文字列において、「○丁目×番地△号」が「○丁目×−△」等と表記されているということである。
【0153】
ステップS630において、「番地」レベルの情報に対応する街区フラグ、および「号」レベルの情報に対応する号フラグがONとされる。その後、処理は、図9のステップS490に進む(図9,図11の[L]参照)。
【0154】
ステップS627の判定結果がNoである場合には、処理は、ステップS640に進む。ステップS627の判定結果がNoであるということは、住所文字列において、「号」レベルの情報は含まれておらず、「○丁目×番地」が「○−×」と表記されている、ということである。
【0155】
ステップS640において、「丁目」レベルの情報に対応する町域フラグ、および「番地」レベルの情報に対応する街区フラグがONとされる。その後、処理は、図9のステップS490に進む(図9,図11の[L]参照)。
【0156】
一方、ステップS625の判定結果がNoである場合には、処理は、ステップS645に進む。ステップS625の判定結果がNoであるということは、ステップS485で検出された、数字と、全角または半角のマイナスまたはハイフンと、で構成される2個以上の文字列が、一つの数字と、一つの全角または半角のマイナスまたはハイフンとで構成されることを意味する。
【0157】
ステップS645では、住所文字列に「番地」レベルの情報が含まれるか否かを表す街区フラグがONとなっているか、が判定される。判定結果がYesである場合には、処理は、ステップS650に進む。ステップS645の判定結果がYesであるということは、住所文字列において、「×番地△号」が「×番地−△」等と表記されているということである。
【0158】
ステップS650において、「号」レベルの情報に対応する号フラグがONとされる。その後、処理は、図9のステップS490に進む(図9,図11の[L]参照)。
【0159】
一方、ステップS645の判定結果がNoである場合には、処理は、ステップS655に進む。
【0160】
ステップS655では、住所文字列に「丁目」レベルの情報が含まれるか否かを表す町域フラグがONとなっているか、が判定される。判定結果がYesである場合には、処理は、ステップS660に進む。ステップS655の判定結果がYesであるということは、住所文字列において、「○丁目×番地」が「○丁目−×」等と表記されているということである。
【0161】
ステップS660において、「番地」レベルの情報に対応する街区フラグがONとされる。その後、処理は、図9のステップS490に進む(図9,図11の[L]参照)。
【0162】
一方、ステップS655の判定結果がNoである場合には、処理は、ステップS670に進む。ステップS655の判定結果がNoであるということは、住所文字列において、「○丁目」が「−○」等と表記されているということである。
【0163】
ステップS670において、「丁目」レベルの情報に対応する町域フラグがONとされる。その後、処理は、図9のステップS490に進む(図9,図11の[L]参照)。
【0164】
図9のステップS405〜S475の処理においては、住所文字列について、上位の階層の区域を表す語から下位の階層の区域を表す語に向かう順番で、順に、区域を表す所定の語を含むか否かを検討される。そして、図11の処理においては、住所文字列中の全角または半角のマイナスまたはハイフンで結ばれた数については、それらの個数(図11のステップS615,S625参照)、ならびにそれまでに検出された町域の階層に含まれる語の有無を表す町域フラグのON/OFF、およびそれまでに検出された街区の階層に含まれる語の有無を表す街区フラグのON/OFFに基づいて(図11のステップS627,S645,S655参照)、町域フラグ、街区フラグ、および号フラグをONまたはOFFとする(同、ステップS630,S640,S650,S660,S670参照)。このため、「○丁目×番地△号」のような情報の一部または全部が、ハイフン等でつながれた数字で表されている住所文字列についても、正確に詳細さを評価することができる。
【0165】
B.第2実施例:
第2実施例においては、図3のステップS40で住所文字列の詳細度を決定した後、ステップS45の処理を行う前に、さらに、他の要素を考慮して詳細度を改変する。また、地図アプリケーションサーバ100(図1参照)は、電話番号と、その電話番号の所有者または店舗名、およびその住所と、を関連づけて保持する電話番号データベースを有する。第2実施例の他の点は、第1実施例と同じである。
【0166】
図12は、地図アプリケーションサーバが詳細度を改変する処理S42を示すフローチャートである。図12の処理S42は、図3のステップS40とステップS45の間に行われる。なお、図12の処理S42は、CPU110の機能部としての住所文字列検討部112が実現する。
【0167】
ステップS710では、図3のステップS10で取得した文書データから、電話番号が取得される。電話番号は、たとえば、全角または半角の「‐」(ハイフン)、「−」(マイナス)または「)」(カッコ)以外の文字を間に含まない、全角または半角の10個の連続する数字の文字列を検索することで、文書データから抽出することができる。
【0168】
ステップS720では、地図アプリケーションサーバ100は、電話番号データベースを参照して、ステップS710で取得した電話番号に対応する店舗名または所有者、ならびに住所を取得する。
【0169】
ステップS725では、図3のステップS10で取得した文書データ中に、図12のステップS720で取得した店舗名または所有者、ならびに住所が存在するか否かを判定する。文書データ中に店舗名または所有者、ならびに住所が存在する場合は、処理はステップS730に進む。文書データ中に店舗名も所有者も存在しない場合、および文書データ中に住所が存在しない場合は、処理は、終了する。なお、図12には示していないが、ステップS720で、電話番号に対応する電話番号の店舗名または所有者、ならびに住所を取得できなかった場合も、処理は終了する。
【0170】
ステップS730では、図3のステップS40で決定した住所文字列の詳細度を改変する。具体的には、住所文字列の詳細度をより高い詳細度に改変する。第2実施例においては、詳細度を2だけ上げる。その後、処理を終了する。
【0171】
ブログやホームページの記事において電話番号を正確に記述するユーザは、同時に、記事中で高精度の店舗評価を行っていると推定できる。このため、第2実施例のような態様とすることで、高精度な店舗評価を行っていると推定できるブログやホームページの文書データを選んで、それらに基づいて記事リンク地図データベースMDBを生成することができる。このため、精度の高い記事リンク地図データベースMDBを生成することができる。
【0172】
C.第3実施例:
第3実施例においても、図3のステップS40で住所文字列の詳細度を決定した後、ステップS45の処理を行う前に、さらに、他の要素を考慮して詳細度を改変する。また、第3実施例においては、図3のステップS10で、閲覧用データ中からリンク先を表すリンク先データが取得される。第3実施例の他の点は、第1実施例と同じである。
【0173】
図13は、地図アプリケーションサーバが詳細度を改変する処理S43を示すフローチャートである。図13の処理S43は、図3のステップS40とステップS45の間に行われる。なお、図13の処理S43は、CPU110の機能部としての住所文字列検討部112が実現する。
【0174】
ステップS810では、ステップS10で取得されたリンク先データが表すリンク先のページからリンク先文書データを取得する。なお、第3実施例においては、図3のステップS10で、あらかじめ、閲覧用データの中からリンク先を表すリンク先データが取得されている。
【0175】
ステップS810では、具体的には、リンク先のページであってインターネット上のサーバに格納されているページから、htmlデータを収集する。そして、その中から文字のデータのみを抽出して、リンク先文書データを生成する。ステップS810の処理の内容は、リンク先のページからデータを取得する点以外は、図3のステップS10の処理と同様である。
【0176】
ステップS820では、リンク先文書データの文を語に分解する。ステップS820の処理は、リンク先文書データを対象とする点以外は、図3のステップS20の処理と同様である。
【0177】
ステップS830では、ステップS820で語に分解され、それぞれ品詞が対応づけられたリンク先文書データから、住所文字列を抽出して、リンク先住所リストデータを作成する。ステップS830の処理は、リンク先文書データを対象としてリンク先住所リストデータを作成する点以外は、図3のステップS30の処理と同様である。
【0178】
ステップS835では、ステップS830で生成したリンク先住所リストデータと、図3のステップS30で生成した住所リストデータとを照合して、両者に同じ住所文字列が含まれているか否かを判定する。リンク先住所リストデータと住所リストデータに同じ住所文字列が含まれている場合は、処理はステップS840に進む。同じ住所文字列が含まれていない場合は、処理は終了する。なお、図13には示していないが、ステップS830で、住所文字列が抽出されなかった場合も、処理は終了する。
【0179】
ステップS840では、図3のステップS40で決定した住所文字列の詳細度を改変する。具体的には、住所文字列の詳細度をより高い詳細度に改変する。第3実施例においては、詳細度を2だけ上げる。その後、処理を終了する。
【0180】
ブログやホームページの記事においてリンク先に記載された住所を正確に引き写すユーザは、同時に、記事中で高精度の店舗評価を行っていると推定できる。このため、第3実施例のような態様とすることで、高精度な店舗評価を行っていると推定できるブログやホームページの文書データを選んで、それらに基づいて記事リンク地図データベースMDBを生成することができる。このため、精度の高い記事リンク地図データベースMDBを生成することができる。
【0181】
D.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。なお、以下に示す変形例、および上記の第1〜第3実施例は、適宜組み合わせて本願発明を実現することができる。たとえば、詳細度の決定において第2実施例の図12の処理と第3実施例の図13の処理を両方行うことで、より精度の高いデータベースを生成することができる。
【0182】
D1.変形例1:
上記実施例においては、文書データは、インターネット上で公開されているブログやホームページに記載された記事のデータである。しかし、文書データは、たとえば、社内ネットワークにおいて入手可能なデータなど、他のデータとすることもできる。すなわち、文書データは、何らかの方法で入手可能な任意の文書データとすることができる。そのような文書データは、住所を表す文字列である住所文字列を含むことが好ましい。そして、そのような文書データは、記事文字列として、店舗の紹介や評価に関する記事を含むことが好ましい。
【0183】
D2.変形例2:
上記実施例では、レストランの評価記事を例に閲覧用データPD1,PD2の記事ページの説明を行った。しかし、閲覧用データPD1,PD2の記事ページは、食料品や日用品を販売する店舗に関する記事であってもよいし、映画館で上映されている映画の映画評であってもよい。すなわち、記事ページおよび記事ページに基づいて生成できる文書データは、住所によって場所を特定することができる任意の店舗に関する記事を含むものとすることができる。
【0184】
D3.変形例3:
上記実施例では、住所文字列の詳細度を決定して、その詳細度に基づいて文書データを選択している(図3のステップS40,S45参照)。しかし、文書データの選択は、直接、住所文字列の詳細さを表すフラグなどのデータに基づいて行ってもよい。すなわち、文書データの選択は、詳細度に限らず、住所文字列の詳細さの検討結果を表す任意の形式の詳細レベルデータに基づいて行うことができる。
【0185】
D4.変形例4:
上記実施例では、一つの文書データの中から最も詳細度の高い住所文字列が選択される(図3のステップS50参照)。しかし、住所文字列を選択する際には、詳細度が所定のしきい値以上である1以上の住所文字列を選択することができる。また、住所文字列を選択する際には、最も詳細度の高い住所文字列から、2以上の所定数だけ選択することもできる。さらに、住所文字列を選択する際には、最も高い詳細度を有する住所文字列すべてを選択することもできる。
【0186】
D5.変形例5:
上記実施例では、文書データのurlを取得し(図3のステップS10)、住所文字列の緯度および経度と関連づけてデータベースに格納している(同、ステップS60)。しかし、緯度および経度と関連づけてデータベースに格納するデータは、uri(Uniform Resource Identifier)など、他の記述方式によるものでもよい。すなわち、緯度および経度の情報と関連づけてデータベースに格納するデータは、文書データの所在を表すデータであれば、任意の形式のものとすることができる。
【0187】
D6.変形例6:
上記実施例における住所文字列の詳細どの決定は、住所文字列中の前から順に、階層の異なる所定の語(「都」、「道」、「府」、「県」や「市」、「町」、「村」)に該当するか否かを検討することが好ましい。すなわち、ある住所文字列に「都」の文字があった場合には(図9のステップS405がYes)、その後、その住所文字列中でその「都」の文字より後ろの部分において、次の階層の「市」、「町」、または「村」の文字があるか否かについて検討する(ステップS425参照)ことが好ましい。
【0188】
また、上記実施例では、「地域」の品詞が割り当てられているのは、市町村レベルの名前までである。そして、たとえば「字」のあとに続く「大沢」など、市町村より下のレベルの地名については、「地域」の品詞は割り当てられていない。しかし、市町村レベルより下の住所についても、「地域」の品詞を割り当てる態様とすることもできる。そのような態様においては、図8のステップS385においては、「品詞が「地域」である」、という条件を、選択的な条件の一つとして有することが好ましい。
【0189】
D7.変形例7:
上記実施例では、あらかじめ定められたサーバの閲覧用データから文書データを生成してデータベースを生成し、その後に、そのデータベースを利用したサービスが提供された。しかし、データベースの生成および更新と、そのデータベースを利用したサービスの提供とは、並行して行うこともできる。そのような態様においては、サーバの閲覧用データへのアクセスは、所定の時間(たとえば5分、10分、30分など)内にアクセス可能な所定の回数のしきい値(たとえば、100回、500回、1000回など)を超えないような頻度で行われることが好ましい。
【0190】
D8.変形例8:
上記実施例では、サーバ100のハードウェア構成については、CPU100とメモリ120のみについて言及している。このCPU100は、単一のCPUで構成されることもでき、複数のCPUで構成されることもできる。また、メモリ120は、半導体メモリとすることもでき、固定ディスクや書き込み可能な他の記録媒体とすることもできる。
また、それらのCPU100とメモリ120の構成は、単一のサーバ内に格納されていてもよく、ネットワークを介して接続された複数の装置として設けられていてもよい。
【0191】
同様に、CPUの各機能部も、単一のサーバ内のCPUによって実現されることもでき、ネットワークで接続された複数の装置のCPUが、それぞれ所定の機能部を実現する態様とすることもできる。また、各機能部自体も、単一のCPUで実現されてもよく、複数のCPUで実現されてもよい。
【0192】
さらに、アプリケーションサービスプロバイダのサーバについても、一つの閲覧用データは、一つのサーバ内に格納されていてもよいし、2以上のサーバに分散されて格納されていても良い。
【0193】
D9.変形例9:
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【0194】
このような機能を実現するコンピュータプログラムは、フロッピディスクやCD−ROM、DVD等の、コンピュータ読み取り可能な記録媒体に記録された形態で提供される。ホストコンピュータは、その記録媒体からコンピュータプログラムを読み取って内部記憶装置または外部記憶装置に転送する。あるいは、通信経路を介してプログラム供給装置からホストコンピュータにコンピュータプログラムを供給するようにしてもよい。コンピュータプログラムの機能を実現する時には、内部記憶装置に格納されたコンピュータプログラムがホストコンピュータのマイクロプロセッサによって実行される。また、記録媒体に記録されたコンピュータプログラムをホストコンピュータが直接実行するようにしてもよい。
【0195】
この明細書において、ホストコンピュータとは、ハードウェア装置とオペレーションシステムとを含む概念であり、オペレーションシステムの制御の下で動作するハードウェア装置を意味している。コンピュータプログラムは、このようなホストコンピュータに、上述の各部の機能を実現させる。なお、上述の機能の一部は、アプリケーションプログラムでなく、オペレーションシステムによって実現されていても良い。
【0196】
なお、この発明において、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスクやCD−ROMのような携帯型の記録媒体に限らず、各種のRAMやROM等のコンピュータ内の内部記憶装置や、ハードディスク等のコンピュータに固定されている外部記憶装置も含んでいる。
【符号の説明】
【0197】
100…地図アプリケーションサーバ
110…CPU
111…文書データ取得部
112…住所文字列検討部
113…文書データ選択部
114…データベース生成部
115…サービス提供部
120…メモリ
200…クライアント
210…液晶ディスプレイ
220…キーボード
230…マウス
A10…地図が表示される領域
A20…入力窓と検索ボタンが表示される領域
A21…入力窓
A22…検索ボタン
A30…文書データの一部が表示される領域
AB…住所バッファ
AL…住所リストデータ
AS1,AS2…サーバ
BL…地図上に表示されるバルーン
INT…インターネット
MDB…記事リンク地図データベース
PD1,PD2…閲覧用データ
【技術分野】
【0001】
この発明は、文書データが表す情報の質を評価する技術に関する。
【背景技術】
【0002】
インターネットの利用が一般に普及したことにより、商品やサービスを提供する様々な店舗に関して、一般の消費者が評価を行い、その評価の情報をインターネット上で公開するようになっている。しかし、それらインターネット上で公開されている情報には、第三者の役には立たない不正確なものも含まれる。このため、インターネット上で公開されている情報の中から高精度な情報を抽出することは容易ではない。
【0003】
ある従来技術においては、ホームページ103から主に記述されている情報に関する住所、地名、建物名、企業名、団体名もしくはそれらを導出する語句を抽出し、複数の地図データベース108、情報データベース109内におけるその情報を検索する。そして、最良の候補を求め、ホームページ103と地図上の情報の対を作成する。また、最良と選択された地図上の上から緯度経度もしくは地図特有の直角座標系の座標値を求め、ホームページ103と地図上の情報と座標値の組合わせを作成し、座標付きホームページ情報データベース110へ転送する。
【0004】
この技術においては、転送されたホームページ103を、デザイン、記述されている情報の公共性及び知名度、情報更新頻度及びホームページ作成者もしくは発信者の本人性及び信頼度で評価する。記述されている情報に関する評価は、一般品詞辞書及び固有名詞辞書112、各種の情報データベース109も参照して、いくつの情報源にその情報が紹介されているかという情報の出現頻度及び項目の大きさ等による公共性及び知名度の判断、ホームページファイルの作成時間の継続的監視によって求める。ホームページ作成者もしくは発信者の本人性及び信頼度に関する評価は、ホームページ103中での情報の記述方法、地図データベース108中及び各種の情報データベース109中での存在の有無、記述情報に関する検索サービス提供装置からの検索結果をそれぞれ得点化し、デザイン評価における得点とを足し合わせて評価する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2000−339330号公報
【0006】
しかし、上記の技術においては、ホームページの評価は、ホームページ上の情報の、他の既存のデータベース中における存在の有無、存在頻度、項目の大きさ等により行っている。このため、たとえばブログ(Weblog)などに記載されているような、一般の消費者が自ら店舗におもむいて収集した最新の情報や、独自の用語や表現で記載された記事については、有意義な情報を含んでいても、高評価が得られない。このような問題は、文書が表す情報の質を評価する際に、広く生じうる。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明は、上記の問題の少なくとも一部を取り扱うものであり、複数の文書の中から信頼性の高い文書を選択することによって、信頼性の高い情報を提供できるようにすることを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明は、複数の文書データに基づいてデータベースを生成する際に、以下のような処理を行う。
(a)住所を表す文字列である住所文字列と、店舗に関する記述である記事文字列と、を含む文書データを含む複数の文書データを準備する。
(b)住所文字列のデータを解析して、住所文字列が表す住所の詳細さを表す詳細レベルデータを生成する。
(c)詳細レベルデータに基づいて、複数の文書データの中から住所文字列を含む少なくとも一つの文書データを選択する。
(d)選択された文書データに基づいて、店舗に関するデータベースを生成する。
【0009】
文書中で住所を詳細に記述する作者は、文書中の他の記述についても正確かつ客観的に行っていると推定できる。よって、上記のような態様とすれば、複数の文書の中から信頼性の高い文書を選択し、その信頼性の高い文書に基づいて、信頼性の高い情報を有するデータベースを生成することができる。
【0010】
なお、工程(a)〜(d)は、コンピュータによって実行されることができる。たとえば、工程(a)は、第1のコンピュータが、第1のコンピュータとネットワークで接続された第2のコンピュータ(サーバ)が格納する原文書データから文字列のデータを取得することによって実行されることができる。そして、工程(b)は、第1のコンピュータが詳細レベルデータを生成し、所定の第1のメモリに格納することによって実行されることができる。さらに、工程(d)は、第1のコンピュータがデータベースを生成し、所定の第2のメモリに格納することによって実行されることができる。なお、第1と第2のメモリは、第1のコンピュータ内に設けられていてもよく、第1のコンピュータにネットワークを介して接続されている他の装置内に設けられていてもよい。
【0011】
なお、複数の文書データの中から住所文字列を含む少なくとも一つの文書データを選択する際には、少なくとも一つの文書データの一つとして、もっとも詳細な住所文字列を含む文書データを選択することが好ましい。
【0012】
上記(a)において、複数の文書データを準備する際には、以下のような処理を行うことが好ましい。すなわち、所定の契約をしたユーザに対して、文字列を含みユーザが作成した原文書データを、ネットワークを介して公開するサービスを提供するサービス提供者のサーバに、ネットワークを介してアクセスして、原文書データが含む前記文字列に基づいて前記文書データを生成する。
【0013】
このような態様とすれば、店舗と利害関係のないユーザによる店舗の記述を利用可能なデータベースを作成することができる。
【0014】
上記(d)において、店舗に関するデータベースを生成する際には、以下のような処理を行うことが好ましい。
(d1)住所文字列が表す地点の緯度および経度を特定する。
(d2)緯度および経度と、選択された文書データの前記住所文字列および前記記事文字列の取得先の情報と、を互いに関連づけて含むデータベースを作成する。
【0015】
このような態様とすれば、店舗に関する記述と、店舗の場所と、の両方の情報を容易に入手できるデータベースを作成することができる。
【0016】
なお、さらに、データベースを利用したサービスを提供する際には、以下のような処理を行うことが好ましい。
(e1)所定の領域の地図を表す地図データを準備する。
(e2)地図データに基づく地図を表示する。
(e3)地図上の、住所文字列が表す地点の緯度および経度に相当する位置に、所定のマークを表示する。
(e4)ユーザからのマークの指定を受け取って、文書データの前記住所文字列および前記記事文字列の取得先を表すデータを提供する。
【0017】
上記(b)において、住所文字列が表す住所の詳細さを表す詳細レベルデータを生成する際には、以下のような処理を行うことが好ましい。
(b1)文書データが含む文字列を、それぞれ1以上の文字からなる複数の語に分解する。
(b2)文書データが含む語を順に検討し、文書データから住所文字列を抽出する。
【0018】
そして、上記(b2)において、住所文字列を抽出する際には、以下のような処理を行うことが好ましい。
(b3)文書データが含む第1の語が、地域を表す語であることを含む所定の第1の条件を満たす場合に、第1の語を住所バッファの先頭に格納する。
(b4)住所バッファに格納された語に続く第2の語が、所定の第2の条件を満たす場合に、第2の語を住所バッファに追加的に格納する。
(b5)第2の語が、第2の条件とは異なる所定の第3の条件を満たす場合に、住所バッファ内に格納された文字列を、住所文字列として抽出する。
【0019】
このような態様とすれば、個々の語を解析することによって、文書データから住所文字列を抽出することができる。なお、住所バッファ内の文字列を住所文字列として抽出する際の住所バッファは、「直前に語が格納された住所バッファ」とすることが好ましい。
【0020】
なお、上記(b5)において、住所バッファ内に格納された文字列を、住所文字列として抽出する際には、以下のような処理を行うことが好ましい。
第3の条件が満たされた場合として、
第2の語が、
(下位条件1)地域を表す語であること、
(下位条件2)「東」、「西」、「南」、「北」、「大字」のいずれかの文字を含むこと、
(下位条件3)数を表す語であること、
(下位条件4)「字」の文字を含むこと、
のいずれにも該当しない場合に、住所バッファ内の文字列を住所文字列として抽出する。
【0021】
このような態様とすれば、「丁目」レベル以下の情報を含まない住所文字列を、住所文字列として抽出することができる。
【0022】
また、上記(b5)において、住所バッファ内に格納された文字列を、住所文字列として抽出する際には、以下のような処理を行うことも好ましい。
第3の条件が満たされた場合として、第2の語が、第2の語の直前に上記(b2)において検討された語よりも上位の地域を表す語である場合に、住所バッファ内の文字列を住所文字列として抽出する。
【0023】
このような態様とすれば、文書データ中に2組の住所文字列が連続して記載されているときに、それらを一体の住所文字列ではなく、2組の住所文字列として処理することができる。
【0024】
さらに、上記(b5)において、住所バッファ内に格納された文字列を、住所文字列として抽出する際には、以下のような処理を行うことも好ましい。
第3の条件が満たされた場合として、
第2の語が、
(下位条件5)数を表す語であること、
(下位条件6)数に続いて表示され数の単位を表す所定の語であること、
(下位条件7)名詞の後に表示され名詞の属性を表す所定の語であること、
(下位条件8)記号であること、
(下位条件9)名詞であること、
(下位条件10)数に続いて表示され数の接続を表す所定の語であること、
(下位条件11)名詞の前および後の少なくとも一方に表示され名詞を修飾する所定の語であること、
のいずれにも該当しない場合に、住所バッファ内の文字列を住所文字列として抽出する。
【0025】
このような態様とすれば、「丁目」、「番地」または「号」レベルの情報を含む住所文字列を、住所文字列として抽出することができる。
【0026】
上記(b4)において、第2の語を住所バッファに追加的に格納する際には、以下のような処理を行うことが好ましい。
第2の条件が満たされた場合として、
第2の語が、
(下位条件12)地域を表すこと、
(下位条件13)「東」、「西」、「南」、「北」、「大字」のいずれかの文字を含むこと、
のいずれかを満たす場合に、第2の語を住所バッファに追加的に格納する。
【0027】
このような態様とすれば、「字」(あざ)のレベルや「丁目」レベルよりも上位の住所を表す文字列を、住所文字列の一部として抽出することができる。
【0028】
また、上記(b4)において、第2の語を住所バッファに追加的に格納する際には、以下のような処理を行うことも好ましい。
第2の条件が満たされた場合として、
第2の語が、
(下位条件14)数を表す語であること、
(下位条件15)「字」の文字を含むこと、
のいずれかを満たす場合に、第2の語を住所バッファに追加的に格納する。
【0029】
このような態様とすれば、「字」(あざ)の文字や、「丁目」レベル以下のレベルの住所を表す先頭の数字を、住所文字列の一部として抽出することができる。
【0030】
さらに、上記(b4)において、第2の語を住所バッファに追加的に格納する際には、以下のような処理を行うことも好ましい。
第2の条件が満たされた場合として、
第2の語よりも前に検討された語が、
(下位条件14)数を表す語であること、
(下位条件15)「字」の文字を含むこと、
のいずれか満たし、かつ、
第2の語が、
(下位条件5)数を表す語であること、
(下位条件6)数に続いて表示され数の単位を表す所定の語であること、
(下位条件7)名詞の後に表示され名詞の属性を表す所定の語であること、
(下位条件8)記号であること、
(下位条件9)名詞であること、
(下位条件10)数に続いて表示され数の接続を表す所定の語であること、
(下位条件11)名詞の前および後の少なくとも一方に表示され名詞を修飾する所定の語であること、
のいずれかを満たす場合に、第2の語を住所バッファに追加的に格納する。
【0031】
このような態様とすれば、「丁目」レベル以下の住所を表す文字列を、住所文字列の一部として抽出することができる。
【0032】
上記(b)において住所文字列が表す住所の詳細さを表す詳細レベルデータを生成する際には、さらに、以下のような処理を行うことが好ましい。
(b7)住所文字列について、住所の一部であり区域を表す所定の語であって、互いに異なる複数の階層の区域に属する複数の所定の語を含むか否かを検討する。
【0033】
そして、上記(c)において、複数の文書データの中から住所文字列を含む少なくとも一つの文書データを選択する際には、以下のような処理を行うことが好ましい。
(c1)住所文字列に含まれる所定の語の最も下位の階層に基づいて、文書データを選択する。
【0034】
このような態様とすれば、住所文字列について客観的に詳細さの評価を行うことができる。そして、住所文字列の詳細さについての客観的な評価に基づいて、内容が正確かつ客観的である可能性が高い文書データを選択することができる。なお、文書データを選択する際には、さらに、住所文字列に含まれる所定の語の数を考慮することも好ましい。
【0035】
なお、複数の階層が、町域の階層と街区の階層とを含むことがある。そのような態様において、上記(b7)で、住所文字列が所定の語を含むか否かを検討する際には、以下のような処理を行うことが好ましい。
(b8)住所文字列について、上位の階層の区域を表す語から下位の階層の区域を表す語に向かう順番で、上記の区域を表す所定の語を含むか否かを検討する。
【0036】
そして、上記(b8)において、上記の順番で、区域を表す所定の語を含むか否かを検討する際には、以下のような処理を行うことが好ましい。
住所文字列中の、全角または半角のマイナスまたはハイフンで結ばれた数については、
全角または半角のマイナスまたはハイフンで結ばれた数の個数、ならびに
それまでに検出された町域の階層に含まれる語の有無、およびそれまでに検出された街区の階層に含まれる語の有無
に基づいて、所定の語を含むか否かの評価と同等の評価を行う。
【0037】
このような態様とすれば、たとえば、文書データ中において、「丁目」レベル以下の住所が、「○丁目×番地△号」や、「○丁目×−△」や、「○−×−△」と表記されているいずれの場合にも、正確に住所の詳細さを評価することができる。
【0038】
なお、上記(c)において、文書データを選択する際には、さらに、以下のような処理を行うことが好ましい。
(c2)住所文字列が「京都府」または「京都市」の文字列を含む場合であって、かつ、「上る」、「下る」、「東入る」、「西入る」、「南入る」、「北入る」、「上ル」、「下ル」、「東入ル」、「西入ル」、「南入ル」、「北入ル」のいずれかの文字列を含む場合には、
住所文字列が「京都府」および「京都市」の文字列を含まない場合であって、かつ、「丁目」の文字列を含む場合と同等に評価する。
【0039】
このような態様とすれば、京都独特の住所表記がされている場合にも、そのような文字列について正確に住所の詳細さの評価を行うことができる。なお、「同等に評価する」とは、より具体的には、詳細さの評価において、同じ評価点を加算する、という態様や、同じフラグを立てる、という態様をとることができる。
【0040】
なお、以下のような処理を行うことも好ましい。
(e)前記文書データ中から電話番号を取得する。
(f)電話番号と住所文字列とが関連づけられて格納されているデータベースを参照しつつ、前記取得された電話番号と関連づけられた住所文字列が、前記文書データに含まれるか否かを決定する。
【0041】
そして、複数の文書データの中から少なくとも一つの文書データを選択する際には、以下のような処理を行うことが好ましい。すなわち、前記取得された電話番号と関連づけられた住所文字列を含む文書データを、前記取得された電話番号と関連づけられた住所文字列を含まない文書データに比べて優先的に、前記少なくとも一つの文書データとして選択する。
【0042】
電話番号を正確に記載する作者は、文書中の他の記述についても正確かつ客観的に行っていると推定できる。よって、上記のような態様とすれば、複数の文書の中から信頼性の高い文書を選択し、その信頼性の高い文書に基づいて、信頼性の高い情報を有するデータベースを生成することができる。
【0043】
また、前記原文書データが、文字列を含む参照文書データと前記原文書データとを関連づけるためのリンクデータを含む場合には、以下のような処理を行うことも好ましい。
(e)前記リンクデータに基づいて前記参照文書データを参照しつつ、前記参照文書データが含む前記文字列に基づいてリンク先文書データを生成する。
(f)前記文書データが含む前記住所文字列を前記リンク先文書データが含むか否かを決定する。
【0044】
そして、複数の文書データの中から少なくとも一つの文書データを選択する際には、以下のような処理を行うことが好ましい。すなわち、前記リンク先文書データが前記文書データの前記住所文字列を含む文書データを、前記リンク先文書データが前記文書データの前記住所文字列を含まない文書データに比べて優先的に、前記少なくとも一つの文書データとして選択する。
【0045】
文書を作成する際に参照したデータが含む住所文字列を正確に引き写す作者は、文書中の他の記述についても正確かつ客観的に行っていると推定できる。よって、上記のような態様とすれば、複数の文書の中から信頼性の高い文書を選択し、その信頼性の高い文書に基づいて、信頼性の高い情報を有するデータベースを生成することができる。
【0046】
なお、「AをBに比べて優先的に選択する。」とは、選択の際に考慮される他の評価パラメータがAとBにおいて同じである場合に、BではなくAを選択することを意味する。ある文書データを優先的に選択する方法としては、たとえば、その文書データの詳細レベルデータを、より高い詳細さを表す値に改変して、工程(c)を実行する態様とすることができる。たとえば、詳細さを表す値にさらに所定の値を加えてもよい。また、詳細さを表す値を定数倍してもよい。また、工程(c)を実行するに際して、「取得された電話番号と関連づけられた住所文字列を含むこと」と「リンク先文書データが文書データの住所文字列を含むこと」一方または両方を選択の際の必要条件とする態様とすることもできる。
【0047】
なお、本発明は、一態様として、たとえば以下のような、文書データの内容の正確さを推定または評価する方法として実現することもできる。この方法においては、以下のような処理が行われる。
(a)住所を表す文字列である住所文字列と、住所を表す文字列以外の文字からなる記事文字列と、を含む複数の文書データを準備する。
(b)住所文字列のデータを解析して、住所文字列が表す住所の詳細さを検討する。
(c)詳細さの検討結果に基づいて、文書データの内容の正確さを表す評価を決定する。
【0048】
なお、「評価を決定する」には、たとえば、以下のような態様が含まれる。(i)評価を表す値を決定すること。(ii)複数セットの文書データに対して、評価の高い順番を表す順位をそれぞれ決定すること。
【0049】
また、本発明は、一態様として、たとえば以下のような、文書データの選択方法として実現することもできる。この方法においては、以下のような処理が行われる。
(a)住所を表す文字列である住所文字列と、住所を表す文字列以外の文字からなる記事文字列と、を含む複数の文書データを準備する。
(b)住所文字列のデータを解析して、住所文字列が表す住所の詳細さを検討する。
(c)詳細さの検討結果に基づいて、複数の文書データの中から住所文字列を含む少なくとも一つの文書データを選択する。
なお、本発明は、種々の形態で実現することが可能であり、例えば、文書評価方法および文書評価装置、文書選択方法および文書選択装置、文書データ処理方法および文書データ処理装置、データベース提供方法およびデータベース提供装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体等の形態で実現することができる。
【図面の簡単な説明】
【0050】
【図1】本発明の地図情報提供システムの概略を示す図。
【図2】クライアント200で記事リンク地図データベースMDBを利用する際の、ディスプレイ210上の表示の一例を示す図。
【図3】地図アプリケーションサーバの処理を示すフローチャート。
【図4】本明細書における「品詞」の例を示す表。
【図5】文書データ中の住所の文字列について、ステップS20の処理結果の例を示す図。
【図6】文書データ中の住所の文字列について、ステップS20の処理結果の例を示す図。
【図7】図3のステップS30の詳細な処理を示すフローチャート。
【図8】図3のステップS30の詳細な処理を示すフローチャート。
【図9】図3のステップS40の詳細な処理を示すフローチャート。
【図10】住所文字列において京都の住所表記がされている場合の、その住所文字列の詳細度の検討の処理を示すフローチャート。
【図11】住所文字列において丁目、番地、号が、ハイフン等でつながれて表記されている場合の、その住所文字列の詳細度の検討の処理を示すフローチャート。
【図12】地図アプリケーションサーバが詳細度を改変する処理を示すフローチャート。
【図13】地図アプリケーションサーバが詳細度を改変する処理を示すフローチャートである。
【発明を実施するための形態】
【0051】
A.第1実施例:
A1.装置の構成および機能の概要:
図1は、本発明の地図情報提供システムの概略を示す図である。インターネットINTには、アプリケーションサービスプロバイダのサーバAS1,AS2が接続されている。アプリケーションサービスプロバイダは、所定の契約をしたユーザに対して、そのユーザが作成した文字列や画像を含むデータをインターネットを介して公開するサービスを提供している。サーバAS1,AS2には、それらの複数のユーザが作成した文字や画像を含むデータである閲覧用データPD1,PD2が格納されている。これら閲覧用データPD1,PD2は、インターネットに接続された他の機器から閲覧することができる。
【0052】
閲覧用データPD1,PD2は、具体的には、ウェブページやブログのデータである。これらのウェブページやブログには、しばしばユーザが利用したレストランなどの店舗についての評価記事が、その店舗の住所とともに掲載される。閲覧用データPD1,PD2の少なくとも一部のページのデータは、住所を表す文字列である住所文字列と、住所文字列以外の文字からなる記事文字列と、を含む文字、画像(静止画、動画を含む)、ならびに音声のデータを含む。
【0053】
また、インターネットINTには、地図アプリケーションサーバ100が接続されている。地図アプリケーションサーバ100は、CPU110、メモリ120等の構成を備えている。地図アプリケーションサーバ100は、サーバAS1,AS2中の閲覧用データPD1,PD2のうち、住所の文字列を含むページのデータのurl(Uniform Resource Locator)と、地図情報とを関連づけてデータベースDB(以下「記事リンク地図データベースMDB」と呼ぶ)を生成し、インターネットを介して、有料または無料で閲覧可能とする。
【0054】
さらに、インターネットINTには、クライアント200が接続されている。クライアント200には、出力装置としての液晶ディスプレイ210、ならびに入力装置としてのキーボード220およびマウス230が接続されている。クライアント200は、インターネットINTを介して、地図アプリケーションサーバ100の記事リンク地図データベースMDBを利用することができる。
【0055】
なお、図1では、例示として、アプリケーションサービスプロバイダのサーバを2台、そして、クライアントを1台、示している。しかし、アプリケーションサービスプロバイダのサーバおよびクライアントは、それぞれインターネットINTに多数接続されている。
【0056】
図2は、クライアント200で記事リンク地図データベースMDBを利用する際の、ディスプレイ210上の表示の一例を示す図である。画面中央の領域A10には、クライアント200を介してユーザが指定した場所の地図が表示される。画面上段の領域A20には、検索用の入力窓A21と、検索ボタンA22が表示されている。
【0057】
ユーザが、記事リンク地図データベースMDBを利用する際には、以下のような処理が行われる。すなわち、ユーザは、マウス230およびキーボード220を使用して入力窓A21に所定の文字列を入力し、マウス230を使用して検索ボタンA22をクリックする。すると、地図アプリケーションサーバ100は、サーバAS1,AS2の閲覧用データPD1,PD2から収集した文書データから、該当する文字列を含むデータを検索する。そして、閲覧用データPD1,PD2から収集した文書データ中に、それらの文字列を含むデータが存在する場合には、地図アプリケーションサーバ100は、それらの文字列を含むデータ(以下、該当文書データという)の存在をクライアント200のディスプレイ210上に表示する。
【0058】
具体的には、地図アプリケーションサーバ100は、ディスプレイ210上の画面右側の領域A30に、該当文書データの一部を表示する。また、領域A10には、該当文書データ中に存在する住所の文字列が表す地点を、所定のマークで表示する。
【0059】
図2の例では、「イタリア料理」をいう文字列が入力窓A21に入力されている。そして、「イタリア料理」をいう文字列を含むブログやホームページの記事から生成された該当文書データの一部が、画面右側の領域A30に列挙されている。そして、画面中央の領域A10には、それらのブログの記事中の住所が表す地点が、吹き出しBLで表されている。なお、営利目的の広告であると思われる記事については、「PR」の文字を付した吹き出しが付される。ユーザは、領域A30内の記事のリスト、または領域A10内の吹き出しBLをクリックすることで、それらのブログやホームページにジャンプすることができる。
【0060】
このような態様によれば、ユーザは、入力窓A21から所定の言葉、たとえば「イタリア料理」、「おいしい」、「おすすめ」、などを入力することで、ブログやホームページでそれらの言葉を使って言及された店舗について、簡単な手順で地図上の場所を特定することができる。
【0061】
また、ユーザは、バルーンに基づいて、地図に表示された所定のエリア内から、ブログやホームページで言及された店舗を容易に発見することができる。そして、それらのブログやホームページにジャンプすることで、その店舗の評価を読むことができる。
【0062】
以下では、地図アプリケーションサーバ100が、閲覧用データPD1,PD2から、住所の文字列を含む文書データを抽出し、さらにその中から文書データを選択して、緯度および経度の情報と関連づけて記事リンク地図データベースMDBを生成する処理について、詳細に説明する。
【0063】
A2.地図アプリケーションサーバの動作:
図3は、地図アプリケーションサーバの処理を示すフローチャートである。ステップS10では、インターネットINTに接続されたサーバのうち、あらかじめ定められたサーバAS1,AS2等から文書データを取得する。ステップS10では、たとえば、サーバAS1の閲覧用データPD1のあるページから、html(HyperText Markup Language)データを収集し、その中から文字のデータのみを抽出して、文書データを生成する。一つの文書データは、閲覧用データPD1,PD2等をクライアント200等で閲覧する際に同時にディスプレイ210に表示される1ページ分の文字のデータからなる。また、ステップS10では、文書データのもととなったページ(以下「記事ページ」ともいう)のurlを取得し、メモリ120に記憶する。ステップS10の処理を行う地図アプリケーションサーバ100のCPU110の機能部を、文書データ取得部111として図1に示す。
【0064】
なお、ステップS10で準備される文書データには、住所の文字列を含まない文書データや、店舗の評価を含まない文書データも含まれる。しかし、図3のステップS10〜S60を繰り返し実行し、閲覧用データPD1,PD2から文字データを取得して複数の文書データを生成することで、そのうちの少なくとも一部の文書データは、住所を表す文字列である住所文字列と、店舗の紹介や評価などの店舗に関する記述である記事文字列と、を含む文書データとなる。
【0065】
ステップS20では、文書データの文を語に分解する。なお、ここでいう「語」とは、日本語の文法上の「単語」ではなく、文書を解析するために便宜的に定められた、1以上の文字からなる文字群である。本明細書では、この文字群を、便宜的に「語」と呼ぶ。たとえば、「東神奈川」という文字列は、日本語の文法上は一つの固有名詞であるが、ステップS20の処理では「東」という語と「神奈川」という語に分けられる。
【0066】
また、ステップS20では、各語の品詞を決定する。なお、ここでいう「品詞」も、日本語の文法上の「品詞」ではなく、文書を解析するために便宜的に定められた、語の属性を表す分類である。
【0067】
図4は、本明細書における「品詞」の例を示す表である。左端の列には、品詞の分類番号を示す。中央の列には、品詞の分類を示す。右端の列には、品詞の例を示す。本明細書における「品詞」は、分類番号と、1以上の階層の分類とを有している。たとえば、分類番号11は、「名詞−固有名詞−地域−一般」という「品詞」に与えられた分類番号である。「東京」という語は、この「名詞−固有名詞−地域−一般」という「品詞」に分類される。また、「東京」という語には、分類番号11番に分類される。なお、図4に示す「品詞」の分類は一例である。図3のステップS20の処理は、様々なエンジンによって実行可能であり、「品詞」の分類はそれらエンジンによって異なる場合がある。
【0068】
図5および図6は、文書データ中の住所の文字列について、ステップS20の処理結果の例を示す図である。なお、図5および図6では、各語に対して品詞の分類番号のみを示す。図5および図6では、文書データ中の住所の文字列の例を示すが、ステップS20における処理は、このような文字列に限らず、文書データのすべての文のすべての語に対して行われる。図3のステップS20で行われる処理を「形態素解析」と呼ぶ。
【0069】
図3のステップS30では、ステップS20で語に分解され、それぞれ品詞が対応づけられた文書データから、住所を表す文字列(以下「住所文字列」という)を抽出して、住所リストデータを作成する。
【0070】
図3のステップS40では、住所リストデータの各住所文字列の詳細度を決定する。より具体的には、詳細度を表す詳細レベルデータが生成される。ステップS20〜S40の処理を行う地図アプリケーションサーバ100のCPU110の機能部を、住所文字列検討部112として図1に示す。
【0071】
ステップS45では、住所リストデータの住所文字列の中に、所定のしきい値以上の詳細度を有する住所文字列が存在するか否かを判断する。所定のしきい値以上の詳細度を有する住所文字列が存在する場合には、処理はステップS50に進む。所定のしきい値以上の詳細度を有する住所文字列が存在しない場合には、処理はステップS65に進む。
【0072】
ステップS45においては、所定のしきい値以上の詳細度を有する住所文字列を含むと判断された文書データが選択される。所定のしきい値以上の詳細度を有する住所文字列を含む文書データは、この後、ステップS60においてデータベースに組み込まれる。所定のしきい値以上の詳細度を有する住所文字列を含まないと判断された文書データ、ならびに住所文字列を含まないと判断された文書データについては、ステップS50,S60の処理は行われないため、そのような文書データはデータベースに組み込まれない。ステップS45の処理を行う地図アプリケーションサーバ100のCPU110の機能部を、文書データ選択部113として図1に示す。
【0073】
図3のステップS50では、住所リストデータの中から詳細度の高い住所文字列を選択する。本実施例では、住所リストデータの中で最も詳細度の高い住所文字列が選択される。なお、最も詳細度の高い住所文字列が複数存在する場合には、そのうちで住所リストデータの最初に位置する住所文字列が選択される。
【0074】
図3のステップS60では、選択された住所文字列に基づいて、その住所文字列が表す緯度と経度を特定する。この処理を「ジオコーディング」という。
【0075】
ステップS60では、さらに、ステップS10で取得した記事ページのurlと、ステップS60で得た緯度と経度と、を関連づけて、記事リンク地図データベースMDBに追加する。そして、更新された記事リンク地図データベースMDBをメモリ120に格納する。なお、記事リンク地図データベースMDBには、さらに、閲覧用データPD1,PD2から収集した文書データ、ならびに文書データ中の同一の種類の同一のキーワードの出現回数が格納される。
【0076】
ここで、「同一の種類」とは、以下のような意味である。すなわち、各語は、ステップS20において、さらに、名詞、動詞、形容詞、形容動詞に分類される。そして、その分類が同じである場合は、「同一の種類」の語であるとされる。
【0077】
ステップS60の処理を行う地図アプリケーションサーバ100のCPU110の機能部を、データベース生成部114として図1に示す。データベース生成部114は、記事リンク地図データベースMDBの生成および更新を行う。
【0078】
図3のステップS65では、あらかじめ定められたすべてのサーバAS1,AS2等のすべての閲覧用データについて文書データを生成したか否かが判定される。判定結果がNoである場合は、処理はステップS10に戻り、あらかじめ定められたサーバAS1,AS2等の閲覧用データから新たな文書データが準備される。判定結果がYesである場合は、処理はステップS70に進む。
【0079】
図3のステップS70では、ユーザからの要求に応じて、記事リンク地図データベースMDBに基づいて図2に示すような表示を行うための表示データを作成し、クライアント200に送信する。ステップS70の処理を行う地図アプリケーションサーバ100のCPU110の機能部を、サービス提供部115として図1に示す。
【0080】
この表示データに基づく表示においては、地図上のステップS50で得た緯度と経度に相当する位置に、バルーンBLが表示される(図2参照)。また、領域A30に、ステップS10で準備した文書データの一部(すなわち、記事ページの一部)が表示される。そして、それらのバルーンBL、および記事ページの一部が表示される位置に、ステップS10で取得した記事ページのurlへのリンクが埋め込まれている。
【0081】
このような態様とすれば、利害関係のない素人が忌憚のない店舗評価を述べているブログやホームページに基づいて、記事リンク地図データベースMDBを生成することができる(特に、図3のステップS10参照)。よって、第三者にとって有益な記事リンク地図データベースMDBを生成し、提供することができる。
【0082】
また、ブログやホームページの記事において住所を詳細に記述するユーザは、同時に、記事中で高精度の店舗評価を行っていると推定できる。このため、上記のような態様とすることで(特にステップS45参照)、高精度な店舗評価を行っていると推定できるブログやホームページの文書データを選んで、それらに基づいて記事リンク地図データベースMDBを生成することができる。このため、精度の高い記事リンク地図データベースMDBを生成することができる。
【0083】
A3.住所リストデータの生成:
図7および図8は、図3のステップS30の詳細な処理を示すフローチャートである。ステップS310では、文書データから語を1個、取得する。なお、文書データからの語の取得は、文書データ中の語の並びの順に行われる。よって、最初にステップS310が実行されるときには、文書データの先頭の語が取得される。
【0084】
ステップS315では、取得した語の品詞が「地域」(分類番号10〜12,30など。図4参照)であり、かつ、品詞が「国」(分類番号12)でなく、かつ、取得した語がカタカナのみの語でないか、が検討される。
【0085】
なお、前述のとおり、品詞は1以上の階層を有している(図4参照)。「品詞が「地域」であるか」の判定においては、いずれかの階層に「地域」という分類を有している場合には、「その品詞は「地域」である」と判定される。「国」、「助数詞」など、他の品詞の分類について判定を行う場合も同様である。
【0086】
また、語に対する品詞の割り当ての際に参照されるデータベースにおいては、現実にある地名のうち、「地域」の品詞が割り当てられているのは、市町村レベルの名前までである。そして、たとえば「字」のあとに続く「大沢」など、市町村より下のレベルの地名については、「地域」の品詞は割り当てられておらず、「名詞−一般」が割り当てられている。
【0087】
文書データのうち、住所を表す語以外の語については、通常、品詞が「地域」ではない。このため、住所を表す語以外の語については、ステップS315の判断結果はNoとなる。また、たとえば、ステップS310で取得した語が「日本」の場合には、品詞が「国」であるため、ステップS315の判定結果はNoとなる。さらに、ステップS310で取得した語が「バージニア」の場合は、カタカナのみの語であるため、ステップS315の判定結果はNoとなる。
【0088】
判定結果がNoの場合には、処理はステップS310に戻る。そして、文書データから次の語が取得される。ステップS310で取得した語がステップS315の条件を満たす語となるまで、ステップS315〜S310の処理が繰り返される。
【0089】
一方、たとえば、語が「東京」の場合には、ステップS315の判定結果はYesとなる。判定結果がYesの場合には、処理はステップS320に進む。
【0090】
ステップS320では、ステップS310で取得した語を、新たな住所バッファAB(図1参照)に格納する。
【0091】
なお、地図アプリケーションサーバ100(住所リスト作成部112)は、メモリ120に複数の住所バッファABを有している。図7および図8の処理が行われると、1以上の住所バッファAB内に住所と推定される文字列が格納される。
【0092】
ステップS330では、文書データから次の語が取得される。ステップS335では、ステップS330で取得された語の品詞が「地域」(分類番号10〜12,30など)であるか、または語の文字が「東」、「西」、「南」、「北」、「大字」であるかが検討される。
【0093】
たとえば、ステップS330で取得された語が「都」、「道」、「府」、「県」、「区」や「神奈川」、「千代田」、「丸の内」の場合は、品詞が「地域」であるので、ステップS335の判定結果はYesとなる。また、ステップS330で取得された語が、前述の「東神奈川」の一部である「東」である場合にも、ステップS335の判定結果はYesとなる。判定結果がYesの場合には、処理はステップS340に進む。
【0094】
ステップS340では、ステップS330で取得した語を、住所バッファABに追加する。ステップS340で住所バッファABに格納される語は、ステップS320で住所バッファABに格納された語に続けてその住所バッファABに格納される。以下、「住所バッファABに追加する」と記述する場合、同様の処理が行われる。
【0095】
ステップS350では、文書データから次の語が取得される。その後、処理は、ステップS335に戻る。すなわち、ステップS335の条件を満たす語が続く限り、ステップS350,S340の処理にしたがって、それらの語は順に住所バッファABに格納される。
【0096】
一方、ステップS335の判定結果がNoとなった場合には、処理は、ステップS355に進む。ステップS335の判定結果がNoとなる場合とは、ステップS330で取得された語の品詞が「地域」ではなく、かつ、語の文字が「東」、「西」、「南」、「北」、「大字」でもない場合である。
【0097】
ステップS355では、ステップS330またはS350で取得した語の品詞が「数」(分類番号19)であるか、または検討対象の語が「字」(あざ)であるかが検討される。
【0098】
ステップS355の判定結果がYesの場合は、処理はステップS360に進む。ステップS360では、検討対象の語(数字または「字」(あざ))を、住所バッファABに追加する。ステップS370では、文書データから次の語が取得される。
【0099】
なお、ステップS355の判定結果がYesとなったということは、文書データ中で連続する1以上の語であって、かつ地域を表す1以上の語がすべて住所バッファABに格納された後(ステップS335,S340,S350)、それらに続いて、数字または「字」(あざ)の字が現れたということである。よって、この後に続く文字列は、たとえば「○丁目×番地△号」や「(字)大沢」といった、町域以下の住所を表す文字列であると推定できる。
【0100】
なお、「町域」とは、住所を表す語であって、「丁目」レベルの地域を表す語である。これに対して、「街区」とは、住所を表す語であって、「番地」レベルの地域を表す語である。「号」とは、住所を表す語であって、「号」レベルの地域を表す語である。
【0101】
一方、ステップS355の判定結果がNoの場合は、処理はステップS390に進む。
【0102】
なお、ステップS355の判定結果がNoとなったということは、文書データ中で連続する1以上の語であって、かつ地域を表す1以上の語がすべて住所バッファABに格納された後(ステップS335〜S350)、数字または「字」(あざ)の字が現れなかったということである。このような場合は、この後に続く文字列は、「字◇◇」、「○丁目」、「×番地」、「△号」といった、町域以下の情報を持っていないと推定できる。すなわち、住所文字列は終了したと推定できる。よって、後述するように、ステップS320で開始された住所バッファABへの文字列の蓄積は終了する(ステップS390参照)。
【0103】
図8のステップS375では、検討対象の語、すなわち最後に取得した語の品詞が、「地域」(分類番号10〜12,30など)であり、かつ、「品詞が「国」(分類番号12)でなく、かつ、取得した語がカタカナのみの語でない、か否かが検討される。ステップS375における判定の内容は、ステップS315における判定の内容と同じである。判定結果がYesの場合は、処理はステップS380に進む。
【0104】
なお、ステップS375の判定結果がYesとなったということは、以下のような意味を有する。すなわち、すでに文字列中に数字または「字」(あざ)の字が現れ、その後、町域以下の住所を表す文字列が現れると推定されたにもかかわらず(ステップS355においてYes)、数字や「丁目」等ではなく、より広い地域を表す語(たとえば、「東京」)が現れたということである。このような場合としては、たとえば、文字データが複数の住所の列挙を含んでいる場合がある。「丁目」以下の情報を持たない住所の文字列に続いて、次の住所の文字列が並んでいる場合である。
【0105】
ステップS380では、住所バッファABに格納されている文字列を住所リストデータAL(図1参照)に追加する。住所リストデータALに追加される文字列は、複数の語によって構成される文字列である。その後、処理はステップS320に戻る(図7および図8の[C]参照)。すなわち、ステップS320において、ステップS375においてYesと判定された語、すなわち、次の住所の先頭の語であると推定できる語が、新たな住所バッファABに格納される。
【0106】
一方、ステップS375の判定結果がNoの場合は、処理はステップS385に進む。
【0107】
ステップS385では、検討対象の語の品詞が「数」(分類番号19)、「助数詞」(分類番号35)、「接尾−一般」(分類番号28)、「記号−一般」(分類番号77)、もしくは「名詞−一般」(分類番号2)のいずれかであるか、または、検討対象の語が、「の」、「−」(全角マイナス)、「-」(半角マイナス)、「‐」(ハイフン)、「B」、「F」、「階」、「東」、「西」、「南」、もしくは「北」のいずれかであるかが検討される。
【0108】
なお、「助数詞」とは、図4に示すように、「丁目」、「番」などの、数に続いて示され、数の単位を表す語である。「B」、「F」、「階」も、同様に、数に続いて示され、数の単位を表す語である。
【0109】
「接尾−一般」とは、「号」などのように、名詞の後に表示され名詞の属性を表す所定の語である。「記号−一般」とは、記号を表す語である。「名詞−一般」とは、名詞である。「の」、「−」(全角マイナス)、「-」(半角マイナス)、「‐」(ハイフン)は、数に続いて表示され、数の接続を表す語である。「東」、「西」、「南」、「北」は、名詞の前および後の少なくとも一方に表示され名詞を修飾する語である。
【0110】
ステップS385の判定結果がYesの場合は、処理はステップS360に戻る(図7および図8の[D]参照)。ステップS360、S370,S375,S385,S360のループにおいて、町域以下の住所を表す文字列が、順に住所バッファABに蓄積される。
【0111】
一方、ステップS385の判定結果がNoの場合は、処理はステップS390に進む。
【0112】
なお、ステップS385の判定結果がNoとなったということは、町域以下の住所を表す文字列が、すべて住所バッファABに蓄積され、住所を表す文字列が終了したと推定できる。
【0113】
ステップS390では、住所バッファABに格納されている文字列を住所リストデータALに追加する。
【0114】
ステップS395では、文書データ中のすべての語についてステップS315〜S385の検討を終了したか否かを検討する。判定結果がNoである場合には、処理は、ステップS310に戻る(図7および図8の[E]参照)。判定結果がYesである場合には、図7および図8の処理(図3のステップS30の処理)は、終了する。
【0115】
図7および図8の処理を行うことで、文字からなる文書データ中からさまざまな詳細さおよび表記方法で記載された住所文字列を抽出することができる。
【0116】
A4.住所文字列の詳細さの評価:
図9〜図11は、図3のステップS40の詳細な処理を示すフローチャートである。図3のステップS40では、住所リストデータAL(図1参照)の住所文字列について詳細度が決定される。図3のステップS40では、図9〜図11の処理が、各住所文字列について実行される。図9〜図11の処理では、住所文字列について、住所の一部であり区域を表す所定の語であって、互いに異なる複数の階層の区域に属する所定の語を含むか否かが、順に検討される。
【0117】
図9のステップS405では、住所文字列中に「都」、「道」、「府」、「県」のいずれかの文字が含まれるか、が判定される。判定結果がYesの場合は、ステップS410において都道府県フラグがONにされる。都道府県フラグがONであるということは、住所文字列中に都道府県レベルの住所の情報が含まれていることを表す。
【0118】
ステップS410の後、処理はステップS415に進む。ステップS405において判定結果がNoであった場合も、同様に処理はステップS415に進む。
【0119】
なお、図9〜図11で説明する各フラグは、メモリ120内に格納される。また、初期状態において各フラグはOFFである。
【0120】
ステップS415では、住所文字列中に「京都府」の文字が含まれるか、が判定される。判定結果がYesの場合は、ステップS420において京都フラグがONにされる。京都フラグがONであるということは、住所文字列が表す住所が京都府または京都市の住所であることを表す。京都市の住所は、「四条河原町西入る」等の、他の地域とは異なる独自の表記がなされることがある。
【0121】
ステップS420の後、処理はステップS425に進む。ステップS415において判定結果がNoであった場合も、同様に処理はステップS425に進む。
【0122】
ステップS425では、住所文字列中に「市」、「町」、「村」のいずれかの文字が含まれるか、が判定される。判定結果がYesの場合は、ステップS430において市町村フラグがONにされる。市町村フラグがONであるということは、住所文字列中に市町村レベルの住所の情報が含まれていることを表す。
【0123】
ステップS430の後、処理はステップS435に進む。ステップS425において判定結果がNoであった場合も、同様に処理はステップS435に進む。
【0124】
ステップS435では、住所文字列中に「京都市」の文字が含まれるか、が判定される。判定結果がYesの場合は、ステップS440において京都フラグがONにされる。
【0125】
ステップS440の後、処理はステップS445に進む。ステップS435において判定結果がNoであった場合も、同様に処理はステップS445に進む。
【0126】
ステップS445では、住所文字列中に「丁目」の文字が含まれるか、が判定される。判定結果がYesの場合は、ステップS450において町域フラグがONにされる。町域フラグがONであるということは、住所文字列中に、「○丁目×番地△号」のうちの丁目レベルの住所の情報が含まれていることを表す。
【0127】
ステップS450の後、処理はステップS455に進む。ステップS445において判定結果がNoであった場合も、同様に処理はステップS445に進む。
【0128】
ステップS455では、京都フラグがONであるか、が判定される。判定結果がYesである場合には、処理は図10のステップS505に進む。一方、判定結果がNoである場合には、処理は図9のステップS465に進む。
【0129】
ステップS465では、住所文字列中に「番」の文字が含まれるか、が判定される。判定結果がYesの場合は、ステップS470において街区フラグがONにされる。街区フラグがONであるということは、住所文字列中に、「○丁目×番地△号」のうちの番地レベルの住所の情報が含まれていることを表す。
【0130】
ステップS470の後、処理はステップS475に進む。ステップS465において判定結果がNoであった場合も、同様に処理はステップS475に進む。
【0131】
ステップS475では、住所文字列中に「号」の文字が含まれるか、が判定される。判定結果がYesの場合は、ステップS480において号フラグがONにされる。号フラグがONであるということは、住所文字列中に、「○丁目×番地△号」のうちの号レベルの住所の情報が含まれていることを表す。
【0132】
ステップS480の後、処理はステップS485に進む。ステップS475において判定結果がNoであった場合も、同様に処理はステップS485に進む。
【0133】
以上で説明したステップS405,S425,S445,S465,S475では、上位の区域を表す語(たとえば、「都」、「道」、「府」、「県」)から下位の区域を表す語(たとえば、「号」)に向かう順番で、順に、区域を表す所定の語を含むか否かが検討され、各判定結果がフラグのON/OFFで記憶される。
【0134】
ステップS485では、住所文字列中において、数字と、「−」(全角マイナス)、「-」(半角マイナス)、または「‐」(ハイフン)とが、2個以上続いているか否か判定される。たとえば、住所文字列中において「3−」、「3-」、「3‐」などの文字列があれば、判定結果はYesとなる。ステップS485の判定結果がYesである場合は、処理は、図11のステップS610に進む。
【0135】
ステップS485の判定結果がYesであるという場合には、住所文字列において、「○丁目×番地△号」の情報の少なくとも一部が、数字をハイフンやマイナスでつなげた表記で表されていると推定できる。たとえば、「4丁目3−1」と表記されている場合である。
【0136】
一方、ステップS485の判定結果がNoである場合は、処理は、図9のステップS490に進む。
【0137】
ステップS485の判定結果がNoであるという場合には、住所文字列において、「○丁目×番地△号」の情報は、数字をハイフンやマイナスでつなげた表記で表されていないと推定できる。すなわち、ステップS475までの処理で、住所の情報のすべてについて検討され、検討結果が各フラグに反映されていると考えることができる。
【0138】
ステップS490では、都道府県フラグ、市町村フラグ、町域フラグ、街区フラグ、号フラグのON/OFFに基づいて、住所文字列の詳細度が決定される。
【0139】
具体的には、号フラグがONである場合には、その住所文字列の詳細度は5である。街区フラグがONである場合には、その住所文字列の詳細度は4である。町域フラグがONである場合には、その住所文字列の詳細度は3である。市町村フラグがONである場合には、その住所文字列の詳細度は2である。都道府県フラグがONである場合には、その住所文字列の詳細度は1である。複数のフラグがONである場合には、対応する詳細度のうちのより高い詳細度がその住所文字列に割り当てられる。このように決定された詳細度を表す詳細レベルデータがメモリ120に格納される。
【0140】
すなわち、住所文字列の詳細度は、住所文字列に含まれる地域を表す語の最も下位の階層に基づいて決定される。このような処理を行うことで、住所文字列に対する詳細度を客観的に決定することができる。
【0141】
図10は、住所文字列において京都の住所表記がされている場合(図9のステップS415,S435,S455参照)の、その住所文字列の詳細度の検討の処理を示すフローチャートである。図10の処理は、図9のステップS455の判定結果がYesである場合に実行される(図9,図10の[I]参照)。
【0142】
ステップS505では、住所文字列に「上る」、「下る」、「東入る」、「西入る」、「南入る」、「北入る」、「上ル」、「下ル」、「東入ル」、「西入ル」、「南入ル」、「北入ル」の文字があるか否かが判定される。判定結果がYesである場合には、ステップS510において、町域フラグがONにされる。
【0143】
すなわち、住所文字列の詳細さの検討において、「上る」、「下る」、「東入る」、「西入る」、「南入る」、「北入る」、「上ル」、「下ル」、「東入ル」、「西入ル」、「南入ル」、「北入ル」の表記があるという事実は、京都フラグがONでないときに「丁目」の表記があるという事実と同じ程度に評価される。その後、処理は、図9のステップS465に戻る(図9,図10の[K]参照)。
【0144】
ステップS455,S505,S510の処理を行うことで、住所文字列において京都独自の住所表記がされている場合にも、その住所文字列の詳細度さ評価することができる。
【0145】
なお、京都の住所を表記する場合にも、通常の「○丁目×番地△号」のような方式で表記することがある。本実施例においては、ステップS455,S505,S510の処理の後、通常のステップS465が行われる。このため、京都の住所が通常の「○丁目×番地△号」のような方式で表記されている場合にも、住所文字列の詳細さを評価することができる。
【0146】
図11は、住所文字列において丁目、番地、号が、ハイフン等でつながれて表記されている場合の、その住所文字列の詳細度の検討の処理を示すフローチャートである。図11の処理は、ステップS485の判定結果がYesである場合に実行される(図9,図10の[J]参照)。
【0147】
ステップS610では、図9のステップS485で検出された、数字と、「−」、「-」または「‐」等(全角または半角のマイナスまたはハイフン)と、で構成される2個以上の文字列が、マイナスやハイフンの部分で分割される。
【0148】
ステップS615では、分割結果が3個であるか、が判定される。判定結果がYesである場合には、処理は、ステップS620に進む。ステップS615の判定結果がYesであるということは、住所文字列において、「○丁目×番地△号」が「○−×−△」等と表記されているということである。なお、以下、全角または半角のマイナスまたはハイフンのうち、全角マイナスを例として使用して、住所表記の説明を行う。
【0149】
ステップS620では、町域フラグ、街区フラグ、および号フラグがONとされる。その後、処理は、図9のステップS490に進む(図9,図11の[L]参照)。
【0150】
ステップS615の判定結果がNoである場合には、処理は、ステップS625に進む。
【0151】
ステップS625では、分割結果が2個であるか、が判定される。判定結果がYesである場合には、処理は、ステップS627に進む。ステップS625の判定結果がYesであるということは、住所文字列において、「○丁目×番地」が「○−×」と表記されているか、「○丁目×番地△号」が「○丁目×−△」等と表記されているということである。
【0152】
ステップS627では、住所文字列に「丁目」レベルの情報が含まれるか否かを表す町域フラグがONとなっているか、が判定される。判定結果がYesである場合には、処理は、ステップS630に進む。ステップS627の判定結果がYesであるということは、住所文字列において、「○丁目×番地△号」が「○丁目×−△」等と表記されているということである。
【0153】
ステップS630において、「番地」レベルの情報に対応する街区フラグ、および「号」レベルの情報に対応する号フラグがONとされる。その後、処理は、図9のステップS490に進む(図9,図11の[L]参照)。
【0154】
ステップS627の判定結果がNoである場合には、処理は、ステップS640に進む。ステップS627の判定結果がNoであるということは、住所文字列において、「号」レベルの情報は含まれておらず、「○丁目×番地」が「○−×」と表記されている、ということである。
【0155】
ステップS640において、「丁目」レベルの情報に対応する町域フラグ、および「番地」レベルの情報に対応する街区フラグがONとされる。その後、処理は、図9のステップS490に進む(図9,図11の[L]参照)。
【0156】
一方、ステップS625の判定結果がNoである場合には、処理は、ステップS645に進む。ステップS625の判定結果がNoであるということは、ステップS485で検出された、数字と、全角または半角のマイナスまたはハイフンと、で構成される2個以上の文字列が、一つの数字と、一つの全角または半角のマイナスまたはハイフンとで構成されることを意味する。
【0157】
ステップS645では、住所文字列に「番地」レベルの情報が含まれるか否かを表す街区フラグがONとなっているか、が判定される。判定結果がYesである場合には、処理は、ステップS650に進む。ステップS645の判定結果がYesであるということは、住所文字列において、「×番地△号」が「×番地−△」等と表記されているということである。
【0158】
ステップS650において、「号」レベルの情報に対応する号フラグがONとされる。その後、処理は、図9のステップS490に進む(図9,図11の[L]参照)。
【0159】
一方、ステップS645の判定結果がNoである場合には、処理は、ステップS655に進む。
【0160】
ステップS655では、住所文字列に「丁目」レベルの情報が含まれるか否かを表す町域フラグがONとなっているか、が判定される。判定結果がYesである場合には、処理は、ステップS660に進む。ステップS655の判定結果がYesであるということは、住所文字列において、「○丁目×番地」が「○丁目−×」等と表記されているということである。
【0161】
ステップS660において、「番地」レベルの情報に対応する街区フラグがONとされる。その後、処理は、図9のステップS490に進む(図9,図11の[L]参照)。
【0162】
一方、ステップS655の判定結果がNoである場合には、処理は、ステップS670に進む。ステップS655の判定結果がNoであるということは、住所文字列において、「○丁目」が「−○」等と表記されているということである。
【0163】
ステップS670において、「丁目」レベルの情報に対応する町域フラグがONとされる。その後、処理は、図9のステップS490に進む(図9,図11の[L]参照)。
【0164】
図9のステップS405〜S475の処理においては、住所文字列について、上位の階層の区域を表す語から下位の階層の区域を表す語に向かう順番で、順に、区域を表す所定の語を含むか否かを検討される。そして、図11の処理においては、住所文字列中の全角または半角のマイナスまたはハイフンで結ばれた数については、それらの個数(図11のステップS615,S625参照)、ならびにそれまでに検出された町域の階層に含まれる語の有無を表す町域フラグのON/OFF、およびそれまでに検出された街区の階層に含まれる語の有無を表す街区フラグのON/OFFに基づいて(図11のステップS627,S645,S655参照)、町域フラグ、街区フラグ、および号フラグをONまたはOFFとする(同、ステップS630,S640,S650,S660,S670参照)。このため、「○丁目×番地△号」のような情報の一部または全部が、ハイフン等でつながれた数字で表されている住所文字列についても、正確に詳細さを評価することができる。
【0165】
B.第2実施例:
第2実施例においては、図3のステップS40で住所文字列の詳細度を決定した後、ステップS45の処理を行う前に、さらに、他の要素を考慮して詳細度を改変する。また、地図アプリケーションサーバ100(図1参照)は、電話番号と、その電話番号の所有者または店舗名、およびその住所と、を関連づけて保持する電話番号データベースを有する。第2実施例の他の点は、第1実施例と同じである。
【0166】
図12は、地図アプリケーションサーバが詳細度を改変する処理S42を示すフローチャートである。図12の処理S42は、図3のステップS40とステップS45の間に行われる。なお、図12の処理S42は、CPU110の機能部としての住所文字列検討部112が実現する。
【0167】
ステップS710では、図3のステップS10で取得した文書データから、電話番号が取得される。電話番号は、たとえば、全角または半角の「‐」(ハイフン)、「−」(マイナス)または「)」(カッコ)以外の文字を間に含まない、全角または半角の10個の連続する数字の文字列を検索することで、文書データから抽出することができる。
【0168】
ステップS720では、地図アプリケーションサーバ100は、電話番号データベースを参照して、ステップS710で取得した電話番号に対応する店舗名または所有者、ならびに住所を取得する。
【0169】
ステップS725では、図3のステップS10で取得した文書データ中に、図12のステップS720で取得した店舗名または所有者、ならびに住所が存在するか否かを判定する。文書データ中に店舗名または所有者、ならびに住所が存在する場合は、処理はステップS730に進む。文書データ中に店舗名も所有者も存在しない場合、および文書データ中に住所が存在しない場合は、処理は、終了する。なお、図12には示していないが、ステップS720で、電話番号に対応する電話番号の店舗名または所有者、ならびに住所を取得できなかった場合も、処理は終了する。
【0170】
ステップS730では、図3のステップS40で決定した住所文字列の詳細度を改変する。具体的には、住所文字列の詳細度をより高い詳細度に改変する。第2実施例においては、詳細度を2だけ上げる。その後、処理を終了する。
【0171】
ブログやホームページの記事において電話番号を正確に記述するユーザは、同時に、記事中で高精度の店舗評価を行っていると推定できる。このため、第2実施例のような態様とすることで、高精度な店舗評価を行っていると推定できるブログやホームページの文書データを選んで、それらに基づいて記事リンク地図データベースMDBを生成することができる。このため、精度の高い記事リンク地図データベースMDBを生成することができる。
【0172】
C.第3実施例:
第3実施例においても、図3のステップS40で住所文字列の詳細度を決定した後、ステップS45の処理を行う前に、さらに、他の要素を考慮して詳細度を改変する。また、第3実施例においては、図3のステップS10で、閲覧用データ中からリンク先を表すリンク先データが取得される。第3実施例の他の点は、第1実施例と同じである。
【0173】
図13は、地図アプリケーションサーバが詳細度を改変する処理S43を示すフローチャートである。図13の処理S43は、図3のステップS40とステップS45の間に行われる。なお、図13の処理S43は、CPU110の機能部としての住所文字列検討部112が実現する。
【0174】
ステップS810では、ステップS10で取得されたリンク先データが表すリンク先のページからリンク先文書データを取得する。なお、第3実施例においては、図3のステップS10で、あらかじめ、閲覧用データの中からリンク先を表すリンク先データが取得されている。
【0175】
ステップS810では、具体的には、リンク先のページであってインターネット上のサーバに格納されているページから、htmlデータを収集する。そして、その中から文字のデータのみを抽出して、リンク先文書データを生成する。ステップS810の処理の内容は、リンク先のページからデータを取得する点以外は、図3のステップS10の処理と同様である。
【0176】
ステップS820では、リンク先文書データの文を語に分解する。ステップS820の処理は、リンク先文書データを対象とする点以外は、図3のステップS20の処理と同様である。
【0177】
ステップS830では、ステップS820で語に分解され、それぞれ品詞が対応づけられたリンク先文書データから、住所文字列を抽出して、リンク先住所リストデータを作成する。ステップS830の処理は、リンク先文書データを対象としてリンク先住所リストデータを作成する点以外は、図3のステップS30の処理と同様である。
【0178】
ステップS835では、ステップS830で生成したリンク先住所リストデータと、図3のステップS30で生成した住所リストデータとを照合して、両者に同じ住所文字列が含まれているか否かを判定する。リンク先住所リストデータと住所リストデータに同じ住所文字列が含まれている場合は、処理はステップS840に進む。同じ住所文字列が含まれていない場合は、処理は終了する。なお、図13には示していないが、ステップS830で、住所文字列が抽出されなかった場合も、処理は終了する。
【0179】
ステップS840では、図3のステップS40で決定した住所文字列の詳細度を改変する。具体的には、住所文字列の詳細度をより高い詳細度に改変する。第3実施例においては、詳細度を2だけ上げる。その後、処理を終了する。
【0180】
ブログやホームページの記事においてリンク先に記載された住所を正確に引き写すユーザは、同時に、記事中で高精度の店舗評価を行っていると推定できる。このため、第3実施例のような態様とすることで、高精度な店舗評価を行っていると推定できるブログやホームページの文書データを選んで、それらに基づいて記事リンク地図データベースMDBを生成することができる。このため、精度の高い記事リンク地図データベースMDBを生成することができる。
【0181】
D.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。なお、以下に示す変形例、および上記の第1〜第3実施例は、適宜組み合わせて本願発明を実現することができる。たとえば、詳細度の決定において第2実施例の図12の処理と第3実施例の図13の処理を両方行うことで、より精度の高いデータベースを生成することができる。
【0182】
D1.変形例1:
上記実施例においては、文書データは、インターネット上で公開されているブログやホームページに記載された記事のデータである。しかし、文書データは、たとえば、社内ネットワークにおいて入手可能なデータなど、他のデータとすることもできる。すなわち、文書データは、何らかの方法で入手可能な任意の文書データとすることができる。そのような文書データは、住所を表す文字列である住所文字列を含むことが好ましい。そして、そのような文書データは、記事文字列として、店舗の紹介や評価に関する記事を含むことが好ましい。
【0183】
D2.変形例2:
上記実施例では、レストランの評価記事を例に閲覧用データPD1,PD2の記事ページの説明を行った。しかし、閲覧用データPD1,PD2の記事ページは、食料品や日用品を販売する店舗に関する記事であってもよいし、映画館で上映されている映画の映画評であってもよい。すなわち、記事ページおよび記事ページに基づいて生成できる文書データは、住所によって場所を特定することができる任意の店舗に関する記事を含むものとすることができる。
【0184】
D3.変形例3:
上記実施例では、住所文字列の詳細度を決定して、その詳細度に基づいて文書データを選択している(図3のステップS40,S45参照)。しかし、文書データの選択は、直接、住所文字列の詳細さを表すフラグなどのデータに基づいて行ってもよい。すなわち、文書データの選択は、詳細度に限らず、住所文字列の詳細さの検討結果を表す任意の形式の詳細レベルデータに基づいて行うことができる。
【0185】
D4.変形例4:
上記実施例では、一つの文書データの中から最も詳細度の高い住所文字列が選択される(図3のステップS50参照)。しかし、住所文字列を選択する際には、詳細度が所定のしきい値以上である1以上の住所文字列を選択することができる。また、住所文字列を選択する際には、最も詳細度の高い住所文字列から、2以上の所定数だけ選択することもできる。さらに、住所文字列を選択する際には、最も高い詳細度を有する住所文字列すべてを選択することもできる。
【0186】
D5.変形例5:
上記実施例では、文書データのurlを取得し(図3のステップS10)、住所文字列の緯度および経度と関連づけてデータベースに格納している(同、ステップS60)。しかし、緯度および経度と関連づけてデータベースに格納するデータは、uri(Uniform Resource Identifier)など、他の記述方式によるものでもよい。すなわち、緯度および経度の情報と関連づけてデータベースに格納するデータは、文書データの所在を表すデータであれば、任意の形式のものとすることができる。
【0187】
D6.変形例6:
上記実施例における住所文字列の詳細どの決定は、住所文字列中の前から順に、階層の異なる所定の語(「都」、「道」、「府」、「県」や「市」、「町」、「村」)に該当するか否かを検討することが好ましい。すなわち、ある住所文字列に「都」の文字があった場合には(図9のステップS405がYes)、その後、その住所文字列中でその「都」の文字より後ろの部分において、次の階層の「市」、「町」、または「村」の文字があるか否かについて検討する(ステップS425参照)ことが好ましい。
【0188】
また、上記実施例では、「地域」の品詞が割り当てられているのは、市町村レベルの名前までである。そして、たとえば「字」のあとに続く「大沢」など、市町村より下のレベルの地名については、「地域」の品詞は割り当てられていない。しかし、市町村レベルより下の住所についても、「地域」の品詞を割り当てる態様とすることもできる。そのような態様においては、図8のステップS385においては、「品詞が「地域」である」、という条件を、選択的な条件の一つとして有することが好ましい。
【0189】
D7.変形例7:
上記実施例では、あらかじめ定められたサーバの閲覧用データから文書データを生成してデータベースを生成し、その後に、そのデータベースを利用したサービスが提供された。しかし、データベースの生成および更新と、そのデータベースを利用したサービスの提供とは、並行して行うこともできる。そのような態様においては、サーバの閲覧用データへのアクセスは、所定の時間(たとえば5分、10分、30分など)内にアクセス可能な所定の回数のしきい値(たとえば、100回、500回、1000回など)を超えないような頻度で行われることが好ましい。
【0190】
D8.変形例8:
上記実施例では、サーバ100のハードウェア構成については、CPU100とメモリ120のみについて言及している。このCPU100は、単一のCPUで構成されることもでき、複数のCPUで構成されることもできる。また、メモリ120は、半導体メモリとすることもでき、固定ディスクや書き込み可能な他の記録媒体とすることもできる。
また、それらのCPU100とメモリ120の構成は、単一のサーバ内に格納されていてもよく、ネットワークを介して接続された複数の装置として設けられていてもよい。
【0191】
同様に、CPUの各機能部も、単一のサーバ内のCPUによって実現されることもでき、ネットワークで接続された複数の装置のCPUが、それぞれ所定の機能部を実現する態様とすることもできる。また、各機能部自体も、単一のCPUで実現されてもよく、複数のCPUで実現されてもよい。
【0192】
さらに、アプリケーションサービスプロバイダのサーバについても、一つの閲覧用データは、一つのサーバ内に格納されていてもよいし、2以上のサーバに分散されて格納されていても良い。
【0193】
D9.変形例9:
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【0194】
このような機能を実現するコンピュータプログラムは、フロッピディスクやCD−ROM、DVD等の、コンピュータ読み取り可能な記録媒体に記録された形態で提供される。ホストコンピュータは、その記録媒体からコンピュータプログラムを読み取って内部記憶装置または外部記憶装置に転送する。あるいは、通信経路を介してプログラム供給装置からホストコンピュータにコンピュータプログラムを供給するようにしてもよい。コンピュータプログラムの機能を実現する時には、内部記憶装置に格納されたコンピュータプログラムがホストコンピュータのマイクロプロセッサによって実行される。また、記録媒体に記録されたコンピュータプログラムをホストコンピュータが直接実行するようにしてもよい。
【0195】
この明細書において、ホストコンピュータとは、ハードウェア装置とオペレーションシステムとを含む概念であり、オペレーションシステムの制御の下で動作するハードウェア装置を意味している。コンピュータプログラムは、このようなホストコンピュータに、上述の各部の機能を実現させる。なお、上述の機能の一部は、アプリケーションプログラムでなく、オペレーションシステムによって実現されていても良い。
【0196】
なお、この発明において、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスクやCD−ROMのような携帯型の記録媒体に限らず、各種のRAMやROM等のコンピュータ内の内部記憶装置や、ハードディスク等のコンピュータに固定されている外部記憶装置も含んでいる。
【符号の説明】
【0197】
100…地図アプリケーションサーバ
110…CPU
111…文書データ取得部
112…住所文字列検討部
113…文書データ選択部
114…データベース生成部
115…サービス提供部
120…メモリ
200…クライアント
210…液晶ディスプレイ
220…キーボード
230…マウス
A10…地図が表示される領域
A20…入力窓と検索ボタンが表示される領域
A21…入力窓
A22…検索ボタン
A30…文書データの一部が表示される領域
AB…住所バッファ
AL…住所リストデータ
AS1,AS2…サーバ
BL…地図上に表示されるバルーン
INT…インターネット
MDB…記事リンク地図データベース
PD1,PD2…閲覧用データ
【特許請求の範囲】
【請求項1】
複数の文書データに基づいてデータベースを生成する方法であって、
(a)住所を表す文字列である住所文字列と、店舗に関する記述である記事文字列と、を含む文書データを含む複数の文書データを準備する工程と、
(b)前記住所文字列のデータを解析して、前記住所文字列が表す住所の詳細さを表す詳細レベルデータを生成する工程と、
(c)前記詳細レベルデータに基づいて、前記複数の文書データの中から前記住所文字列を含む少なくとも一つの文書データを選択する工程と、
(d)前記選択された文書データに基づいて、店舗に関するデータベースを生成する工程と、を含む方法。
【請求項2】
請求項1記載の方法であって、
前記工程(a)は、
所定の契約をしたユーザに対して、文字列を含み前記ユーザが作成した原文書データをネットワークを介して公開するサービスを提供するサービス提供者のサーバに、前記ネットワークを介してアクセスして、前記原文書データが含む前記文字列に基づいて前記文書データを生成する工程を含む、方法。
【請求項3】
請求項1または2記載の方法であって、
前記工程(d)は、
(d1)前記住所文字列が表す地点の緯度および経度を特定する工程と、
(d2)前記緯度および経度と、前記選択された文書データの前記住所文字列および前記記事文字列の取得先の情報と、を互いに関連づけて含む前記データベースを作成する工程と、を含む方法。
【請求項4】
請求項1ないし3のいずれかに記載の方法であって、
前記工程(b)は、
(b1)前記文書データが含む文字列を、それぞれ1以上の文字からなる複数の語に分解する工程と、
(b2)前記文書データが含む前記語を順に検討し、前記文書データから前記住所文字列を抽出する工程と、を含み、
前記工程(b2)は、
(b3)前記文書データが含む第1の語が、地域を表す語であることを含む所定の第1の条件を満たす場合に、前記第1の語を住所バッファの先頭に格納する工程と、
(b4)前記住所バッファに格納された語に続く第2の語が、所定の第2の条件を満たす場合に、前記第2の語を前記住所バッファに追加的に格納する工程と、
(b5)前記第2の語が、前記第2の条件とは異なる所定の第3の条件を満たす場合に、前記住所バッファ内に格納された文字列を、前記住所文字列として抽出する工程と、を含む、方法。
【請求項5】
請求項4記載の方法であって、
前記工程(b5)は、
前記第3の条件が満たされた場合として、
前記第2の語が、
地域を表す語であること、
「東」、「西」、「南」、「北」、「大字」のいずれかの文字を含むこと、
数を表す語であること、
「字」の文字を含むこと、
のいずれにも該当しない場合に、前記住所バッファ内の文字列を前記住所文字列として抽出する工程を含む、方法。
【請求項6】
請求項4または5記載の方法であって、
前記工程(b5)は、さらに、
前記第3の条件が満たされた場合として、前記第2の語が、前記第2の語の直前に前記工程(b2)において検討された語よりも上位の地域を表す語である場合に、前記住所バッファ内の文字列を前記住所文字列として抽出する工程を含む、方法。
【請求項7】
請求項4ないし6のいずれかに記載の方法であって、
前記工程(b5)は、さらに、
前記第3の条件が満たされた場合として、
前記第2の語が、
数を表す語であること、
数に続いて表示され数の単位を表す所定の語であること、
名詞の後に表示され名詞の属性を表す所定の語であること、
記号であること、
名詞であること、
数に続いて表示され数の接続を表す所定の語であること、
名詞の前および後の少なくとも一方に表示され名詞を修飾する所定の語であること、
のいずれにも該当しない場合に、前記住所バッファ内の文字列を前記住所文字列として抽出する工程を含む、方法。
【請求項8】
請求項4ないし7のいずれかに記載の方法であって、
前記工程(b4)は、
前記第2の条件が満たされた場合として、
前記第2の語が、
地域を表すこと、
「東」、「西」、「南」、「北」、「大字」のいずれかの文字を含むこと、
のいずれかを満たす場合に、前記第2の語を前記住所バッファに追加的に格納する工程を含む、方法。
【請求項9】
請求項4ないし8のいずれかに記載の方法であって、
前記工程(b4)は、さらに、
前記第2の条件が満たされた場合として、
前記第2の語が、
数を表す語であること、
「字」の文字を含むこと、
のいずれかを満たす場合に、前記第2の語を前記住所バッファに追加的に格納する工程を含む、方法。
【請求項10】
請求項4ないし9のいずれかに記載の方法であって、
前記工程(b4)は、さらに、
前記第2の条件が満たされた場合として、
前記第2の語よりも前に検討された語が、
数を表す語であること、
「字」の文字を含むこと、
のいずれか満たし、かつ、
前記第2の語が、
数を表す語であること、
数に続いて表示され数の単位を表す所定の語であること、
名詞の後に表示され名詞の属性を表す所定の語であること、
記号であること、
名詞であること、
数に続いて表示され数の接続を表す所定の語であること、
名詞の前および後の少なくとも一方に表示され名詞を修飾する所定の語であること、
のいずれかを満たす場合に、前記第2の語を前記住所バッファに追加的に格納する工程を含む、方法。
【請求項11】
請求項1ないし10のいずれかに記載の方法であって、
前記工程(b)は、さらに、
(b7)前記住所文字列について、住所の一部であり区域を表す所定の語であって、互いに異なる複数の階層の区域に属する複数の所定の語を含むか否かを検討する工程を含み、
前記工程(c)は、
(c1)前記住所文字列に含まれる前記所定の語の最も下位の階層に基づいて、前記文書データを選択する工程を含む、方法。
【請求項12】
請求項11記載の方法であって、
前記複数の階層は、町域の階層と街区の階層とを含み、
前記工程(b7)は、
(b8)前記住所文字列について、上位の階層の区域を表す語から下位の階層の区域を表す語に向かう順番で、前記区域を表す所定の語を含むか否かを検討する工程を含み、
前記工程(b8)は、
前記住所文字列中の、全角または半角のマイナスまたはハイフンで結ばれた数については、
前記全角または半角のマイナスまたはハイフンで結ばれた数の個数、ならびに
それまでに検出された前記町域の階層に含まれる語の有無、およびそれまでに検出された前記街区の階層に含まれる語の有無
に基づいて、前記所定の語を含むか否かの評価と同等の評価を行う工程を含む、方法。
【請求項13】
請求項1ないし11のいずれかに記載の方法であって、
前記工程(c)は、さらに、
(c2)前記住所文字列が「京都府」または「京都市」の文字列を含む場合であって、かつ、「上る」、「下る」、「東入る」、「西入る」、「南入る」、「北入る」、「上ル」、「下ル」、「東入ル」、「西入ル」、「南入ル」、「北入ル」のいずれかの文字列を含む場合には、
前記住所文字列が「京都府」および「京都市」の文字列を含まない場合であって、かつ、「丁目」の文字列を含む場合と同等に評価する工程を含む、方法。
【請求項14】
請求項1記載の方法であって、さらに、
(e)前記文書データ中から電話番号を取得する工程と、
(f)電話番号と住所文字列とが関連づけられて格納されているデータベースを参照しつつ、前記取得された電話番号と関連づけられた住所文字列が、前記文書データに含まれるか否かを決定する工程と、を含み、
前記工程(c)は、前記取得された電話番号と関連づけられた住所文字列を含む文書データを、前記取得された電話番号と関連づけられた住所文字列を含まない文書データに比べて優先的に、前記少なくとも一つの文書データとして選択する工程である、方法。
【請求項15】
請求項2記載の方法であって、
前記原文書データは、さらに、文字列を含む参照文書データと前記原文書データとを関連づけるためのリンクデータを含み、
前記方法は、さらに、
(e)前記リンクデータに基づいて前記参照文書データを参照しつつ、前記参照文書データが含む前記文字列に基づいてリンク先文書データを生成する工程と、
(f)前記文書データが含む前記住所文字列を前記リンク先文書データが含むか否かを決定する工程と、を含み、
前記工程(c)は、前記リンク先文書データが前記文書データの前記住所文字列を含む文書データを、前記リンク先文書データが前記文書データの前記住所文字列を含まない文書データに比べて優先的に、前記少なくとも一つの文書データとして選択する工程である、方法。
【請求項16】
複数の文書データに基づいてデータベースを生成するデータベース生成装置であって、
(a)住所を表す文字列である住所文字列と、店舗に関する記述である記事文字列と、を含む文書データを含む複数の文書データを準備する文書データ取得部と、
(b)前記住所文字列のデータを解析して、前記住所文字列が表す住所の詳細さを表す詳細レベルデータを生成する住所文字列検討部と、
(c)前記詳細レベルデータに基づいて、前記複数の文書データの中から前記住所文字列を含む少なくとも一つの文書データを選択する文書データ選択部と、
(d)前記選択された文書データに基づいて、店舗に関するデータベースを生成するデータベース生成部と、を含むデータベース生成装置。
【請求項17】
請求項16記載の装置であって、
前記文書データ取得部は、
所定の契約をしたユーザに対して、文字列を含み前記ユーザが作成した原文書データをネットワークを介して公開するサービスを提供するサービス提供者のサーバに、前記ネットワークを介してアクセスして、前記原文書データが含む前記文字列に基づいて前記文書データを生成する、装置。
【請求項18】
請求項16または17記載の装置であって、
前記データベース生成部は、
(d1)前記住所文字列が表す地点の緯度および経度を特定し、
(d2)前記緯度および経度と、前記選択された文書データの前記住所文字列および前記記事文字列の取得先の情報と、を互いに関連づけて含む前記データベースを作成する、装置。
【請求項19】
請求項16ないし18のいずれかに記載の装置であって、
前記住所文字列検討部は、
(b1)前記文書データが含む文字列を、それぞれ1以上の文字からなる複数の語に分解し、
(b2)前記文書データが含む前記語を順に検討し、前記文書データから前記住所文字列を抽出し、
前記前記文書データから前記住所文字列を抽出する際には、
(b3)前記文書データが含む第1の語が、地域を表す語であることを含む所定の第1の条件を満たす場合に、前記第1の語を住所バッファの先頭に格納し、
(b4)前記住所バッファに格納された語に続く第2の語が、所定の第2の条件を満たす場合に、前記第2の語を前記住所バッファに追加的に格納し、
(b5)前記第2の語が、前記第2の条件とは異なる所定の第3の条件を満たす場合に、前記住所バッファ内に格納された文字列を、前記住所文字列として抽出する、装置。
【請求項20】
請求項19記載の装置であって、
前記住所文字列検討部は、
前記第3の条件が満たされた場合として、
前記第2の語が、
地域を表す語であること、
「東」、「西」、「南」、「北」、「大字」のいずれかの文字を含むこと、
数を表す語であること、
「字」の文字を含むこと、
のいずれにも該当しない場合に、前記住所バッファ内の文字列を前記住所文字列として抽出する、装置。
【請求項21】
請求項19または20記載の装置であって、
前記住所文字列検討部は、さらに、
前記第3の条件が満たされた場合として、前記第2の語が、前記第2の語の直前に前記工程(b2)において検討された語よりも上位の地域を表す語である場合に、前記住所バッファ内の文字列を前記住所文字列として抽出する、装置。
【請求項22】
請求項19ないし21のいずれかに記載の装置であって、
前記住所文字列検討部は、さらに、
前記第3の条件が満たされた場合として、
前記第2の語が、
数を表す語であること、
数に続いて表示され数の単位を表す所定の語であること、
名詞の後に表示され名詞の属性を表す所定の語であること、
記号であること、
名詞であること、
数に続いて表示され数の接続を表す所定の語であること、
名詞の前および後の少なくとも一方に表示され名詞を修飾する所定の語であること、
のいずれにも該当しない場合に、前記住所バッファ内の文字列を前記住所文字列として抽出する、装置。
【請求項23】
請求項19ないし22のいずれかに記載の装置であって、
前記住所文字列検討部は、さらに、
前記第2の条件が満たされた場合として、
前記第2の語が、
地域を表すこと、
「東」、「西」、「南」、「北」、「大字」のいずれかの文字を含むこと、
のいずれかを満たす場合に、前記第2の語を前記住所バッファに追加的に格納する、装置。
【請求項24】
請求項19ないし23のいずれかに記載の装置であって、
前記住所文字列検討部は、さらに、
前記第2の条件が満たされた場合として、
前記第2の語が、
数を表す語であること、
「字」の文字を含むこと、
のいずれかを満たす場合に、前記第2の語を前記住所バッファに追加的に格納する、装置。
【請求項25】
請求項19ないし24のいずれかに記載の装置であって、
前記住所文字列検討部は、さらに、
前記第2の条件が満たされた場合として、
前記第2の語よりも前に検討された語が、
数を表す語であること、
「字」の文字を含むこと、
のいずれか満たし、かつ、
前記第2の語が、
数を表す語であること、
数に続いて表示され数の単位を表す所定の語であること、
名詞の後に表示され名詞の属性を表す所定の語であること、
記号であること、
名詞であること、
数に続いて表示され数の接続を表す所定の語であること、
名詞の前および後の少なくとも一方に表示され名詞を修飾する所定の語であること、
のいずれかを満たす場合に、前記第2の語を前記住所バッファに追加的に格納する、装置。
【請求項26】
請求項16ないし25のいずれかに記載の装置であって、
前記住所文字列検討部は、さらに、
(b7)前記住所文字列について、住所の一部であり区域を表す所定の語であって、互いに異なる複数の階層の区域に属する複数の所定の語を含むか否かを検討し、
前記文書データ選択部は、
(c1)前記住所文字列に含まれる前記所定の語の最も下位の階層に基づいて、前記文書データを選択する、装置。
【請求項27】
請求項26記載の装置であって、
前記複数の階層は、町域の階層と街区の階層とを含み、
前記住所文字列検討部は、
前記住所文字列について前記所定の語を含むか否かを検討する際に、
(b8)前記住所文字列について、上位の階層の区域を表す語から下位の階層の区域を表す語に向かう順番で、前記区域を表す所定の語を含むか否かを検討し、
前記順番で、前記区域を表す所定の語を含むか否かを検討する際には、前記住所文字列中の、全角または半角のマイナスまたはハイフンで結ばれた数については、
前記全角または半角のマイナスまたはハイフンで結ばれた数の個数、ならびに
それまでに検出された前記町域の階層に含まれる語の有無、およびそれまでに検出された前記街区の階層に含まれる語の有無
に基づいて、前記所定の語を含むか否かの評価と同等の評価を行う、装置。
【請求項28】
請求項16ないし26のいずれかに記載の装置であって、
前記文書データ選択部は、さらに、
(c2)前記住所文字列が「京都府」または「京都市」の文字列を含む場合であって、かつ、「上る」、「下る」、「東入る」、「西入る」、「南入る」、「北入る」、「上ル」、「下ル」、「東入ル」、「西入ル」、「南入ル」、「北入ル」のいずれかの文字列を含む場合には、
前記住所文字列が「京都府」および「京都市」の文字列を含まない場合であって、かつ、「丁目」の文字列を含む場合と同等に評価する、装置。
【請求項29】
請求項16記載の装置であって、さらに、
前記文書データ中から電話番号を取得する電話番号取得部と、
電話番号と住所文字列とが関連づけられて格納されているデータベースを参照しつつ、前記取得された電話番号と関連づけられた住所文字列が、前記文書データに含まれるか否かを決定する電話番号判定部と、を含み、
前記文書データ選択部は、前記取得された電話番号と関連づけられた住所文字列を含む文書データを、前記取得された電話番号と関連づけられた住所文字列を含まない文書データに比べて優先的に、前記少なくとも一つの文書データとして選択する、装置。
【請求項30】
請求項17記載の装置であって、
前記原文書データは、さらに、文字列を含む参照文書データと前記原文書データとを関連づけるためのリンクデータを含み、
前記装置は、さらに、
前記リンクデータに基づいて前記参照文書データを参照しつつ、前記参照文書データが含む前記文字列に基づいてリンク先文書データを生成するリンク先文書データ生成部と、
前記文書データが含む前記住所文字列を前記リンク先文書データが含むか否かを決定する住所判定部と、を含み、
前記文書データ選択部は、前記リンク先文書データが前記文書データの前記住所文字列を含む文書データを、前記リンク先文書データが前記文書データの前記住所文字列を含まない文書データに比べて優先的に、前記少なくとも一つの文書データとして選択する、装置。
【請求項31】
複数の文書データに基づいてデータベースを生成するためのコンピュータプログラムであって、
(a)住所を表す文字列である住所文字列と、店舗に関する記述である記事文字列と、を含む文書データを含む複数の文書データを準備する機能と、
(b)前記住所文字列のデータを解析して、前記住所文字列が表す住所の詳細さを表す詳細レベルデータを生成する機能と、
(c)前記詳細レベルデータに基づいて、前記複数の文書データの中から前記住所文字列を含む少なくとも一つの文書データを選択する機能と、
(d)前記選択された文書データに基づいて、店舗に関するデータベースを生成する機能と、をコンピュータに実現させることができるコンピュータプログラム。
【請求項32】
請求項31記載のコンピュータプログラムであって、
前記文書データを準備する機能は、
所定の契約をしたユーザに対して、文字列を含み前記ユーザが作成した原文書データをネットワークを介して公開するサービスを提供するサービス提供者のサーバに、前記ネットワークを介してアクセスして、前記原文書データが含む前記文字列に基づいて前記文書データを生成する機能を含む、コンピュータプログラム。
【請求項33】
請求項31または32記載のコンピュータプログラムであって、
前記データベースを生成する機能は、
(d1)前記住所文字列が表す地点の緯度および経度を特定する機能と、
(d2)前記緯度および経度と、前記選択された文書データの前記住所文字列および前記記事文字列の取得先の情報と、を互いに関連づけて含む前記データベースを作成する機能と、を含むコンピュータプログラム。
【請求項1】
複数の文書データに基づいてデータベースを生成する方法であって、
(a)住所を表す文字列である住所文字列と、店舗に関する記述である記事文字列と、を含む文書データを含む複数の文書データを準備する工程と、
(b)前記住所文字列のデータを解析して、前記住所文字列が表す住所の詳細さを表す詳細レベルデータを生成する工程と、
(c)前記詳細レベルデータに基づいて、前記複数の文書データの中から前記住所文字列を含む少なくとも一つの文書データを選択する工程と、
(d)前記選択された文書データに基づいて、店舗に関するデータベースを生成する工程と、を含む方法。
【請求項2】
請求項1記載の方法であって、
前記工程(a)は、
所定の契約をしたユーザに対して、文字列を含み前記ユーザが作成した原文書データをネットワークを介して公開するサービスを提供するサービス提供者のサーバに、前記ネットワークを介してアクセスして、前記原文書データが含む前記文字列に基づいて前記文書データを生成する工程を含む、方法。
【請求項3】
請求項1または2記載の方法であって、
前記工程(d)は、
(d1)前記住所文字列が表す地点の緯度および経度を特定する工程と、
(d2)前記緯度および経度と、前記選択された文書データの前記住所文字列および前記記事文字列の取得先の情報と、を互いに関連づけて含む前記データベースを作成する工程と、を含む方法。
【請求項4】
請求項1ないし3のいずれかに記載の方法であって、
前記工程(b)は、
(b1)前記文書データが含む文字列を、それぞれ1以上の文字からなる複数の語に分解する工程と、
(b2)前記文書データが含む前記語を順に検討し、前記文書データから前記住所文字列を抽出する工程と、を含み、
前記工程(b2)は、
(b3)前記文書データが含む第1の語が、地域を表す語であることを含む所定の第1の条件を満たす場合に、前記第1の語を住所バッファの先頭に格納する工程と、
(b4)前記住所バッファに格納された語に続く第2の語が、所定の第2の条件を満たす場合に、前記第2の語を前記住所バッファに追加的に格納する工程と、
(b5)前記第2の語が、前記第2の条件とは異なる所定の第3の条件を満たす場合に、前記住所バッファ内に格納された文字列を、前記住所文字列として抽出する工程と、を含む、方法。
【請求項5】
請求項4記載の方法であって、
前記工程(b5)は、
前記第3の条件が満たされた場合として、
前記第2の語が、
地域を表す語であること、
「東」、「西」、「南」、「北」、「大字」のいずれかの文字を含むこと、
数を表す語であること、
「字」の文字を含むこと、
のいずれにも該当しない場合に、前記住所バッファ内の文字列を前記住所文字列として抽出する工程を含む、方法。
【請求項6】
請求項4または5記載の方法であって、
前記工程(b5)は、さらに、
前記第3の条件が満たされた場合として、前記第2の語が、前記第2の語の直前に前記工程(b2)において検討された語よりも上位の地域を表す語である場合に、前記住所バッファ内の文字列を前記住所文字列として抽出する工程を含む、方法。
【請求項7】
請求項4ないし6のいずれかに記載の方法であって、
前記工程(b5)は、さらに、
前記第3の条件が満たされた場合として、
前記第2の語が、
数を表す語であること、
数に続いて表示され数の単位を表す所定の語であること、
名詞の後に表示され名詞の属性を表す所定の語であること、
記号であること、
名詞であること、
数に続いて表示され数の接続を表す所定の語であること、
名詞の前および後の少なくとも一方に表示され名詞を修飾する所定の語であること、
のいずれにも該当しない場合に、前記住所バッファ内の文字列を前記住所文字列として抽出する工程を含む、方法。
【請求項8】
請求項4ないし7のいずれかに記載の方法であって、
前記工程(b4)は、
前記第2の条件が満たされた場合として、
前記第2の語が、
地域を表すこと、
「東」、「西」、「南」、「北」、「大字」のいずれかの文字を含むこと、
のいずれかを満たす場合に、前記第2の語を前記住所バッファに追加的に格納する工程を含む、方法。
【請求項9】
請求項4ないし8のいずれかに記載の方法であって、
前記工程(b4)は、さらに、
前記第2の条件が満たされた場合として、
前記第2の語が、
数を表す語であること、
「字」の文字を含むこと、
のいずれかを満たす場合に、前記第2の語を前記住所バッファに追加的に格納する工程を含む、方法。
【請求項10】
請求項4ないし9のいずれかに記載の方法であって、
前記工程(b4)は、さらに、
前記第2の条件が満たされた場合として、
前記第2の語よりも前に検討された語が、
数を表す語であること、
「字」の文字を含むこと、
のいずれか満たし、かつ、
前記第2の語が、
数を表す語であること、
数に続いて表示され数の単位を表す所定の語であること、
名詞の後に表示され名詞の属性を表す所定の語であること、
記号であること、
名詞であること、
数に続いて表示され数の接続を表す所定の語であること、
名詞の前および後の少なくとも一方に表示され名詞を修飾する所定の語であること、
のいずれかを満たす場合に、前記第2の語を前記住所バッファに追加的に格納する工程を含む、方法。
【請求項11】
請求項1ないし10のいずれかに記載の方法であって、
前記工程(b)は、さらに、
(b7)前記住所文字列について、住所の一部であり区域を表す所定の語であって、互いに異なる複数の階層の区域に属する複数の所定の語を含むか否かを検討する工程を含み、
前記工程(c)は、
(c1)前記住所文字列に含まれる前記所定の語の最も下位の階層に基づいて、前記文書データを選択する工程を含む、方法。
【請求項12】
請求項11記載の方法であって、
前記複数の階層は、町域の階層と街区の階層とを含み、
前記工程(b7)は、
(b8)前記住所文字列について、上位の階層の区域を表す語から下位の階層の区域を表す語に向かう順番で、前記区域を表す所定の語を含むか否かを検討する工程を含み、
前記工程(b8)は、
前記住所文字列中の、全角または半角のマイナスまたはハイフンで結ばれた数については、
前記全角または半角のマイナスまたはハイフンで結ばれた数の個数、ならびに
それまでに検出された前記町域の階層に含まれる語の有無、およびそれまでに検出された前記街区の階層に含まれる語の有無
に基づいて、前記所定の語を含むか否かの評価と同等の評価を行う工程を含む、方法。
【請求項13】
請求項1ないし11のいずれかに記載の方法であって、
前記工程(c)は、さらに、
(c2)前記住所文字列が「京都府」または「京都市」の文字列を含む場合であって、かつ、「上る」、「下る」、「東入る」、「西入る」、「南入る」、「北入る」、「上ル」、「下ル」、「東入ル」、「西入ル」、「南入ル」、「北入ル」のいずれかの文字列を含む場合には、
前記住所文字列が「京都府」および「京都市」の文字列を含まない場合であって、かつ、「丁目」の文字列を含む場合と同等に評価する工程を含む、方法。
【請求項14】
請求項1記載の方法であって、さらに、
(e)前記文書データ中から電話番号を取得する工程と、
(f)電話番号と住所文字列とが関連づけられて格納されているデータベースを参照しつつ、前記取得された電話番号と関連づけられた住所文字列が、前記文書データに含まれるか否かを決定する工程と、を含み、
前記工程(c)は、前記取得された電話番号と関連づけられた住所文字列を含む文書データを、前記取得された電話番号と関連づけられた住所文字列を含まない文書データに比べて優先的に、前記少なくとも一つの文書データとして選択する工程である、方法。
【請求項15】
請求項2記載の方法であって、
前記原文書データは、さらに、文字列を含む参照文書データと前記原文書データとを関連づけるためのリンクデータを含み、
前記方法は、さらに、
(e)前記リンクデータに基づいて前記参照文書データを参照しつつ、前記参照文書データが含む前記文字列に基づいてリンク先文書データを生成する工程と、
(f)前記文書データが含む前記住所文字列を前記リンク先文書データが含むか否かを決定する工程と、を含み、
前記工程(c)は、前記リンク先文書データが前記文書データの前記住所文字列を含む文書データを、前記リンク先文書データが前記文書データの前記住所文字列を含まない文書データに比べて優先的に、前記少なくとも一つの文書データとして選択する工程である、方法。
【請求項16】
複数の文書データに基づいてデータベースを生成するデータベース生成装置であって、
(a)住所を表す文字列である住所文字列と、店舗に関する記述である記事文字列と、を含む文書データを含む複数の文書データを準備する文書データ取得部と、
(b)前記住所文字列のデータを解析して、前記住所文字列が表す住所の詳細さを表す詳細レベルデータを生成する住所文字列検討部と、
(c)前記詳細レベルデータに基づいて、前記複数の文書データの中から前記住所文字列を含む少なくとも一つの文書データを選択する文書データ選択部と、
(d)前記選択された文書データに基づいて、店舗に関するデータベースを生成するデータベース生成部と、を含むデータベース生成装置。
【請求項17】
請求項16記載の装置であって、
前記文書データ取得部は、
所定の契約をしたユーザに対して、文字列を含み前記ユーザが作成した原文書データをネットワークを介して公開するサービスを提供するサービス提供者のサーバに、前記ネットワークを介してアクセスして、前記原文書データが含む前記文字列に基づいて前記文書データを生成する、装置。
【請求項18】
請求項16または17記載の装置であって、
前記データベース生成部は、
(d1)前記住所文字列が表す地点の緯度および経度を特定し、
(d2)前記緯度および経度と、前記選択された文書データの前記住所文字列および前記記事文字列の取得先の情報と、を互いに関連づけて含む前記データベースを作成する、装置。
【請求項19】
請求項16ないし18のいずれかに記載の装置であって、
前記住所文字列検討部は、
(b1)前記文書データが含む文字列を、それぞれ1以上の文字からなる複数の語に分解し、
(b2)前記文書データが含む前記語を順に検討し、前記文書データから前記住所文字列を抽出し、
前記前記文書データから前記住所文字列を抽出する際には、
(b3)前記文書データが含む第1の語が、地域を表す語であることを含む所定の第1の条件を満たす場合に、前記第1の語を住所バッファの先頭に格納し、
(b4)前記住所バッファに格納された語に続く第2の語が、所定の第2の条件を満たす場合に、前記第2の語を前記住所バッファに追加的に格納し、
(b5)前記第2の語が、前記第2の条件とは異なる所定の第3の条件を満たす場合に、前記住所バッファ内に格納された文字列を、前記住所文字列として抽出する、装置。
【請求項20】
請求項19記載の装置であって、
前記住所文字列検討部は、
前記第3の条件が満たされた場合として、
前記第2の語が、
地域を表す語であること、
「東」、「西」、「南」、「北」、「大字」のいずれかの文字を含むこと、
数を表す語であること、
「字」の文字を含むこと、
のいずれにも該当しない場合に、前記住所バッファ内の文字列を前記住所文字列として抽出する、装置。
【請求項21】
請求項19または20記載の装置であって、
前記住所文字列検討部は、さらに、
前記第3の条件が満たされた場合として、前記第2の語が、前記第2の語の直前に前記工程(b2)において検討された語よりも上位の地域を表す語である場合に、前記住所バッファ内の文字列を前記住所文字列として抽出する、装置。
【請求項22】
請求項19ないし21のいずれかに記載の装置であって、
前記住所文字列検討部は、さらに、
前記第3の条件が満たされた場合として、
前記第2の語が、
数を表す語であること、
数に続いて表示され数の単位を表す所定の語であること、
名詞の後に表示され名詞の属性を表す所定の語であること、
記号であること、
名詞であること、
数に続いて表示され数の接続を表す所定の語であること、
名詞の前および後の少なくとも一方に表示され名詞を修飾する所定の語であること、
のいずれにも該当しない場合に、前記住所バッファ内の文字列を前記住所文字列として抽出する、装置。
【請求項23】
請求項19ないし22のいずれかに記載の装置であって、
前記住所文字列検討部は、さらに、
前記第2の条件が満たされた場合として、
前記第2の語が、
地域を表すこと、
「東」、「西」、「南」、「北」、「大字」のいずれかの文字を含むこと、
のいずれかを満たす場合に、前記第2の語を前記住所バッファに追加的に格納する、装置。
【請求項24】
請求項19ないし23のいずれかに記載の装置であって、
前記住所文字列検討部は、さらに、
前記第2の条件が満たされた場合として、
前記第2の語が、
数を表す語であること、
「字」の文字を含むこと、
のいずれかを満たす場合に、前記第2の語を前記住所バッファに追加的に格納する、装置。
【請求項25】
請求項19ないし24のいずれかに記載の装置であって、
前記住所文字列検討部は、さらに、
前記第2の条件が満たされた場合として、
前記第2の語よりも前に検討された語が、
数を表す語であること、
「字」の文字を含むこと、
のいずれか満たし、かつ、
前記第2の語が、
数を表す語であること、
数に続いて表示され数の単位を表す所定の語であること、
名詞の後に表示され名詞の属性を表す所定の語であること、
記号であること、
名詞であること、
数に続いて表示され数の接続を表す所定の語であること、
名詞の前および後の少なくとも一方に表示され名詞を修飾する所定の語であること、
のいずれかを満たす場合に、前記第2の語を前記住所バッファに追加的に格納する、装置。
【請求項26】
請求項16ないし25のいずれかに記載の装置であって、
前記住所文字列検討部は、さらに、
(b7)前記住所文字列について、住所の一部であり区域を表す所定の語であって、互いに異なる複数の階層の区域に属する複数の所定の語を含むか否かを検討し、
前記文書データ選択部は、
(c1)前記住所文字列に含まれる前記所定の語の最も下位の階層に基づいて、前記文書データを選択する、装置。
【請求項27】
請求項26記載の装置であって、
前記複数の階層は、町域の階層と街区の階層とを含み、
前記住所文字列検討部は、
前記住所文字列について前記所定の語を含むか否かを検討する際に、
(b8)前記住所文字列について、上位の階層の区域を表す語から下位の階層の区域を表す語に向かう順番で、前記区域を表す所定の語を含むか否かを検討し、
前記順番で、前記区域を表す所定の語を含むか否かを検討する際には、前記住所文字列中の、全角または半角のマイナスまたはハイフンで結ばれた数については、
前記全角または半角のマイナスまたはハイフンで結ばれた数の個数、ならびに
それまでに検出された前記町域の階層に含まれる語の有無、およびそれまでに検出された前記街区の階層に含まれる語の有無
に基づいて、前記所定の語を含むか否かの評価と同等の評価を行う、装置。
【請求項28】
請求項16ないし26のいずれかに記載の装置であって、
前記文書データ選択部は、さらに、
(c2)前記住所文字列が「京都府」または「京都市」の文字列を含む場合であって、かつ、「上る」、「下る」、「東入る」、「西入る」、「南入る」、「北入る」、「上ル」、「下ル」、「東入ル」、「西入ル」、「南入ル」、「北入ル」のいずれかの文字列を含む場合には、
前記住所文字列が「京都府」および「京都市」の文字列を含まない場合であって、かつ、「丁目」の文字列を含む場合と同等に評価する、装置。
【請求項29】
請求項16記載の装置であって、さらに、
前記文書データ中から電話番号を取得する電話番号取得部と、
電話番号と住所文字列とが関連づけられて格納されているデータベースを参照しつつ、前記取得された電話番号と関連づけられた住所文字列が、前記文書データに含まれるか否かを決定する電話番号判定部と、を含み、
前記文書データ選択部は、前記取得された電話番号と関連づけられた住所文字列を含む文書データを、前記取得された電話番号と関連づけられた住所文字列を含まない文書データに比べて優先的に、前記少なくとも一つの文書データとして選択する、装置。
【請求項30】
請求項17記載の装置であって、
前記原文書データは、さらに、文字列を含む参照文書データと前記原文書データとを関連づけるためのリンクデータを含み、
前記装置は、さらに、
前記リンクデータに基づいて前記参照文書データを参照しつつ、前記参照文書データが含む前記文字列に基づいてリンク先文書データを生成するリンク先文書データ生成部と、
前記文書データが含む前記住所文字列を前記リンク先文書データが含むか否かを決定する住所判定部と、を含み、
前記文書データ選択部は、前記リンク先文書データが前記文書データの前記住所文字列を含む文書データを、前記リンク先文書データが前記文書データの前記住所文字列を含まない文書データに比べて優先的に、前記少なくとも一つの文書データとして選択する、装置。
【請求項31】
複数の文書データに基づいてデータベースを生成するためのコンピュータプログラムであって、
(a)住所を表す文字列である住所文字列と、店舗に関する記述である記事文字列と、を含む文書データを含む複数の文書データを準備する機能と、
(b)前記住所文字列のデータを解析して、前記住所文字列が表す住所の詳細さを表す詳細レベルデータを生成する機能と、
(c)前記詳細レベルデータに基づいて、前記複数の文書データの中から前記住所文字列を含む少なくとも一つの文書データを選択する機能と、
(d)前記選択された文書データに基づいて、店舗に関するデータベースを生成する機能と、をコンピュータに実現させることができるコンピュータプログラム。
【請求項32】
請求項31記載のコンピュータプログラムであって、
前記文書データを準備する機能は、
所定の契約をしたユーザに対して、文字列を含み前記ユーザが作成した原文書データをネットワークを介して公開するサービスを提供するサービス提供者のサーバに、前記ネットワークを介してアクセスして、前記原文書データが含む前記文字列に基づいて前記文書データを生成する機能を含む、コンピュータプログラム。
【請求項33】
請求項31または32記載のコンピュータプログラムであって、
前記データベースを生成する機能は、
(d1)前記住所文字列が表す地点の緯度および経度を特定する機能と、
(d2)前記緯度および経度と、前記選択された文書データの前記住所文字列および前記記事文字列の取得先の情報と、を互いに関連づけて含む前記データベースを作成する機能と、を含むコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2012−256356(P2012−256356A)
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願番号】特願2012−180253(P2012−180253)
【出願日】平成24年8月15日(2012.8.15)
【分割の表示】特願2007−221576(P2007−221576)の分割
【原出願日】平成19年8月28日(2007.8.28)
【出願人】(500578216)株式会社ゼンリンデータコム (231)
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願日】平成24年8月15日(2012.8.15)
【分割の表示】特願2007−221576(P2007−221576)の分割
【原出願日】平成19年8月28日(2007.8.28)
【出願人】(500578216)株式会社ゼンリンデータコム (231)
[ Back to top ]