以下、添付図面を参照して、本発明の一実施形態について詳細に説明する。なお、図面の説明において同一又は相当要素には同一符号を付し、重複する説明を省略する。
図1は、一実施形態に係る名寄せ支援装置を含むサーバ10の機能構成を示す図である。サーバ10は、複数のPOI情報(場所情報)の名寄せを実行する装置である。複数のPOI情報は、例えば、互いに異なる複数のデータソース(例えば情報サービス事業者)により提供されるPOI情報の集合である。
「POI情報」とは、特定の場所(例えば施設等)を示すPOI(Point Of Interest)に関する情報である。POIの例としては、店舗、レジャー施設、及び観光施設等が挙げられる。POI情報は、POIの名称を示す情報(例えば文字列)、POIに関連付けられる位置座標を示す位置情報(例えば緯度及び経度)、及びPOIのカテゴリ(例えば「飲食店」等の施設のジャンル等)を示すカテゴリ情報(例えば文字列)等を含み得る。
「POI情報の名寄せ」とは、情報の重複を排除するために、同一のPOIを示すPOI情報同士をマージすることを意味する。例えば、互いに異なる複数のデータソースにより提供されるPOI情報の中には、同一のPOIに関する重複した複数のPOI情報が存在し得る。このようなPOI情報に含まれるPOIの名称、位置情報、カテゴリ情報等の詳細情報は、互いに一致する場合もあれば、互いに異なる場合もあり得る。詳細情報の不一致は、各データソースが保有している情報の違いに起因する。このため、複数のPOI情報を適切に名寄せするためには、詳細情報(名称、位置情報、カテゴリ情報等)が完全一致するペアを互いに重複するPOI情報(同一のPOIを示すPOI情報)として特定するだけでは十分ではない。すなわち、詳細情報の一部が互いに異なるペアについても同一のPOIを示す可能性があるため、このようなペアについてもPOI情報同士の同一性(同一のPOIを示すか否か)を適切に判定することが求められる。
サーバ10は、このようなPOI情報の名寄せを支援するための処理として、同一のカテゴリを示すカテゴリ情報のペアであるカテゴリペアを取得し、当該カテゴリペアを用いて比較対象となる第1POI情報と第2POI情報の同一性の判定(名寄せ判定)を実行する。カテゴリペアの具体例としては、例えばカテゴリ情報「すし店」とカテゴリ情報「寿司」等のように、文字列は異なるが同一のカテゴリ(この場合、寿司を提供する店を示すジャンル)を示すカテゴリ情報のペアが挙げられる。なお、文字列が同一のカテゴリ情報は当然に同一のカテゴリを示すため、本実施形態は、文字列が互いに異なるカテゴリ情報同士のペアが同一のカテゴリを示すか否かを判定することを主に想定している。
図1を参照して、サーバ10の各機能要素について説明する。同図に示されるように、サーバ10は、記憶部11と、POI情報ペア取得部12(場所情報ペア取得部)と、カテゴリペア取得部13と、比較対象取得部14と、判定部15と、を備える。POI情報ペア取得部12及びカテゴリペア取得部13は、カテゴリペアを取得するための機能要素である。比較対象取得部14及び判定部15は、比較対象となる第1POI情報と第2POI情報とについて名寄せ判定を実行するための機能要素である。
記憶部11は、サーバ10の処理に必要となる各種情報を記憶する。本実施形態では、記憶部11は、POI情報ペア候補管理テーブル(図2参照)、POI情報ペア管理テーブル(図3参照)、カテゴリペア候補管理テーブル(図4参照)、及び比較対象ペア管理テーブル(図5及び図6参照)を記憶する。記憶部11に記憶された各種情報は、POI情報ペア取得部12、カテゴリペア取得部13、比較対象取得部14、及び判定部15からアクセス可能となっている。
POI情報ペア取得部12は、複数のPOI情報のうちから、同一のPOIを示すPOI情報のペアを取得する。POI情報ペア取得部12は、例えば、比較対象となる2つのPOI情報(POI情報ペア候補)を入力として受け付け、予め定められた判定基準に基づいて当該2つのPOI情報が同一のPOIを示すか否かを判定する。一例として、POI情報ペア候補は、予めPOI情報ペア候補管理テーブルに格納されている。例えば、POI情報ペア候補管理テーブルには、複数のデータソースが提供する複数のPOI情報のうちから任意の2つのPOI情報を抽出することで得られる全ての組み合わせに対応するPOI情報ペア候補が格納されている。
図2は、POI情報ペア候補管理テーブルの一例を示す図である。この例では、POI情報ペア候補管理テーブルは、複数のPOI情報ペア候補を格納している。POI情報ペア候補管理テーブルは、1つのPOI情報ペア候補を示す情報(1レコード分の情報)として、比較対象となる2つのPOI情報(POI情報A及びPOI情報B)を格納している。POI情報Aは、POIの名称A、カテゴリ情報A、及び位置情報(緯度A及び経度A)を含んでいる。POI情報Bは、POIの名称B、カテゴリ情報B、及び位置情報(緯度B及び経度B)を含んでいる。図2の「名称A」列又は「名称B」列のアルファベット“A”〜“E”は、それぞれ一以上の文字からなる文字列を表しており、同一のアルファベットは同一の文字列を表している。また、POI情報ペア候補管理テーブルの「dist」列及び「lcsr」列に格納されている値は、後述するPOI情報ペア取得部12の処理により算出される値である。
本実施形態では、POI情報ペア取得部12は、POI情報ペア候補(POI情報A及びPOI情報B)において、POIの名称及び位置についての予め定められた第1条件(詳しくは後述)が満たされるか否かを判定する。そして、POI情報ペア取得部12は、当該判定の結果に基づいて、POI情報ペア候補が同一のPOIを示すか否かを判定する。まず、POI情報ペア取得部12は、各POI情報ペア候補について、POI情報Aの位置情報(緯度A及び経度A)及びPOI情報Bの位置情報(緯度B及び経度B)に基づいて、POI情報Aが示すPOIとPOI情報Bが示すPOIとの直線距離である距離distを算出する。例えば、POI情報Aの位置座標を(x1,y1)とし、POI情報Bの位置座標を(x2,y2)とすると、POI情報ペア取得部12は、下記(式1)により、距離distを算出することができる。なお、下記(式1)において、rは赤道半径(6378.137km)を表す。
(式1):dist=r×cos-1(sin(y1)×sin(y2)+cos(y1)×cos(y2)×cos(x2-x1))
POI情報ペア取得部12は、このようにして算出した距離distをPOI情報ペア候補管理テーブルの「dist」列に格納する。図2の例では、1行目のPOI情報ペア候補について、距離「7.81(m)」が算出されている。
また、POI情報ペア取得部12は、各POI情報ペア候補について、名称Aと名称Bとの最長共通部分列比lcsrを算出する。まず、POI情報ペア取得部12は、名称Aと名称Bとの最長共通部分列を抽出する。共通部分列とは、2つの文字列において、互いに同じ要素が連続して出現する部分列である。最長共通部分列とは、取り得る共通部分列のうち、最も長い(最も文字数が多い)部分列である。2つの文字列X,Yの最長共通部分列比lcsrは、下記(式2)に示されるように、2つの文字列X,Yの最長共通部分列の長さ(文字数)である最長共通部分列長(LLCS:Length of Longest Common Subsequence)を、2つの文字列X,Yのうち長い方の文字列の文字列長(文字数)で除算した値である。
(式2):lcsr=LLCS(X,Y)/max(L(X),L(Y))
ここで、L(X)は文字列Xの文字列長を表す。max(x,y)はxとyの大きい方の値を表す。
具体例として、一方の文字列Xが「寿司XXXモール戸塚店」であり、他方の文字列Yが「XXXモール戸塚店」である場合について考える。この場合、文字列Xと文字列Yとの最長共通部分列は「XXXモール戸塚店」であり、LLCS(X,Y)は9である。また、L(X)は11であり、L(Y)は9であるため、max(L(X),L(Y))は11である。したがって、この例では、lcsrは0.818(=9/11)となる。
POI情報ペア取得部12は、上記(式2)により、名称Aと名称Bとの最長共通部分列比lcsrを算出し、算出したlcsrをPOI情報ペア候補管理テーブルの「lcsr」列に格納する。図2の例では、1行目のPOI情報ペア候補について、lcsr「0.800」が算出されている。
続いて、POI情報ペア取得部12は、上述のように算出した距離distと最長共通部分列比lcsrとに基づいて、POI情報ペア候補が同一のPOIを示すか否かを判定する。例えば、POI情報Aが示すPOIとPOI情報Bが示すPOIについて、距離distが小さく、且つ、名称が完全に一致する場合(すなわち、lcsr=1)、POI情報A及びPOI情報Bは同一のPOIを示す可能性が高い。そこで、POI情報ペア取得部12は、例えば下記のように予め定められた第1条件(POIの名称についての条件(lcsr=1)及びPOIの位置についての条件(dist≦30))を満たす場合に、POI情報ペア候補が同一のPOIを示すと判定してもよい。
(第1条件)
・lcsr=1
・dist≦30
ここで、後述するカテゴリペアを精度良く取得するためには、正しいPOI情報ペアを取得(抽出)することが重視される。このため、第1条件は、実際には同一のPOIを示さないPOI情報同士をPOI情報ペアとして誤って抽出してしまうこと(誤抽出)を防止するために、比較的厳しい条件に設定されている。
POI情報ペア取得部12は、第1条件を満たすと判定されたPOI情報ペア候補を、POI情報ペアとして取得(抽出)する。POI情報ペア取得部12は、取得したPOI情報ペアの情報を、POI情報ペア管理テーブルに格納する。図3は、POI情報ペア管理テーブルの一例を示す図である。なお、POI情報ペア管理テーブルに格納されたPOI情報ペアは、例えばオペレータ等に提示されてもよい。この場合、オペレータは、例えばディスプレイ等に提示されたPOI情報ペアを目視チェックし、同一のPOIを示す可能性が低いと判断したPOI情報ペアをPOI情報ペア管理テーブルから削除してもよい。オペレータによる目視チェックを併用することにより、POI情報ペア管理テーブルに格納されたPOI情報ペアの精度向上が期待できる。
カテゴリペア取得部13は、POI情報ペア取得部12により取得されたPOI情報ペアに含まれるPOI情報の各々に含まれるカテゴリ情報の組み合わせに基づいて、カテゴリペアを取得する。本実施形態では、カテゴリペア取得部13は、POI情報ペア取得部12により取得された複数のPOI情報のペアにおける、カテゴリ情報毎の出現回数とカテゴリ情報の組み合わせ毎の出現回数とに基づいてカテゴリペアを取得する。
まず、カテゴリペア取得部13は、POI情報ペア取得部12により取得された複数のPOI情報ペア(図3のPOI情報ペア管理テーブルに格納された各POI情報ペア)を参照することにより、カテゴリペア候補を抽出する。具体的には、カテゴリペア取得部13は、図3のPOI情報ペア管理テーブルの1行目のPOI情報ペアを参照することにより、カテゴリ情報「すし店」とカテゴリ情報「寿司」とのペアをカテゴリペア候補として抽出する。同様に、カテゴリペア取得部13は、POI情報ペア管理テーブルの2行目及び3行目のPOI情報ペアから、カテゴリ情報「商業施設」とカテゴリ情報「ショッピングモール」とのペアをカテゴリペア候補として抽出する。カテゴリペア取得部13は、このようにして抽出したカテゴリペア候補の情報をカテゴリペア候補管理テーブルに格納する。
図4は、カテゴリペア候補管理テーブルの一例を示す図である。カテゴリペア候補管理テーブルは、一方のカテゴリ情報Xと、他方のカテゴリ情報Yとを格納する。また、カテゴリペア候補管理テーブルには、カテゴリペア候補毎に、後述するカテゴリペア取得部13の処理により算出されるカテゴリ情報X出現回数、カテゴリ情報Y出現回数、同時出現回数、及びDice係数も格納される。
カテゴリペア取得部13は、POI情報ペア管理テーブルに格納された各POI情報ペアを参照することにより、カテゴリ情報毎の出現回数をカウントし、カウントした値をカテゴリペア候補管理テーブルの「カテゴリ情報X出現回数」列及び「カテゴリ情報Y出現回数」列に格納する。また、カテゴリペア取得部13は、カテゴリ情報の組み合わせ毎の出現回数をカウントし、カウントした値をカテゴリペア候補管理テーブルの「同時出現回数」列に格納する。例えば、図4のカテゴリ候補管理テーブルの1行目のカテゴリペア候補の同時出現回数「280」は、カテゴリ情報「すし店」とカテゴリ情報「寿司」との組み合わせを有するPOI情報ペアの個数を表す。
続いて、カテゴリペア取得部13は、各カテゴリペア候補について、一方のカテゴリ情報Xの出現回数(カテゴリ情報X出現回数)と他方のカテゴリ情報Yの出現回数(カテゴリ情報Y出現回数)と同時出現回数とに基づいて、下記(式3)によりDice係数を算出する。ここで、|X|はカテゴリ情報X出現回数、|Y|はカテゴリ情報Y出現回数、|X∩Y|は同時出現回数を表す。
(式3):Dice係数=2×|X∩Y|/(|X|+|Y|)
上記(式3)により算出されるDice係数は、一方のカテゴリ情報と他方のカテゴリ情報の類似度を示す。具体的には、カテゴリ情報同士の類似度が大きい程、Dice係数は大きくなると考えられる。すなわち、Dice係数が大きい程、2つのカテゴリ情報が同一のカテゴリを示す可能性が高いという関係が成り立つ。そこで、カテゴリペア取得部13は、このようなDice係数の性質を利用して、Dice係数と予め定められた閾値との比較に基づいてカテゴリペアを取得してもよい。例えば、カテゴリペア取得部13は、Dice係数が予め定められた閾値(例えば0.7等)以上である場合に、一方のカテゴリ情報と他方のカテゴリ情報とのペアをカテゴリペアとして取得してもよい。
この場合、図4の例では、Dice係数が「0.903」であるカテゴリ情報「すし店」とカテゴリ情報「寿司」とのペア、及びDice係数が「0.778」であるカテゴリ情報「商業施設」とカテゴリ情報「ショッピングモール」とのペアがそれぞれ、カテゴリペアとして取得される。一方、Dice係数が「0.050」であるカテゴリ情報「居酒屋」とカテゴリ情報「飲食店」とのペアは、カテゴリペアとして取得されない。
カテゴリペア取得部13は、Dice係数が閾値未満であるカテゴリペア候補の情報をカテゴリペア候補管理テーブルから削除することで、カテゴリペアだけを格納するカテゴリペア管理テーブル(不図示)を生成してもよい。ただし、カテゴリペア取得部13は、図4に示すように、各カテゴリペア候補のDice係数をカテゴリペア候補管理テーブルの「Dice係数」列に格納した時点で処理を終了してもよい。この場合にも、カテゴリペア候補管理テーブルの「Dice係数」列を参照することにより、カテゴリペア(すなわちDice係数が閾値以上のペア)を特定可能な状態となる。すなわち、実質的にカテゴリペア取得部13によってカテゴリペアが取得されることになる。
なお、カテゴリペア取得部13は、上述したDice係数を用いた判定処理を省略してもよい。この場合、カテゴリペア取得部13は、POI情報ペアに含まれる各POI情報のカテゴリ情報同士を、直ちにカテゴリペアとして取得してもよい。ただし、上述したDice係数を用いた判定処理を行うことにより、カテゴリペアをより精度良く抽出することが期待できる。
また、上記例では、カテゴリペア取得部13は一方のカテゴリ情報と他方のカテゴリ情報との類似度を表す指標としてDice係数を用いたが、カテゴリペア取得部13はDice係数以外の指標を用いてもよい。例えば、カテゴリペア取得部13は、下記(式4)及び(式5)で算出されるJaccard係数及びSimpson係数等をDice係数の代わりに用いてもよい。ここで、|X∪Y|は、カテゴリペア候補管理テーブルに格納されたカテゴリペア候補のうち、カテゴリ情報X及びカテゴリ情報Yの少なくとも一方を含むカテゴリペア候補の数を表す。min(x,y)はxとyの小さい方の値を表す。
(式4):Jaccard係数=|X∩Y|/|X∪Y|
(式5):Simpson係数=|X∩Y|/min(|X|,|Y|)
上述したPOI情報ペア取得部12及びカテゴリペア取得部13の処理により、同一のカテゴリを示すカテゴリペアが取得(抽出)される。
比較対象取得部14は、比較対象となる第1POI情報(第1場所情報)と第2POI情報(第2場所情報)とを取得する。第1POI情報及び第2POI情報は、例えばオペレータ等によって入力される。
また、上述した通り、POI情報ペア取得部12によって利用される第1条件は、比較的厳しい条件に設定されている。このため、実際には同一のPOIを示すPOI情報ペア候補が、POI情報ペア取得部12によってPOI情報ペアとして抽出されない可能性がある。そこで、比較対象取得部14は、POI情報ペア候補管理テーブルに含まれるPOI情報ペア候補のうち、POI情報ペア取得部12によってPOI情報ペアとして取得されなかったPOI情報ペア候補を、第1POI情報及び第2POI情報として取得してもよい。
比較対象取得部14は、このようにして取得した第1POI情報(名称A、カテゴリ情報A、緯度A、経度A)及び第2POI情報(名称B、カテゴリ情報B、緯度B、経度B)のペア(以下「比較対象ペア」)の情報を、比較対象ペア管理テーブルに格納する。
図5は、比較対象ペア管理テーブルの一例を示す図である。比較対象ペア管理テーブルは、比較対象ペアの情報として、第1POI情報及び第2POI情報と共に、POI情報ペア取得部12により算出された距離(dist)及び最長共通部分列比(lcsr)の情報を格納している。図5の比較対象ペア管理テーブルの1〜3行目の比較対象ペアは、POI情報ペア取得部12によってPOI情報ペアとして取得されなかったPOI情報ペア候補(図2のPOI情報ペア候補管理テーブルの1,2,4行目のPOI情報ペア候補)に相当する。
判定部15は、第1POI情報に含まれるカテゴリ情報Aと、第2POI情報に含まれるカテゴリ情報Bと、カテゴリペア取得部13により取得されたカテゴリペアとに基づいて、第1POI情報と第2POI情報とが同一のPOIを示すか否かを判定する。
まず、判定部15は、カテゴリ情報Aとカテゴリ情報Bとのペアが、カテゴリペア取得部13により取得されたカテゴリペアに該当するか否かを判定する。上述したカテゴリペア管理テーブルが生成されている場合には、判定部15は、当該カテゴリペア管理テーブルを参照することにより、カテゴリ情報Aとカテゴリ情報Bとのペアがカテゴリペアに該当するか否かを判定できる。一方、カテゴリペア管理テーブルが生成されておらず、カテゴリペア候補管理テーブルの「Dice係数」列にカテゴリペア取得部13により算出されたDice係数が格納されている場合には、判定部15は、以下のようにしてカテゴリ情報Aとカテゴリ情報Bとのペアがカテゴリペアに該当するか否かを判定できる。すなわち、判定部15は、カテゴリ情報Aとカテゴリ情報Bとのペアがカテゴリペア候補管理テーブルに格納されており、且つ、当該ペアのDice係数が閾値以上である場合に、カテゴリ情報Aとカテゴリ情報Bとのペアがカテゴリペアに該当すると判定できる。なお、カテゴリ情報Aとカテゴリ情報Bとが同一の文字列である場合には、判定部15は、そのことをもって直ちに、カテゴリ情報Aとカテゴリ情報Bとのペアがカテゴリペアに該当すると判定してもよい。
判定部15は、カテゴリ情報Aとカテゴリ情報Bとのペアがカテゴリペアに該当すると判定した場合、当該比較対象ペアに対してカテゴリフラグ「1」を付与する。一方、判定部15は、カテゴリフラグ「1」が付与されない比較対象ペアに対して、カテゴリフラグ「0」を付与する。
次に、判定部15は、比較対象ペア(第1POI情報及び第2POI情報)間において、名称が同一ではなく(すなわちlcsr<1)、一方の名称が他方の名称を含んでおり、一方の名称の予め定められた文字位置に予め定められた文字が含まれているか否かを判定する。例えば、判定部15は、一方の名称の最終文字列として、予め定められた文字列「店」が含まれているか否かを判定する。一方の名称の最終文字列に「店」が含まれている場合、一方の名称を有するPOIは、他方の名称を有するPOI(例えば商業施設等)内のテナントである可能性がある。このように、名称同士の比較によって、一方の名称を有するPOIと他方の名称を有するPOIとが特別な関係(上記例では、一方が個々の商店等のテナントであり、他方がテナントを収容するオーナー施設である関係)を有することが推測可能な場合がある。そこで、判定部15は、このような名称の比較に基づいて特別な関係が推測される比較対象ペアが同一のPOIを示すと誤判定されてしまうことを防ぐために、当該比較対象ペアに対して例外フラグ「1」を付与する。一方、判定部15は、例外フラグ「1」が付与されない比較対象ペアに対して、例外フラグ「0」を付与する。なお、上記の判定は一例であり、判定部15は、予め定められた文字列として上述した「店」以外の文字列(例えば「支店」、「支社」等)を含めて、上述同様に判定してもよい。
なお、第1POI情報の名称A及び第2POI情報の名称Bの文字数が同一の場合には、判定部15は、名称Aを一方の名称とした場合の判定と、名称Bを一方の名称とした場合の判定との両方を実行してもよい。また、判定部15は、当該判定を行うにあたって、名称A及び名称Bに対する事前処理を行ってもよい。事前処理は、例えば文字列同士の比較を適切に行うために曖昧性を解消する処理であり、文字列内に含まれるスペース表記の削除及び公知のステミング処理等を含み得る。
図6は、上述の判定部15の処理によって比較対象ペア管理テーブルに格納された各比較対象ペアに対してカテゴリフラグ及び例外フラグが付与された状態を示す図である。なお、図6では、各POI情報の位置情報(緯度及び経度)の図示を省略している。
判定部15は、比較対象ペアについてのPOI間の距離(dist)、最長共通部分列比(lcsr)、カテゴリフラグ、及び例外フラグに基づいて、当該比較対象ペアが同一のPOIを示すか否かを判定する。判定部15は、予め定められたルールに基づいて比較対象ペアが同一のPOIを示すか否かを判定してもよい。例えば、判定部15は、以下の第2条件(POIの名称についての条件(lcsr≧0.8)及びPOIの位置についての条件(dist≦100))及びフラグ条件を満たす比較対象ペアを、POI情報ペアであると判定してもよい。
(第2条件)
・lcsr≧0.8
・dist≦100
(フラグ条件)
・カテゴリフラグ=1
・例外フラグ=0
ここで、第2条件は、POI情報ペア取得部12の判定に利用される上記第1条件よりも緩和された条件である。このように、判定部15は、POIの名称及び位置についての判定条件(第2条件)をPOI情報ペア取得部12が利用する判定条件(第1条件)よりも緩和することで、POI情報ペアの抽出漏れの発生を抑制し得る。一方、判定部15は、上述したフラグ条件も併用して判定を行うことにより、POIの名称及び位置についての判定条件の緩和に起因するPOI情報ペアの誤抽出の発生を抑制し得る。このようにカテゴリの同一性に基づく判定を行うことにより、POI情報ペアの誤抽出を抑制しつつ抽出漏れも抑制することができ、POI情報ペアを適切に抽出できる。
また、判定部15は、公知の機械学習によって予め生成された判定モデルを用いて上記判定を行ってもよい。このような判定モデルは、例えば、同一のPOIを示すか否かが判明しているPOI情報同士のペアを学習データとして用いた機械学習を実行することにより生成される。判定モデルは、例えば、説明変数として距離(dist)、最長共通部分列比(lcsr)、カテゴリフラグ、及び例外フラグを入力し、目的変数として同一のPOIを示すか否か(例えば同一のPOIを示す場合には「1」、同一のPOIを示さない場合には「0」を取る変数)を出力するモデルである。
次に、図7に示されるフローチャートを参照して、サーバ10の動作を説明する。ステップS1及びS2の処理は、カテゴリペアを取得するための処理である。ステップS3及びS4の処理は、ステップS2で取得されたカテゴリペアを利用して比較対象となる第1POI情報と第2POI情報との名寄せ判定を実行するための処理である。
ステップS1において、POI情報ペア取得部12が、複数のPOI情報のうちから、同一のPOIを示すPOI情報ペアを取得する。本実施形態では、POI情報ペア取得部12は、POIの名称及び位置についての第1条件を用いた判定により、POI情報ペア候補管理テーブル(図2参照)に格納された各POI情報ペア候補について、同一のPOIを示すか否かを判定する。
ステップS2において、カテゴリペア取得部13が、同一のカテゴリを示すカテゴリ情報のペアであるカテゴリペアを取得する。本実施形態では、カテゴリペア取得部13は、POI情報ペア取得部12により取得されたPOI情報ペアに基づいてカテゴリペア候補を取得する。そして、カテゴリペア取得部13は、各カテゴリペア候補について、一方のカテゴリ情報の出現回数(カテゴリ情報X出現回数)と他方のカテゴリ情報の出現回数(カテゴリ情報Y出現回数)と同時出現回数とに基づいてカテゴリペアを取得する。より具体的には、例えば、カテゴリペア取得部13は、上記(式3)により算出されたDice係数が予め定められた閾値(例えば0.7等)以上である場合に、一方のカテゴリ情報と他方のカテゴリ情報とのペアをカテゴリペアとして取得する。
ステップS3において、比較対象取得部14が、比較対象となる第1POI情報と第2POI情報とを取得する。例えば、比較対象取得部14は、POI情報ペア候補管理テーブルに含まれるPOI情報ペア候補のうち、POI情報ペア取得部12によってPOI情報ペアとして取得されなかったPOI情報ペア候補を、第1POI情報及び第2POI情報として取得する。
ステップS4において、判定部15が、第1POI情報に含まれるカテゴリ情報と、第2POI情報に含まれるカテゴリ情報と、カテゴリペア取得部13により取得されたカテゴリペアとに基づいて、第1POI情報と第2POI情報とが同一のPOIを示すか否かを判定する。例えば、判定部15は、第1POI情報及び第2POI情報のペア(比較対象ペア)が上述した第2条件及びフラグ条件を満たす場合に、第1POI情報と第2POI情報とが同一のPOIを示すと判定する。
以上述べたサーバ10では、複数のPOI情報のうちから、同一のPOIを示すPOI情報ペアが取得される。そして、当該POI情報ペアに含まれるカテゴリ情報の組み合わせに基づいて同一のカテゴリを示すカテゴリ情報のペアであるカテゴリペアが取得される。このようにPOIの同一性とカテゴリの同一性とを結び付けることにより、同一のカテゴリを示すカテゴリペアを精度良く生成できる。このようなカテゴリペアは、POI情報同士の同一性を精度良く判定するために用い得る。本実施形態では、カテゴリペアは、上述したカテゴリフラグに基づく判定に利用され得る。したがって、サーバ10によれば、POI情報同士の同一性をより精度良く判定することが可能となる。
また、カテゴリペア取得部13は、POI情報ペア取得部12により取得されたPOI情報ペアにおける、カテゴリ情報毎の出現回数とカテゴリ情報の組み合わせ毎の出現回数とに基づいて、カテゴリペアを取得する。本実施形態では一例として、カテゴリペア取得部13は、上記(式3)により算出されるDice係数と閾値との比較に基づいて、カテゴリペアを取得(抽出)する。この構成により、カテゴリペアをより精度良く抽出できる。
また、サーバ10は、比較対象となる第1POI情報と第2POI情報とを取得する比較対象取得部14と、第1POI情報に含まれるカテゴリ情報と、第2POI情報に含まれるカテゴリ情報と、カテゴリペア取得部13により取得されたカテゴリペアとに基づいて、第1POI情報と第2POI情報とが同一のPOIを示すか否かを判定する判定部15と、を備える。このような構成によれば、カテゴリペア取得部13により取得されたカテゴリペアに基づいて第1POI情報と第2POI情報とのカテゴリの同一性を判定し、その判定結果に基づいて、POI情報同士の同一性を適切に判定できる。
具体的には、本実施形態では、比較対象となるPOI情報のペアのカテゴリ情報の組み合わせが、例えば「すし店」と「寿司」のようにカテゴリペアに合致する場合には、当該POI情報のペアにカテゴリフラグ「1」が設定される。一方、POI情報のペアのカテゴリ情報の組み合わせが、例えば「すし店」と「ショッピングモール」のようにカテゴリペアに合致しない場合には、当該POI情報のペアにカテゴリフラグ「0」が設定される。その後、上述したように、カテゴリフラグにも基づいてPOI情報同士の同一性が判定される。このように、カテゴリの同一性に基づいて判定することにより、POI情報同士の同一性を精度良く判定することが可能となる。
また、POI情報ペア取得部12は、複数のPOI情報間において、名称及び位置についての予め定められた第1条件が満たされるか否かを判定し、当該判定の結果に基づいてPOI情報ペアを取得する。判定部15は、第1POI情報と第2POI情報との間において、名称及び位置についての予め定められた第2条件が満たされるか否かを判定し、当該判定の結果にも基づいて第1POI情報と第2POI情報とが同一のPOIを示すか否かを判定する。ここで、第2条件は、第1条件よりも緩和された条件である。この構成により、上述したように、POI情報ペアの抽出漏れの発生を抑制すると共に、名称及び位置についての判定条件の緩和に起因するPOI情報ペアの誤抽出の発生を抑制できる。
また、判定部15は、第1POI情報と第2POI情報との間において、名称が同一ではなく、一方の名称が他方の名称を含んでおり、一方の名称の予め定められた文字位置に予め定められた文字が含まれているか否かを判定し、当該判定の結果にも基づいて、第1POI情報と第2POI情報とが同一のPOIを示すか否かを判定する。本実施形態では、判定部15は、上述した例外フラグを設定することにより、このような判定を実行する。この構成により、第1POI情報及び第2POI情報が同一のPOIを示さない特別な関係にあることが推測される場合に、POI情報ペアの誤抽出を適切に防止できる。
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されない。例えば、サーバ10は、比較対象取得部14及び判定部15を備えなくてもよい。この場合、サーバ10により生成されたカテゴリペアが他の装置に出力され、当該他の装置が当該カテゴリペアを利用して、上述した比較対象取得部14及び判定部15の処理を実行してもよい。
なお、上記実施形態の説明に用いたブロック図は、機能単位のブロックを示している。これらの機能ブロック(構成部)は、ハードウェア及び/又はソフトウェアの任意の組み合わせによって実現される。また、各機能ブロックの実現手段は特に限定されない。すなわち、各機能ブロックは、物理的及び/又は論理的に結合した1つの装置により実現されてもよいし、物理的及び/又は論理的に分離した2つ以上の装置を直接的及び/又は間接的に(例えば、有線及び/又は無線で)接続し、これら複数の装置により実現されてもよい。
例えば、上記実施形態におけるサーバ10は、上記実施形態のサーバ10の処理を行うコンピュータとして機能してもよい。図8は、本実施形態に係るサーバ10のハードウェア構成の一例を示す図である。上述のサーバ10は、物理的には、プロセッサ1001、メモリ1002、ストレージ1003、通信装置1004、入力装置1005、出力装置1006、及びバス1007等を含むコンピュータ装置として構成されてもよい。
なお、以下の説明では、「装置」という文言は、回路、デバイス、ユニット等に読み替えてもよい。サーバ10のハードウェア構成は、図8に示された各装置を1つ又は複数含むように構成されてもよいし、一部の装置を含まずに構成されてもよい。
サーバ10における各機能は、プロセッサ1001、メモリ1002等のハードウェア上に所定のソフトウェア(プログラム)を読み込ませることで、プロセッサ1001が演算を行い、通信装置1004による通信、メモリ1002及びストレージ1003におけるデータの読み出し及び/又は書き込みを制御することで実現される。
プロセッサ1001は、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。プロセッサ1001は、周辺装置とのインターフェース、制御装置、演算装置、レジスタ等を含む中央処理装置(CPU:Central Processing Unit)で構成されてもよい。
また、プロセッサ1001は、プログラム(プログラムコード)、ソフトウェアモジュール、及び/又はデータを、ストレージ1003及び/又は通信装置1004からメモリ1002に読み出し、これらに従って各種の処理を実行する。プログラムとしては、上述の実施の形態で説明した動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。例えば、サーバ10の判定部15は、メモリ1002に格納され、プロセッサ1001で動作する制御プログラムによって実現されてもよく、図1に示した他の機能ブロックについても同様に実現されてもよい。上述の各種処理は、1つのプロセッサ1001で実行される旨を説明してきたが、2以上のプロセッサ1001により同時又は逐次に実行されてもよい。プロセッサ1001は、1以上のチップで実装されてもよい。なお、プログラムは、電気通信回線を介してネットワークから送信されてもよい。
メモリ1002は、コンピュータ読み取り可能な記録媒体であり、例えば、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、RAM(Random Access Memory)等の少なくとも1つで構成されてもよい。メモリ1002は、レジスタ、キャッシュ、メインメモリ(主記憶装置)等と呼ばれてもよい。メモリ1002は、上記実施形態に係る情報処理方法(図7のフローチャートに示される手順等)を実施するために実行可能なプログラム(プログラムコード)、ソフトウェアモジュール等を保存できる。
ストレージ1003は、コンピュータ読み取り可能な記録媒体であり、例えば、CD−ROM(Compact Disc ROM)等の光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、デジタル多用途ディスク、Blu−ray(登録商標)ディスク)、スマートカード、フラッシュメモリ(例えば、カード、スティック、キードライブ)、フロッピー(登録商標)ディスク、磁気ストリップ等の少なくとも1つで構成されてもよい。ストレージ1003は、補助記憶装置と呼ばれてもよい。上述の記憶媒体は、例えば、メモリ1002及び/又はストレージ1003を含むデータベース、サーバ、その他の適切な媒体であってもよい。
通信装置1004は、有線及び/又は無線ネットワークを介してコンピュータ間の通信を行うためのハードウェア(送受信デバイス)であり、例えばネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュール等ともいう。
入力装置1005は、外部からの入力を受け付ける入力デバイス(例えば、キーボード、マウス、マイクロフォン、スイッチ、ボタン、センサ等)である。出力装置1006は、外部への出力を実施する出力デバイス(例えば、ディスプレイ、スピーカー、LEDランプ等)である。なお、入力装置1005及び出力装置1006は、一体となった構成(例えば、タッチパネル)であってもよい。
また、プロセッサ1001及びメモリ1002等の各装置は、情報を通信するためのバス1007で接続される。バス1007は、単一のバスで構成されてもよいし、装置間で異なるバスで構成されてもよい。
また、サーバ10は、マイクロプロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)等のハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部又は全てが実現されてもよい。例えば、プロセッサ1001は、これらのハードウェアの少なくとも1つで実装されてもよい。
以上、本発明について詳細に説明したが、当業者にとっては、本発明が本明細書中に説明した実施形態に限定されるものではないということは明らかである。本発明は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更された態様として実施することができる。したがって、本明細書の記載は、例示説明を目的とするものであり、本発明に対して何ら制限的な意味を有するものではない。
本明細書で説明した各態様/実施形態の処理手順、フローチャート等は、矛盾の無い限り、順序を入れ替えてもよい。例えば、本明細書で説明した方法については、例示的な順序で様々なステップの要素を提示しており、提示した特定の順序に限定されない。
入出力された情報等は特定の場所(例えば、メモリ)に保存されてもよいし、管理テーブルで管理されてもよい。入出力される情報等は、上書き、更新、又は追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
判定は、1ビットで表される値(0か1か)によって行われてもよいし、真偽値(Boolean:true又はfalse)によって行われてもよいし、数値の比較(例えば、所定の値との比較)によって行われてもよい。
本明細書で説明した各態様/実施形態は単独で用いられてもよいし、組み合わせて用いられてもよいし、実行に伴って切り替えて用いられてもよい。また、所定の情報の通知(例えば、「Xであること」の通知)は、明示的に行うものに限られず、暗黙的(例えば、当該所定の情報の通知を行わない)によって行われてもよい。
ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能等を意味するよう広く解釈されるべきである。
また、ソフトウェア、命令等は、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア及びデジタル加入者回線(DSL)等の有線技術及び/又は赤外線、無線及びマイクロ波等の無線技術を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び/又は無線技術は、伝送媒体の定義内に含まれる。
本明細書で説明した情報及び信号等は、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップ等は、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、又はこれらの任意の組み合わせによって表されてもよい。
なお、本明細書で説明した用語及び/又は本明細書の理解に必要な用語については、同一の又は類似する意味を有する用語と置き換えてもよい。
本明細書で使用する「システム」及び「ネットワーク」という用語は、互換的に使用される。
また、本明細書で説明した情報、パラメータ等は、絶対値で表されてもよいし、所定の値からの相対値で表されてもよいし、対応する別の情報で表されてもよい。
上述したパラメータに使用される名称はいかなる点においても限定的なものではない。さらに、これらのパラメータを使用する数式等は、本明細書で明示的に開示したものと異なる場合もある。
本明細書で使用する「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」との両方を意味する。
本明細書で使用する「第1の」、「第2の」等の呼称を使用した要素へのいかなる参照も、それらの要素の量又は順序を全般的に限定するものではない。これらの呼称は、2つ以上の要素間を区別する便利な方法として本明細書で使用され得る。したがって、第1及び第2の要素への参照は、2つの要素のみがそこで採用され得ること、又は何らかの形で第1の要素が第2の要素に先行しなければならないことを意味しない。
「含む(including)」、「含んでいる(including)」、及びそれらの変形が、本明細書あるいは特許請求の範囲で使用されている限り、これら用語は、用語「備える」と同様に、包括的であることが意図される。さらに、本明細書あるいは特許請求の範囲において使用されている用語「又は(or)」は、排他的論理和ではないことが意図される。
本明細書において、文脈又は技術的に明らかに1つのみしか存在しない装置であることが示されていなければ、複数の装置をも含むものとする。
本開示の全体において、文脈から明らかに単数を示したものではなければ、複数のものを含むものとする。