Overlap分析

実在する店舗を相手にしたビジネスにおいては、競合他社も同一の店舗に対してサービスを行っているかを分析することは非常に意義がある。食べログやトリップアドバイザーのようなアグリゲーター出前館のようなフードデリバリープラットフォーマーの店舗リストを入手することができたら、自社サービスを展開している店舗とのoverlapを把握することは、自社サービスの次の展開を考える上で非常に有益である。

さてまずどうやってデータを入手するか。現在の世の中にはデータスクレイピングサービスベンダーというのが山ほどいるので、データ入手のプロセスはアウトソースできる。あるいは簡易なデータスクレイピングツールも色々あるので、それらを活用してデータを入手できる。

次にデータを入手した後にどうやってoverlapを把握するか。これがなかなかの困難である。なぜならば、同じ店舗の名前や住所は、プラットフォームによって違う表記になることがよくあるのである。日本のデータにはあまり馴染みがないが、例えば同じマクドナルド渋谷店でも、

と異なる言語表記で表されることは多くある。ヨーロッパは言語が違えどアルファベットはほぼ同じ、ほとんどの名前は英語表記で統一されているのでやや難易度は低いが、日本の場合はヨーロッパよりも難易度が高いと思われる。

さて、名前や住所が店舗を特定する上で必ずしも頼りにならないとするとどうすれば良いのであろうか。緯度経度(longitude/latitude)が住所の代替手段となる。大抵のウェブサイトは、地図に店舗の場所を表記するために緯度経度情報が載っている。目に見えない形であっても裏のhtmlあるいはバックエンドシステムのAPIはこの情報を返してくる。

緯度経度データが取れれば、あとは昨今のデータウェアハウスは二点の緯度経度をインプットにした直線距離をアウトプットしてくれたり、同じ場所であるか判定してくれるファンクションを備えているのでそれを使えば地理上の同一地点かどうかは判断できる。

前後するが地理上の同一/近似地点かどうかを判断しても、名称はその上で必要である。なぜなら同じ地点であっても、ショッピングストリートやショッピングモールであった場合、どの店舗かをさらに特定する必要があるからである。そのためREGEXなどを用いて何とかして名称データをきれいにする必要がある。

なお、名称の近似値をスコア化し、閾値を敷いてYES・NO判定するのにLevenshtein Distanceなどを使う。

そして名称・地理地点が同じであれば同一の店舗を意味していると判断する。