Перейти к тексту

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

Профиль создается, когда вы в первый раз заходите в developerWorks. Выберите данные в своем профиле (имя, страна/регион, компания) которые будут общедоступными и будут отображаться, когда вы публикуете какую-либо информацию. Вы можете изменить данные вашего ИБМ аккаунта в любое время.

Вся введенная информация защищена.

  • Закрыть [x]

При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

Вся введенная информация защищена.

  • Закрыть [x]

Применение XML в глубинном анализе данных

Роль XML в глубинном анализе данных – cоветы и методики использования

Джефри Хэнсон, главный архитектор, eReinsure.com, Inc.
В промышленности программного обеспечения Джеф Хэнсон (Jeff Hanson) работает более 10-ти лет. Он был главным разработчиком порта Microsoft ® Windows ® проекта OpenDoc, а также разработчиком структуры Route 66 в Novell. Сейчас Джеф является главным разработчиком eReinsure.com, Inc. и работает над созданием структур и платформ web сервиса для систем перестраховки, базирующихся на J2EE. Он также является автором множества статей и книг, в том числе и Сравнение web сервисов J2EE и .NET: Сопоставление основных принципов, Pro JMX: Расширения управления Java и Архитектуры и коммерческие стратегии web-сервисов.

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

Дата:  18.04.2012
Уровень сложности:  средний
Активность:  4167 просмотров
Комментарии:  


Часто используемые сокращения

  • API: Application Programming Interface (прикладной интерфейс программирования)
  • HTML: Hypertext Markup Language (язык разметки гипертекста)
  • XML: Extensible Markup Language (расширяемый язык разметки)

Глубинный анализ данных (data mining) – это процесс применения алгоритмов к данным для выявления закономерностей, соответствующих заданному контексту или запросу. Организации на протяжении многих лет используют глубинный анализ данных для анализа больших объемов информации с целью прогнозирования поведения, составления информативных отчетов, достижения превосходства над конкурентами и т.д.

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

Обзор глубинного анализа данных

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

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

Глубинный анализ данных обычно включает в себя несколько стандартных задач, в том числе кластеризацию, классификацию, регрессию и обучение по ассоциативным правилам (associated rule learning).

Кластеризация

Кластеризация (clustering) в контексте глубинного анализа данных – это попытка выявить в неструктурированных или слабоструктурированных данных сходные подгруппы (кластеры) данных. В таблице 1 перечислены и описаны некоторые распространенные виды кластеризации для глубинного анализа данных.


Таблица 1. Распространенные виды кластеризации для глубинного анализа данных
Вид кластеризацииОписание
Грид-кластеризацияИспользует пороговые значения для выявления матриц или "ячеек" данных, из которых формируются кластеры.
Иерархическая кластеризацияВключает в себя поиск последовательных групп или кластеров данных с использованием ранее обнаруженных кластеров для формирования иерархии кластеров от маленьких до больших.
Кластеризация на основе местоположения или расстоянияВключает методы выявления кластеров данных на основе виртуального или физического местоположения.
Кластеризация разделениемРекурсивно разделяет объекты данных на фиксированное число кластеров.

Классификация

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

Регрессия

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

Обучение по ассоциативным правилам

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


Обзор XML

XML – это текстовый язык разметки, который можно использовать для структуризации данных в различных диалектах. Диалекты XML обычно задаются схемами, которые находятся во внешнем хранилище по ссылке или встроены в XML-документ. Большинство популярных языков программирования предоставляет ту или иную форму поддержки работы с XML-документами.

XML – это подмножество языка Standard Generalized Markup Language (SGML); он предназначен для предоставления метаинформации о содержимом данного XML-документа. XML хранит аппаратно- и программно-независимые данные в простом текстовом формате. Эти свойства делают XML одним из самых популярных в Web форматов обмена данными и совместного использования информации приложениями и системами.

Диалекты XML довольно широко используются для глубинного анализа данных. В таблице 2 перечислены и описаны некоторые из наиболее часто используемых диалектов.


Таблица 2. Диалекты XML для глубинного анализа данных
ДиалектОписание
CWM-DMСпецификация CWM-DM (Common Warehouse Model for Data Mining) определяет метаданные для анализа, такие как описание модели, настройки алгоритма и атрибуты. CWM-DM-модели являются XML-документами, сгенерированными при помощи инструментальных средств и приложений UML (Unified Modeling Language).
PMMLСпецификация PMML (Predictive Model Markup Language) представляет собой XML-диалект для определения статистической модели и модели анализа данных, которые могут совместно использоваться разными PMML-совместимыми сервисами и приложениями. PMML позволяет гетерогенным сервисам и приложениям манипулировать моделями анализа данных стандартным способом. PMML-документ состоит из таких элементов как заголовок, словарь данных, карты преобразования данных, определение модели, схема анализа, целевые объекты пост-обработки и выходные поля.
XMLAСпецификация XMLA (XML for Analysis) определяет XML-интерфейсы, использующие SOAP для предоставления доступа к аналитическим данным из различных источников при помощи двух методов: обнаружения и исполнения. XMLA предназначена для глубинного анализа данных и аналитической обработки в режиме реального времени (Online Analytical Processing – OLAP).
XPathЯзык XPath (XML Path Language) – это общий механизм, использующийся для ссылок на элементы и данные внутри XML-документа. Он похож на механизмы, которые применяются для навигации по файловой системе.
XQLЯзык XQL (XML Query Language) – это язык запросов, спроектированный специально для XML-данных, который аналогичен языку SQL (Structured Query Language) для работы с реляционными данными.


