Основная цель любого языка - передавать информацию, будь то естественные языки или языки программирования. Однако естественные языки эволюционировали за тысячи лет и стали допускать очень высокую степень двусмысленности. Например, если вам нравится еда в ресторане, вы можете позже сказать своим друзьям, что «еда была отличной», или «еда была совершенно безумной», или, может быть, «в этом ресторане подают потрясающую еду». Учитывая доступ человеческого мозга к огромному количеству разговорных данных и непревзойденные возможности распознавания образов, он может легко интерпретировать все три приведенные выше фразы как означающие, что вы были очень довольны едой (однако я рекомендую с осторожностью интерпретировать третью). Это то, что мы называем «контекстом», и именно здесь машины только начали улучшаться.

Мы общаемся с машинами с помощью языков программирования, которые тщательно разработаны, чтобы устранить любую двусмысленность в общении. Здесь нет места контексту или интерпретации любого рода. Хотя эти языки обеспечивают основу для высокопроизводительных разговоров с машинами, полное удаление контекста в определенных ситуациях может оказаться невозможным и привести к плохим результатам. Прекрасным примером такой ситуации является геокодирование, процесс преобразования адресов, читаемых человеком, в точные координаты на карте, понятной компьютеру.

Рассмотрим этот адрес: «Квартира N-23, Анклав Орхидей, 121, Сигехалли, Кадугоди, возле холма Нитеш Форест Бангалор -560067, Карнатака».

С точки зрения друга, посетившего человека, остановившегося здесь, этот адрес очень полезен. В нем есть вся информация, которая может понадобиться кому-то, чтобы найти это место. Тем не менее, компьютер видит 14 разных слов, которые теперь нужно понять, прежде чем выдать точные координаты места. Может возникнуть вопрос, почему перед 560067 стоит «-». Следует ли считать, что это пин-код или нет? Или он может знать об Анклаве Орхидей, но не знать о лесном холме Нитеш и впоследствии потерять доверие к своему первому выбору геокодирования. Что будет, если жилой комплекс принадлежит одному из населенных пунктов, а не другому?

Даже если вы, возможно, впервые видите этот адрес, эти вещи даже не воспринимаются как вопросы в вашей голове из-за многих лет анализа адресных данных и распознавания образов. Мы сразу понимаем, что Анклав Орхидей - это то место, где находится человек. Все, что нам нужно знать больше, - это общая часть Бангалора, где находится Анклав Орхидей. Эта информация необходима и достаточна для работы геокодирования. В качестве альтернативы мы могли бы полагаться и на пин-код, но люди не очень надежны с пин-кодами и не очень осведомлены о регионах, к которым относится пин-код. Остальная информация служит только для того, чтобы помочь человеку, но потенциально может сбить с толку машину. Карты Google (возможно, один из лучших геокодеров) не могут геокодировать точный пример, но отлично работают с удаленным именем квартиры и поиском квартиры в Бангалоре.

Итак, искусство геокодирования сводится к тому, чтобы дать машинам один и тот же контекст того, на чем сосредоточить внимание в адресе, а на чем нет. Как только машина научится извлекать наиболее полезные части адреса, ее шансы на получение правильного геокодирования значительно увеличиваются. Большинство усилий по геокодированию не приводят к ошибкам из-за недостатка информации, а из-за того, что она спрятана во множестве нерелевантной / избыточной информации.

Связанная с этим проблема заключается в том, насколько мы можем доверять ответу геокодера. С целенаправленным запросом геокодирования метрики достоверности имеют тенденцию быть более двоичными. Однако при большом количестве квалификаторов уверенность в самой метрике достоверности становится нестабильной, и установка хорошего порога точности геокодирования становится очень сложной. Возвращаясь к аналогии с ресторанами, где подают убойную еду, нам нужно не только знать, хороша эта убойная еда или плохая, но и быть уверенными в этом.

В Locus мы добились значительного прогресса в передаче человеческого контекста нашему геокодеру и обучению его тому, как сосредоточиться на наиболее важных частях адреса. Этот подход особенно хорошо подходит для международного геокодирования, когда форматирование, стиль и контекст меняются от страны к стране. Наш подход позволил нам использовать миллионы доступных нам адресных точек данных и предоставить нашим клиентам оптимальные решения для геокодирования.