«Автоматический геокодинг новостной информации»

Вид материалаДоклад

Содержание


2. Анализ существующих технологий
3. Проектирование и разработка программы
3.2. Алгоритм поиска географического названия
Москва улица Исаковского.
Сегодня в Москве произошло … не далеко от улицы Исаковского
По улацам Москвы прошла военная техника…
Таблица 4. Список улиц города МоскваКак видно из приведенного примера создано отдельно поле (firstword
3.3. Демонстрация работы программы
Подобный материал:
V Международная научно-практическая конференция

«Современные информационные технологии и ИТ-образование»




Доклад на тему:


«Автоматический геокодинг новостной информации»


Подготовил:


Комяков Алексей Владимирович


МОСКВА 2010

1. Постановка задачи и актуальность


В связи с постоянным ростом количества информационных ресурсов предоставляющих актуальные новости, возрастает и нагрузка на аналитические центры по их обработке. В настоящее время новостная информация в Интернете составляется, анализируется и обрабатывается практически без применения средств автоматизации. То есть все имеющиеся новости проходят через аналитические центры, где сортировать и отбирать их по каким-либо признакам приходится человеку. Потребность в создание средства автоматического анализа текста стоит особенно остро. Сейчас в распоряжении пользователей Интернета имеется несколько сервисов, производящих сбор и геокодирование новостной информации (напр. Yahoo Local Maps). Цель такого сервиса анализировать и систематизировать новостную и другую информацию по географическим названиям или объектам.

Актуальность данной работы заключается в том, что на русском языке подобных сервисов не существует, а все известные ресурсы, отображающие информацию на карте производят анализ информации вручную (напр. Яндекс Новости).

Целью данной работы является создание системы «Автоматического геокодирования новостной информации» и отображение ее на карте с использованием сервиса Google Maps.

Для реализации поставленной задачи необходимо выполнить следующие шаги:
  • Провести анализ способов поиска географических названий в тексте
  • Разработать систему для загрузки новостной информации с сайтов новостей
  • Разработать систему анализа текстов на русском языке и выделения в них географических названий
  • Разработать систему отображения новостной информации на карте Google


2. Анализ существующих технологий


Геокодинг – процесс нахождения широты и долготы по введенному адресу. В моей работе был использован геоинформационный ресурс Google, который позволяет нанести на карту точки с полученными координатами.

В роли геоинформационной системы будет выступать веб-приложение, которое должно получать новостную информацию, геокодировать ее и отображать на карте.

В этом приложении должны быть реализованы следующие функциональные возможности:
  • Добавление в базу новых сайтов новостей
  • Автоматическое обновление новостной информации
  • Обработка текста новостей и выделение в них географических названий
  • Отображение новостей на карте с возможностью их фильтрации по району и времени
  • Поиск и загрузка новой информации должна происходить в фоновом режиме


В моей работе были проанализированы технологии и принципы доступа к данным, а также поиска слов на русском языке и инструментарий для создания Веб – картографического сервиса.

Перечислим вкратце каждую из этих технологий:
  1. RSS ленты. Эта технология позволяет легко и быстро получать актуальную информацию с, практически любого, Интернет ресурса;
  2. Поиск подстроки в строке уже достаточно изучен чтобы пользоваться имеющимися алгоритмами. Имеется ряд разработок в области поиска слов в тексте на русском языке с учетом морфологии. Основываясь на поставленной задаче, предлагается выбрать самый простой и в устройстве, и в реализации способ учитывающий морфологию слова – стемминг. Стемминг. – это алгоритм выделения основы в слове без использования словаря, а лишь опираясь на заданные правила языка. В русском языке это означает отбрасывание окончаний и суффиксов. Однако следует отметить, что использование других подходов не исключается, а выбор в пользу этого способа сделан лишь для того, чтобы получить результат с наименьшими затратами;
  3. Картографические сервисы предоставляют необходимую информацию и инструменты для геокодирования и отображения результатов на карте. Веб - картография, сегодня, для многих стала обыденной, но полнота отображаемых на карте данных не всегда достаточна для пользователя.

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

3. Проектирование и разработка программы


3.1. Эскизный проект разрабатываемого ПО


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

Создаваемую систему можно разделить на следующие компоненты(Рис. 1):



Рис. 1 Общая схема системы


  1. Серверная часть для обработки запросов от пользователей на выдачу геокодированных новостей. В состав этого модуля входят две подсистемы:
        • Загрузчик новостей из RSS лент. Этот модуль осуществляет обновление новостей из заданных заранее мест (адресов URL). Новости приходят в формате RSS, что значительно упрощает их разбор. В результате работы данного модуля в БД формируется (обновляется) таблица с новостями и необходимой дополнительной информацией.
        • Модуль поиска географических названий в тексте, который осуществляет анализ всех ранее загруженных, но не проверенных новостей. В результате работы данного модуля новости проверенные им помечаются в базе, чтобы в следующий раз они не проверялись повторно. В случае успешного поиска создается таблица с новостями, в которых было определено географическое место (в данном случае улица Москвы).
  1. Клиентский модуль с отображаемой картой системой обновления списка геокодированных новостей с сервера. Предназначение этого модуля заключается в отображении новостей на карте Google. Для этого полученные от сервера адреса каждой новости геокодируются и для удобства просмотра наносятся на карту Москвы. Таким образом, перенеся функцию геокодирования на сторону клиента сервер избавится от дополнительной нагрузки.




Рис. 2 Схема функционирования системы


3.2. Алгоритм поиска географического названия


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

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


№ п/п

Новость

Адрес

Слово

1

В буфетном зале мэрии Москвы на Тверской улице появился автомат по продаже красной икры.

На Тверской улице

улице

2

Жильцы дома №24, корп. 1 по улице Ключевой в московском районе Братеево продолжают бороться против образования в их доме незаконного ТСЖ.

Дома №24, корп. 1 по улице Ключевой

улице

3

13 мая в Москве в одной из квартир по улице Херсонская обнаружено тело женщины, 1926 года рождения, с признаками насильственной смерти.

По улице Херсонская

улице

4

В Москве загорелся пассажирский автобус "Икарус". Пожар произошел на северо-западе столицы на улице Исаковского.

на улице Исаковского

улице

Таблица 1. Примеры новостей со словом «УЛИЦА»


Разберем более тщательно представленные тексты, в них выделены пять слов-признаков, по которым можно определить наличие адреса в тексте

Для удобства разделим их на группы:

1 уровень – название города (Москве);

2 уровень – вид улицы (улице);

3 уровень – название улицы (Исаковского),

4 уровень – слово указывающее на номер дома (дома),

5 уровень – слово указывающее на номер корпуса (корп.).

При наличие первого уровня, можно сделать вывод, что вероятно имеется следующий уровень (2-ой – вид улицы), а при наличии второго –третий и так далее. Важно понять, что обратная последовательность не будет соблюдаться, т.е. если встретится слово 4 уровня (дом) то совсем не обязательно встретится слово 2-го (улица) и уж тем более 3-го уровня (Исаковского).

Таким образом, алгоритм будет представлять своего рода фильтр, отсеивающий сначала все тексты со словами 1-го уровня, затем 2-го и так далее. В итоге должны остаться только интересующие нас новости с адресами.

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

Получится перечень следующих словарей:

1 - словарь возможных названий города,

2 - словарь видов улиц (метро будем считать как вид улицы)

3 - словарь названий улиц (станций метро).

Поиск номера дома из рассмотрения исключается ввиду редкого упоминания в рассматриваемых текстах. В последствии и этот уровень адреса не сложно научиться выделять.

Вернемся к правилам написания адреса в текстах новостей. Самый простой вариант когда адрес не видоизменен.

Например:

Москва улица Исаковского.

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

Тогда это будет выглядеть так:

Сегодня в Москве произошло … не далеко от улицы Исаковского

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

Этот алгоритм на входе получает любое слово, а на выходе возвращает не полную основу этого слова, т.е. слово без окончания и суффикса. Для данного примера основы слов будут иметь вид:

Москв - город;

Улиц - вид улицы;

Исаковск - название улицы.

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

Исходя из проведенного анализа, можно составить словари названий интересующего города, в данном случае это город Москва.

id

name

1

москв

2

москов

Таблица 2. Словарь основ названий города


Затем сформируем словарь (Таблица 3) для определения в тексте объектов типа "Вид улицы". Словарь будет содержать основу слов «Вид улицы». Полная форма слов будет содержаться в таблице с названиями улиц.


id

name

1

улиц

2

проезд

3

просек

4

переул

5

проспект

6

шоссе

7

площад

8

набережн

9

бульвар

10

алле

11

тупик

Таблица 3. Словарь видов улиц города


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

По улацам Москвы прошла военная техника…

В таком случае необходимо ограничить область поиска слова только следующим и предыдущим словом.

Итак, остальная информация, непосредственно названия улиц, является справочной. Достоверность и полнота ее напрямую влияет на эффективность поиска. Сделав выбор в пользу столичного региона мы тем самым облегчили себе задачу по составлению базы улиц, так как этот регион самый востребованный и найти его базу улиц не составит большого труда. В моей работе была использована БД классификатора КЛАДР 6.0, с официального сайта «ГНИВЦ ФНС России» (ссылка скрыта). Там же можно найти информацию по другим городам России. В перечень улиц также включены станции московского метро как альтернативный способ определения места.

Полученный список улиц необходимо разбить на группы в соответствии с видом улицы.

Таким образом получится следующая таблица (Таблица 4) со списком улиц и указанием ее типа. В последующем это сократит время на выборку по конкретному типу.

Id

name_short

full_name

geoword

firstword

1

Искры ул.

улица Искры

1

Искры

2

Серп и Молот завода пр.

проезд Завода Серп и Молот

2

Серп

3

Абакумова Егора ул.

улица Егора Абакумова

1

Абакумова

4

Абельмановская Застава пл.

площадь Абельмановская Застава

7

Абельмановская

5

Абельмановская ул.

Абельмановская улица

1

Абельмановская

Таблица 4. Список улиц города Москва


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


3.3. Демонстрация работы программы

В результате проделанной работы был создан следующий Интернет ресурс (Рис. 3)




Рис. 3 Внешний вид разработанного вэб приложения


После входа на сайт программы происходит автоматическое нанесение на карту всех новостей с адресом, имеющихся в соответствующей таблице на сервере.

Загрузка новостей производится в фоновом режиме и незаметно для пользователя. Страница не перегружается, а по истечении определенного периода времени появляются новости на карте. Это достигается применением асинхронных запросов к серверу с помощью технологии AJAX/

Пользователь имеет возможность просматривать любую новость путем простого наведения мыши на маркер с новостью. В появившемся окне ему показываются следующая информация о новости:

- заголовок новости, он же является ссылкой на полную статью новости на сайте источнике;

- краткое содержание новости, по этому содержанию и проводился анализ новости;

- источник новости(название сайта в виде ссылки), с которого она была загружена;

- дата публикации указанная автором.




Рис. 4 Приближение новости на карте


4. Заключение


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