Представление слабоструктурированных данных при помощи XML

Слабоструктурированными называются данные определенной структуры, которой недостаточно для элегантного применения реляционной модели. Слабоструктурированные данные обычно содержат теги или другие элементы для разделения семантически связанных элементов, несущих определенную информацию об ассоциированных данных. Одной из популярных форм слабоструктурированных данных является HTML. Слабоструктурированные данные, главным образом в формате HTML, открывают новые горизонты глубинного анализа данных из Web.

XML позволяет представлять как табличные, так и иерархические данные. Также XML оснащен встроенными метаданными и другими описательными объектами, такими как схемы и DTD (Document Type Definition). XML может представлять данные в виде как простых, так и сложных и замысловатых структур. Это делает XML-диалекты превосходными словарями для представления слабоструктурированных данных.

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

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


Использование XML для извлечения полезной информации из слабоструктурированных наборов данных

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

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

Рассмотрим пример XML-документа, представляющего фильмографию (см. листинг 1).


Листинг 1. Пример XML-документа

<filmography>
  <director name="Scorsese">
    <year>
      2002
      <film>
        <title>Deuces Wild</title>
      </film>
    </year>
    <year>
      2003
      <film>
        <title>The Soul of a Man</title>
      </film>
      <film>
        <title>The Blues</title>
      </film>
    </year>
  </director>
</filmography>
      

XML-документ из листинга 1 можно представить в виде графа, показанного на рисунке 1.


Рисунок 1. XML-документ в виде ориентированного графа
Рисунок 1. XML-документ в виде ориентированного графа

Языки запросов, основанные на XML-технологии, создаются с целью достижения любой произвольной точки в графе XML-документа при помощи последовательностей меток ребер и разделителей, описывающих путь. В листинге 2 показан путь, или XPath-выражение, для узла Deuces Wild на XML-графе, представленном на рисунке 1. Путь начинается с корневой метки.


Листинг 2. Простое XPath-выражение

/filmography/director[@name="Scorsese"]/year[0]/film/title/text()

Чтобы исключить неоднозначности в XML-документах, используйте контекст, из которого порождаются данные. Например, если человек ищет режиссера по фамилии White, а XML-документ содержит фильм с названием White, контекст, определенный XPath-выражением /filmography/director[@name="White"]@name, устраняет двусмысленность в XPath-выражении /filmography/director[@name="White"]/year[1]/film[0]/title/text().

Получение информации из источников слабоструктурированных данных, таких как HTML-документы в Web, обычно требует фильтрации, преобразования и извлечения данных. Чтобы придать HTML-документу структурированную форму, преобразуйте его в XHTML-документ (Extensible Hypertext Markup Language). Обычно это подразумевает выполнение процесса фильтрации, в который входит группирование узлов по названию тега и удаление мешающих элементов, таких как не рекомендованные теги и атрибуты, и т.д. Следующий шаг – преобразование отфильтрованного документа путем объявления единого корневого элемента html, преобразование названий атрибутов и элементов тегов в строчные буквы, добавление конечных тегов ко всем начальным, добавление атрибутов alt к тегам img и т.д.

При использовании описанного процесса фильтрации/преобразования/извлечения можно рассматривать Web как большое хранилище XML-данных. Тем самым извлечение данных из Web можно значительно упростить, используя язык запросов для XML, например, XQuery.

Чтобы при помощи XQuery извлечь и использовать данные из XHTML-документа, нужно сформулировать запрос на поиск содержимого в документе, создавая при необходимости новые XML-структуры или совершенно новые XML-документы. Поиск данных в документе является примером сопоставления с образцом (pattern matching) при помощи XPath-выражений.

В XQuery-запросе в листинге 3 содержится простое XQuery-выражение, возвращающее названия фильмов 2002 года из XML-документа, представленного в листинге 1.


Листинг 3. XQuery-выражение для поиска всех узлов film
        
for $x in doc("www.example.com/films.xml")/filmography/director
where $x/year="2002"
return $x/year/film/title
      

