Санкт-Петербургский государственный университет
Кафедра математической лингвистики
МОДЕЛИРОВАНИЕ ВОПРОСНО-ОТВЕТНЫХ СИСТЕМ
НАВИГАЦИИ В ГОРОДСКОЙ СРЕДЕ
Направление: «Лингвистика»
Образовательная программа: «Прикладная и экспериментальная лингвистика»
Профиль: «Компьютерная лингвистика и интеллектуальные технологии»
Выпускная квалификационная работа
соискателя на степень магистра филологии
Дмитриевой Анны Владимировны
Научный руководитель
к.ф.н., доц. Николаев И.С.
Санкт-Петербург
2017
Содержание
Введение......………………………………………………………..………..
3
Глава 1
1.1
Основные принципы работы вопросно-ответных систем......
7
1.2
Виды вопросно-ответных систем...……………………….…..
18
1.3
Языковые средства русского языка для описания
перемещения и изменения положения в пространстве...………………....
25
Глава 2
2.1
Создание базы данных для вопросно-ответной системы..….
2.2
Алгоритм вопросно-ответной системы навигации в
35
городской среде………………..…………….……………………………....
41
Алгоритм автоматического пополнения базы данных.….….
61
Заключение…………………………………………………..…………..….
72
Библиография…………………………………..……………………..…....
74
Приложение 1……………………………………….…….…………..……..
79
Приложение 2………………………………..…………………………..…..
81
Приложение 3……………………………………………..………………....
82
Приложение 4……………………………………………..…………………
84
Приложение 5……………………………………………..…………………
86
Приложение 6……………………………………………..…………………
88
2.3
2
Введение
Построение вопросно-ответных систем имеет большое значение для
развития моделей отношений человека и компьютера. Моделирование
вопросно-ответных систем позволяет создать гораздо более широкое и
удобное взаимодействие человека с компьютером на естественном языке.
При использовании вопросно-ответных систем навигации у человека
появляется возможность получить ответ на вопрос о пути, который ему
предстоит преодолеть, в режиме реального времени на понятном и
привычном для него языке. Подача информации в более понятном формате
важна потому, что форма внутренних представлений, которая используется в
компьютерных системах, как правило, требует определенных знаний для
интерпретации. Поэтому появляется
необходимость создания систем,
которые могут представлять данную информацию в понятной форме, то есть
на естественном языке. Чем более близок язык, используемый вопросноответной системой, к разговорному языку, тем проще человеку использовать
данную систему и строить с ней диалог. Соответственно, построение
вопросно-ответных систем навигации имеет большое практическое значение,
особенно для людей, не имеющих представления о том, как устроены
компьютерные системы, которые прокладывают маршруты на картах. Для
таких людей наиболее важно получить ответ на естественном языке, который
может дать вопросно-ответная система навигации.
Целью работы является моделирование вопросно-ответной системы
навигации в городской среде на русском языке с использованием ориентиров
и различных глаголов перемещения.
Реализация данной цели предполагает решение следующих задач:
1.
Исследование принципов работы и видов вопросно-ответных
систем.
2.
Исследование языковых конструкций для русского языка,
содержащих семантику перемещения и направления.
3
3.
Создание базы данных, содержащей названия точек на местности
и ориентиров, а также описания возможных вариантов перемещения из этих
точек.
4.
Написание алгоритма вопросно-ответной системы навигации в
городской среде.
5.
Написание алгоритма автоматического пополнения базы данных.
В задачи данной работы не входит написание полноценной программы.
А также не входит оценка алгоритма работы вопросно-ответной системы с
точки зрения его оптимизации для программирования.
В современных навигаторах типа Google Maps [Google Maps],
Яндекс.Карты [Яндекс.Карты] и т.д. описания маршрутов являются не очень
удобными для
использования.
Например,
длина
пути
обозначаются
количеством метров или временем движения, что неудобно для понимания,
так как не каждый может определить на глаз, как выглядят двести метров, и
все ходят с разной скоростью. В свете этого становится очевидным, что
целесообразно было бы создать вопросно-ответную систему навигации с
описаниями ориентиров по ходу движения в маршрутах вместо описания
длины пути в метрах или во времени, что заметно облегчило бы поиск пункта
назначения и дало возможность выбрать наиболее подходящий маршрут.
Новизна данного исследования состоит в том, что разработанный в
ходе
исследования
прототип
вопросно-ответной
системы
навигации,
учитывая лингвистические компоненты, делает свои описания маршрутов
более естественными и удобными для использования.
В отличие от наиболее популярных современных навигаторов он
реализует естественно-языковое общение с пользователем, тогда как
современные навигаторы, такие как Google Maps и Яндекс.Карты, выдают
описания маршрутов в формализованном виде. Разработанная вопросноответная система выдает названия локаций и ориентиров в правильных
падежах в отличие от данных навигаторов. Также данная система богата
речевым разнообразием, так как использует различные глаголы перемещения
4
в описаниях маршрутов. И, конечно, самое важное преимущество данной
системы над этими популярными современными навигаторами состоит в том,
что в отличие от них, данная система вместо описаний длинны пути в метрах
использует описания движения по ориентирам, что кажется намного более
естественным и удобным.
Настоящая
работа
будет
способствовать
развитию
в
области
разработки естественно-языковых навигаторов. Ее результаты могут служить
исследователям
основой
усовершенствованных
для
создания
вопросно-ответных
новых,
возможно,
систем
более
навигации,
что,
несомненно, будет иметь важные теоретические и практические последствия
для исследования лингвистических компонентов в области навигации.
В качестве материала для данного исследования выступали описания
маршрутов, взятые из Google Maps [Описания Google Maps], так как данный
навигатор на данный момент обладает наибольшим авторитетом. Для
исследования были взяты описания
маршрутов от филологического
факультета СПбГУ до 15-ти случайно выбранных точек на Васильевском
острове. Позже эти описания были подвергнуты языковой унификации.
Также материалом исследования выступали диалоги о маршрутах, взятые из
Национального корпуса русского языка [НКРЯ]. Помимо этого был проведен
опрос о маршрутах пути из точки А в точку В. В общей сложности было
получено 100 естественно-языковых описаний маршрутов, что является
достаточным
для
исследования
языковых
средств
русского
языка,
описывающих перемещения и изменения положения в пространстве.
Для написания данной работы применялись следующие методы
исследования. Для получения диалогов о маршрутах проводился опрос.
Кроме того был совершен документальный анализ, а именно: были
проанализированы диалоги о маршрутах из Национального корпуса русского
языка, а также описания маршрутов из Google Maps. При построении массива
данных был использован метод формализации. Основным методом данного
исследования
является
метод
моделирования,
использованный
для
5
построения базы данных и алгоритмов вопросно-ответной системы и
автоматического
пополнения
базы
данных.
Кроме
того
в
работе
используются и элементы сравнительного метода при сравнении описаний
маршрутов смоделированной вопросно-ответной системы и наиболее
популярных современных навигаторов.
В рамках данной работы был реализован прототип естественноязыковой вопросно-ответной системы навигации в городской среде с
использованием ориентиров по ходу движения в описаниях маршрутов.
Диссертационная работа состоит из
введения, основной части,
включающей две главы, заключения, списка литературы и 6-ти приложений.
Список литературы содержит 37 наименований, 12 из которых составляет
литература на иностранных языках, а 25 – на русском языке. Также в работе
имеется
список
использованных
корпусов
и
источников
примеров,
содержащий 6 наименований, 3 из которых являются корпусами и 3
источниками примеров. Общий объем работы – 93 страницы.
6
Глава 1
1.1.
Основные принципы работы вопросно-ответных систем
Вопросно-ответные системы создаются для получения пользователем
ответов на вопросы в режиме реального времени. Изначально они
разрабатывались, чтобы дать пользователям возможность задавать вопросы,
которые их интересуют. Такие вопросы должны были быть основаны на
хорошо структурированных наборах данных, таких как конкретные сферы
знаний [Simmons 1965].
Ответы на такие вопросы находились в хорошо структурированных
базах данных. При этом вопросно-ответная система выставляла требование,
чтобы вопрос строго соответствовал формулировкам, которые содержатся в
базах данных. Для успеха в поиске ответа пользователю уже должно было
быть известно, какая именно информация находится в системе и каким
образом эта информация структурирована компьютером [Clark et al. 2010:
631].
По словам М.В. Мозгового, «вопросно-ответная (диалоговая) система –
это программа, которая умеет обрабатывать введенный пользователем вопрос
на естественном (русском, английском и т.д.) языке и печатать осмысленный
ответ. Некоторые диалоговые системы пытаются создать атмосферу
полноценного «общения» между человеком и компьютером на естественном
языке.
Разумеется,
на
практике
компьютеру
до
настоящей
«интеллектуальности» все ее очень далеко, но существуют задачи, в которых
она и не требуется. Например, для того чтобы ответить на вопрос, заданный к
некоторому тексту, требуется лишь грамотно «разложить по полочкам»
вопрос и определить, какое именно предложение текста содержит в себе
ответ» [Мозговой 2006: 116].
Согласно Д.В. Галкину, Е.В. Кондрушиной, К.С. Шиляеву, «целью
разработки вопросно-ответной системы было не только создание механизма
7
непосредственно ответа на заданный вопрос, но и создание способа общения
пользователей с компьютером на естественном языке» [Галкин и др. 2013:
61].
Одной из первых вопросно-ответных систем была SHRDLU. В ней
пользователю было доступно общение с роботом, при этом он мог
спрашивать робота о многих вещах: от его прошлого вплоть до планов
робота на будущее. Общение с ним было доступно с помощью печатного
текста [Галкин и др. 2013: 61].
На данный момент работа базовой вопросно-ответной системы берет
свое начало от заданного вопроса, а заканчивается выводом ответа либо
списка ответов.
В работе вопросно-ответных систем для общения с пользователями
используется естественный язык. Но возможности вопросно-ответных систем
не
безграничны,
поэтому
используется
ограниченное
подмножество
естественного языка. Как отмечает В.А. Житко, «для естественно-языкового
пользовательского
интерфейса
вопросно-ответных
систем
возможно
использование ограниченного набора лексики и грамматики, без серьезного
ущерба функциональности вопросно-ответной системы. В таком случае
стоит говорить об ограниченном подмножестве естественного языка.
Ограниченный естественный язык – это подмножество естественного языка,
текст на котором, без каких либо усилий, воспринимается носителем
исходного естественного языка, а так же не требует длительного изучения
для приобретения навыков составления текстов этого языка, однако обладает
сокращенным набором лексики и грамматики. Это позволит снизить время
обработки естественно-языковых конструкций, а также устранить часть
лингвистической неоднозначности» [Житко 2011: 396].
Как известно, процесс работы вопросно-ответной системы проходит в
несколько этапов:
1. этап анализа вопроса, введенного пользователем;
2. этап поиска информации;
8
3. этап извлечения ответа.
Как написано в работе Н.З. Агаева [Агаев 2012: 8], на первом этапе
пользователем вводится вопрос на естественном языке, и осуществляется
первичная
обработка
и
формализация
предложения
различными
анализаторами (синтаксическим, морфологическим, семантическим), система
определяет
его
соответствующие
атрибуты
для
дальнейшего
их
использования. На втором этапе идет поиск и анализ документов – система
ищет документы и их фрагменты, в которых может находиться ответ на
исходный вопрос. Третий этап - извлечение ответа, то есть система извлекает
из текстовых документов или их фрагментов слова, предложения или
отрывки текста, которые потенциально могут быть ответом.
Почти всякую вопросно-ответную систему возможно разделить на три
модуля [Агаев 2012: 9]:
1. модуль обработки вопроса;
2. модуль поиска документов и получения текстовых фрагментов;
3. модуль формулировки и получения ответа.
На следующем рисунке изображена стандартная схема работы
вопросно-ответной системы:
9
Рис. 1. Схема работы вопросно-ответной системы
В вопросно-ответном процессе, если следовать логике вопросов и
ответов [Белнап, Стил 1981], чтобы получить очередной факт, активный
агент процесса представляет реактивному агенту текстовое сообщение,
которое имеет логическую форму вопроса. Для разных классов вопросов
нужны разные стратегии поиска ответов. По словам В.А. Лапшина, «одним
из важнейших модулей вопросно-ответной системы является модуль
классификации вопроса. Задача этого модуля состоит в том, чтобы соотнести
вопрос с одним из предопределенных классов (категорий). Такое соотнесение
позволяет определить источник информации, в котором необходимо искать
10
ответ на данный вопрос, а также выбрать алгоритм, с помощью которого этот
поиск будет производиться» [Лапшин 2012: 6].
Во второй половине 70-х годов ХХ века вышла работа Венди Ленерт
[Lehnert 1978], в которой она выделила 13 категорий всех возможных
вопросов, которые могут быть заданы пользователем. Все эти категории
вопросов приведены в следующей таблице:
Таблица 1. Категории вопросов В. Ленерт
Данную систему классов, которую предложила В. Ленерт, расширил
Артур Гессер [Graesser, Person 1994]. К данным категориям он добавил еще
пять категорий: Определение (Definition), Пример (Example), Интерпретация
(Interpretation), Отсутствие (Assertion) и Сравнение (Comparison). Позже в
новой своей работе [Graesser et al. 2008] он определил 16 категорий.
11
На этапе анализа вопроса пользователь вводит вопрос на естественном
языке, после чего происходит дальнейшая обработка вопроса. Обычно
современные вопросно-ответные системы могут осуществлять обработку
некоторых предопределенных классов вопросов. По виду ответа вопросы
обычно делят на следующие группы: фактографические вопросы, вопросы
причины и содержания, вопросы мнения [Nabil Allam, Haggag 2012].
Фактографический вопрос – это вопрос о какой-либо информации без ее
анализа, обобщения, освещения, ответ на подобные вопросы, как правило,
краток. В качестве примеров таких вопросов можно использовать вопросы о
персонах, о времени, закрытые вопросы, то есть такие, которые требуют
ответа «да» или «нет». Для вопросов причины и мнения необходим
логический анализа текста, вывод причинно-следственной связи между
предложениями, данные вопросы самые сложные для нахождения ответа,
ответы на такие вопросы не является точными и, как правило, ими могут
быть несколько предложений [Hirschman et al. 1999]. Имеющиеся на данный
момент решения в области анализа текста и вывода его логической
структуры довольно плохо обрабатывают этот вид вопросов. Вопросы
мнения предполагают поиск и глубокий анализ блогов и разнообразных
сайтов СМИ. Самый большой интерес вызывают фактографические вопросы.
Ответы на эти вопросы точны, кратки и актуальны. Разработка современных
вопросно-ответных систем в основном направлена на обработку вопросов
данного типа. Фактографические вопросы в свою очередь делят на
следующие типы:
- вопросы, предполагающие ответ «да» или «нет»;
- вопросы о персонах;
- вопросы о географических топонимах;
- вопросы о списках чего-либо;
- вопросы об определениях и т.д.
На стадии анализа вопроса в первую очередь определяется класс
вопроса, который соответствует типу возможного ответа. Задача –
12
определить тип информации, которая интересует пользователя и может
выдаться в качестве ответа – тип ожидаемого ответа [Dumais et al. 2002].
Далее тип ожидаемого ответа используется при определении стратегии
поиска ответа на стадии его извлечения. Если тип ожидаемого ответа
известен, то при извлечении ответа не рассматриваются предложения, не
имеющие словесных единиц, которые соответствуют этому типу ожидаемого
ответа. Во многих вопросно-ответных системах имеются встроенные
системы поддерживаемых типов ожидаемого ответа, иногда вопросноответные системы используют иерархическую структуру представления в
виде таксономии в зависимости от дальнейшей стратегии поиска и
извлечения ответа [Magnini et al. 2001].
По словам Н.З. Агаева, «в большинстве случаев распознавание типа
ожидаемого ответа производится с помощью использования набора
регулярных выражений или текстовых шаблонов. При работе системы
производится сопоставление вопросительного предложения с
построенными
шаблонами
или
регулярными
заранее
выражениями,
соответствующими типам ответов. … Как правило, данные выражения и
шаблоны пишутся вручную, но могут создаваться автоматически по
принципам машинного обучения с учителем. … На этапе анализа вопроса
может производиться синтаксический анализ вопросительного предложения.
При классификации вопроса используется синтаксическая информация о
частях речи в вопросительном предложении и наличии именованных
сущностей. Одним из простейших способов является определение типа
вопроса по вопросительным словам, которые содержит запрос к системе:
«кто», «что», «какой», «где», «когда» и т.д.» [Агаев 2013: 24].
Выявление типа ожидаемого ответа сужает круг возможных ответов и,
таким образом, определяется дальнейшая стратегия поиска возможного
ответа [Magnini et al. 2001].
Следующая задача, которая решается на стадии анализа вопроса, – это
поиск ключевых слов, необходимых чтобы сформировать запрос к
13
поисковому модулю вопросно-ответной системы. Как пишет Н.З. Агаев:
«Ключевые
слова
–
слова,
используемые
в
качестве
запроса
для
информационного поиска. Данные слова будут для поиска и выбора
документов. Точный вид запроса зависит от реализации системы» [Агаев
2013: 26].
После того, как определены ключевые слова, то есть сформулирован
поисковый запрос, работа системы переходит на следующий этап – этап
информационного поиска.
На данном этапе происходит получение релевантных поисковому
запросу текстовых фрагментов, которые возможно содержат ответ. В
современных вопросно-ответных системах данный модуль представляет
собой классическую поисковую машину, на вход которой поступает запрос
из ключевых слов. После того как получен набор текстовых документов,
релевантных запросу, извлекаются фрагменты, в которых велика вероятность
получения ответа на вопрос. Для того чтобы получить фрагменты из
документов, которые с наибольшей вероятностью могут содержать ответ,
текст документа делится на части – одним из способов является деление на
абзацы. Затем выбирается тот фрагмент (абзац), который содержит все
ключевые слова или наибольшее их количество. В некоторых вопросноответных системах используется булевский тип поиска информации.
Поисковый запрос состоит из слов и булевых операция AND, OR и NOT, в
зависимости от которых производится поиск тех или иных слов в
документах. Преимущество булевского поиска в том, что можно хорошо
настроить процесс поиска формируемым запросом. Но если результаты
поиска оказались не совсем удачными и не нашлось ответа, то запрос
формируется заново с модификациями. Это называется циклическим
поиском [Агаев 2013: 27-28].
Некоторые системы вместо классического поиска по ключевым словам
используют на этом этапе поиск по индексированной коллекции. Текстовая
коллекция предварительно аннотируется такими метками, как классы
14
именованных сущностей и классы синтаксических связей индексируется по
ним, что существенно ускоряет поиск.
Во
многих
современных
системах данный модуль
исследовательских
вопросно-ответных
представляет собой элемент архитектуры,
использующий возможности различных поисковых систем, в том числе и
популярных веб-поисковых (Yahoo, Bing, Google и т.д.). По словам Н.З.
Агаева, «задача информационного поиска для вопросно-ответных систем
состоит в получении при запросе списка релевантных ссылок и фрагментов
текстовых документов - сниппетов. По словам Н.З. Агаева, «сниппет небольшой отрывок текста из веб-документа результатов работы поисковой
системы, который используется в качестве описания ссылки в результатах
поиска» [Агаев 2013: 13]. «Как правило, сниппеты содержат контекст, в
котором встретились ключевые слова в тексте на странице. Просмотрев
сниппет, можно приблизительно понять, соответствует ли страница именно
вашему запросу, даже не открывая самой этой страницы» [Агаев 2013: 29].
На этапе извлечения ответа распознается и извлекается из полученных
текстовых фрагментов ответ на вопрос. Важную роль в выделении ответа
играет тип ответа. Общая идея решения задачи извлечения ответов состоит в
следующем: выявляются так называемые кандидаты для ответа – слова или
словосочетания, которые могут рассматриваться как ответ на вопрос; затем
производится анализ списка кандидатов, все кандидаты оцениваются и
выбирается самый подходящий, то есть тот, который имеет наивысшую
оценку.
Стратегия извлечения ответа из текстового фрагмента зависит от типа
ожидаемого
ответа.
Зачастую
для
фактографических
вопросов
при
первичном анализе фрагментов текста используются методы выделения
именованных сущностей [Sung et al. 2009]. Например, для таких типов
ответа, как географические местоположения и имена людей в извлечении
ответа будут использованы алгоритмы распознавания имен собственных
[Dumais et al. 2002].
15
Один из популярных способов извлечения ответа – с помощью
соответствия шаблонам. Для каждого типа ответа составляются шаблоны, с
помощью них в текстовых фрагментах производится поиск и выделение
кандидата ответа. Для выбора ответа используются информация о типе
ожидаемого ответа, полученная на первом этапе работы системы, и
символьные шаблоны. Шаблоны можно создавать как вручную, так и
автоматическими обучаемыми алгоритмами. Также можно использовать
автоматические методы для выявления шаблонов для последующего их
применения.
Другим способом извлечения ответов из фрагментов является
выявление кандидатов применением n-грамм. Н.З. Агаев определяет nграмму, как «подпоследовательность из n элементов, следующих друг за
другом в данной последовательности» [Агаев 2013: 31-32]. Данный алгоритм
эффективно применять к сниппетам при поисковом запросе, полученном при
перефразировании вопросительного предложения. На первом этапе из
сниппета извлекаются униграммы, биграммы и триграммы. Далее им
присваиваются веса, равные количеству сниппетов, в которых встретилась
данная n-грамма. Следующий этап – оценивание и сбор кандидатов из nграмм. При оценивании преследуется цель определения того, насколько
данная n-грамма соответствует типу ожидаемого ответа. Далее n-граммы
ранжируются, выбирается определенное их количество с высокими оценками
и строится кандидат ответа, путем конкатенации n-грамм. Кандидат для
ответа с высокой оценкой выбирается в качестве ответа.
После
выбора
потенциального
ответа.
кандидатов
Оценка
производится
производится
с
оценка
и
выбор
помощью проверки
различными способами. Как пишет в своей работе Н.З. Агаев: «Для каждого
типа ответа составляются шаблоны, с помощью них в текстовых фрагментах
производится поиск и выделение кандидата ответа. Есть много различных
подходов, применяемых для решения задачи выбора ответа из кандидатов, в
целом они все отличаются тем, как формализуются, сравниваются и
16
обрабатываются в них предложения на естественном языке для оценки и
выделения потенциальных ответов среди кандидатов ответа» [Агаев 2013:
32]. Такими подходами являются: метод мешка слов, метод с использованием
грамматик
зависимостей
предложений,
метод
с
использованием
семантических структур.
Большинство исследовательских вопросно-ответных систем построено
по одной схеме. Различают этап анализа вопроса, на котором важно
выявление типа ожидаемого ответа, этап информационного поиска, на
котором получают текстовые фрагменты, и этап извлечения ответа, на
котором производится поиск и выбор кандидатов ответа, их оценка и выбор
потенциального ответа. В большей части современных вопросно-ответных
систем используются различные методы анализа и обработки естественных
языков. На основе исследования существующих решений можно сделать
вывод о возможности реализации вопросно-ответной системы для русского
языка.
17
1.2.
Виды вопросно-ответных систем
Вопросно-ответные системы на естественном языке делятся на два
типа: закрытого и открытого [Турбина 2014].
Вопросно-ответные системы открытого типа отличаются тем, что
делают возможным ведение машиной диалога на произвольную тематику.
Алгоритм работы таких систем, как правило, более сложен и включает этапы
лингвистического анализа вопроса, заданного пользователем, поиска нужной
информации в базе знаний, формирование ответа на основе найденной
информации [Wilcock 2012].
Вопросно-ответные системы закрытого типа позволяют машине вести
диалог на любую заранее заданную тему [Wilcock 2012], что, по сути, делает
такие
системы
интерактивными
тематическими
справочниками.
Как
утверждает Е.А. Фостаковский, «В подобных системах порции информации,
выдаваемые машиной («ответы» машины) оказываются связанными с
определенными
голосовыми
командами
(«вопросами»),
отдаваемыми
пользователем-человеком. Подобная тематическая ограниченность, однако,
не
уменьшает
практической
значимости
таких
систем
и
широких
возможностей их использования» [Фостаковский 2014: 1358].
В данной работе будет смоделирована вопросно-ответная система
закрытого типа, отвечающая на вопросы класса location.
Подходы к реализации и, соответственно, принципы моделирования
вопросно-ответных систем делят на следующие группы:
- вопросно-ответные системы, базирующиеся на веб-поиске;
-
вопросно-ответные
системы,
имеющие
собственную
размеченную
коллекцию документов;
- вопросно-ответные системы с базой данных, содержащей вопросы и ответы;
- вопросно-ответного системы экспертного типа.
Вопросно-ответные системы, которые базируются на веб-поиске,
используют как источник веб-страницы или их фрагменты. В рамках
18
построения таких систем используют результаты систем информационного
поиска сети Интернет, то есть в данном случае в архитектуру включена
какая-либо существующая поисковая система. Вопросно-ответная система
после получения на вход от пользователя вопросительного предложения на
естественном языке обрабатывает это предложение и формирует запрос для
поисковой системы из ключевых слов. Ключевые слова выбираются из
самого вопросительного предложения, полученного от пользователя. После
осуществления
поискового
запроса
система
получает
результаты
информационного поиска в виде веб-ссылок и фрагментов текста –
сниппетов. Как правило, в сниппете содержится контекст, в котором
встречалось ключевое слово в тексте веб-документа. После этого система
работает с полученными фрагментами веб-документов, при этом она
использует методы обработки естественных языков, формирует ответ
пользователю. Как правило, это методы выделения именованных сущностей,
дат, чисел и алгоритмы выбора фрагмента текста в качестве ответа [Dumais et
al. 2002; Sung et al. 2009]. Также используются и синтаксические,
морфологические методы анализа текста.
Основные плюсы данных систем, выделенные Н.З. Агаевым [Агаев
2013: 14]:
- не обязательно хранить и индексировать большое количество текстовой
информации;
- использование внешних компонентов в виде поисковой системы дает
возможность не решать задачи разработки поиска релевантных документов.
Минусы такого подхода к моделированию вопросно-ответных систем
[Агаев 2013: 14]:
- качество информации напрямую зависит от результатов работы выбранной
поисковой системы, но на данный момент популярные поисковые системы
дают достаточно точные и релевантные результаты;
- размер сниппетов, получаемых системой, зависит от выбранной поисковой
системы и его нельзя изменить;
19
- текстовая информация в сниппетах неструктурированная.
Другим подходом к разработке вопросно-ответных систем являются
системы с коллекцией вопросов и ответов [Nabil Allam, Haggag 2012]. Как
утверждает Н.З. Агаев, «такая архитектура предусматривает локальную
коллекцию вопросов и соответствующих им ответов или же открытую базу
вопросов и ответов, организованную через социальную систему посредством
веб-портала, в котором каждый может задать вопрос или ответить на вопрос
другого пользователя. Пользователь задает вопрос на естественном языке,
затем система производит поиск похожих вопросов в коллекции вопросов и
ответов и выдает ответ на поставленный вопрос. В открытых системах
выдается наиболее похожий вопрос со списком ответов, в начале которого
указан
ответ,
за
корректность
которого
проголосовало
наибольшее
количество пользователей, если такого похожего вопроса не нашлось, то
вопрос пользователя заносится в коллекцию вопросов и остается открытым
для обсуждения и ответа другими пользователями. Данные в такой системе
представлены в виде коллекции вопросов с ответами, которая может
пополняться другими пользователями. В таких системах база вопросов и
ответов может пополняться и автоматически – это происходит поиском по
сети Интернет и анализом текстовых документов, в ходе которого могу быть
извлечены пары «вопрос-ответ», также система может и автоматически
задавать вопросы по тексту после соответствующего анализа» [Агаев 2013:
18-19].
Достоинствами систем с коллекцией вопросов и ответов можно считать
[Агаев 2013: 19]:
- возможность развернутых необязательно фактографических ответов;
- возможность обходиться без использования сложных алгоритмов;
- корректность ответов проверяется.
Но также имеются и недостатки [Агаев 2013: 19]:
- необходимость организации открытой социальной системы обмена
ответами;
20
- необходимо время для дальнейшего пополнения коллекции вопросов;
- проверка ответов другими пользователями, а, следовательно, необходимо
привлечение пользователей;
- организация объемного хранилища.
Одним из других подходов к реализации вопросно-ответных систем,
является применение локальной коллекции индексированных документов.
Архитектура таких систем предусматривает модуль поиска по индексу таких
документов. Этот поисковый индекс, в отличие от случая классических
поисковых систем, дополняется специфическими для вопросно-ответной
системы атрибутами. Элементами индекса являются не отдельные слова
текста, а объекты лингвистического анализа, например [Hirschman et al.
1999]:
- именованные сущности;
- элементарные синтаксические связки (пары грамматически связанных слов
и др.).
При помощи элементов обработки естественных языков система строит
индекс: каждый новый документ проходит автоматическую обработку текста
на естественном языке, размечаются требуемые системе объекты, затем они
добавляются в индекс.
Использование своего специального индекса позволяет преодолеть
некоторые недостатки архитектуры, основанной на интернет-поиске.
К достоинствам данного типа систем можно отнести следующие [Агаев
2013: 20]:
- меньшая вычислительная трудоемкость в момент обработки вопроса
пользователя в реальном времени благодаря собственному индексу;
- собственный индекс позволяет организовать наиболее удобный для
системы поисковый аппарат.
Недостатками являются [Агаев 2013: 20-21]:
- невысокая гибкость по сравнению с системами, основанными на вебпоиске: на этапе построения индекса выбирается какая-то определенная
21
модель представления и индексирования текста. Любые изменения, скорее
всего, потребуют перестройку части системы, отвечающей за индексацию и
поиск по индексу;
-
необходимость
индексации
текстовой
информации,
что
требует
вычислительных затрат. Учитывая то, что документы анализируются
целиком, хоть и ответы на вопросы пользователей содержатся в очень редких
предложениях,
можно
сказать,
что
ресурсы
могут
расходоваться
неэффективно.
Другой тип вопросно-ответных систем – это экспертные системы.
Пользователь задает вопрос системе. При этом она может запросить
некоторые пояснения.
естественном
языке
После этого система анализирует вопрос на
внутренним
алгоритмом,
который
использует
специальную большую базу данных, осуществляется решение вопроса и
выдается ответ. Как правило, экспертные вопросно-ответные системы
направлены на работу в рамках конкретной предметной области и имеют
узкую специализацию.
Н.З. Агаев в своей работе пишет, что «архитектура данных систем
предусматривает наличие специальной базы знаний, информация в которой
хранится в виде некоторой структуры. В базе знаний содержится вся
необходимая информация для принятия решений. Почти любая база знаний
должна содержать достоверные данные о выбранной предметной области.
Единицами знаний в базе являются факты. Также в базе знаний
присутствуют правила, так называемые продукции. Каждая продукция по
своей сути - это просто программа из выражения вида «если выражение-1, то
выражение-2», где «выражение» – это факт или комбинация фактов с
логическими операциями И/ИЛИ. При помощи последовательности этих
элементарных программ определяется набор разрешенных преобразований
от начального состояния до окончательного решения поставленной задачи. С
помощью продукций система может получать новые данные о предметной
области. Причем новые данные тоже будут достоверными. Эти продукции с
22
помощью специальной программы могут добавляться, изменяться и
удаляться. Это делается экспертом предметной области. Также и база знаний
заполняется экспертом» [Агаев 2013: 15].
Плюсы вопросно-ответных систем экспертного типа [Агаев 2013: 16]:
- сравнительно высокая скорость работы;
- высокая достоверность ответа;
Минусы систем экспертного типа [Агаев 2013: 16]:
- необходимо привлекать экспертов и необходимо поддерживать систему;
-
необходимо
создать
объемную
базу
данных,
содержащую
структурированную информацию и различные правила;
- нет архитектурной гибкости системы; она сильно зависит от структуры
фактов (фреймовой модели), которая может быть адекватной только для
определенной предметной области;
- необходимо наличие исходных текстов, чтобы извлекать достоверную
информацию;
- большая вычислительная и организационная трудоемкость создания базы
данных;
- лингвистический анализ на глубоком семантическом уровне извлечения
данных;
- возможно большое количество ошибок, так как могут быть собраны все
ошибки лингвистической обработки на предшествующих этапах работы:
графематическом, морфологическом, синтаксическом и семантическом.
Как
было
сказано
выше,
вопросно-ответные
системы
бывают
открытого и закрытого типа. Также по способу поиска информации они
делятся на вопросно-ответные системы, которые базируются на веб-поиске;
вопросно-ответные
системы,
имеющие
собственную
размеченную
коллекцию документов; вопросно-ответные системы с базой данных,
содержащей вопросы и ответы; вопросно-ответного системы экспертного
типа.
23
В рамках данного исследования будет смоделирована экспертная
вопросно-ответная система закрытого типа. Однако, база знаний, из которой
извлекаются ответы, будет пополняться автоматически через интернет.
24
1.3.
Языковые средства русского языка для описания
перемещения и изменения положения в пространстве
Одной из задач данной работы является исследование языковых
конструкций для русского языка, содержащих семантику перемещения и
направления.
В
данном
разделе
рассматриваются
языковые
конструкции,
описывающие перемещение и изменение положения в пространстве. По
словам Г.Х. фон Вригта, «время имеет недостижимую для нас, пребывающих
в настоящем,
порцию прошлого и
будущее,
куда
нельзя
попасть
несвоевременно. Время движется («течет»); мы не можем двигаться во
времени. Зато в пространстве пятятся и шествуют вперед» [Вригт 2000].
Тема описания процессов перемещения и изменение положения в
пространстве в естественных языках вызывает большой интерес среди
исследователей. Следует упомянуть таких исследователей, занимавшихся
различными аспектами данной проблемы в последние десятилетия, как
Кибрик [Кибрик 1970], Талми [Talmy 1975], Плунгян [Плунгян 1999],
Всеволодова и Владимирский [Всеволодова, Владимирский 1982].
По мнению Б. Тошовича [Тошович 2000], в пространстве есть три
основных процесса, а именно: движение, перемещение и позиционирование.
Он определяет их следующим образом: «Движение – это любой активный
процесс в пространстве. Перемещение – это переход в другое место, иногда
при помощи транспортного средства. Позиционирование – это изменение
плоскости (горизонтальной, вертикальной, наклонной), позиции (стоячей,
лежачей, сидячей, висячей), формы положения (линейной, кругообразной,
крестообразной, скобочной и т.д.) и направления (туда, туда – сюда, к себе,
от себя, вверх, вниз, вперед, назад, обратно, в сторону, в стороны, налево,
направо и т.п.)» [Тошович 2000: 163].
Для
данного
исследования
важны
процессы
перемещения
и
позиционирования, а именно изменения направления. Для определения
25
класса языковых конструкций, описывающих данные процессы, Ф.И.
Рожанский использует следующие критерии [Рожанский 2000: 56]:
1. Наличие в предложении предикативного слова, выраженного
глагольной формой с семантикой перемещения.
2. Присутствие у этого слова хотя бы одного именного аргумента,
который
позволял
бы
говорить
о
конкретной
локализации
перемещения.
Согласно Ф.И. Рожанскому [Рожанский 2000: 57], движение может
иметь лативный и элативный характер. Лативный характер говорит о
движении в направлении к объекту, а элативный – о движении в направлении
от объекта.
Рожанский в своем исследовании использует модель V(S; L1; L2), «где
L1 и L2 – это некоторые точки пространства (далее – ориентиры), S – субъект
перемещения, а V – предикация, определяющая отношения между L1, L2 и S.
При этом L1 соответствует исходной точке движения, а L2 – конечной точке
движения. Так, например, предложению
Сосед ушел с базара домой
соответствует модель V(сосед; базар; дом)» [Рожанский 2000: 58].
Рожанский делит предложения с глаголами перемещения на два класса:
нейтральные конструкции и конструкции, маркированные по способу
перемещения. Первый класс содержит конструкции с глаголами, имеющими
значение «идти», а второй – с остальными глаголами («лететь», «бежать»
и т.д.).
Положение в пространстве субъекта относительно ориентира задает
компонент «локализация».
Основываясь
на
рассмотренных
понятиях,
Рожанский
строит
определение оппозиции «направление». По его словам, «два предложения
считаются противопоставленными по направлению, если для них:
1. Совпадают характеристики перемещения: способ перемещения и
локативные отношения субъекта с ориентирами.
26
2. Совпадают грамматические характеристики глагола (наклонение, вид,
время и т.п.) и его совершаемостные характеристики. Подразумевается,
что субъект в предложениях должен быть один и тот же.
3. Модели, соответствующие предложениям, различаются порядком
следования ориентиров и только им» [Рожанский 2000: 60].
В качестве примеров можно привести предложения:
Он пришел в театр. – Он ушел из театра.
В качестве языковых средств, используемых для манифестации данной
оппозиции в русском языке, выделяются средства, присутствующие внутри
глагольной лексемы (префикс) и вне глагольной лексемы. Средства, которые
расположены
вне
глагольной
лексемы,
различаются
двух
видов:
присутствующие в именной словоформе (падежные морфемы) и вне именной
словоформы (предлоги).
В свою очередь С.Ю. Полякова [Полякова 2013] рассматривает
направление и движение как онтологически взаимосвязанные понятия. По ее
мнению, «в основе понятия «движение» лежит зрительно воспринимаемый
образ движения относительно какого-либо ориентира, отражающий на
уровне глубинных структур отношение к ориентиру» [Полякова 2013: 64].
Полякова
предлагает
такое
определение
категории
направленности:
категория направленности «конституируется трехчленной оппозицией «где –
куда – откуда» и включает в себя компонент локализации, т.е. локативную
составляющую перемещения, предполагающую наличие начальной и
конечной его точек, а также такие стабильные пространственные ориентиры,
как место, источник события и его участники, и компонент направления –
направительную составляющую, связанную с траекторией перемещения и
векторами направления, а также с мобильными ориентирами (сам говорящий,
слушающий или третье лицо), и обеспечивающую ориентацию высказывания
/ текста относительно наблюдателя / автора (прагматический фактор), либо
относительно агенса / пациенса предложения (грамматический фактор)»
[Полякова 2013: 66].
27
По словам Апресяна, «глаголы перемещения в русском языке делятся
на две приблизительно равные по объему группы – так называемые моторнонекратные (детерминативные) и моторно-кратные (индетерминативные)
глаголы, ср. идти – ходить, бежать – бегать, лететь – летать, ехать –
ездить, плыть – плавать, ползти – ползать, а также вести – водить, гнать –
гонять и т.п. В словарях и теоретических работах моторно-кратные глаголы
издавна рассматриваются как семантически производные от моторнонекратных. Поэтому толкование моторно-кратных глаголов состоит обычно
из ссылки на соответствующий моторно-некратный глагол и стандартной,
повторяемой для них всех добавки о том, что перемещение (обозначаемое
данным моторно-кратным глаголом) совершается обычно в разное время или
в разных направлениях» [Апресян 1995: 72].
Анна Зализняк исследует русский глагол добираться в своей работе
«Преодоление пространства в русской языковой картине мира: глагол
добираться» [Зализняк 2000]. Для данной работы этот глагол также имеет
большое значение.
Анна Зализняк предлагает два толкования данного глагола:
«добраться – ‗перемещаясь, преодолевая трудности, в физическом или
каком-либо ином пространстве, достичь контакта с объектом, составляющим
конечный пункт этого перемещения‘;
добираться – ‗перемещаясь, преодолевая трудности, в физическом или
каком-либо ином пространстве с целью достичь контакта с объектом,
составляющим конечный пункт этого перемещения‘» [Зализняк 2000: 30].
В центре внимания Зализняк находится употребление данного глагола,
которое характеризуется следующими признаками: «имеется в виду
перемещение субъекта из одной точки физического пространства в другую,
целью которого является нахождение в некоторой точке пространства или
контакт с находящимся там физическим объектом» [Зализняк 2000: 30].
Также глагол добраться с точки зрения словообразовательной
семантики входит в парадигматический ряд с глаголами со значением
28
достижения цели перемещения в пространстве, например, дойти, добрести,
доехать и т.д., что также имеет немаловажное значение для данной работы,
так как автор пытается достичь языкового разнообразия.
Зализняк в своей работе также утверждает, что «в русском языке нет
стилистически
нейтрального
неспецифицированного
глагола
целенаправленного передвижения (аналогичного, напр., франц. aller). Эта
лакуна в разговорном языке заполняется глаголом добираться / добраться,
который применяется ко всем способам целенаправленного перемещения,
выступая в качестве своеобразного родового термина, предполагающего, к
тому же, возможность чередования разных способов передвижения. … Этот
глагол фактически становится просто глаголом неспецифицированного
целенаправленного перемещения (подобно, напр., франц. arriver)» [Зализняк
2000: 36]. Таким же образом будет использован этот глагол и в данной
работе.
Также интересным для данного исследования является глагол попасть.
Группу глаголов перемещения, центром которой является глагол попасть,
исследует Г.И. Кустова в своей работе «Тип концептуализации пространства
и семантические свойства глагола (группа попасть)» [Кустова 2000]. В
данную группу входят глаголы влезть, залезть, проникнуть, забраться,
пробраться, оказаться, угодить, очутиться и т.д. Типичная черта для
глаголов данной группы – отсутствие актуального несовершенного вида.
Подобные
глаголы
называют
по-разному:
глаголами
достижения,
моментальными глаголами [Апресян 1988; Булыгина 1982; Падучева 1998].
Г.И. Кустова пишет следующее: «В «школьно-геометрической»
картине мира (термин «школьная», в противоположность наивной или
научной картине мира используется Е.В. Урысон) пространство мыслится
как пустое и совершенно однородное вместилище предметов. В языковой
картине мира (так же, как и, например, в мифологической) пространство
неоднородно: в нем выделяются фрагменты свои и чужие, ближние и
дальние, известные и неизвестные, освоенные и неосвоенные, доступные и
29
недоступные, «разрешенные» и «запрещенные», важные и безразличные.
Стандартная
модель перемещения
внутри
«школьно-геометрического»
пространства предполагает три основных элемента: исходную точку,
конечную точку и путь (траекторию движения, соединяющую эти точки и
проходимую
субъектом
движения).
Если
в
реальном
физическом
пространстве субъект движения переместился из одной точки в другую
(попал в квартиру; влез в погреб; проник на склад и т.п.), то путь обязательно
был (субъект двигался по какой-то траектории, соединяющей начальную и
конечную точки). А в языковой концептуализации ситуации движения
интервала между начальной и конечной точками («пути») может не быть –
или
он
может
оказаться
«не
в
фокусе»,
неакцентированным
(и
неакцентируемым), неопределенным и т.д.» [ Кустова 2000: 48].
Соответственно, по мнению Кустовой, у группы глаголов, имеющей
центром глагол попасть, интервал движения невыразим или плохо выразим.
Глаголы, входящие в эту группу, имеют некоторое семантическое сходство, а
именно, способ концептуализации пространственного перемещения, который
имеет связь с особенностями концептуализации пространства.
У глаголов данной группы имеется некоторая общая для всех идея,
согласно которой, между исходной и конечной точками нет прямого пути,
либо нет легкого пути. Субъект перемещения не контролирует или не
полностью контролирует перемещение в конечную точку из-за присутствия
каких-либо препятствий или трудностей. Соответственно, достижение
конечной точки не гарантировано, оно только вероятно. Таким образом,
одной из черт глагола попасть является идея случайности.
В данной работе глагол попасть будет использоваться в том же
смысле, что и глагол добраться.
З. Г. Шайхисламова [Шайхисламова 2012] выделяет в роли главных
членов группы глаголов перемещения глаголы идти и ходить. По ее словам,
«эти глаголы обладают наибольшим количеством употребительных лексикосемантических
вариантов,
они
обладают
развернутой
семантической
30
системой, широкой сочетаемостью, они наиболее нейтральны стилистически,
коммуникативно, грамматически, просодически и т.п., что ставит их в центр
всей группы глаголов движения. Кроме этих глаголов, в ядро группы
глаголов движения, объединенных доминантой «передвигаться с помощью
ног по твердой поверхности», входят следующие коррелятивные пары
глаголов: бежать – бегать, брести – бродить. Многие глаголы можно
описать с помощью одного из глаголов ядерной группы» [Шайхисламова
2012: 1611-1612].
В свою очередь Т.А. Бочкарева в своей работе «Способы передачи
глагольного
действия
в
языках
разных
типов»
[Бочкарева
1993]
высказывается о том, что центром всех русских глаголов движения и
перемещения является глагол двигаться.
Также немаловажными для описания пространственно-направленных
отношений являются предложно-падежные конструкции, так как вопросноответная система, моделируемая в рамках данной работы, будет выдавать
названия топонимических ориентиров и пространств в падежах, требуемых
используемыми глаголами.
Родительный падеж, по мнению Т.П. Засухиной [Засухина 1992]
является самым активным в описании пространственных отношений. Он
выражает самые различные типы пространственных значений только в
приглагольной позиции, при этом сочетается с определенными предлогами.
Когда речь идет о движении от исходной точки, имеют место предлоги «из»,
«с», «от». В случае же с движением к конечной точке родительный падеж
сочетается с предлогом «до». Для описания местонахождения некоторого
предмета или распространения действия в некоторой точке с родительным
падежом используются предлоги «возле», «у», «вокруг», «около», «внутри» и
т.д. Сочетания родительного падежа с предлогом «мимо» являются
указаниями на некоторый оставленный в стороне от линии маршрута объект.
Что касается дательного падежа, то он имеет более однородную
семантику. При описании пространственный отношений дательный падеж
31
сочетается с предлогами «к» и «по». Использование предлога «к» с
дательным падежом является указанием на конечную точку маршрута, а
сочетание дательного падежа с предлогом «по» указывает на топонимическое
пространство и
говорит о местонахождении некоторого движущегося
объекта.
Что касается винительного падежа в русском языке, по словам Т.П.
Засухиной, он «имеет исключительно приглагольный характер. Сочетания
винительного падежа с различными предлогами могут выражать: а)
целенаправленное движение с учетом исходного пункта (зайти в дом,
залезть на дерево и т.д.); б) значение преодоления препятствия, возникшего
на пути движущегося предмета (лезть через забор, идти сквозь кусты и т.д.).
В зависимости от семантики глагольной приставки винительный падеж без
предлога может участвовать в выражении таких пространственных значений,
как, например: а) значение преодоления определенного пространства
(проехать всю Вселенную, объехать весь свет); б) значение ―пройти мимо,
пропустить случайно или преднамеренно что-либо‖ (проехать улицу)»
[Засухина 1992: 7-8].
Говоря о творительном падеже, можно утверждать, что он наиболее
разнообразен в своей семантике и по синтаксическим функциям в
предложении. Если творительный падеж не сочетается с предлогами, то он
указывает на пространство, через которое проходит маршрут. Когда
творительный падеж сочетается с предлогами «перед», «за», «над», «под»,
«между», он указывает на местонахождение предмета или на место действия.
Предложный падеж не употребляется без предлога. Он выражает
местоположение кого-либо или чего-либо и сочетается с предлогами «в» и
«на». Сочетание предложного падежа с предлогом «на» указывает на
поверхность некоторого предмета, на котором кто-то или что-то движется, а
его сочетание с предлогом «в» - на нахождение некоторого предмета или
явления внутри чего-либо.
32
Говоря о пространственной семантике падежей в русском языке, Т.П.
Засухина отмечает следующее: «Во-первых, падежи обладают собственной
семантикой,
причем
ограниченному
числу
форм
категории
падежа
соответствует, как правило, многообразие падежных значений, которые
можно описать, четко отделив одно от другого. Во-вторых, в современном
русском
языке
самостоятельно способен выражать пространственное
значение только творительный падеж, указывая на то пространство, через
которое происходит движение. Все же остальные падежи участвуют в
выражении различных типов пространственных значений только в сочетании
с определенными предлогами, причем винительный, творительный и
предложный падежи, сочетаясь с предлогами В, НА, ЗА, ПОД, с одной
стороны, и с каузативными предлогами – с другой, берут на себя основную
семантическую нагрузку в выражении либо направленности действиядвижения (винительный падеж), либо локальности (творительный и
предложный падежи). В-третьих, в выражении значения направления
действия-движения в пространстве участвуют родительный, дательный и
винительный падежи. Значение начального пункта движения передается в
языке сочетаниями родительного падежа с определенными предлогами,
значение
конечного
дательного
и
пункта
винительного
движения
падежей
–
с
сочетаниями родительного,
определенными
предлогами.
Локальную семантику несут родительный, дательный, творительный и
предложный
падежи
в
составе
определенных
предложно-падежных
конструкций. Значение преодоления препятствия передается сочетанием
родительного падежа с предлогами СКВОЗЬ и ЧЕРЕЗ и винительным
беспредложным при глаголах с приставками О-, ПЕРЕ-» [Засухина 1992: 89].
В данном разделе были исследованы языковые средства выражения
пространственно-направленных
отношений,
рассмотрены
языковые
конструкции, описывающие перемещение и изменение положения в
пространстве, а также описана семантика основных глаголов перемещения
33
русского языка и предложно-падежных конструкций, которые будут
использованы в следующей главе для моделирования вопросно-ответной
системы навигации.
В данной главе были исследованы общие принципы работы вопросноответных систем, виды вопросно-ответных систем, а также языковые
средства для описания перемещения и изменения положения в пространстве.
Это достаточная теоретическая база для моделирования экспертной
вопросно-ответной системы закрытого типа с шаблонами вопросов и ответов,
дающей ответы на вопросы класса location и использующей базу знаний,
автоматически пополняющуюся через интернет. В следующей главе будет
описан алгоритм вопросно-ответной системы навигации в городской среде.
34
Глава 2
2.1.
Создание базы данных для вопросно-ответной системы
Целью данной работы является моделирование вопросно-ответной
системы навигации в городской среде. Данная система является экспертной
вопросно-ответной системы закрытого типа. Моделирование такой системы
предполагает использование базы данных. Для создания такой базы данных
был произведен поиск определенной информации, а именно, языковых
конструкций, используемых для описаний маршрутов.
Предполагается, что данная вопросно-ответная система должна
использовать разнообразные языковые средства для описания маршрутов.
Поэтому в целях набора таких языковых средств был осуществлен поиск
диалогов на тему «Как добраться из точки А в тоску В». Поиск
осуществлялся в Национальном корпусе русского языка [НКРЯ]. Некоторые
примеры, найденные в корпусе можно посмотреть в Приложении 1. Также
для более полной картины был осуществлен опрос на данную тему.
Опрашивались студенты и преподаватели Академии художеств им. И.Е.
Репина
(СПбГАИЖСА),
студенты
философского
и
филологического
факультетов СПбГУ, а также случайные люди в социальной сети
«ВКонтакте». Некоторые примеры описаний маршрутов, полученные в ходе
опроса, можно увидеть в Приложении 2. Всего получилось 100 диалогов
вместе с диалогами из НКРЯ, все их можно посмотреть на прилагаемом CDRW [Корпус диалогов о маршрутах].
Далее были взяты описания маршрутов движения от филологического
факультета СПбГУ до 15-ти различных точек на Васильевском острове. Эти
описания были взяты из Google Maps [Google Maps]. Некоторые примеры
этих описаний есть в Приложении 3, остальные записаны на CD-RW
[Описания Google Maps]. Некоторые неудачные описания были заменены.
Например, описания маршрутов через улицы с неуказанными названиями
35
были заменены описаниями с улицами, отмеченными на карте. Такая замена
была произведена для описания маршрута до Гаванской ул., 51, где от
Малого проспекта В.О. описание маршрута производилось через улицы без
названий и было совершенно недоступным для понимания. Это описание
было заменено на описание движения до Малого проспекта В.О., 71 с
последующим поворотом на ул. Гаванскую, что более приемлемо для
пользователей.
Также
описания
типа
«Следуйте
на юго-запад по наб.
Университетской в
сторону пер.
Филологического
(84м).
поверните направо и
продолжайте
движение
Университетской
по наб.
Плавно
(260м)» были заменены описаниями типа «Поверните направо и следуйте
по наб. Университетской до первого перекрестка…». Для всех точек
описания длины пути в метрах были заменены на описания ориентиров по
ходу движения, такие описания кажутся более естественными и проще
воспринимаются
пользователями.
В
качестве
подобных
ориентиров
выступали мосты, перекрестки, кварталы, количество зданий слева,
количество зданий справа, номера домов, светофоры, известные здания, а
также движение до конца улицы, переулка и т.д. Во всех описаниях были
выделены элементы трассировки, а именно: собственно движение (следуйте,
поверните,
продолжайте
движение,
пересеките),
топонимическое
пространство (по), топонимический ориентир (до).
В целях удобства для построения дерева возможных вариантов
навигации и дальнейшей работы с материалом на основании полученных
элементов трассировки все описания были унифицированы. Некоторые
примеры унифицированных описаний можно посмотреть в Приложении 4,
остальные имеются на CD-RW [Корпус унифицированных описаний
маршрутов].
Затем
на
основании
полученных
унифицированных
описаний
маршрутов было построено дерево возможных вариантов навигации по
Васильевскому острову от филологического факультета, содержащее 173
точки. Данное дерево содержится в Приложении 5. Для удобства при
36
построении
дерева
были
использованы
следующие
обозначения
и
сокращения:
А – следуйте по
В – до
С – поверните налево
D – поверните направо
Е – пересеките
F – продолжайте движение по
n – количество перекрестков
b – количество зданий слева
с – количество зданий справа
# - конец маршрута
.
– топонимическое пространство
.
– топонимический ориентир
.
– конечная точка маршрута
Далее на основании построенного дерева был составлен массив
данных, содержащийся в Приложении 6. Для массива данных были
использованы те же обозначения и сокращения, что и для дерева
возможностей. В массиве данных для каждой точки присутствует следующая
информация: № точки, количество ветвлений, действие, топонимическое
пространство / топонимический ориентир, достигаемая точка. Для точек, в
которых отсутствует топонимическое пространство / топонимический
ориентир, был использован символ ⊘.
Далее после того, как массив данных был создан, чтобы разнообразить
описания маршрутов для работы вопросно-ответной системы, для глаголов
движения были найдены альтернативы в диалогах, полученных из НКРЯ
[НКРЯ] и в ходе опроса. Все глаголы движения брались в повелительном
наклонении.
37
Получилось следующее:
следуйте по: следуйте прямо по, пройдите по, пройдите прямо по,
пройдите вперед по, идите по, идите прямо по, идите вперед по, двигайтесь
по, двигайтесь вперед по, двигайтесь прямо по, дойдите по;
поверните налево – сверните налево;
поверните направо – сверните направо;
пересеките – перейдите, перейдите через;
продолжайте движение по – продолжайте путь по, следуйте дальше по,
идите дальше по, двигайтесь дальше по, пройдите дальше по.
Далее была создана база данных из четырех таблиц, соединенных
отношениями «один-ко-многим». На следующем рисунке изображена
структура базы данных:
data
ID_point
Количество ветвлений
Именительный падеж
Родительный падеж
Творительный падеж
Предложный падеж
data_2
ID_point
Топонимическое пространство /
топонимический ориентир
Достигаемая точка
ID_action
Именительный падеж
Родительный падеж
Дательный падеж
Винительный падеж
actions
ID_action
Действие
actions_2
ID
Действие_2
ID_action
Рис. 2. Структура базы данных
38
В первой таблице («data») содержится информация из столбцов
массива данных «№ точки» (этот столбец в таблице «data» называется
«ID_point» и является первичным ключом) и «Количество ветвлений», а
также добавлены столбцы для именительного, родительного, творительного
и предложного падежей, в которых находятся названия всех исходных точек
массива, данные во всех этих падежах. Для каждого падежа отдельный
столбец. Эти столбцы необходимы для поиска исходных точек в базе данных.
Были взяты именно эти падежи, потому что они обладают семантикой
движения от исходной точки. В следующей таблице («actions») два столбца,
во втором столбце «Действие» находятся формализованные буквенные
обозначения действий из столбца «Действие» массива данных, первый
столбец «ID_action» содержит порядковые номера действий. В таблице
«actions_2» три столбца. В первом столбце «ID_point» порядковые номера
строк. Во втором столбце «Действие_2» находятся все глаголы для
обозначения действий, указанные выше, а также указан просто предлог «до»
для тех случаев, которые в столбце «Действие» массива данных обозначены
буквой В. Третий столбец «ID_action» ссылается на столбец «ID_action»
таблицы «actions». Таким образом, эта таблица находится в отношении
«один-ко-многим» с таблицей «actions», и получается, что для каждого
формализованного обозначения действия доступны все соответствующие ему
глаголы, указанные выше. В следующей таблице («data_2») восемь столбцов.
Она находится в отношениях «один-ко-многим» с таблицей «data» и с
таблицей «actions». В столбце «ID_point» указаны номера исходных точек, и
он ссылается на столбец «ID_point» таблицы «data». Таким образом, у
каждой исходной точки может быть несколько ветвлений, и у каждого
ветвления свое описание топонимического пространства или ориентира и
своя достигаемая точка. В столбце «Топонимическое пространство /
топонимический ориентир» все буквенные обозначения из массива данных
заменены на слова, чтобы программа могла сразу легко сформировать ответ.
В столбце «Достигаемая точка» указаны номера достигаемых точек из
39
массива данных. Столбец «ID_action» является вторичным ключом и
ссылается на столбец «ID_action» таблицы «actions». Таким образом, для
каждой достигаемой точки возможно одно действие, необходимое, чтобы ее
достигнуть, исходя из описаний маршрутов, при этом доступны разные
варианта естественно-языкового описания этого действия. В то же время и
каждое действие может быть применено к нескольким достигаемым точкам.
Также в эту таблицу добавлены столбцы для именительного, родительного,
дательного и винительного падежей. В этих столбцах находятся все названия
достигаемых точек в данных падежах. Для каждого падежа отдельный
столбец. Эти столбцы необходимы для поиска конечных точек в базе данных,
а также для формирования ответов. Взяты именно эти падежи, так как
именно они обладают семантикой направления к конечной точке, как было
сказано в предыдущей главе.
В эту базу данных была внесена вся информация из массива данных и
различные глаголы движения для разнообразия описаний маршрутов, а также
названия всех точек из массива данных в разных падежах. Далее был написан
алгоритм работы вопросно-ответной системы, который представлен в
следующем разделе.
40
2.2.
Алгоритм вопросно-ответной системы навигации
в городской среде
В предыдущем разделе был описан процесс создания базы данных для
экспертной вопросно-ответной системы навигации в городской среде. Данная
система получает на вход вопрос, ищет информацию для ответа в базе
данных и выдает ответ, а в случае, если в базе данных нет ответа, она
обращается к Google Maps [Google Maps] и ищет информацию там, после
чего автоматически пополняет базу данных новыми точками и выдает ответ.
Алгоритм работы данной системы изображен на следующем рисунке:
Программа получает на вход предложение
Анализ предложения и поиск ключевых слов
Информационный поиск в базе данных
Программа задает вопрос пользователю:
«Где Вы находитесь?»
Программа получает на вход предложение
Анализ предложения и поиск ключевых слов
Информационный поиск в базе данных
Если необходимо определить местоположение
пользователя, программа обращается к Google Maps,
получает название точки, в которой находится
пользователь, ищет полученную информацию в базе
данных
Извлечение ответа из базы данных
Если точка или точки не найдены в базе данных, то программа
обращается к Google Maps и пополняет базу данных. Алгоритм
автоматического пополнения базы данных описан в разделе 2.3
данной главы
Формулировка и выдача ответа
Рис. 3. Схема работы вопросно-ответной системы навигации
41
Алгоритм следующий.
1. Программа получает на вход предложение.
2. Анализ предложения и поиск ключевых слов.
Программа создает строку, в которую будет вставлять найденные
ключевые слова.
Если в предложении имеются слова или сочетания слов «Где / где»,
«Где / где находится», «Где / где расположен / расположена / расположено»,
«Где / где искать», «Где / где мне / нам искать», «Как / как найти», «Как / как
мне / нам найти», то программа берет в качестве ключевых слов весь текст,
следующий за этими словами, кроме вопросительного знака, если он
присутствует, и вставляет его в строку.
Если в предложении есть сочетания «Как / как добраться», «Как / как
мне / нам добраться», «Как / как попасть», «Как / как мне / нам попасть»,
«Как / как дойти», «Как / как мне / нам дойти», «Как / как пройти», «Как / как
мне / нам пройти»,
«Как / как проследовать», «Как / как мне / нам
проследовать», то в качестве ключевых слов программа берет текст,
расположенный после предлогов «до», «к», «на», «в», кроме вопросительного
знака, если он присутствует, и вставляет его в строку.
Если же в предложении отсутствуют вопросительные слова, то
программа проверяет, нет ли в предложении предлогов, перечисленных в
предыдущем абзаце, причем поиск предлогов осуществляется в разных
регистрах, и, если они присутствуют, в качестве ключевых слов берется
текст, расположенный после них, и вставляется в строку. Если же предлогов
нет, то программа берет весь текст предложения в качестве ключевых слов, и
тогда строка равна всему полученному на вход предложению.
3. Информационный поиск в базе данных.
Запрос к базе данных осуществляется по созданной ранее строке, то
есть проверяется наличие в таблице «data» текста, находящегося в строке.
В случае, описанном в предыдущем пункте, когда в полученном на
вход предложении имеются фрагменты «Где / где», «Где / где находится»,
42
«Где / где расположен / расположена / расположено», то программа делает
запрос по ключевым словам к базе данных, а именно к столбцу
«Именительный падеж» таблицы «data_2».
Если же в предложении присутствуют сочетания слов «Где / где
искать», «Где / где мне / нам искать», «Как / как найти», «Как / как мне / нам
найти», то запрос делается к столбцу «Винительный падеж» таблицы
«data_2».
В случаях, когда поиск ключевых слов в предложении осуществляется
по предлогам, если имеет место предлог «до», то программа осуществляет
запрос к столбцу «Родительный падеж» таблицы «data_2», если же предлог
«к» - то к столбцу «Дательный падеж», в случае же с предлогами «на» и «в» к столбцу «Винительный падеж».
Если вопросительные слова и предлоги в предложении отсутствуют, и
в качестве ключевых слов берется все предложение, запрос осуществляется к
столбцу «Именительный падеж» таблицы «data_2».
Таким образом программа ищет в базе данных конечную точку.
4.
Программа задает пользователю вопрос: «Где Вы находитесь?»
5.
Программа получает на вход предложение.
6.
Анализ предложения и поиск ключевых слов.
Программа снова создает строку, в которую будет записывать
ключевые слова.
Если в предложении присутствуют предлоги «Из / из», «От / от», «С /
с», «В / в», «Возле / возле», «У / у», «Около / около», «Перед / перед»,
«Рядом с / рядом с», то в качестве ключевых слов берется текст,
находящийся после этих предлогов, кроме точки, если она присутствует, и
этот текст записывается в строку.
Если же предлогов нет, то в качестве ключевых слов берется все
предложение кроме точки, если она присутствует, и строка равна всему
предложению, полученному на вход.
43
Если предложение, полученное программой на вход, содержит слова
«Отсюда / отсюда», «От / от меня», «От / от данного / этого места», «С / с
данного / этого места», «Из / из данного / этого места», «От / от моего
местоположения», «С / с моего местоположения», то программа не ищет
ключевые слова.
7. Информационный поиск в базе данных.
Запрос к базе данных осуществляется по созданной ранее строке.
Если в предложении есть предлоги «из», «от», «с», «возле», «у»,
«около» то запрос осуществляется к столбцу «Родительный падеж» таблицы
«data» базы данных. Если есть предлог «в», то запрос осуществляется к
столбцу «Предложный падеж». Если имеют место предлоги «перед» и
«рядом с», то запрос осуществляется к столбцу «Творительный падеж». Если
же предлогов нет, и в качестве ключевых слов берется все предложение,
запрос осуществляется к столбцу «Именительный падеж».
Если пользователь дал на вход предложение, содержащее слова
«Отсюда / отсюда» и прочие сочетания слов, описанные в последнем абзаце
предыдущего пункта, то программа обращается к Google Maps, получает
название точки, в которой находится пользователь, там, далее ищет
полученную информацию в столбце «Именительный падеж» таблицы «data».
Таким образом программа ищет в базе данных исходную точку.
8. Извлечение ответа из базы данных.
Если программа находит в базе данных обе точки, то далее она
извлекает ответ из базы данных следующим образом.
Программа создает строку, в которую будет вставлять текст ответа,
извлеченный из базы данных. Назовем для примера строку буквой d.
Далее в столбце «ID_point» таблицы «data» программа ищет номер
исходной точки, он находится в строке, соответствующей названию
исходной точки из столбцов с падежами таблицы «data», после этого
программа ищет этот же номер в столбце «ID_point» таблицы «data_2», а в
столбце «Достигаемая точка» таблицы «data_2» - номер конечной точки, он
44
находится в строке, соответствующей названию конечной точки из столбцов
с падежами таблицы «data_2».
Если в строке таблицы «data», в которой расположена исходная точка,
в ячейке столбца «Количество ветвлений» стоит число 1, то программа
обращается к таблице «data_2», находит в столбце «Достигаемая точка»
номер достигаемой из нее точки. Затем программа обращается к столбцу
«ID_action» таблицы «data_2», находит номер действия, которое надо
применить, чтобы попасть в эту точку, далее обращается к таблице
«actions_2» и ищет этот номер в столбце «ID_ action» таблицы «actions_2»,
далее находит в столбце «Действия_2» таблицы «actions_2» глаголы,
соответствующие этому номеру и обозначающие действия, которые можно
осуществить, чтобы достигнуть данной точки. Каждый глагол находится в
отдельной строке. Из данных глаголов программа случайным образом
выбирает любой и вставляет его в стоку d, после вставляет пробел. Далее
программа обращается к таблице «data_2», снова находит в столбце
«Достигаемая точка» номер достигаемой точки и из соответствующей строки
берет текст, расположенный в столбце «Топонимическое пространство /
топонимический ориентир», после чего вставляет его в стоку d после уже
находящегося там текста.
После этого программа ищет номер
достигаемой точки в столбце
«ID_point» таблицы «data». И далее повторяет описанный в предыдущем
абзаце алгоритм действий. И так по циклу, пока не дойдет до конечной
точки. Номер конечной точки программа ищет в столбце «Достигаемая
точка» таблицы «data_2», он находится в строке, соответствующей названию
конечной точки, находящемуся в одном из столбцов с падежами таблицы
«data_2». Когда в столбце «Достигаемая точка» таблицы «data_2» будет
номер конечной точки, цикл прервется.
Каждый раз, перед записью текста из столбца «Действие» таблицы
«action» в строку d, программа будет записывать в строку d запятую и
пробел, кроме случаев, когда из столбца «Действие» берется слово «до», в
45
этом случае будет записываться только пробел. Когда программа достигнет
конечной точки, после всего записанного в строку d текста, она ставит точку,
пробел и текст «Вы у цели.».
В случае если в столбце «Количество ветвлений» таблицы «data» для
исходной точки стоит число больше одного, программа осуществляет
следующий алгоритм. В столбце «ID_point» таблицы «data_2» она ищет
номер точки, из которой достигаема конечная точка маршрута, далее ищет
этот номер в столбце «Достигаемая точка», далее в столбце «ID_point»
находит номер точки, из которой предыдущая точка достигаема, и так по
циклу, пока в столбце «ID_point» не окажется исходная точка, у которой
ветвление больше одного. Тогда далее программа берет информацию из той
строки, соответствующей исходной точке, в столбце «Достигаемая точка»
которой находится номер точки, которая в цикле была последней перед
исходной точкой. Далее программа продолжает работу, как было описано
ранее, то есть как в случае с одинарным ветвлением, и записывает
полученную информацию в строку d.
Таким образом, в строке d оказывается описание маршрута из исходной
точки, названной пользователем, до конечной.
Если одна из точек или обе точки не найдены в базе данных, тогда
программа обращается к Google Maps, находит там не найденные точки и
информацию о маршрутах до них или от них, обрабатывает полученную
информацию и пополняет базу данных. Далее работает с новыми точками по
уже описанному алгоритму.
Также если программа находит обе точки в базе данных, но при этом
конечная точка недосягаема из исходной, она обращается к Google Maps,
находит там информацию о маршруте, обрабатывает ее и пополняет ей базу
данных. Алгоритм автоматического пополнения базы данных описан в
следующем разделе данной главы.
Если программа находит в базе данных несколько маршрутов, то она
выбирает тот, в котором присутствует наименьшее количество точек, а если
46
есть несколько маршрутов с одинаковым количеством точек, то маршрут
выбирается программой случайным образом. Если же одна и та же конечная
точка имеет несколько номеров, опять же до нее берется маршрут с
наименьшим количеством точек.
Если название одной из точек или названия обеих точек, полученные
на вход от пользователя, не найдены ни в базе данных, ни в Google Maps, то в
строку d ничего не записывается, а пользователь получает от программы
ответ: «Пожалуйста, сформулируйте запрос иначе!»
9. Формулировка и выдача ответа.
Если
программа
изначально
получает
на
вход
предложение,
содержащее фрагменты «Где / где искать», «Где / где мне / нам искать», «Как
/ как найти», «Как / как мне / нам найти», то чтобы дать ответ, она берет
название конечной точки из столбца «Винительный падеж» таблицы «data_2»
и выдает ответ по шаблону «Чтобы найти [название точки в винительном
падеже], » плюс текст из строки d.
В случае если получено предложение, содержащее «Как / как
добраться», «Как / как мне / нам добраться», то программа ищет название
конечной точки в столбце «Родительный падеж» выдает ответ по шаблону
«Чтобы добраться до [название точки в родительном падеже], » плюс текст
из строки d.
В случае, когда полученное на вход предложение содержит «Как / как
дойти», «Как / как мне / нам дойти», так же как и в предыдущей ситуации,
название точки берется в родительном падеже, и, соответственно, шаблон
ответа будет следующим: «Чтобы дойти до [название точки в родительном
падеже], » плюс текст из строки d.
Когда на вход поступает предложение, содержащее «Как / как
попасть», «Как / как мне / нам попасть», программа берет предлог,
находящийся перед ключевыми словами в вопросе, и сами ключевые слова в
том же падеже, что и в вопросе, и выдает следующий ответ: «Чтобы попасть
[предлог + ключевые слова], » плюс текст из строки d.
47
В случаях с «Как / как пройти», «Как / как мне / нам пройти», «Как /
как проследовать», «Как / как мне / нам проследовать» ситуация будет такой
же, только с соответствующими глаголами.
Во всех остальных случаях, описанных во втором пункте, программа
случайным образом выбирает шаблон из тех шаблонов, в которых программа
ищет названия точек в соответствующих падежах в базе данных.
Что касается случаев, когда точка или точки, запрашиваемые
пользователем, не найдены ни в базе данных, ни в Google Maps, как уже было
сказано в предыдущем пункте, программа выдает ответ: «Пожалуйста,
сформулируйте запрос иначе!»
Далее приведено несколько примеров работы алгоритма на точках,
описания которых были взяты для построения базы данных.
На следующем рисунке показана информация из Google Maps [Google
Maps]
о
маршруте
от
Филологического
факультета
СПбГУ
до
Энергетического техникума. Информация о данном маршруте имеется также
и в базе данных. Для сравнения приведен пример из Google Maps и пример
описания того же самого маршрута алгоритмом вопросно-ответной системы
навигации, описанным выше.
48
Рис. 4. Пример описания Google Maps 1
49
На следующем рисунке показано, как этот же маршрут выдает
алгоритм.
Программа получает на вход предложение:
«Как добраться до Энергетического техникума?»
Анализ предложения и поиск ключевых слов
Ключевые слова: Энергетического техникума
Информационный поиск в базе данных
Конечная точка найдена
Программа задает вопрос пользователю:
«Где Вы находитесь?»
Программа получает на вход предложение:
«Филологический факультет СПбГУ»
Анализ предложения и поиск ключевых слов
Ключевые слова: Филологический факультет СПбГУ
Информационный поиск в базе данных
Исходная точка найдена
Извлечение ответа из базы данных
Извлеченная информация: «поверните направо, идите по наб. Университетской до
первого перекрестка, сверните направо, двигайтесь прямо по 1-ой лин. В.О. /
Кадетской лин. В.О. до второго перекрестка, поверните налево, пройдите по Большому
пр. В.О. до пятого перекрестка, поверните налево, дойдите по 11-ой лин. В.О. до
первого здания слева. Вы у цели.»
Формулировка и выдача ответа:
«Чтобы добраться до Энергетического техникума, поверните направо, идите по наб.
Университетской до первого перекрестка, сверните направо, двигайтесь прямо по 1-ой
лин. В.О. / Кадетской лин. В.О. до второго перекрестка, поверните налево, пройдите по
Большому пр. В.О. до пятого перекрестка, поверните налево, дойдите по 11-ой лин. В.О.
до первого здания слева. Вы у цели.»
Рис. 5. Пример работы алгоритма 1
50
Далее описание маршрута от Филологического факультета СПбГУ до
Академии художеств.
Рис. 6. Пример описания Google Maps 2
51
Программа получает на вход предложение:
«Как найти Академию художеств?»
Анализ предложения и поиск ключевых слов
Ключевые слова: Академию художеств
Информационный поиск в базе данных
Конечная точка найдена
Программа задает вопрос пользователю:
«Где Вы находитесь?»
Программа получает на вход предложение:
«от Филологического факультета СПбГУ»
Анализ предложения и поиск ключевых слов
Ключевые слова: Филологического факультета СПбГУ
Информационный поиск в базе данных
Исходная точка найдена
Извлечение ответа из базы данных
Извлеченная информация: «сверните направо, пройдите вперед
по наб. Университетской до второго перекрестка. Вы у цели.»
Формулировка и выдача ответа:
«Чтобы найти Академию художеств, сверните направо, пройдите
вперед по наб. Университетской до второго перекрестка. Вы у цели.»
Рис. 7. Пример работы алгоритма 2
52
Далее маршрут от Филологического факультета СПбГУ до Тучкова
переулка, 11/5.
Рис. 8. Пример описания Google Maps 3
53
Программа получает на вход предложение:
«Тучков пер., 11/5»
Анализ предложения и поиск ключевых слов
Ключевые слова: Тучков пер., 11/5
Информационный поиск в базе данных
Конечная точка найдена
Программа задает вопрос пользователю:
«Где Вы находитесь?»
Программа получает на вход предложение:
«с Филологического факультета СПбГУ»
Анализ предложения и поиск ключевых слов
Ключевые слова: Филологического факультета СПбГУ
Информационный поиск в базе данных
Исходная точка найдена
Извлечение ответа из базы данных
Извлеченная информация: «поверните направо, идите прямо по наб.
Университетской до первого перекрестка, поверните направо, двигайтесь
по 1-ой лин. В.О. / Кадетской лин. В.О. до дома № 5, сверните направо,
дойдите по пер. Двинскому до конца пер. Двинского, поверните налево,
идите по пер. Тучкову до второго перекрестка. Вы у цели.»
Формулировка и выдача ответа:
«Чтобы дойти до Тучкова пер., 11/5, поверните направо, идите прямо по
наб. Университетской до первого перекрестка, поверните направо,
двигайтесь по 1-ой лин. В.О. / Кадетской лин. В.О. до дома № 5,
сверните направо, дойдите по пер. Двинскому до конца пер. Двинского,
поверните налево, идите по пер. Тучкову до второго перекрестка. Вы у
цели.»
Рис. 9. Пример работы алгоритма 3
54
Далее маршрут от Филологического факультета СПбГУ до ул.
Гаванской, 51.
Рис. 10. Пример описания Google Maps 4
55
На следующем рисунке описание маршрута между теми же самыми
точками, выдаваемое алгоритмом.
Программа получает на вход предложение:
«Как попасть на ул. Гаванскую, 51?»
Анализ предложения и поиск ключевых слов
Ключевые слова: ул. Гаванскую, 51
Информационный поиск в базе данных
Конечная точка найдена
Программа задает вопрос пользователю:
«Где Вы находитесь?»
Программа получает на вход предложение:
«Филологический факультет СПбГУ»
Анализ предложения и поиск ключевых слов
Ключевые слова: Филологический факультет СПбГУ
Информационный поиск в базе данных
Исходная точка найдена
Извлечение ответа из базы данных
Извлеченная информация: «поверните направо, двигайтесь прямо по наб.
Университетской до первого перекрестка, сверните направо, идите по 1-ой лин. В.О. /
Кадетской лин. В.О. до второго перекрестка, поверните налево, пройдите по Большому
пр. В.О. до дома № 57, поверните направо, идите прямо по 17-ой лин. В.О. до
Драматического театра, поверните налево, идите по Малому пр. В.О. до дома № 71,
сверните направо, следуйте по ул. Гаванской до четвертого здания справа. Вы у цели.»
Формулировка и выдача ответа:
«Чтобы попасть на ул. Гаванскую, 51, поверните направо, двигайтесь прямо по наб.
Университетской до первого перекрестка, сверните направо, идите по 1-ой лин. В.О. /
Кадетской лин. В.О. до второго перекрестка, поверните налево, пройдите по Большому
пр. В.О. до дома № 57, поверните направо, идите прямо по 17-ой лин. В.О. до
Драматического театра, поверните налево, идите по Малому пр. В.О. до дома № 71,
сверните направо, следуйте по ул. Гаванской до четвертого здания справа. Вы у цели.»
Рис. 11. Пример работы алгоритма 4
56
Далее маршрут от Филологического факультета СПбГУ до Ленэкспо.
Рис. 12. Пример описания Google Maps 5
57
На следующем рисунке тот же маршрут, произведенный работой
вопросно-ответной системы.
Программа получает на вход предложение:
«Где искать Ленэкспо?»
Анализ предложения и поиск ключевых слов
Ключевые слова: Ленэкспо
Информационный поиск в базе данных
Конечная точка найдена
Программа задает вопрос пользователю:
«Где Вы находитесь?»
Программа получает на вход предложение:
«Филологический факультет СПбГУ»
Анализ предложения и поиск ключевых слов
Ключевые слова: Филологический факультет СПбГУ
Информационный поиск в базе данных
Исходная точка найдена
Извлечение ответа из базы данных
Извлеченная информация: «поверните направо, идите прямо по
наб. Университетской до первого перекрестка, поверните
направо, идите вперед по 1-ой лин. В.О. / Кадетской лин. В.О.
до третьего перекрестка, поверните налево, следуйте прямо по
Среднему пр. В.О. до конца Среднего пр. В.О., сверните
налево, двигайтесь вперед по ул. Наличной до первого здания
справа. Вы у цели.»
Формулировка и выдача ответа:
«Чтобы найти Ленэкспо, поверните направо, идите прямо по наб.
Университетской до первого перекрестка, поверните направо, идите
вперед по 1-ой лин. В.О. / Кадетской лин. В.О. до третьего
перекрестка, поверните налево, следуйте прямо по Среднему пр. В.О.
до конца Среднего пр. В.О., сверните налево, двигайтесь вперед по ул.
Наличной до первого здания справа. Вы у цели.»
Рис. 13. Пример работы алгоритма 5
58
Также важно, что программа описывает маршрут из расчета на то, что в
начале маршрута субъект стоит лицом к дороге, а ориентир, который взят за
исходную точку, находится позади субъекта.
На следующем рисунке приведен пример работы алгоритма в случае,
если точки, запрашиваемые пользователем, отсутствуют и в базе данных, и в
Google Maps. Такое может происходить из-за большого количества опечаток,
например.
Программа получает на вход предложение:
«Как добраться до ул. Гаванской, 51?»
Анализ предложения и поиск ключевых слов
Ключевые слова: ул. Гаванской, 51
Информационный поиск в базе данных
Конечная точка найдена
Программа задает вопрос пользователю:
«Где Вы находитесь?»
Программа получает на вход предложение:
«Сколенксая наб. 1»
Анализ предложения и поиск ключевых слов
Ключевые слова: Сколенксая наб. 1
Информационный поиск в базе данных
Исходная точка не найдена
Обращение к Google Maps
Исходная точка не найдена
Формулировка и выдача ответа:
«Пожалуйста, сформулируйте запрос иначе!»
Рис. 14. Пример работы алгоритма 6
59
В данном разделе был построен алгоритм вопросно-ответной системы
навигации в городской среде, формирующий ответы из информации,
извлеченной из базы данных. Как видно из примеров, ответы, выдаваемые
алгоритмом,
выглядят
более
естественно,
чем
ответы
современных
навигаторов с использованием описания длины пути в метрах или в минутах.
Также ответы состоят из полных правильно построенных предложений, все
названия улиц и ориентиров согласованы по падежам. Кроме того, за счет
использования
алгоритмом
различных глаголов
перемещения
ответы
выглядят более разнообразными, чем ответы современных навигаторов.
Примеры использования алгоритма показывают, что он вполне удобен
в эксплуатации. Но так как база данных, используемая алгоритмом, содержит
не такое уж большое количество точек, ее необходимо пополнять. Пополнять
базу данных в ручную представляется не вполне приемлемым, поэтому в
следующем разделе рассмотрен алгоритм автоматического пополнения этой
базы данных новыми точками для дальнейшей работы.
60
2.3.
Данная
Алгоритм автоматического пополнения базы данных
вопросно-ответная
система
навигации
предполагает
автоматическое пополнение базы данных. Если точки, запрашиваемые
пользователем, отсутствуют в базе данных, программа ищет их в Google
Maps [Google Maps], преобразует информацию, полученную из Google Maps,
так и пополняет базу данных информацией о данных новых точках.
Автоматическое
пополнение
базы
данных
осуществляется
по
следующему алгоритму. Схема работы алгоритма изображена на следующем
рисунке:
Поиск исходной и конечной
точек в Google Maps
Запрос маршрута от исходной точки до конечной в
Google Maps
Запрос названия точки, находящейся на ближайшем
повороте от исходной точки на пути маршрута
Поиск исходной и ближайшей
достигаемой точки в базе данных
Заполнение базы данных
информацией об исходной точке с
поворотом
Создание строки с топонимическим пространством
Создание строки с ориентиром
Создание строки для достигаемой точки
Пункты 3 и 7 алгоритма вопросно-ответной системы
Рис. 15. Схема работы алгоритма автоматического пополнения базы данных
61
Если названия одной или обеих точек (исходной и конечной),
полученные на вход от пользователя, отсутствуют в базе данных, программа
обращается к Google Maps.
1.
Поиск исходной и конечной точек в Google Maps.
2.
Запрос маршрута от исходной точки до конечной в Google Maps.
Если в Google Maps имеется несколько маршрутов от исходной до
конечной точки, то выбирается самый короткий.
3.
Запрос названия точки, находящейся на ближайшем повороте от
исходной точки на пути маршрута.
4.
Поиск исходной и ближайшей достигаемой точки в базе данных.
Программа ищет название исходной точки в столбце «Именительный
падеж» таблицы «data» базы данных и название точки, находящейся на
ближайшем повороте от исходной точки, в столбце «Именительный падеж»
таблицы «data_2». Если данная точка, а также исходная точка обе имеются в
базе данных, и из исходной точки достижима данная, то программа не
пополняет базу данных новой информацией, а далее данную точку
принимает за исходную и возвращается к пункту 2. Если же достигаемая
точка отсутствует в базе данных, либо она имеется в ней, но не достижима из
исходной точки, либо отсутствует исходная точка, то программа двигается
дальше по алгоритму.
Если исходная точка имеется в базе данных, то программа обращается
к пункту 5а.
Если же исходная точка отсутствует в базе данных, то программа
обращается к пункту 5б.
5.
Заполнение базы данных информацией об исходной точке с
поворотом.
5а. Если исходная точка имеется в базе данных, то для нее в столбце
«Количество ветвлений» таблицы «data» число увеличивается на +1, а в
таблице «data_2» для нее создается новая строка. В столбец «ID_point»
таблицы вносится тот же номер, что и в столбце «ID_point» таблицы «data».
62
Столбец «Топонимическое пространство / топонимический ориентир»
остается пустым. В столбец «Достигаемая точка» вносится число, равное
самому большому числу из этого столбца +1. Столбцы с падежами таблицы
«data_2» остаются пустыми. Далее программа обращается к пункту 4в.
5б. Если исходной точки нет в базе данных, то программа создает
новую строку в таблице «data». Далее ищет номер последней точки,
имеющейся в базе данных в столбце «Достигаемая точка» таблицы «data_2»,
и заносит в столбец «ID_point» новой строки в таблице «data» данный номер
+1. В столбец «Количество ветвлений» вносит число 1.
В столбец «Именительный падеж» таблицы «data» вносит название
точки, взятое из Google Maps. Если в названии есть слова, заканчивающиеся
на -ая, то в столбец «Родительный падеж» вносит то же название, заменяя
окончание -ая на -ой, в столбцы «Творительный падеж» и «Предложный
падеж» - заменяя -ая на -ой. Если в названии есть слова, заканчивающиеся на
-ий, то в столбец «Родительный падеж» вносит то же название, заменяя
окончание -ий на -его, в столбец «Предложный падеж» – заменяя -ий на -ем,
в столбец «Творительный падеж» - заменяя -ий на -им. Если в названии есть
слова, заканчивающиеся на -ый или на -ой, то в столбец «Родительный
падеж» вносит то же название, заменяя окончание -ый или -ой на -ого, в
столбец «Предложный падеж» – заменяя -ый или -ой на –ом, в столбец
«Творительный падеж» – заменяя -ый на -ым, а -ой на -им. Если в названии
есть слова, заканчивающиеся на -ов, то в столбец «Родительный падеж»
вносит то же название, заменяя окончание -ов на -ова, в столбец
«Предложный падеж» - заменяя -ов на -овом, в столбец «Творительный
падеж» - заменяя -ов на -овым. В остальных случаях столбцы для падежей
заполняются без изменений. Таким образом, теперь есть названия исходной
точки во всех падежах, необходимых для поиска точки в базе данных и для
формирования ответа.
В таблице «data_2» также создается новая строка. В столбец «ID_point»
таблицы вносится тот же номер, что и в столбец «ID_point» таблицы «data».
63
Столбец «Топонимическое пространство / топонимический ориентир»
остается пустым. В столбец «Достигаемая точка» вносится число, равное
числу из столбца «ID_point» данной строки +1. Столбцы с падежами
остаются пустыми.
5в. В столбец «ID_action» таблицы «data_2» вводится число,
соответствующее
номеру
действия,
из
таблицы
«actions»,
которое
необходимо применить, находясь в данной точке, чтобы достигнуть
следующей точки, находящейся на ближайшем повороте. Данное действие
программа определяет следующим образом. Как было уже сказано в
предыдущем разделе, описание маршрута предполагает, что в начале пути
субъект стоит лицом к дороге и задом к ориентиру, взятому за исходную
точку. Чтобы определить действие, необходимое для достижения следующей
точки, программа проводит на карте Google Maps линию от ориентира,
взятого за исходную точку, проходящую через начальную точку маршрута на
дороге. Далее из этой точки на дороге программа проводит линию,
перпендикулярную той, что была проведена ранее. Далее проводит линию из
этой же точки до ближайшей достигаемой точки. Если угол между этой и
предыдущей линиями меньше 90° или больше 270°, то в столбец «ID_action»
таблицы «data_2» вводится число из столбца «ID_action» таблицы «actions»,
соответствующее номеру буквы D из столбца «Действие» этой таблицы, что
обозначает поворот направо, как описано в разделе 2.1 данной главы.
Соответственно, если угол между этими линиями больше 90° и меньше 270°,
то вводится число, соответствующее букве С, которая обозначает левый
поворот. Если градус угла равен 90, то программа выбирает номер,
соответствующий букве А, что обозначает, например, «следуйте по», но при
этом выбирает из выражений, соответствующих этой букве, только те, в
которых имеется слово «прямо». И в таком случае строка заполняется как
строка с топонимическим пространством.
6. Создание строки с топонимическим пространством.
В таблицах «data» и «data_2» создается новая строка.
64
В новую строку столбца «ID_point» таблицы «data» и столбца
«ID_point» таблицы
«data_2»
программа
вносит
номер
из
столбца
«Достигаемая точка» таблицы «data_2» рассмотренной в предыдущем пункте
строки. В столбец «Количество ветвлений таблицы «data» вносится число 1.
В столбец «Достигаемая точка» таблицы «data_2» вносится номер из столбца
«ID_point» этой таблицы +1.
Далее программа запрашивает описание маршрута от исходной точки
до достигаемой точки. Она берет весь текст, находящийся после предлога
«по» и вставляет его в столбец «Топонимическое пространство
топонимический
ориентир»
таблицы
окончания
дательного
падежа.
для
«data_2»,
Если
в
осуществляя
названии
есть
/
замену
слова,
заканчивающиеся на -ая, то -ая заменяется на -ой. Если есть слова,
заканчивающиеся на -ий, то -ий заменяется на -ему. Если слова,
заканчивающиеся на -ый или на -ой, то -ый или –ой заменяется на -ому. Если
есть слова, заканчивающиеся на -ов, то –ов заменяется на -ову.
В столбец «ID_action» таблицы «data_2» вводится номер действия из
таблицы «actions», соответствующий действию, которое применяется, чтобы
достичь из исходной точки данную. То есть, например, если в описании
Google Maps имеется слово «следуйте», то вводится номер, соответствующий
букве А из столбца «Действие» таблицы «actions». Соответственно, если в
описании есть выражение «продолжайте движение», то вводится номер
буквы F и т.д.
Все столбцы для падежей обеих таблиц остаются пустыми.
7. Создание строки с ориентиром.
Далее программа создает новую строку в таблицах «data» и «data_2» и
вносит в столбцы «ID_point» этих таблиц
«Достигаемая
точка»
предыдущей
строки.
номер, стоящий в столбце
В
столбец
«Количество
ветвлений» таблицы «data» вносит число 1, а столбцы с падежами этой
таблицы остаются пустыми.
65
Далее программа запрашивает у Google Maps информацию о том,
сколько улиц пересекает пространство между исходной и достигаемой
точкой. Если ни одна улица не пересекает, и при этом маршрут на
достигаемой точке не заканчивается, то в столбец «Топонимическое
пространство / топонимический ориентир» таблицы «data_2» вводится
выражение «первого перекрестка», если пространство пересекает одна улица,
соответственно, - «второго перекрестка». И так до «пятого перекрестка», то
есть когда пространство пересекает четыре улицы. Если же это пространство
пересекает более четырех улиц, то программа запрашивает у Google Maps
номер дома, который находится в данной точке (на повороте), и в столбец
«Топонимическое пространство / топонимический ориентир» вносит текст
«дома № [номер, полученный из Google Maps]». Такие же действия
предпринимаются, если это пространство не пересекает ни одна улица, и при
этом маршрут на достигаемой точке заканчивается.
В столбец «Достигаемая точка» вносится число, равное числу из
столбца «ID_point» данной строки таблицы «data_2» +1.
Столбцы с падежами таблицы «data_2» заполняются следующим
образом.
В столбец «Именительный падеж» вносит название точки, взятое из
Google Maps. Если в названии есть слова, заканчивающиеся на -ая, то в
столбец «Родительный падеж» вносит то же название, заменяя окончание -ая
на -ой, в столбец «Дательный падеж» - заменяя -ая на -ой, в столбец
«Винительный падеж» - заменяя -ая на -ую. Если в названии есть слова,
заканчивающиеся на -ий, то в столбец «Родительный падеж» вносит то же
название, заменяя окончание -ий на -его, в столбец «Дательный падеж» –
заменяя -ий на -ему, в столбец «Винительный падеж» – не заменяя
окончания. Если в названии есть слова, заканчивающиеся на -ый или на -ой,
то в столбец «Родительный падеж» вносит то же название, заменяя
окончание -ый или -ой на -ого, в столбец «Дательный падеж» – заменяя -ый
или -ой на -ому, в столбец «Винительный падеж» – не заменяя окончания.
66
Если в названии есть слова, заканчивающиеся на -ов, то в столбец
«Родительный падеж» вносит то же название, заменяя окончание -ов на -ова,
в столбец «Дательный падеж» - заменяя -ов на -ову, в столбец «Винительный
падеж» - не заменяя окончания. В остальных случаях столбцы для падежей
заполняются без изменений. Таким образом, теперь название конечной точки
имеется в базе данных во всех падежах, необходимых для поиска этой точки
в базе данных.
В
столбец
«ID_action»
таблицы
«data_2»
вводится
число,
соответствующее номеру буквы В из столбца «Действие» таблицы «actions».
Если же в описании маршрута Google Maps в следующем предложении
есть слово «пересеките», то в следующая строка заполняется тоже как строка
с ориентиром и в столбец «ID_action» таблицы «data_2» вводится номер
буквы Е из столбца «Действие» таблицы «actions». А в столбец
«Топонимическое пространство / топонимический ориентир» таблицы
«data_2» вводится текст из описания, стоящий после слова «пересеките».
Если после предложения со словом «пересеките», имеется предложение с
выражением «продолжайте движение», то следующая строка заполняется как
строка с топонимическим пространством.
8. Создание строки для достигаемой точки.
Данная строка заполняется только в случае, если маршрут еще не
окончен.
Программа создает новую строку в таблицах «data» и «data_2» и вносит
в столбец «ID_point» этих таблиц номер, стоящий в столбце «Достигаемая
точка» предыдущей строки. В столбец «Количество ветвлений» таблицы
«data» вносит число 1. Далее в столбец «Именительный падеж» этой таблицы
вносится название данной точки, взятое из Google Maps, а в остальные
столбцы
с
падежами
вносится
это
название
с
соответствующими
изменениями, описанными в пункте 5б.
Столбец «Топонимическое пространство / топонимический ориентир»
таблицы «data_2» остается пустым. В столбец «Достигаемая точка» вносится
67
число, равное числу из столбца «ID_point» данной строки +1. Столбцы с
падежами этой таблицы остаются пустыми.
В
столбец
«ID_action»
таблицы
«data_2»
вводится
число,
соответствующие номеру действия из таблицы «actions», которое можно
применить, находясь в данной точке, чтобы попасть в следующую точку. То
есть если в описании маршрута от исходной до конечной точки из Google
Maps на этапе пути от данной точки до следующего поворота есть текст
«поверните направо», то вводится число, соответствующее номеру буквы D
из столбца «Действие» таблицы «actions». Соответственно для «поверните
налево» вводится номер буквы С.
Далее программа обращается к пункту 6 и так далее по циклу, пока не
достигнет
конечной
точки.
Когда
база
данных
заполнена
всеми
недостающими точками маршрута, программа обращается к пунктам 3 и 7
алгоритма, описанного в предыдущем разделе данной главы. Теперь, когда
все точки маршрута имеются в базе данных, алгоритм, смоделированный в
предыдущем разделе, сможет найти информацию для ответа на вопрос
пользователя в базе данных и сформулировать ответ.
На рисунке 11 дан пример работы алгоритма автоматического
пополнения базы данных. Для примера был взят маршрут из точки «Средний
пр. В.О., 28» в точку «ул. Репина, 38».
68
Поиск исходной и конечной точек в Google Maps
Запрос маршрута от исходной точки до конечной в Google Maps
Запрос названия точки, находящейся на ближайшем повороте от исходной точки
на пути маршрута: Средний пр. В.О., 16
Поиск исходной и ближайшей достигаемой точки в базе данных: обе точки отсутствуют
Заполнение базы данных информацией об исходной точке с поворотом:
Таблица «data»:
ID_point: 174; Количество ветвлений: 1; Именительный п.: Средний пр. В.О., 28; Родительный п.:
Среднего пр. В.О., 28; Творительный п.: Средним пр. В.О., 28; Предложный п.: Среднем пр. В.О., 28
Таблица «data_2»:
ID_point: 174; Достигаемая точка: 175; ID_action: [номер, соответствующий букве D из таблицы
«actions»]; столбец «Топонимическое пространство / топонимический ориентир» и столбцы с падежами
остаются пустыми.
Создание строки с топонимическим пространством:
Ступень 1
Таблица «data»:
ID_point: 175; Количество ветвлений: 1; столбцы с падежами остаются пустыми.
Таблица «data_2»:
ID_point: 175; Топонимическое пространство / топонимический ориентир: Среднему пр. В.О.;
Достигаемая точка: 176; ID_action: [номер, соответствующий букве А из таблицы «actions»]; столбцы
с падежами остаются пустыми.
Ступень 2
Таблица «data»:
ID_point: 178; Количество ветвлений: 1; столбцы с падежами остаются пустыми.
Таблица «data_2»:
ID_point: 178; Топонимическое пространство / топонимический ориентир: ул. Репина; Достигаемая
точка: 179; ID_action: [номер, соответствующий букве А из таблицы «actions»]; столбцы с падежами
остаются пустыми.
Создание строки с ориентиром:
Ступень 1
Таблица «data»:
ID_point: 176; Количество ветвлений: 1; столбцы с падежами остаются пустыми.
Таблица «data_2»:
ID_point: 176; Топонимическое пространство / топонимический ориентир: третьего перекрестка;
Достигаемая точка: 177; ID_action: [номер, соответствующий букве В из таблицы «actions»];
Именительный п.: Средний пр. В.О., 16; Родительный п.: Среднего пр. В.О., 16; Дательный п.:
Среднему пр. В.О., 16; Винительный п.: Средний пр. В.О., 16.
Ступень 2
Таблица «data»:
ID_point: 179; Количество ветвлений: 1; столбцы с падежами остаются пустыми.
Таблица «data_2»:
ID_point: 179; Топонимическое пространство / топонимический ориентир: дома № 38; Достигаемая
точка: 180; ID_action: [номер, соответствующий букве В из таблицы «actions»]; Именительный п.: ул.
Репина, 38; Родительный п.: ул. Репина, 38, 16; Дательный п.: ул. Репина, 38; Винительный п.: ул.
Репина, 38.
Создание строки для достигаемой точки:
Ступень 1
Таблица «data»:
ID_point: 177; Количество ветвлений: 1; Именительный п.: Средний пр. В.О., 16; Родительный п.:
Среднего пр. В.О., 16; Творительный п.: Средним пр. В.О., 16; Предложный п.: Среднем пр. В.О.,
16.
Таблица «data_2»:
ID_point: 177; Достигаемая точка: 178; ID_action: [номер, соответствующий букве D из таблицы
«actions»]; столбец «Топонимическое пространство / топонимический ориентир» и столбцы с
падежами остаются пустыми.
Пункты 3 и 7 алгоритма вопросно-ответной системы
Рис. 16. Пример работы алгоритма автоматического пополнения базы данных
69
В данном разделе был построен алгоритм автоматического пополнения
базы данных для вопросно-ответной системы навигации. Если программа не
находит одну или обе точки, запрошенные пользователем, она обращается к
данному алгоритму и пополняет базу данных новыми точками, после чего
снова осуществляет поиск по базе данных, составляет маршрут и
формулирует ответ на вопрос. Как видно из примера, данный алгоритм
успешно пополняет базу данных новой информацией о точках, названия
точек вносятся в разных падежах, и алгоритм правильно определяет
действия, которые необходимо осуществить, чтобы попасть в достигаемую
точку. Однако, в некоторых случаях для необычных названий улиц,
возможно, алгоритм будет неправильно изменять названия по падежам, такие
случаи пока не предусмотрены алгоритмом. Также при автоматическом
пополнении базы данных в качестве ориентиров берутся только количество
перекрестков, номера домов, дороги и мосты. Названия известных зданий,
например, алгоритм не может брать в качестве ориентиров, так как пока не
предусмотрено изменение этих названий по падежам. В перспективе для
того, чтобы это стало возможным, нужно будет написать модуль изменения
по падежам, но в данной работе это пока не реализовано, так как не входило
в задачи работы.
Как показали примеры, реализованный в данной работе прототип
вопросно-ответной системы навигации является удобным для использования
по сравнению с наиболее популярными современными навигаторами, такими
как, например, Google Maps [Google Maps] и Яндекс.Карты [Яндекс.Карты],
так как он реализует естественно-языковое общение с пользователем, тогда
как данные навигаторы выдают описания маршрутов в формализованном
виде. Данная вопросно-ответная система выдает названия локаций и
ориентиров в правильных падежах, в свою очередь Google Maps и
Яндекс.Карты выдают все названия локаций только в именительном падеже,
используя, таким образом, неправильную речь. Также данная система богата
речевым разнообразием в отличие от Google Maps и Яндекс.Карт, так как
70
использует различные глаголы перемещения в описаниях маршрутов. Более
того, самое важное преимущество данной вопросно-ответной системы над
этими популярными навигаторами состоит в том, что в отличие от них,
данная система вместо описаний длины пути в метрах использует описания
движения по ориентирам, что кажется намного более естественным и
удобным для использования, так как многим бывает сложно определить на
глаз, например, 200 метров, а, к примеру, отсчитать два перекрестка или
посмотреть на номер стоящего рядом дома может каждый. Однако, у
системы имеется и некоторый недостаток: в случае, если название, например,
улицы будет необычным и не подойдет под шаблон, то программа может
выдать его в неправильном падеже, но это редкий случай.
Данный прототип вопросно-ответной системы навигации, учитывая
лингвистические компоненты, делает свои описания маршрутов более
естественными и удобными для использования.
71
Заключение
В ходе решения поставленных задач были достигнуты следующие
результаты. Были исследованы общие принципы работы и виды вопросноответных систем. Также были исследованы языковые средства русского
языка для описания перемещения и изменения положения в пространстве,
что помогло в дальнейшем создать базу данных с описаниями возможных
вариантов перемещения из одной точки в другую и шаблоны вопросов и
ответов для вопросно-ответной системы. Был совершен поиск диалогов на
тему «Как пройти из точки А в точку В» в Национальном корпусе русского
языка [НКРЯ], в том числе для получения подобных диалогов был совершен
опрос. Было построено дерево возможных вариантов навигации по
Васильевскому острову на основании описаний маршрутов, взятых из Google
Maps [Google Maps]. На основании полученных диалогов в описания было
внесено речевое разнообразие. На основании дерева была построена база
данных, содержащая названия точек на местности и ориентиров, а также
описания возможных вариантов перемещения из этих точек. После чего были
написаны алгоритм вопросно-ответной системы навигации в городской среде
и алгоритм автоматического пополнения базы данных. Первый алгоритм был
протестирован
на
нескольких
точках,
что
показало
удобство
его
использования, так как вместо описаний длины пути в метрах, как обычно
описывают маршруты современные навигаторы, он использует описания
ориентиров по ходу движения, что кажется более естественным и легко
воспринимаемым. Также в описаниях, получаемых при помощи алгоритма,
названия локаций и ориентиров используются в правильных падежах, что
также отличает данный алгоритм от популярных сейчас навигаторов,
которые используют названия локаций только в именительном падеже
независимо от того, какой предлог стоит перед ними. Кроме того в этих
описаниях присутствует разнообразие речи за счет того, что алгоритм
использует различные глаголы перемещения. Из всего этого можно сделать
72
вывод, что данный прототип вопросно-ответной системы навигации,
учитывая лингвистические компоненты, делает свои описания маршрутов
более естественными и удобными для использования. Также алгоритм
автоматического пополнения базы данных может по запросам пользователей
пополнять базу данных новыми точками и информацией о них для
дальнейшей работы с этими точками.
Результаты настоящего диссертационного исследования могут быть
полезны для дальнейшего развития естественно-языковых систем навигации.
Кроме того результаты данной работы могут быть применены на практике
при создании естественно-языкового навигатора.
В
диссертационной
компоненты,
полезные
работе
для
не
развития
были
реализованы
некоторые
естественно-языковых
систем
навигации, но рассмотрение которых не входило в задачи данной работы. К
таким компонентам можно отнести, например, модуль изменения по падежам
для
ориентиров по
ходу движения.
На
данный момент алгоритм
автоматического пополнения базы данных может вносить в базу данных в
качестве ориентиров только количество перекрестков, номера домов, мосты
и дороги. Что касается названий известных зданий, магазинов, ресторанов и
т.д., их алгоритм не вносит в базу данных, так как не может изменять их по
падежам. Наличие модуля изменения по падежам решило бы эту проблему и
еще более разнообразило бы описания маршрутов, выдаваемые программой,
поэтому в перспективе необходимо реализовать такой модуль. Подобные
проблемы представляют собой поле для дальнейшей работы.
73
Библиография
1. Агаев Н.З. Исследование и разработка методов реализации вопросноответных систем / Н.З. Агаев // Курсовая робота. Московский
государственный университет им. М.В.Ломоносова.
Факультет
Вычислительной математики и кибернетики. Кафедра системного
программирования. – Москва, 2012. – 35с.
2. Агаев
Н.З.
Исследование
и
разработка
современных
методов
реализации вопросно-ответных систем / Н.З. Агаев // Дипломная
робота.
Московский
М.В.Ломоносова.
государственный
Факультет
университет
Вычислительной
им.
математики
и
кибернетики. Кафедра системного программирования. – Москва, 2013.
– 68с.
3. Апресян Ю.Д. Глаголы моментального действия и перформативы в
русском
языке
//
Русистика
сегодня.
Язык:
система
и
ее
функционирование. М., 1988. С. 57-78.
4. Апресян Ю.Д. Избранные труды. Том I. Лексическая семантика: 2-е
изд., испр. и доп. – М.: Школа «Языки русской культуры»,
Издательская фирма «Восточная литература» РАН, 1995. – VIII с.,
472с.
5. Белнап Н., Стил С. Логика вопросов и ответов. – М: Прогресс, 1981. 290с.
6. Бочкарева Т.А. Способы передачи глагольного действия в языках
разных типов: дис. на соискание ученой степени канд. филологических
наук: 10.02.19 / Бочкарева Татьяна Анатольевна. – Саратов, 1993. –
206с.
7. Булыгина Т.В. К построению типологии предикатов в русском языке //
Семантические типы предикатов. - М.: Наука, 1982. – С. 7-85.
74
8. Вригт Г.Х. фон. Модальная логика местоположения / Логический
анализ языка. Языки пространств / Отв. ред.: Н.Д. Арутюнова, И.Б.
Левонтина. – М.: Языки русской культуры, 2000. С. 7-15.
9. Всеволодова
М.В., Владимирский Е.
Ю.
Способы
выражения
пространственных отношений в современном русском языке. М., 1982.
– 288с.
10. Галкин Д.В., Кондрушина Е.В., Шиляев К.С. Возможности систем
генерации речи для обработки естественного языка и развития
взаимодействия «человек – машина» // Гуманитарная информатика. №7
/ 2013. С. 56-65.
11. Житко,
В.А.
Семантическая
технология
компонентного
проектирования естественно-языкового интерфейса вопросно-ответных
систем / В.Н. Вяльцев, Ю.С. Гецевич, В.А. Житко, А.А. Кузьмин //
Открытые
семантические
технологии
проектирования
интеллектуальных систем OSTIS-2011 : материалы Междунар. научн.техн. конф., Минск, 10–12 февраля 2011 г. / редкол. : В.В. Голенков
(отв. ред.) [и др.]. – Минск : БГУИР, 2011. – С. 395–408.
12. Зализняк Анна А. Преодоление пространства в русской языковой
картине мира: глагол добираться / Логический анализ языка. Языки
пространств / Отв. ред.: Н.Д. Арутюнова, И.Б. Левонтина. – М.: Языки
русской культуры, 2000. С. 30-37.
13. Засухина Т.П. Пространственная семантика предлогов, приставок и
падежей в современном русском языке // Автореф. дис. на соискание
ученой степени канд. филологических наук: 10.02.01 / Засухина Тамара
Петровна. – Екатеринбург, 1992. – 17с.
14. Кибрик А.Е. К типологии пространственных значений // Язык и
человек. - М., 1970. С. 110-156.
15. Кустова Г.И. Тип концептуализации пространства и семантические
свойства глагола (группа попасть) / Логический анализ языка. Языки
75
пространств / Отв. ред.: Н.Д. Арутюнова, И.Б. Левонтина. – М.: Языки
русской культуры, 2000. С. 47-55.
16. Лапшин В.А. Вопросно-ответные системы: развитие и перспективы /
В.А. Лапшин // Научно-техническая информация (НТИ). Сер. 2.
Информационные процессы и системы, 2012,N № 6. - С. 1-9.
17. Мозговой М.В. Простая вопросно-ответная система на основе
семантического
анализатора
русского
языка
//
Вестник
СПб
университета. — 2006. — сер. 10. — вып. 1. — С. 116-122.
18. Падучева Е.В. Семантические источники моментальности русского
глагола в типологическом ракурсе // Типология вида: проблемы,
поиски, решения. М.: МГУ, 1998. С. 332-242.
19. Плунгян В.А. К типологии глагольной ориентации // Логический
анализ языка. Языки динамического мира. Дубна. 1999. - С. 205-223.
20. Полякова
С.Ю.
Семантическая
категория
направленности:
лингвистический и методический аспект // Новый филологический
вестник. 2013, №1(24). С. 64-70.
21. Рожанский
Ф.И.
Направление
движения
(типологическое
иссделование) / Логический анализ языка. Языки пространств / Отв.
ред.: Н.Д. Арутюнова, И.Б. Левонтина. – М.: Языки русской культуры,
2000. С. 56-66.
22. Тошович Б. Глаголы каузации положения в пространстве / Логический
анализ языка. Языки пространств / Отв. ред.: Н.Д. Арутюнова, И.Б.
Левонтина. – М.: Языки русской культуры, 2000. С. 163-178.
23. Турбина, О.А. Алгоритмы ведения человеко-машинного диалога
гуманоидными роботами НАО / О.А.Турбина, Е.А. Фостаковский //
Вестник Южно-Уральского Государственного Университета. Серия
«Лингвистика». – 2014. – Том 11. – № 1. С. 48-52.
24. Фостаковский Е.А. Создание вопросно-ответной системы человекомашинного диалога закрытого типа на русском языке // Наука ЮУрГУ:
материалы
66-й
научной
конференции.
Секции
социально76
гуманитарных наук. – Челябинск: Издательский центр ЮУрГУ, 2014.
С. 1358-1362.
25. Шайхисламова
З.Г.
История
изучения
глаголов
движения
в
разносистемных языках // Вестник Башкирского университета. №3(1)/
том 17/ 2012. С. 1610-1614.
26. Ali Mohammed Nabil Allam, Mohamed Hassan Haggag The Question
Answering Systems: A Survey // International Journal of Research and
Reviews in Information Sciences. 2012. 2. №3. P.10-21.
27. Bernardo Magnini, Matteo Negri, Roberto Prevete, Hristo Tanev
Multilingual Question Answering: the DIOGENE System // 10th Text
Retrieval Conference. Italy: Centro per la Ricerca Scientifica e Tecnologica
Via Sommarive, 2001. P.433-450.
28. Cheng-Lung Sung, Cheng-Wei Lee, Hsu-Chun Yen, Wen-Lian Hsu An
Alignment-based Surface Pattern for a Question Answering System //
Integrated Computer-Aided Engineering. 2009. 16. №3. P.259-269.
29. Clark A., Fox C., Lappin S. The Handbook of Computational Linguistics
and Natural Language Processing. USA: Wiley-Blackwell, 2010. 801 p.
30. Graesser A., Person N. K. Question asking during tutoring // American
Educational Research Journal. – 1994. – № 31. – P. 104 – 137.
31. Graesser A., Rus V., Cai Z. Question classification schemes // Proceedings
of the 1st Workshop on Question Generation [Электрон. ресурс]. – 2008. –
P. 8 – 9. – URL: http://141.225.40.110/16-GraesserEtAl-QG08.pdf
32. Lehnert W. The Process of Question Answering : PhD Dissertation //
Research report. No. 88. – Yale University, 1978. – 278pp.
33. Lynette Hirschman, Marc Light, Eric Breck, John D. Burger Deep Read: A
Reading Comprehension System // Proceedings of the 37th annual meeting
of the Association for Computational Linguistics on Computational
Linguistics. Stroudsburg,USA: Association for Computational Linguistics,
1999. P.325-333.
77
34. Simmons, R.F. Answering English questions by computer: a survey //
Communications of the ACM. 1965. 8(1). P. 53–70.
35. Susan Dumais, Michele Banko, Eric Brill, Jimmy Lin, Andrew Ng Web
Question Answering: Is More Always Better? // SIGIR Proceedings of the
25th annual international ACM SIGIR conference on Research and
development in information retrieval. New-York, USA: Microsoft Research
Center, 2002. P.291-298.
36. Talmy L. Semantics and syntax of motion // Syntax and semantics. Vol. 4.
New-York, 1975. P. 181-238.
37. Wilcock, G. WikiTalk: A Spoken Wikipedia-based Open-Domain
Knowledge Access System / G. Wilcock // Proceedings of the COLING2012 Workshop on Question Answering for Complex Domains, Mumbai. –
Mumbai, 2012. – Pp. 57–69.
Корпусы и источники примеров:
1. Google Maps. URL: http://www.google.ru/maps/
2. НКРЯ: Национальный корпус русского языка. URL: http://ruscorpora.ru/
3. Яндекс.Карты. URL: https://yandex.ru/maps/
4. Корпус диалогов о маршрутах. CD-RW: Диалоги.docx
5. Описания Google Maps. CD-RW: Описания маршрутов гугл.docx
6. Корпус
унифицированных
описаний
маршрутов.
CD-RW:
Исправленные описания маршрутов.docx
78
Приложение 1
Диалоги на тему «Как пройти из точки А в точк В», найденные в
Национальном корпусе русского языка [НКРЯ]
1. На вокзале я спросил кого-то, как пройти. Он ответил мне тише, чем
я ожидал: север.
2. Спрашиваю, как пройти к избирательному участку у дворника.
кажется, что уж он-то должен знать.
Мне
― Туда куда-то все идут,
―
махнул он рукой.
3. Я приезжий… Скажите, как пройти к Никольской церкви? ― Не знаю,
― буркнул он на ходу, отворачиваясь.
4. Простите, не подскажете, как пройти к гостинице?
―
остановила
Ирина проходившего мимо капитана. ― Да вот она, перед вами. ―
Офицер
показал на трехэтажное серое здание с большими окнами и
маленькими балкончиками.
5. Я остановила белую женщину, чтобы спросить, как пройти к местной
аптеке. Она отпрянула, и я тут же сказала: ― Извините, я не здешняя
и не знаю, как пройти к аптеке.
6. Покажите, как пройти к Академии. ― Вот… смотрите, ― сказал он. ―
Пересекаете Сан-Марко… и по Калле Ларджо дойдете до Кампо СанМаурицио…
7. ― Скажите, пожалуйста, как пройти к уголку Дурова? ― Вон туда.
8. Ты объясни только, как пройти.
―
Да
и объяснять нечего.
Это совсем близко. Сразу на лестнице, на второй площадке.
9. Первый же прохожий, которого я спросил о том, как пройти в
Сормово,
ответил мне удивленно: ―
отсюда никак
В Сормово, милый человек,
пройти невозможно. В Сормово отсюда на пароходах
ездят.
10. Скажи, батюшка, как пройти к швейцару бывшему Кузнецову?
Идите
на пятый этаж, считайте снизу
пятнадцатую дверь.
―
Только
79
по стенке правой стороны держитесь, а то огня по всей лестнице
нет
и перила сломаны.
11. Нет, ты
за околицей,
просто расскажи, как пройти туда.
― Она тут и есть,
как луг пройти изволите, сударыня, это и
прозывается
у нас Забродным.
12. Скажи, голубчик, как пройти к капитану третьей роты Любавину?
обратился к нему юноша. Солдатик весьма
―
обстоятельно пояснил
дорогу. ― Ну, коллега, айда вперед!
13. Как пройти на Старый Арбат? Вот туда, направо. Спасибо.
14. К директору как пройти? Налево и прямо. Нет-нет, наверх.
Спасибо,
дорогая.
15. Скажите, как пройти на Бешагач? На Бешагач? Ой, извините, я не знаю.
Вы не сюда, вы на правую сторону идете, а вам прямо.
16. Вы спрашиваете, как пройти к метро, а я вам щас на это отвечу так,
"Вам к метро? А вот так, значит, пойдете, пойдете,
пойдете,
значит,
выйдите там прям налево, прям такой, знаешь, дом, ну, серый такой,
ну, пойдете, за ним это, ну, как его, ну, арка, обойдешь, туда не идеш
ь, а идите за угол… "
17. Вы не скажете, как пройти на станцию? Березняком пройдете по желез
ке, а там налево и станция. Версты три будет, с гаком.
18. Простите, пожалуйста. Вы не скажете, как пройти в редакцию газеты
«Горноуральский рабочий»? Первый переулок направо. Второй переул
ок налево. Третий дом от угла.
19. Простите, синьор, как пройти в школу? Туда! Простите, синьор, а
вы твердо убеждены, что направо? Да!
20. Скажите, пожалуйста, как пройти на Тургеневскую? Прямо, потом
направо. Ага, прямо и направо? Спасибо!
80
Приложение 2
Описания маршрутов, полученные в ходе опроса
1. Выходишь из подъезда, поворачиваешь направо, идешь до конца дома,
на углу дома спускаешься в подвал, сразу за дверью будет продуктовый
магазин.
2. Идешь на северо-восток полчаса, видишь дубовую рощу, от нее час на
восток, выходишь к реке и вниз по течению два часа.
3. Выходишь из дома, поворачиваешь направо, идешь вперед до конца
здания, пока не упрешься в красный забор, обходишь его справа, там ларек,
за ним остановка.
4. Выйдя и арки двора моего дома, нужно повернуть направо и идти по
набережной до первого перекреста - это будет Невский проспект. Проспект
нужно перейти, а затем идти налево. Минут через 7-8 по этой стороне дороги
встретится сбербанк - он стоит на углу Невского и еще одной улицы, нужно
повернуть на эту улицу, направо, она ведет через арку, следом за которой и
будет Дворцовая площадь с огромный зеленым зданием с белыми и
золотыми вставками - это и есть Эрмитаж.
5. Направо по Среднему проспекту до Тучкова переулка. Там снова
направо. "Окопа" уже нет, так что хлопнуть по дороге рюмца не получится.
Так что на первом перекрестке налево по Волоховскому до Биржевого. Там
направо (под углом) на Биржевой. По переулку до Биржевой линии. Там
снова направо до БАНа. И, считай, пришел.
6. Чтобы пройти от моего дома до детского сада, в который нужно
отвести Иду, необходимо выйти из парадной и идти прямо до 19-й линии.
Оказавшись на ней, нужно повернуть налево, в сторону бледно-желтой
школы, и идти до Среднего проспекта В.О. Затем повернуть направо, к
цветочному магазину, и идти минут 15-20 прямо по Среднему в сторону
убывания номеров линий до ресторана МамаРома. Затем нужно завернуть
налево в Тучков переулок и идти мимо детской библиотеки по правой
стороне переулка в сторону набережной Макарова. Теперь нужно пройти
мимо две арки и найти в 5 метрах после второй серую железную дверь с
домофоном, которая и будет дверью в детский сад.
7. Проходите Спас на крови, впереди справа будет Марсово поле, идете
вперед, пока Марсово не окажется позади, прямо перед вами будет большое
красивое здание. Вы дошли.
81
Приложение 3
Описания маршрутов из Google Maps [Google Maps]
1. Метро Василеостровская
А) Следуйте на юго-запад по наб. Университетской в сторону пер.
Филологического (84м). Плавно поверните направо и продолжайте
движение по наб. Университетской (260м). Поверните направо на 1-ой
лин. ВО/Кадетской лин. ВО (900м). Поверните налево на Средний
проспект В.О. (500м).
Б) Следуйте на юго-запад по наб. Университетской в сторону пер.
Филологического (84м). Плавно поверните направо и продолжайте
движение по наб. Университетской (400м). Поверните направо на лин. 2ой В. О./лин. 3-ей В. О. (900м). Поверните налево на Средний проспект
В.О. (350м).
В) Следуйте на юго-запад по наб. Университетской в сторону пер.
Филологического (84м). Плавно поверните направо и продолжайте
движение по наб. Университетской (600м). Поверните направо на 4-ой
лин. В.О./5-ой лин. В.О. (900м). Поверните налево на Средний проспект
В.О. (200м).
2. Стрелка В.О.
А)
Следуйте
на северо-восток по наб.
Университетской в
сторону Менделеевской линии (500м). Плавный поворот налево на пл.
Биржевую (130м). Пересеките пешеходный переход (16м).
Б)
Следуйте
на северо-восток по наб.
Университетской в
сторону Менделеевской
линии
(130м).
Поверните налево на Менделеевскую
линию
(120м).
Поверните направо на пр-д Биржевой (250м). Поверните направо и
продолжайте движение по пр-д Биржевой (150м). Поверните налево на пл.
Биржевую (60м). Пересеките пешеходный переход (16м).
3. Гаванская ул., 51
А) Следуйте на юго-запад по наб. Университетской в сторону пер.
Филологического (84м). Плавно поверните направо и продолжайте
движение по наб. Университетской (260м). Поверните направо на 1-ю лин.
ВО/Кадетскую лин. ВО (1,2км). Продолжайте движение по 1-ой лин. ВО.
Поверните налево на наб. Макарова (210м). Поверните налево на Малый
проспект В.О. (2,4км). Поверните направо в сторону ул. Гаванской (170м).
Поверните направо в сторону ул. Гаванской (86м). Поверните налево в
сторону ул. Гаванской (120м). Поверните направо в сторону ул. Гаванской
82
(70м).
Поверните налево в
сторону ул.
Поверните направо на ул. Гаванскую (32м).
Гаванской
(38м).
Б) Следуйте на юго-запад по наб. Университетской в сторону пер.
Филологического (84м). Плавно поверните направо и продолжайте
движение по наб. Университетской (600м). Поверните направо на 4-ю лин.
В.О./5-ю лин. В.О. (1,4км). Поверните налево на Малый проспект В.О.
(2,1км).
Поверните направо в
сторону ул.
Гаванской
(170м).
Поверните направо в сторону ул. Гаванской (86м). Поверните налево в
сторону ул. Гаванской (120м). Поверните направо в сторону ул. Гаванской
(70м).
Поверните налево в
сторону ул.
Гаванской
(38м).
Поверните направо на ул. Гаванскую (32м).
4. Наб. Макарова, 30
А) Следуйте на юго-запад по наб. Университетской в сторону пер.
Филологического (84м). Плавно поверните направо и продолжайте
движение по наб. Университетской (260м). Поверните направо на 1-ю лин.
ВО/Кадетскую лин. ВО (1,2 км). Поверните налево на наб. Макарова
(300м).
Б)
Следуйте
на северо-восток по наб.
Университетской в
сторону Менделеевской
линии
(130м).
Поверните налево на Менделеевскую
линию
(450м).
Поверните налево на ул.
Тифлисскую
(58м).
Поверните направо на Биржевую линию (250м). Поверните налево на наб.
Макарова (46м). Поверните направо (11м). Поверните налево (550м).
Поверните налево в сторону наб. Макарова (8м). Войдите на лестницу
пешеходного
туннеля
(Впереди
будет
лестница)
(130м).
Поверните налево в сторону наб. Макарова (Впереди будет лестница)
(36м). Поверните направо на наб. Макарова (250м).
В) Следуйте на юго-запад по наб. Университетской в сторону пер.
Филологического (84м). Плавно поверните направо и продолжайте
движение по наб. Университетской (400м). Поверните направо на лин. 2ой В. О./лин. 3-ей В. О. (1,4 км). Поверните направо на Малый проспект
В.О. (74м). Поверните налево на наб. Макарова (74м).
5. Философский факультет, Менделеевская линия, 5
Следуйте
на северо-восток по наб.
сторону Менделеевской
линии
Поверните налево на Менделеевскую линию (400м).
Университетской в
(160м).
83
Приложение 4
Исправленные и унифицированные описания маршрутов
2. Метро Василеостровская
А) Поверните направо и следуйте по наб. Университетской до первого
перекрестка и поверните направо. Следуйте по 1-ой лин. ВО./Кадетской
лин. ВО до третьего перекрестка и поверните налево. Следуйте по
Среднему проспекту В.О. до третьего перекрестка.
Б) Поверните направо и следуйте по наб. Университетской до второго
перекрестка и поверните направо. Следуйте по 2-ой лин. В. О./3-ей лин.
В. О. до третьего перекрестка и поверните налево. Следуйте по Среднему
проспекту В.О. до второго перекрестка.
В) Поверните направо и следуйте по наб. Университетской до третьего
перекрестка и поверните направо. Следуйте по 4-ой лин. В.О./5-ой лин.
В.О. до четвертого перекрестка и поверните налево. Следуйте по
Среднему проспекту В.О. до первого перекрестка.
2. Стрелка В.О.
А) Поверните налево и следуйте по наб. Университетской до Дворцового
моста. Поверните налево. Следуйте по пл. Биржевой до светофора.
Поверните направо и пересеките пешеходный переход. Продолжайте
движение по пл. Биржевой до Стрелки В.О.
Б) Поверните налево и следуйте по наб. Университетской до первого
перекрестка и поверните налево. Следуйте по Менделеевской линии до
первого перекрестка и поверните направо. Следуйте по пр-д Биржевому
до второго перекрестка и поверните направо, продолжайте движение
по пр-д Биржевому до первого перекрестка и поверните налево. Следуйте
по пл. Биржевой до светофора. Поверните направо и пересеките
пешеходный переход. Продолжайте движение по пл. Биржевой до
Стрелки В.О.
3. Гаванская ул., 51
А) Поверните направо и следуйте по наб. Университетской до первого
перекрестка и поверните направо. Следуйте по 1-ой лин. ВО./Кадетской
лин. ВО до Тучкова моста. Поверните налево. Следуйте по наб. Макарова
до первого перекрестка и поверните налево. Следуйте по Малому
проспекту В.О. до дома № 71. Поверните направо. Следуйте по ул.
Гаванской до четвертого дома справа.
84
Б) Поверните направо и следуйте по наб. Университетской до третьего
перекрестка и поверните направо. Следуйте по 4-ой лин. В.О./5-ой лин.
В.О. до пятого перекрестка и поверните налево. Следуйте по Малому
проспекту В.О. до дома № 71. Поверните направо. Следуйте по ул.
Гаванской до четвертого дома справа.
4. Наб. Макарова, 30
А) Поверните направо и следуйте по наб. Университетской до первого
перекрестка и поверните направо. Следуйте по 1-ой лин. ВО./Кадетской
лин. ВО. до Тучкова моста. Поверните налево. Следуйте по наб. Макарова
до первого перекрестка.
Б) Поверните налево и следуйте по наб. Университетской до первого
перекрестка и поверните налево. Следуйте по Менделеевской линии до
Библиотеки Российской академии наук. Поверните налево. Следуйте по
ул. Тифлисской до первого перекрестка и поверните направо. Следуйте по
Биржевой линии до второго перекрестка и поверните налево. Следуйте по
наб. Макарова до пятого перекрестка.
В) Поверните направо и следуйте по наб. Университетской до второго
перекрестка и поверните направо. Следуйте по 2-ой лин. В. О./3-ей лин.
В. О. до пятого перекрестка и поверните направо. Следуйте по Малому
проспекту В.О. до первого перекрестка и поверните налево. Следуйте по
наб. Макарова до первого здания слева.
5. Философский факультет, Менделеевская линия, 5
Поверните налево и следуйте по наб. Университетской до первого
перекрестка и поверните налево. Следуйте по Менделеевской линии до
второго перекрестка.
85
Приложение 5
Дерево возможных вариантов навигации по Васильевскому острову
86
Приложение 6
Массив данных
А – следуйте по
В – до
С – поверните налево
D – поверните направо
Е – пересеките
F – продолжайте движение по
n – количество перекрестков
b – количество зданий слева
с – количество зданий справа
# - конец маршрута
⊘ - отсутствует
№ точки Количество
Действие
ветвлений
1
2
2
1
3
3
D
С
А
В
B
В
D
А
4
5
1
1
6
4
7
8
9
1
1
1
В
В
В
B
D
A
В
10
11
12
1
1
1
С
А
В
14
15
1
1
С
A
Топонимическое
пространство /
топонимический
ориентир
⊘
⊘
наб.
Университетской
n=1
n=2
Достигаемая
точка
2
117
3
4
70 # Академия
художеств
n=3
71
5
⊘
1-ой лин. В.О. / 6
Кадетской лин.
В.О.
дома № 5
7
n=2
14
Тучкова моста
60
n=3
31
8
⊘
пер. Двинскому 9
конца
пер. 10
Двинского
11
⊘
пер. Тучкову
12
n=2
13 # Тучков пер.,
11/5
15
⊘
Большому
пр. 16
88
16
2
17
18
19
1
1
1
В
В
D
A
В
20
21
22
23
24
25
1
1
1
1
1
1
С
А
В
D
A
В
27
28
29
1
1
1
С
А
В
31
32
1
1
С
А
33
4
В
В
В
34
35
36
38
39
1
1
1
1
1
В
С
А
В
D
A
40
1
В
43
44
45
1
1
1
D
A
В
46
2
47
1
С
F
А
В.О.
дома № 57
n=5
⊘
17-ой лин. В.О.
Драматического
театра
⊘
Малому пр. В.О.
дома № 71
⊘
ул. Гаванской
с=4
17
27
18
19
20
21
22
23
24
25
26
#
ул.
Гаванская, 51
28
⊘
11-ой лин. В.О.
29
b=1
30
#
Энергетический
техникум
32
⊘
Среднему
пр. 33
В.О.
конца Среднего 34
пр. В.О.
n=1
38
n=3
42
#
Метро
Василеостровская
n=4
43
35
⊘
ул. Наличной
36
с=1
37 # Ленэкспо
39
⊘
2-ой лин. В.О. / 40
3-ей лин. В.О.
n=1
41 # 2-ая лин.
В.О., 47
44
⊘
9-ой лин. В.О.
45
моста через реку 46
Смоленку
47
⊘
ул. Уральской
51
наб.
реки 48
89
1
1
2
В
D
В
53
54
1
1
В
C
A
55
56
57
58
1
1
1
1
В
С
А
В
60
61
62
1
1
2
С
А
В
63
64
65
1
1
1
В
C
A
F
66
2
67
68
69
70
71
72
1
1
1
1
1
1
73
4
74
75
1
1
76
77
1
2
78
1
48
49
51
В
В
D
A
D
D
D
A
В
В
В
В
C
A
В
D
C
A
Смоленки
n=2
⊘
дома № 21
49
50 # Камский сад
52
#
ул.
Уральская, 21
53
54
реки 55
n=1
⊘
наб.
Смоленки
дома № 2
⊘
ул. Одоевского
n=5
56
57
58
59
#
Метро
Приморская
61
⊘
наб. Макарова
62
n=1
63
#
наб.
Макарова, 30
n=3
65
64
⊘
Малому пр. В.О. 22
наб.
реки 66
Смоленки
n=2
67
n=4
69
68
⊘
ул. Уральской
51
50 # Камский сад
⊘
103
⊘
72
⊘
4-ой лин. В.О. / 73
5-ой лин. В.О.
n=1
74
n=2
93
n=4
94
n=5
95
75
⊘
пер.
76
Академическому
n=2
77
78
⊘
87
⊘
9-ой лин. В.О.
79
90
79
80
81
82
83
84
85
1
1
1
1
1
1
1
В
C
А
В
D
A
В
87
88
89
90
1
1
1
1
А
В
D
A
91
1
В
93
94
95
96
97
1
1
1
1
1
C
C
C
A
А
98
1
В
100
101
1
1
А
В
103
1
А
104
3
В
В
105
107
108
109
110
111
112
1
1
1
1
1
1
1
В
С
D
A
В
C
A
В
114
1
А
n=1
⊘
пер. Кадетскому
n=1
⊘
11-ой лин. В.О.
с=1
80
81
82
83
84
85
86
#
Энергетический
техникум
9-ой лин. В.О.
88
n=1
89
90
⊘
наб. Лейтенанта 91
Шмидта
дома № 45
92
#
наб.
Лейтенанта
Шмидта, 45
100
⊘
97
⊘
96
⊘
Малому пр. В.О. 22
Среднему
пр. 98
В.О.
n=1
99
#
Метро
Василеостровская
пер. Бугскому
101
с=1
102 # Бугский
пер., 3
2-ой лин. В.О. / 104
3-ей лин. В.О.
n=3
105
n=4
106 # 2-ая лин.
В.О., 47
n=5
107
114
⊘
108
⊘
Малому пр. В.О. 109
n=1
110
111
⊘
наб. Макарова
112
b=1
113
#
наб.
Макарова, 30
Среднему
пр. 115
91
115
1
В
117
1
А
118
2
В
B
119
120
1
1
С
А
121
3
В
В.О.
n=2
В
В
наб.
Университетской
n=1
Дворцового
моста
⊘
Менделеевской
лин.
Библиотеки
Академии Наук
n=1
n=2
⊘
ул. Тифлисской
n=1
⊘
Биржевой линии
n=1
n=2
⊘
⊘
наб. Макарова
n=5
122
123
124
125
126
127
1
1
1
1
1
2
128
1
C
A
В
D
A
В
В
C
129
130
131
1
1
3
C
A
В
133
1
В
В
F
134
2
135
136
137
138
139
1
1
1
1
1
В
В
D
D
A
С
А
116 # Метро
Василеостровская
118
119
172
120
121
122
157
158
Философский
факультет
123
124
125
126
127
128
129
148
#
130
131
132
#
наб.
Макарова, 30
Тучкова моста
138
n=7
133
наб.
реки 134
Смоленки
n=2
135
n=4
136
137
⊘
50 # Камский сад
⊘
ул. Уральской
51
139
⊘
1-ой лин. В.О. / 140
Кадетской лин.
В.О.
92
140
141
142
1
1
1
В
D
A
143
1
В
144
145
1
1
D
A
146
1
В
148
149
1
1
А
В
150
151
1
1
С
А
152
1
В
153
154
155
1
1
1
D
A
В
157
159
1
1
D
A
160
161
162
1
1
1
В
D
F
163
164
165
166
167
168
1
1
1
1
1
1
В
C
A
В
D
E
169
170
1
1
F
В
172
173
1
1
С
А
n=1
⊘
пер.
Магдалинскому
конца
пер.
Магдалинского
⊘
2-ой лин. В.О. /
3-ей лин. В.О.
с=1
141
142
143
144
145
146
147 # 2-ая лин.
В.О., 47
пер. Биржевому 149
конца
пер. 150
Биржевого
151
⊘
пер.
152
Волховскому
конца
пер. 153
Волховского
154
⊘
155
пер. Тучкову
156 # Тучков
с=1
пер., 11/5
159
⊘
160
пр-д.
Биржевому
161
n=2
162
⊘
163
пр-д.
Биржевому
164
n=1
165
⊘
166
пл. Биржевой
167
светофора
168
⊘
169
пешеходный
переход
170
пл. Биржевой
171 # Стрелка
Стрелки В.О.
В.О.
173
⊘
166
пл. Биржевой
93
Отзывы:
Авторизуйтесь, чтобы оставить отзыв