Научная статья на тему 'Автоматический геокодинг новостной информации'

Автоматический геокодинг новостной информации Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
105
26
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Комяков Алексей Владимирович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

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

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

А.В. Комяков

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

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

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

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

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

• Провести анализ способов поиска географических названий в тексте

• Разработать систему для загрузки новостной информации с сайтов новостей

• Разработать систему анализа текстов на русском языке и выделения в них географических названий

• Разработать систему отображения новостной информации на карте Google

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

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

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

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

• Добавление в базу новых сайтов новостей

• Автоматическое обновление новостной информации

• Обработка текста новостей и выделение в них географических названий

• Отображение новостей на карте с возможностью их фильтрации по району и времени

• Поиск и загрузка новой информации должна происходить в фоновом режиме

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

118. RSS ленты. Эта технология позволяет легко и быстро получать актуальную информацию с, практически любого, Интернет ресурса;

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

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

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

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

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

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

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

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

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

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

• Клиентский модуль с отображаемой картой системой обновления списка геокодированных новостей с сервера. Предназначение этого модуля заключается в отображении новостей на карте Google. Для этого полученные от сервера адреса каждой новости геокодируются и для удобства просмотра наносятся на карту Москвы. Таким образом, перенеся функцию геокодирования на сторону клиента сервер избавится от дополнительной нагрузки.

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

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

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

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

№ п/п Новость Адрес Слово

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Например:

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

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

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

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

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

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

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

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

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

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

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

к1 паше

1 москв

2 москов

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

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

к1 паше

1 улиц

2 проезд

3 просек

4 переул

5 проспект

6 шоссе

7 площад

8 набережн

9 бульвар

10 аллея

11 тупик

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

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

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

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

КЛАДР 6.0, с официального сайта «ГНИВЦ ФНС России» (http://www.gmvc.ru/Documentaspx?id=1571). Там же можно найти информацию по другим городам России. В перечень улиц также включены станции московского метро как альтернативный способ определения места.

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

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

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

¡и пате_$Иог1 Ш1_пате §еотеоги А^теоМ

1 Искры ул. улица Искры 1 Искры

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

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

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

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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

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

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

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

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

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

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

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

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

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

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

В процессе выполнения работы были получены следующие результаты:

• произведен анализ существующих способов поиска слов в тексте и других технологий необходимых для реализации геоинформционно-го сервиса;

• сформулирована цель и требования для разрабатываемого программного обеспечения;

• создана компонентная (эскизная) модель системы, выбрана платформа, среда разработки и язык программирования;

• реализован алгоритм поиска географических названий в тексте;

• реализована система, осуществляющая геокодинг новостной информации;

• внедрено разработанное ПО в качестве средства отображения новостной информации в заданном районе местности.

Литература

1. М.В. Кузнецов, И.В. Симодянов. Самоучитель MySQL 5. -СПб.: БХВ-Петербург, 2007. - 560 с.: ил.

2. А. Матросов, А. Сергеев, М. Чаунин HTML 4.0 - БХВ-Петербург, 2007, 672 с.

3. Выдрин Д., Поляков В. (2002) "Реализация электронного словаря на основе н-грамм". Труды III Международной научно-практической конференции "Искусственный интеллект - 2002" - Кацевелли, том 2, с. 79-84 Изд. "Институт проблем искусственного интеллекта" http://iai.donetsk.ua

4. Выдрин Д., Громов С., Поляков В. (2004) "Метод сравнения библиографических описаний, представленных в различных форматах". Обработка текста и когнетивные технологии №9. VII Междуународная конференция - Варна. М: Издательство "Учеба", с. 166-172

5. Черный А.И. Введение в теорию информационного поиска - «Наука» М., 1975.

6. Дари К., Бринзаре Б. AJAX и PHP: Разработка динамических веб - приложений. - СПб.: Символ - Плюс, 2006. - 336 с.

7. Р.Д. Мэтьюз Web - сервер под Unix. Пер. с англ. -СПб: Символ-Плюс, 1998. -560 с.: ил.

i Надоели баннеры? Вы всегда можете отключить рекламу.