Отметим, что результаты, возвращенные из XQuery-документа, можно аннотировать при помощи XML-тегов, атрибутов и другой разметки, необходимой потребителю результатов. Например, обратите внимание на фрагмент, представленный в листинге 4.


Листинг 4. Аннотированный результат XQuery

for $x in doc("www.example.com/films.xml")/filmography/director
return
  <director name="{$x[@id]}">
    <other_data>...</other annotated data>
  </director>

В листинге 4 возвращенный из XQuery-кода результат аннотируется как XML-фрагмент с данными, полученными из запроса.

Особенностью XQuery является возможность указать конкретный документ, к которому вы хотите применить запрос. В XQuery можно расширить XPath-выражение /filmography/director[@name="White"]@name, чтобы применить его к конкретному документу:

doc("www.example.com/films.xml")/filmography/director[@name="White"]@name

При помощи XQuery-выражений можно выявлять сходства в XML-данных, выполняя поиск данных по общему элементу (например, имени автора, источнику данных и т.д.). Более сложные методы, такие как взвешивание частоты и нормализация частоты, выходят за рамки данной статьи.


Преобразование реляционных данных в XML-данные

Как уже говорилось, структура XML-документа представляет собой вложенное иерархическое дерево с узлами нескольких типов, такими как элементы, ссылки на логические объекты, комментарии и т.д. Документ может иметь только один корневой узел (root node), являющийся первым узлом в документе.

Реляционная база данных состоит из набора таблиц, содержащих набор записей или строк. Запись или строка содержит набор полей или столбцов, содержащих данные. Все строки в данной конкретной таблице имеют одинаковое число столбцов. Следовательно, реляционную базу данных можно представить как иерархическую XML-структуру, состоящую из узла database, содержащего набор узлов table, содержащих набор узлов row, содержащих набор узлов column.

Можно создать модельную реляционную базу данных (filmography) со структурой, состоящей из одной таблицы (director), содержащей одну строку (row) в виде XML-документа, как показано в листинге 5.


Листинг 5. XML-представление базы данных

<filmography>
  <director>
    <row>
      <name>Scorsese</name>
      <year>
        2002
        <film>
          <title>Deuces Wild</title>
        </film>
      </year>
      <year>
        2003
        <film>
          <title>The Soul of a Man</title>
        </film>
        <film>
          <title>The Blues</title>
        </film>
      </year>
    </row>
  </director>
</filmography>

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


Обнаружение изменений в XML-данных

Потребители XML-данных, возвращенных запросами глубинного анализа данных, часто интересуются только теми данными, которые изменились с момента предыдущего запроса. Решения такого рода задач чаще всего основываются на реализации процесса сохранение/индексация/обнаружение изменений (store/index/diff). Сначала выполняется извлечение и сохранение XML-данных. Затем эти данные индексируются с использованием таких методик, как индексация по шаблонным выражениям XML, индексация по B-деревьям, структурная индексация, индексация содержимого или ключевых слов и др. После индексации появляется возможность быстро находить XML-данные для обнаружения изменений при помощи последовательного поиска. При этом формируется дельта (изменение), которую можно сравнить с текущими данными.

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


Заключение

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

Огромные объемы неструктурированных и слабоструктурированных данных, размещенных в Web и внутренних хранилищах данных, требуют интеллектуального и эффективного анализа данных. Большие и сложные наборы данных поднимают традиционные методики глубинного анализа данных на новый уровень требований к обработке. Глубинный анализ данных, размещенных в современных хранилищах, требует структурирования неструктурированных или в лучшем случае слабоструктурированных данных.

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


Ресурсы

Об авторе

В промышленности программного обеспечения Джеф Хэнсон (Jeff Hanson) работает более 10-ти лет. Он был главным разработчиком порта Microsoft ® Windows ® проекта OpenDoc, а также разработчиком структуры Route 66 в Novell. Сейчас Джеф является главным разработчиком eReinsure.com, Inc. и работает над созданием структур и платформ web сервиса для систем перестраховки, базирующихся на J2EE. Он также является автором множества статей и книг, в том числе и Сравнение web сервисов J2EE и .NET: Сопоставление основных принципов, Pro JMX: Расширения управления Java и Архитектуры и коммерческие стратегии web-сервисов.

Помощь по сообщениям о нарушениях

Сообщение о нарушениях

Спасибо. Эта запись была помечена для модератора.


Помощь по сообщениям о нарушениях

Сообщение о нарушениях

Сообщение о нарушении не было отправлено. Попробуйте, пожалуйста, позже.


developerWorks: вход


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


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

Выберите ваше отображаемое имя

При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

(Должно содержать от 3 до 31 символа.)


Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Оценить эту статью

Комментарии

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=XML
ArticleID=810644
ArticleTitle=Применение XML в глубинном анализе данных
publish-date=04182012