Извлечение данных из веб-ресурсов. Введение
Так как я плотно занимаюсь вопросом извлечения и анализа данных, у меня появилась идея написание небольшого руководства под названием "Извлечение данных из веб-ресурсов". Так как написание законченного произведения требует огромного количества времени, а руководство основано на моих предыдущих статьях, то самым лучшим вариантов я вижу выложить то, что есть, в структурированном виде и дополнять по мере написание новых материалов.
Если у вас есть интерес к данной теме и вы хотите помочь в написании руководства, то, пожалуйста, дайте мне знать.
Введение
Я не думаю, что открою Америку, если скажу, что не вся информация одинаково полезна. Иногда для объяснения какого-то понятия необходимо написать много текста, а иногда для объяснения сложнейших вопросов достаточно посмотреть на простую диаграмму. Для сокращения избыточности информации были придуманы математические формулы, чертежи, условные обозначения, программный код и т.д. Кроме того, важным является не только сама информация, но и ее представление. Понятно, что котировки акций более наглядно можно продемонстрировать с помощью графика, а математические формулы опишут законы Ньютона в более компактном виде.
В процессе развития информационных технологий, а также систем сбора и хранения данных — баз данных (databases), хранилищ данных (data warehousing), и с недавних пор, облачных репозиториев (cloud), возникла проблема анализа больших объемов данных, когда аналитик или управленец не в состоянии вручную обработать большие массивы данных и принять решение. Понятно, что аналитику необходимо каким-то образом представить исходную информацию в более компактном виде, с которой может справится человеческий мозг за приемлемое время.
Выделим несколько уровней информации:
- исходные данные (сырые данные, исторические данные или просто данные) – необработанные массивы данных, получаемые в результате наблюдения за некой динамической системой или объекта и отображающие его состояние в конкретные моменты времени (например, данные о котировках акций за прошедший год);
- информация – обработанные данные, которые несут в себе некую информационную ценность для пользователя; сырые данные, представленные в более компактном виде (например, результаты поиска);
- знания — несут в себе некое ноу-хау, отображают скрытые взаимосвязи межу объектами, которые не являются общедоступными (в противном случае, это будет просто информация); данные с большой энтропией (или мерой неопределенности).
Рассмотрим пример. Допустим, у нас есть некие данные о валютных операциях на рынке Forex за определенный промежуток времени. Эти данные могут хранится, например, в текстовом виде, или в XML формате, в базе данных или в бинарном виде и сами по себе не несут никакой полезной смысловой нагрузки. Далее аналитик загружает эти данные, к примеру, в Excel и строит график изменений, таким образом получая информацию. Дальше он загружает данные (полностью или частично обработанные в Excel), например, в Microsoft SQL Server и с помощью Analysis Services получает знание о том, что завтра акции лучше продать. После этого аналитик может использовать уже полученные знания для новых оценок, таким образом получив обратную связь в информационном процессе.
Между уровнями нет четких граней, но такая классификация позволит нам в дальнейшем не запутаться с терминологией.
Извлечение данных
Извлечение данных (information retrieval, data extracting, data mining) — это процесс нахождения, сбора информации, а также сохранения (конвертация) их в разных форматах. По простому, программы для извлечения данных называют парсерами (parser), граберами (grabber), спайдерами (spider), кроулерами (crawler) и т.д. Фактически, такие программы существенно облегчают всем жизнь, так как позволяют систематизировать данные (именно данные, а не знания!). Такие программы могут собирать адреса компаний в вашей отрасли, ссылки из нужных форумов, парсить целые каталоги, также могут служить отличным средством для составления баз данных.
Text mining (text data mining, text analysis, очень близкое понятие – concern mining) может работать как с сырыми данными, так и с частично обработанными, но в отличие от извлечения данных, text mining анализирует текстовую информацию с помощью математических методов, что позволяет получать результат с элементами знания.
Задачи, которые решает text mining:
- нахождение шаблонов данных;
- получение структурированной информации;
- построение иерархий объектов;
- классификация и кластеризация данных;
- определение тематики или области знаний;
- автоматическое реферирование документов;
- задачи автоматической фильтрации контента;
- определение семантических связей и другие.
Для решения задач text mining используют статистические методы, методы интерполяции, аппроксимации и экстраполяции, нечеткие методы, методы контент-анализа.
Web mining – это набор подходов и техник для извлечения данных из веб-ресурсов. Так как веб-источники, ка правило, не являются текстовыми данными, то и подходы к процессу извлечения данных отличаются в этом случае. В первую очередь необходимо помнить, что информация в вебе хранится в виде специального языка разметки HTML (хотя есть и другие форматы – RSS, Atom, SOAP, но об этом поговорим позже), веб-страницы могут иметь дополнительную метаинформацию, а также информацию о структуре (семантике) документа, каждый веб-документ находится внутри некого домена и к нему могут применяться правила поисковой оптимизации (SEO).
Поисковый робот (или бот) - специальная программа, входящая в состав каждой поисковой системы. Основная задача робота: сканирование веб-страниц, известных поисковой системе, с целью обновления данных об их содержимом, а также поиск новых страниц, еще не включенных в индекс.
Web Crawler – программа для обхода веб-сайтов с целью извлечения (сбора) данных. Целью данного пособия является научиться писать собственные краулеры.
Где можно применять методики извлечения и анализа данных:
- составление списка банков какой-то страны
- составление базы школьных заведений
- список сайтов по определенной тематики
- маркетинговые исследования;
- сбор информации о клиентах и конкурентах;
- при разработке ресурсов для сравнения продуктов и их цен;
- автоматическая заполнение и отправка форм с данными;
- автоматический поиск и загрузка изображений, документов, видео по заданной тематике;
- сбор аналитической и статистической информации;
В основном, это «список», «каталог», «база» чего-то, что необходимо вам в данный момент.
Извлечение знаний
Суть "извлечения знаний": у нас есть огромные массивы данных, нам нужно получить знания.
Пример из жизни: у нас есть очень много данных о котировках валют Forex (очень много — это порядка нескольких гигабайт текстовой информации в день). Так вот, текстовые файлы и есть данные, а вот утверждение «падение акции А приводит к падению акции В» уже является знанием, полученным на основании этих данных. Не нужно говорить, что наличие удобных инструментов получения такого рода знаний помогло бы не одному менеджеру при принятии решений.
Основные категории Data Mining:
- кластеризация данных (разделение объектов на подобные группы)
- классификация данных (отнесение объектов к заранее определенным группам)
- нейронные сети, генетические алгоритмы (универсальные оптимизаторы)
- ассоциативные правила (правила виду «если… то...»)
- деревья решений
- анализ временных рядов
Я бы еще отнес сюда регрессионный, многофакторный и другие анализы, так как с их помощью тоже можно решать похожие задачи. Каждая из этих категорий имеет свой математический и алгоритмический аппарат и позволяет решать определенный круг задач.
Статьи по теме:
Компании из статьи
Microsoft Украина | Украинское подразделение компании Microsoft. |