6 апреля 2010 в 14:00

Как ищет и как не ищет Google Maps

На этот вопрос (см. сабж) мне иногда приходится отвечать, поскольку я работаю над альтернативным сервисом локального поиска. Google очень туманно описывает откуда берутся данные. Основными источниками для статьи стали собственные наблюдения, и эта заявка на патент.



Главное заблуждение — в том, что «Google Maps находит информацию о компаниях в интернете». Это не совсем так. Информация о вашей компании может быть на сотне проиндексированных веб-страниц, но так и не попасть в выдачу на Google Картах .


В отличии от веб-поиска, который ищет по индексу закешированных веб-страниц, Google Maps содержит структурированный каталог предприятий. Каждая запись о предприятии содержит ключ-значение поля с данными понятными для машины. Это должно позволять найти «ресторан с вегетарианским меню и предзаказом в радиусе 10км от Киевского вокзала», но чаще каталог содержит точные значения лишь о адресе и номере телефона.

Поэтому важно не как Google ищет по собственному каталогу, а откуда черпается информация.

Откуда данные в каталоге Google Maps


Как сообщает Google, каталог «совмещает информацию из разных источников, чтобы выдать лучший результат». Источники делятся на две группы:

Структурированные и полу-структурированные — это источники данных, которые легко привести в понятные для программы ключ-значение. Обычно это:
  • коммерческий базы предприятий, которые покупаются
  • веб-сайты содержащие крупные каталоги компаний; данные с этих сайтов забираются индивидуальным краулером, который регулярными выражениями выпарсивает информацию со страниц каталога
  • Google Local Business Center где владельцы предприятий сами заполняют информацию
  • KML (и аналогичные) файлы, которые используются для отображения точек с помощью Google Maps API
  • пользовательские карты

Неструктурированные — это проиндексированные веб-сайты, которые могут содержать информацию о предприятии, но данные из них не поддаются структуризации.

Как структурируется информация


Этот процесс можно описать в три основных шага:
  1. Данные, приведенные к виду ключ-значение, приходят с нескольких структурированных источников
  2. Данные о предприятии кластеризируются: сравниваются значения с разных источников и для каждого определяется точность и вес.
  3. Структурированные данные дополняются неструктурированными *

*

Структурированные данные обычно содержат точную но скудную информацию о предприятии. А это затрудняет:
  • поиск; как найти «частный детский сад» если каталог предприятий не содержит поле о форме собственности?
  • ранжирование; как определить какая «аптека» должна быть в выдаче первой, если все данные с одного каталога?
Поэтому, когда для предприятия определены основные поля (название, адрес, номер телефона), осуществляется веб-поиск по запросу:
название_предприятия+адрес_предприятия
и найденные страницы (а главное ключевые слова из найденных страниц) ассоциируются с данными о компании.

Как это не работает


Можно привести ряд примеров когда алгоритм приводит к ошибочным результатам.

Ищем «хостел» а находим консульский отдел США

Ищем хостел а находим консульский отдел США

Причина: сайты хостел-ассоциаций постоянно размещают у себя перечни посольств и консульств. Консульское отделение попало в каталог из одного из структурированных источников но было ассоциировано с сайтом hihostels.com.ua

Ищем «аренду квартиры» а находим ЖЕК

Ищем аренду квартиры а находим ЖЕК

Причина: сайты о аренде недвижимости размещают у себя перечни коммунальных предприятий. ЖЕК попал в каталог Google с одной из баз предприятий, но был ассоциирован с сайтом toprealty.org.ua

Что делать чтобы компания попала в выдачу Google Maps


Очевидно, что сколько б не содержалось в вебе информации о компании, самое важное, чтобы эта информация попала в один (а лучше в несколько) структурированных источников. Проблема в том что Google не приводит перечень баз и каталогов с которых берется информация. Единственное известное место, это Google LBC.

Итого


Google Maps работает не так прозрачно как Google Web Search:
  • Большинство пользователей не осознает как ищет Google Maps
  • Часто нельзя определить источник информации
  • Иногда результат не соответствует принципу «наименьшего удивления»

Думаю Google мог лучше.

Буду благодарен за исправления, дополнения и комментарии.

Источники


Generating structured information (patent application US 2006/0200478 A1)
Google's Local Search Patent Application (at SEO by the Sea)
Local listings: Where do they come from?
Vladimir Bilonenko @citycat
карма
17,0
рейтинг 0,0
Похожие публикации
Самое читаемое Разработка

