Как ищет и как не ищет 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?
    Поделиться публикацией
    Похожие публикации
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 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 не покупает у них эти данные.

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

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

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