«Автоматический геокодинг новостной информации»
Вид материала | Доклад |
- Робоча програма по дисципліні Сучасні Інтернет-технології, 57.28kb.
- Международная научно-техническая конференция «Автоматический контроль и автоматизация, 45.57kb.
- Проблемно-объектный комплекс регулирования новостной информации в блогосфере рунета, 437.21kb.
- Примерные экзаменационные билеты по Информатике и икт, 57.84kb.
- Билеты по информатике, 53.93kb.
- Натуральные Билеты Билет, 47.52kb.
- Ии повысили уровни защиты информации и вызвали необходимость в том, чтобы эффективность, 77.16kb.
- Контроллер для систем приточной вентиляции с водяным калорифером, 135.53kb.
- Инструкция по написанию и оформлению пресс-релизов, 97.89kb.
- Вопросник по новостной политике Компании*, 27.12kb.
V Международная научно-практическая конференция
«Современные информационные технологии и ИТ-образование»
Доклад на тему:
«Автоматический геокодинг новостной информации»
Подготовил:
Комяков Алексей Владимирович
МОСКВА 2010
1. Постановка задачи и актуальность
В связи с постоянным ростом количества информационных ресурсов предоставляющих актуальные новости, возрастает и нагрузка на аналитические центры по их обработке. В настоящее время новостная информация в Интернете составляется, анализируется и обрабатывается практически без применения средств автоматизации. То есть все имеющиеся новости проходят через аналитические центры, где сортировать и отбирать их по каким-либо признакам приходится человеку. Потребность в создание средства автоматического анализа текста стоит особенно остро. Сейчас в распоряжении пользователей Интернета имеется несколько сервисов, производящих сбор и геокодирование новостной информации (напр. Yahoo Local Maps). Цель такого сервиса анализировать и систематизировать новостную и другую информацию по географическим названиям или объектам.
Актуальность данной работы заключается в том, что на русском языке подобных сервисов не существует, а все известные ресурсы, отображающие информацию на карте производят анализ информации вручную (напр. Яндекс Новости).
Целью данной работы является создание системы «Автоматического геокодирования новостной информации» и отображение ее на карте с использованием сервиса Google Maps.
Для реализации поставленной задачи необходимо выполнить следующие шаги:
- Провести анализ способов поиска географических названий в тексте
- Разработать систему для загрузки новостной информации с сайтов новостей
- Разработать систему анализа текстов на русском языке и выделения в них географических названий
- Разработать систему отображения новостной информации на карте Google
2. Анализ существующих технологий
Геокодинг – процесс нахождения широты и долготы по введенному адресу. В моей работе был использован геоинформационный ресурс Google, который позволяет нанести на карту точки с полученными координатами.
В роли геоинформационной системы будет выступать веб-приложение, которое должно получать новостную информацию, геокодировать ее и отображать на карте.
В этом приложении должны быть реализованы следующие функциональные возможности:
- Добавление в базу новых сайтов новостей
- Автоматическое обновление новостной информации
- Обработка текста новостей и выделение в них географических названий
- Отображение новостей на карте с возможностью их фильтрации по району и времени
- Поиск и загрузка новой информации должна происходить в фоновом режиме
В моей работе были проанализированы технологии и принципы доступа к данным, а также поиска слов на русском языке и инструментарий для создания Веб – картографического сервиса.
Перечислим вкратце каждую из этих технологий:
- RSS ленты. Эта технология позволяет легко и быстро получать актуальную информацию с, практически любого, Интернет ресурса;
- Поиск подстроки в строке уже достаточно изучен чтобы пользоваться имеющимися алгоритмами. Имеется ряд разработок в области поиска слов в тексте на русском языке с учетом морфологии. Основываясь на поставленной задаче, предлагается выбрать самый простой и в устройстве, и в реализации способ учитывающий морфологию слова – стемминг. Стемминг. – это алгоритм выделения основы в слове без использования словаря, а лишь опираясь на заданные правила языка. В русском языке это означает отбрасывание окончаний и суффиксов. Однако следует отметить, что использование других подходов не исключается, а выбор в пользу этого способа сделан лишь для того, чтобы получить результат с наименьшими затратами;
- Картографические сервисы предоставляют необходимую информацию и инструменты для геокодирования и отображения результатов на карте. Веб - картография, сегодня, для многих стала обыденной, но полнота отображаемых на карте данных не всегда достаточна для пользователя.
Таким образом, перечисленные средства можно положить в основу системы по поиску географических названий в тексте и отображению полученных результатов на карте. Создание подобного средства автоматизации это еще один шаг на пути к более доступному и удобному использованию ресурсов Интернета.
3. Проектирование и разработка программы
3.1. Эскизный проект разрабатываемого ПО
Рассмотрим создаваемое приложение как совокупность отдельных элементов (модулей) и опишем их функционирование в отдельности и в составе системы. Каждый элемент будет выполнять свои функциональные задачи, используя конкретные технологии описанные выше.
Создаваемую систему можно разделить на следующие компоненты(Рис. 1):
Рис. 1 Общая схема системы
- Серверная часть для обработки запросов от пользователей на выдачу геокодированных новостей. В состав этого модуля входят две подсистемы:
- Загрузчик новостей из RSS лент. Этот модуль осуществляет обновление новостей из заданных заранее мест (адресов URL). Новости приходят в формате RSS, что значительно упрощает их разбор. В результате работы данного модуля в БД формируется (обновляется) таблица с новостями и необходимой дополнительной информацией.
- Модуль поиска географических названий в тексте, который осуществляет анализ всех ранее загруженных, но не проверенных новостей. В результате работы данного модуля новости проверенные им помечаются в базе, чтобы в следующий раз они не проверялись повторно. В случае успешного поиска создается таблица с новостями, в которых было определено географическое место (в данном случае улица Москвы).
- Клиентский модуль с отображаемой картой системой обновления списка геокодированных новостей с сервера. Предназначение этого модуля заключается в отображении новостей на карте 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. Заключение
В процессе выполнения работы были получены следующие результаты:
- произведен анализ существующих способов поиска слов в тексте и других технологий необходимых для реализации геоинформционного сервиса;
- сформулирована цель и требования для разрабатываемого программного обеспечения;
- создана компонентная (эскизная) модель системы, выбрана платформа, среда разработки и язык программирования;
- реализован алгоритм поиска географических названий в тексте;
- реализована система, осуществляющая геокодинг новостной информации;
- внедрено разработанное ПО в качестве средства отображения новостной информации в заданном районе местности.