Комментарии (33)

  • –6
    Кстати интересный ресурс mapia.ua
    Ищет именно так, как хотелось бы вам в данном контексте.
    Даже забавный ролик на ютубе есть goo.gl/nA4R
    • 0
      А в чем технологическое преимущество Mapia.ua над Google Maps?
    • 0
      В каком это ещё «контексте»? Максимум, что она ищет это банкоматы из базы, введите например «спортзал», он вам ничего не вернёт.
      Уже если действительно что-то нужно найти в своём районе (я с Киева), то можно попробовать на maplos.com, он ищет именно по всему интернету с помощью googl-а.
      • +1
        Действительно mapia находит только «спорт зал» (раздельно).
        Спасибо за рекламу, но mapia и maplos проекты не того масштаба, да и задачи у них разные.
  • +1
    «Что делать чтобы компания попала в выдачу Google Maps»
    Может надо просто добавить компаниюиспользуя сервис Local Business Center? www.google.com/local/add/splashPage?hl=ru&gl=ru
    • 0
      Так и есть
      … самое важное, чтобы эта информация попала в один (а лучше в несколько) структурированных источников … Единственное известное место, это Google LBC.

      Но как сделать, чтобы ваша компания была на первой странице по определенному запросу?

      И с другой стороны, представьте что Google (веб-поиск) будет находить только те страницы, которые вы добавили через Webmaster Tools
  • 0
    Частенько замечаю информацию с крупных туристических порталов вроде tripadvisor.
  • 0
    Какое то время назад видел от гуглей публикации на тему интеграции пространственных данных в карту сайта (там даже примеры кода были).
    www.google.com/support/webmasters/bin/topic.py?hl=ru&topic=14688
  • 0
    А если бот по ссылке наткнется на kml, который не использовался map API и проиндексирует его, он поймет что делать?
    • 0
      Не знаю. Знаю что данные с сайтов использующих Map API утекают в базу Google. Но как именно — трудно сказать.
  • 0
    Интересно. Как вы объясняете результаты поиска Охтинского вокзала на карте Петербурга?

    Справка: Охтинский вокзал существовал до 1929 года и сейчас на его месте просто набережная


    Или например поищите «почтовое отделение» сразу после того как налюбуетесь на вокзал. Неужели это Почта России позаботилась о том чтоб вбить все отделения в LBC? В жизни не поверю.

    Мне кажется что вы выбрали неудачный (ну, пока по крайней мере) город для эксперимента. В Москве и в Петербурге, не говоря уж о более других городах, есть и другие источники данных, кроме LBC.
    • 0
      Если внимательно просмотрите статью, то заметите, что я указал еще ТРИ структурированных источника данных кроме LBC. Это должно ответить на ваш вопрос.

      Возможно, для Киева у Google Maps меньше данных и поэтому легче найти узкие места в выдаче. Но я не думаю что есть разница в алгоритме.
      • –1
        О да, конечно же можно сказать «ну наверное эта фигня сидит в каком-нибудь KML файле или на специальном сайте». Но не проще ли поверить в то, что Охтинский вокзал был обнаружен на википедии, в которой даны его точные координаты, чем выдумывать себе какого-то энтузиаста, специально для гугла делающего KML'и или коммерческую базу данных?
      • –1
        Если вас не убеждает вокзал, и ещё какой-нибудь «банкомат райффайзен», который есть на maps, но которого нет, например, в yell.ru, поищите «памятник петру I». Среди результатов будут какие-то левые турфирмы, которые упоиянули что-то похожее на своей странице, недалеко от адреса. Вы считаете что и их энтузиасты занесли в какие-нибудь структурированные каталоги?
        • 0
          веб-сайты содержащие крупные каталоги компаний; данные с этих сайтов забираются индивидуальным краулером, который регулярными выражениями выпарсивает информацию со страниц каталога

          В частности для Википедии Google парсит дампы (http://download.wikimedia.org/), где в wiki разметке содержатся координаты

          Поэтому, когда для предприятия определены основные поля (название, адрес, номер телефона), осуществляется веб-поиск по запросу:
          название_предприятия+адрес_предприятия
          и найденные страницы (а главное ключевые слова из найденных страниц) ассоциируются с данными о компании.

          Именно так левая турфирма (попавшая в каталог из структурированного источника) оказалась в выдаче при поиске памятника
          • 0
            Ссылку на дровишки не приведёте? Или вы сейчас раскрываете инсайдерские тайны? Или это ваша личная догадка?

            • 0
              По поводу Википедии, я не могу привести ссылку на источник, поэтому будем считать это моей догадкой. Но вот (http://www.geonames.org/wikipedia/), например ребята парсят дампы википедии и показывают на гугл картах. В общем вариантов попадания этих данных в каталог Google много.

              Что касается памятника и турфирм, то алгоритм описан в патенте, ссылка в статье.

              А можно поинтересоваться, какую точку зрения вы отстаиваете?
              • 0
                Ту что не так уж всё плохо с неструктурированной информацией.

                «Как ищет и как не ищет Google Maps. Главное заблуждение — в том, что «Google Maps находит информацию о компаниях в интернете». Это не совсем так.»


                Google Maps находит информацию о компаниях в интернет, прям-таки на веб страницах. Смотрите пункты [0025], [0026] и [0039] упомянутого патента. Разумеется, пользуется и другими источниками информации, в том числе и данными от провайдеров и LBC.
                • 0
                  Компания не попадает в каталог Google пока её адрес не будет определен через структурированный источник. А потом, да, информация дополняется из «интернет».

                  Но если компании нет в структурированном источнике, её нет в выдаче.

                  Смотрите, вот сравнение результатов по запросу «спортзал» в Google Maps и в сервисе, который ищет геоданные непосредственно в веб, используя Гугловский же Search API (работает только для Киева, его пишу я)



                  Как вы объясните разницу в количестве результатов?
                  • 0
                    Я думаю что в Украине карты ещё не научились выгрызать адреса с веб-страниц. А в России — научились. Вот вам банкомат Райффайзен про который у maps нет никаких сведений, кроме сайта raiffeisen.ru (и которого на самом деле нет в жёлтых страницах). А вот банкомат ВТБ-24 про который есть кое-что в том числе и в жёлтых страницах (хотя тоже не очень релевантное, ибо в yell про банки, а не про банкоматы).

                    И нет, эти банкоматы не из LBC, потому что для тез кто в LBC пишется что-то в духе "подтверждено владельцем"
                    • 0
                      Конечно, эта информация была взята из коммерческой базы или онлайн-каталога )) Обратите внимание на следующие вещи:

                      1. У Яндекса (который покупает базы и указывает поставщика) есть данные про этот банкомат
                      2. Страница-источник (http://www.raiffeisen.ru/) указанная Гуглом, напротив, не содержит данных про этот банкомат, (как же гугл с неё взял данные ?)

                      Я вам предлагаю вместо того, чтобы строить предположения о том как Google «выгрызает» данные из веб страниц, написать об этом статью в этот же блог (с указанием источников)

                      Буду признателен и обещаю плюсовать ))
                      • 0
                        Вообще для любого упомянутого в интернетах адреса, особенно если это адрес какого-нибудь хоть чуточку полезного бизнеса, можно найти какой-нибудь онлайн-каталог, в котором есть этот бизнес. Ибо владелец бизнеса же не настолько идиот, чтоб обзаводиться сайтом, но не публиковаться в каталогах. Но это вовсе не означает что Google или Яндекс в поте лица пишут конвертеры и заключают договора со всевозможными страницами разной степени желтизны, ибо такой процесс не scalable, на это не хватит никаких ресурсов.

                        1. У Яндекса (который покупает базы и указывает поставщика)
                        есть данные про этот банкомат


                        Надо посоветовать Яндексу сменить поставщика, ибо в Питере банкоматов Райффайзена значительно больше, чем 6. Ну или попробовать выгрызать адреса из веба :)

                        2. Страница-источник (http://www.raiffeisen.ru/) указанная Гуглом, напротив, не содержит данных про этот банкомат, (как же гугл с неё взял данные ?)


                        Потому что написан только домен, а если потыкаться, то и список увидите.

                        вместо того, чтобы строить предположения о том как Google «выгрызает» данные из веб страниц


                        Хм. Предположения-то вы строите :)
                        • 0
                          Ах, у Яндекса остатки после zoomout'а показываются… Окей, пусть продолжают пользоваться :)
                        • 0
                          Google или Яндекс в поте лица пишут конвертеры и заключают договора со всевозможными страницами разной степени желтизны, ибо такой процесс не scalable, на это не хватит никаких ресурсов.

                          Согласен что это не scalable, поэтому и работаю над вышеупомянутым сервисом.
                      • 0
                        Кстати, вы же знаете про геокодинг: code.google.com/apis/maps/documentation/services.html#Geocoding и наверняка для вас не проблема — найти на странице что-то похожее на адрес «парой регулярных выражений» © и попробовать скормить это сервису геокодинга? Вот и гугл может запросто сделать то же самое. Проиндексировать после этого страницу и замапить результаты поиска с неё на адрес тоже вроде решаемо.
                        • 0
                          «гугл может запросто сделать то же самое» — а где пруф линк, что он так делает?

                          Конечно он мог бы, но там все не просто, потому что если на странице есть слово «банкомат» и некий адрес, это вовсе не значит что они связанны.

                          Вообще не понимаю почему мы спорим. Google Maps ищет по каталогу (local DB), а не по индексу веб-страниц. Есть патент где описано откуда в этом каталоге данные.

                          Поэтому я предлагаю вам привести источник где описано что Google Maps умеет находить что-то исходя только из неструктурированных данных, и описано как он это делает. Или дискуссия не имеет смысла.
                          • 0
                            Вам же там ясно показано, что local DB получается после кластеринга нескольких источников данных. Это внутренняя гугловская структура, индекс для google maps. Разумеется это структурированное хранилище. Источниками для него служат в том числе и веб страницы, возможно в компании с какими-то внешними структурированными данными, а возможно и нет. В патенте и в его изложениях для простых смертных расписывается, каким образом данные смешиваются, как делаются кластеры, чему может быть дан больший вес и всё такое прочее.

                            Почему вы делаете безапелляционный вывод о том, что без наличия чего-то (слабо)структурированного какой-то бизнес не имеет права появиться на картах, непонятно. Укажите номер пункта в патенте, где это написано.

                            • 0
                              Окей мы сошлись на том что поиск ведется не веб-индексу, а по local DB, которая строится указанным в патенте методом?
                              • 0
                                Ничего против этого не имею. Вполне естественно что карты строят себе свой специальный индекс из многих источников.
                                • 0
                                  Отлично, идем дальше.

                                  Мы с вами вместе читали патент. Возьмем следующий пример: я в своем ЖЖ пишу что отныне я по адресу Пушкина 26 открываю подпольное кафе.

                                  Эта информация попадет в local DB? Если попадет, то как? (желательно с ссылкой на патент или другой источник)
                                  • 0
                                    Думаю что попадёт, если будет достаточно весомых сигналов для кластеризатора. Я не знаю, какие именно фичи анализирует кластеризатор и с какими весами, но например:

                                    * у вашей страницы хороший pagerank
                                    * на каких-то других страницах тоже будет упоминание кафе на Пушкина 26
                                    * пользователи после выполнения веб запросов «кафе на Пушкина» тыкаются в ваш ЖЖ

                                    Разумеется это не тривиальная задача, но ею и её вариациями уже десяток лет занимаются всякие учёные, и на scholar.google.com можно поискать релевантные статьи. Не знаю, есть ли какая must-read статья, но вот на эту многие ссылаются.
                                    • 0
                                      В патенте не указано напрямую может гугл обходится без структурированого источника или нет. Я предположил (!) что НЕ может. И мое предположение подтвердилось рядом наблюдений, в том числе ошибками в поиске.

                                      Поскольку моё утверждение объясняет результаты выдаваемые гуглом, я считаю что прав.

                                      Вы утверждаете что Гугл геокодирует все подряд страницы, и если вышло, добавляет в local DB. Хорошо, докажите свое мнение аргументировано:

                                      1. Объясните ошибки из примеров в статье
                                      2. Объясните почему гугл выдает меньше результатов чем сервис на основе Google API
                                      3. Приведите пример результата который мог получится только из неструктурированного источника
                                      4. Объясните как кластеризируются веб-страницы (в патенте только про кластеризацию структурированных данных)

                                      И тогда я с удовольствием исправлю статью.
                                      • 0
                                        Вы утверждаете что Гугл геокодирует все подряд страницы, и если вышло, добавляет в local DB.

                                        Ни разу такого не утверждал.

                                        Ошибки приведённые у вас — это скорее всего ошибки кластеризатора. Он придал какой-то фиче больший вес и проассоциировал точку не с той страницей. Бывает. Но отнюдь не означает что невозможно использовать только неструктурированную информацию.

                                        Почему ваш сервис даёт больше результатов — понятия не имею, я же ничего про него не знаю :)

                                        Привести пример, в который вы сможете поверить, сложно, потому что см. выше — любой мало-мальски приличный бизнес упоминается в каких-нибудь каталогах и вы всё равно не поверите, что Google не покупает у них эти данные.

                                        Насчёт кластеризации, кластеризуются не страницы, а извлечённые из них фичи. Это ровно та же кластеризация, описанная в патенте.

                                        И боже упаси требовать исправить статью — она прекрасна :)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.