Методы преобразования текстового описания маршрута в компьютерное представление
Пестун М.В.
Институт прикладной математики им. М.В. Келдыша РАН max.pestun@gmail. сот
Аннотация. В данной статье рассматриваются методы построения компьютерной системы для преобразования текстового описания маршрута (в виде, близком к тому, как человек описывает маршрут другому человеку) в его формальное представление, пригодное для использования в навигационных алгоритмах. В самом текстовом описании могут фигурировать различные объекты недвижимости (здания, парки, памятники, достопримечательности) и организации (рестораны, магазины, кафе и т.д.), знакомые пользователю. Для большей точности распознавания описываемого маршрута используются данные о перемещениях пользователя и наиболее часто посещаемых им местах.
Ключевые слова: навигация, маршрут, когнитивная карта, человек, компьютерная система, программа.
1 Введение
На сегодняшний день компьютерные картографические системы предлагают своим пользователям возможности по нахождению оптимального пути из точки А в точку Б. Однако, большинство из них не дает возможности ввести тот путь, который желает пользователь, и узнать, например, время движения именно по нему с учетом текущих заторов на дорогах. Те существующие системы, которые позволяют это сделать, опираются на возможности графических интерфейсов пользователя, предлагая мышкой разместить опорные точки маршрута, между точками система построит маршрут в автоматическом режиме (так, например, работают версии Яндекс Карт и Google Maps для настольных компьютеров). Однако, такой способ крайне плохо применим для мобильных платформ, где размер экрана сильно ограничен, а тач-ввод данных пальцами имеет низкую точность позиционирования. Помимо этого, любой графический ввод информации абсолютно неприменим с антропоморфными роботами, общающимися при помощи синтезированной человеческой речи и алгоритмов распознавания. К аналогичным роботизированным системам можно отнести существующие на сегодняшний день и широко распространенные программы "Siri" и "OK Google", представляющие из себя персональных цифровых ассистентов.
2 Цель исследования
Целью исследования, рассмотренного в данной статье, является нахождение методов построения компьютерной системы, позволяющей преобразовывать текстовое описание маршрута в его формальное представление, удобное для обработки вычислительными системами -иными словами, получение ломаной линии с географическими координатами в вершинах. При работе алгоритма будет уместным задействовать статистические данные по перемещениям пользователя (логично, что пользователь использует в своем описании только знакомые ему объекты). Для этого необходимо разработать алгоритм сбора и хранения такой информации, что так же входит в цель исследования.
3 Актуальность исследования
На сегодняшний день карты не подстраиваются под пользователя и не выделяют важную только для него информацию, усложняя тем самым их использование. Помимо этого, картографические системы не умеют распознавать описание маршрута. Возможность понять, какой маршрут имел в виду пользователь, актуальна при использовании мобильных устройств и при взаимодействии с роботом. Голосовая речь уже сейчас может быть обработана компьютерными системами и преобразована в текст, осталось обработать результат и понять, какой путь имел в виду пользователь.
4 Когнитивная карта и ее типы
Когнитивная карта (от лат. cognitio — знание, познание) — образ знакомого пространственного окружения. Навигация — процесс управления некоторым объектом в определённом пространстве передвижения. Подзадачами навигации являются: маршрутизация, выбор оптимального пути следования объекта в пространстве.
Человек строит когнитивную карту в своем сознании при перемещении в пространстве, со временем карта дополняется и уточняется [Cousins, 1983]. Обычно выделяют две основные системы координат: аллоцентрическая и эгоцентрическая. Карта, представляющая собой местность с объектами в абсолютных координатах, не принимающая в расчет местоположение человека, называется аллоцентрической. В другом случае, если положение человека влияет на текущее представление карты, она называется эгоцентрической. Иногда выделяют третий вариант -геоцентрический [Paillard, 1971], представляющий собой смесь аллоцентрической и эгоцентрической систем с установленным направлением гравитации.
4.1 Описание координат объектов
Эгоцентрическая система координат основывается на пространственном положении субъекта. Объекты в его окружении задаются при помощи относительного угла и расстояния. Ввиду этого, эгоцентрическая система координат отличается от аллоцентрической лишь способом задания параметров, а не методом ее построения.
У любого объекта в любой системе координат есть базовые параметры. Производные параметры основываются на базовых и могут быть получены из них путем вычислений, состоящих из конечного числа шагов. Совокупности данных параметров позволяют определить расположение объекта (координаты) и его направление (угол поворота), а также объем, площадь и т.д. [Allen, 1971].
Точка является наименьшей структурой, представляемой в любой системе координат; имеет базовые параметры. Объект является более сложной структурой, представимой из набора точек; обладает производными параметрами.
Направление объекта задается относительными углами отклонения от некоторого наперед заданного вектора [Klatzky, 1997]. Далее в статье под направлением объекта будет всегда пониматься направление в аллоцентрической системе координат.
5 Ввод описания маршрута
Были исследованы существующие картографические системы, позволяющие вводить конкретный маршрут: Google Maps, Yandex Maps, Bind Maps, Apple Maps. В них использовались следующие варианты ввода маршрута:
■ ввод только начальной (А) и конечной точки (Б) маршрута, дальнейшее прокладывание маршрута происходит в автоматическом режиме с учетом расстояния, ширины дорог и пробок;
■ ввод через уточнение автоматически проложенного маршрута между А и Б: задание контрольных точек путем перемещения маркера с траектории маршрута мышкой в нужную точку;
■ ввод через задание опорных POI (Point of Interest - точка интереса), через которые проходит маршрут, далее система работает в автоматическом режиме.
Ни один из рассмотренных методов не позволял осуществить следующие пункты:
■ корректно задавать маршрут на мобильном устройстве;
■ вводить маршрут голосом;
■ использовать персональные данные о предыдущих перемещениях для упрощения самого описания и улучшения результата распознавания.
По итогам был разработан новый способ ввода, анализа и построения маршрута, описанного пользователем. Для этого, был разработан интерфейс и алгоритм, обрабатывающий пользовательский ввод в реальном времени:
a. Пользователь вводит начальное и конечное положение маршрута с использованием автодополнения текста (названий POI);
b. Далее пользователь описывает маршрут:
i. повороты, развороты, прямые участки с приблизительными расстояниями;
ii. названия улиц;
iii. знакомые POI по пути;
c. На каждом шаге ввода данных о маршруте используется автодополнение текста, чтобы контролировать корректность вводимой информации;
d. Следующим шагом производится разбор лексем и начинается этап формирования полигона маршрута.
6 Компьютерная реализация
Система реализована на языке программирования JavaScript, работает на базе любого современного веб-браузера. При его реализации использовались библиотеки: jQuery (для сокращения кода и поддержки кроссбраузерности), Google Maps JavaScript API v3 (для получения картографических, навигационных и информационных данных о POI), функционал HTML5 (для отображения результата, отслеживания местоположения пользователя и хранения локальных данных). Приложение, содержащее алгоритм, работает только на клиентской стороне, запрашивая необходимые данные с картографического сервиса. Вычислительная серверная часть отсутствует из-за ее ненадобности ввиду сильного развития клиентских технологий. Это позволяет распределить нагрузку и уменьшить время отклика сервера, раздающего код веб-приложения.
6.1 Пользовательский интерфейс
Интерфейс пользователя представлен на рис. 1 ниже. Два первых поля необходимы для ввода начального и конечного положения пути. При вводе названий система в автоматическом режиме пытается определить наиболее подходящие варианты. Ниже располагается область для описания маршрута. Пользователь вводит ключевые слова («вперед», «полкилометра», «налево», «направо» и т.д.) и POI при помощи меток ("Place 1", "Place 2" и т.д.). Далее следуют поля для ввода указанных выше POI. Их заполнение происходит аналогично вводу точек старта и конца пути - в полуавтоматическом режиме. Возможно использовать любое количество POI.
Path Description
Start Place
Елисеевский магазин, Россия, город Москва. Москва. Тверская улица т
End Place
Большой театр, Россия, Москва, Театральная площадь т
Directions
прямо до Place 1 затем налево у Place 2 прямо полкилометра Place 1
Россия город Москва, Москва. Центральный телеграф *
Place 2
Государственная Дума| ■*
Государственная Дума Государственная Дума Россия город Москва. Москва
Государственная дума, газета, АНО Госудэ| генная пума, газета. АНО. Россия город min molkes Государственная Дума Томской Области государственная Дума томской Области, Россия.томская область, Томи
Государственная Дума. Федеральное Собрание Российской Федерации, официальный сайт Государственная Дума. Федеральное Собрание Российской Федерации, официальный сайт. Россия. Тульская область. Тула
ГОСУДАРСТВЕННАЯ ДУМА СТАВРОПОЛЬСКОГО КРАЯ, отдел по природопользованию, экономике, курорту, туристической деятельности, физической культуры, спорту и делам молодежи государственная дума стабролодьского края, отдал по лриродопользоаанию. экономике, курорту, туристическом деятельности, физической культуры, спорту и делам молодежи, Россия, Ставропольский край, Ставрополь, улица Ленина
IÏI_ ^_\_^^_VJJ*°"f" '•'^'MUT^T
Рис. 2. Пользовательский интерфейс с введенной информацией о маршруте
6.2 Работа алгоритма
Алгоритм разбит на три части:
■ Разбор введенных лексем и POI;
■ Прокладывание всевозможных маршрутов между POI в автоматическом режиме с заданной степенью отклонения;
■ Уточнение маршрута при помощи введенных лексем.
Рассмотрим первую часть алгоритма - разбор введенных лексем. Существуют следующие лексемы:
a. «вперед», «налево», «направо», «прямо» (возможны дополнительные лексемы, если картографическая навигационная система поддерживает иные директивы, например, «развернуться», «съехать с магистрали»);
b. «полкилометра», «треть километра», «четверть километра», «полтора километра», «пару километров», «[числительное] километр[а/ов]»;
c. «идти», «пройти», «дойти», (и прочие производные от слова «идти»), «ехать», «проехать», «доехать» (и прочие производные от слова «ехать»);
Лексемы из группы а. обозначают направление движения, их последовательность должна содержаться частично или полностью в последовательности действий одного из найденных вариантов маршрута в автоматическом режиме на втором шаге алгоритма.
Лексемы из группы Ь. обозначают приблизительные расстояния, которые может вводить пользователь. Данные расстояния должны соответствовать одному из найденных в автоматическом режиме маршруту.
Лексемы из группы с. используются для задания способа перемещения: пешком или на автомобиле. Возможны группировки разных способов перемещения в рамках одного маршрута.
Вторая часть алгоритма - прокладывание всевозможных маршрутов между POI в автоматическом режиме. На этом шаге используются технологии Google Maps (или любой другой аналогичной онлайновой системы). С использованием параметра вероятности отклонения от оптимального маршрута запрашиваются все возможные траектории для интервалов пути между указанными пользователями POI с учетом вида перемещения (пешком или на автомобиле).
Третья часть алгоритма - уточнение маршрута при помощи введенных лексем. На этом этапе происходит следующая последовательность действий:
■ Суммирование указанных пользователем расстояний, все автоматически найденные маршруты, которые короче, помечаются как неподходящие (с использованием параметры отклонения введенного и реального расстояния, так как пользователь может ошибиться);
■ Выбор из оставшихся маршрутов тех, которые удовлетворяют набору лексем из категории а. («вперед», «налево», «направо», «прямо»);
■ Из оставшихся маршрутов выбираются те, степень «известности» которых больше заданного параметром порога («известность» маршрута считается как доля от всего найденного маршрута, по которой ранее перемещался пользователь, согласно собранной заранее статистике по его передвижениям);
■ Оставшиеся маршруты предъявляются пользователю для выбора, как подходящие под его описание.
6.3 Разбор лексем
Для разбора лексем используется распознающая регулярная грамматика, описываемая конечным автоматом. Конечный автомат может быть задан в виде упорядоченной пятерки: М = (V, Q, qO, F, d), где:
■ V - входной алфавит (конечное множество входных символов), из которого формируются входные цепочки, допускаемые конечным автоматом;
■ Q - множество состояний автомата;
■ qO - начальное состояние (qO 6 Q);
■ F - множество заключительных состояний (F с Q);
Методы преобразования текстового описания маршрута
в компьютерное представление_
■ с1 - функция переходов.
Входным алфавитом является набор лексем. Распознавание лексем в введенном тексте осуществляется обычным сравнением строк. Разбиение ввода осуществляется по пробелу и запятым. Запятые служат логическим разделением отрезков пути. Все введенные слова, несовпадающие ни с одной из лексем, разбору не подлежат (таким образом человек может вводить описание в удобном себе виде, добавляя удобные ему, но ненужные по факту, слова и выражения). Множество состояний автомата определяется набором:
■ начальное состояние;
■ состояние ввода лексем категории а.;
■ состояние ввода лексем категории Ь.;
о при переходе в него возможен цикл в случае, если описание состояния описывается двумя или большим количеством слов (например, «полтора километра»);
■ состояние ввода лексем категории е.;
Любое из состояний может быть заключительным. Функция перехода & соединяет между собой все состояния, т.е. из каждого состояния можно попасть в любое другое. Исключением является начальное состояние, попасть в него из других невозможно. Для каждого отрезка пути (от запятой до запятой в введенном описании) при работе автомата заполняется таблица, состоящая из четверок Р = (К, Б, Ро1, Т), их заполнение может быть неполным, где:
■ N - навигационная директива, разобранные лексемы категории а.;
■ Б - расстояние, разобранные лексемы категории Ъ.;
■ Ро1 - указанная точка интереса;
■ Т - способ перемещения, разобранные лексемы категории е.;
7 Заключение
Развитие технологий голосового взаимодействия человека и машин (компьютеров, роботов) приведет к ситуациям, когда станет необходима передача знания о маршруте от машины к человеку и наоборот в форме, удобной именно человеку. Вычислительная система всегда может быть приспособлена к особенностям восприятия и передачи информации пользователем, но обратное будет менее удобным, так как все идет к тому, чтобы компьютер подстраивался даже не под потребности человека в общем, а под запросы конкретного индивида, учитывая его персональные знания и опыт. Именно для этих проблемных ситуаций и разрабатывается комплекс систем по описанию маршрута в удобном для человека формате и его распознаванию, часть которого была рассмотрена в данной статье.
Подробнее про само исследование можно прочитать в обзорной статье [Пестун, 2014].
Список литературы
[Allen, 1971] Allen, GL., Kirasic, K.C., Siegel, A.W. and Herman, J.F.. Development Issues in Cognitive Mapping: The Selection and Utilization of Environmental Landmarks, Child Development 50,1979, pp. 1062-1070.
[Cousins, 1983] Cousins, J.H., Siegel, A.W. and Maxwell, S.E.. Way-Finding And Cognitive Mapping in Large-Scale Environments: A Test of a Developmental Model, Journal of Experimental Child Psychology 35,1983, pp. 1-20.
[Klatzky, 1997] Klatzky R.L., Freksa C., Habel C., Wender K.F.. Allocentric and Egocentric Spatial Representations: Definitions, Distinctions, and Interconnections, Artificial Intelligence (Eds.), Springer, 1997, v. 1404, pp. 1-17.
[Paillard, 1971] Paillard J.. The motor determinants of spatial organization, Cahiers de Psychologie, 1971, v.14, pp. 261-316.
[Пестун, 2014] Пестун M.B. Компьютерная система описания маршрута в удобном для человека формате // Научно-практический семинар "Новые информационные технологии в автоматизированных системах". М., 2014. С. 125-134.