Автоматическая обработка естественного языка I. Обработка

advertisement
Автоматическая
обработка
естественного языка
I. Обработка
письменного текста
XML — язык разметки
структурированных
(в т. ч. лингвистических)
данных
а также XSL — язык для
преобразования данных
XML, XSL, XYZ...
Программа
 Что такое XML
Назначение. Синтаксис
 Определение типа
документов (DTD)
 Язык навигации по документу
(XPath)
 Пространства имён
(Namespaces)
 Преобразования документов
(XSL)
Что такое XML
Где прочитать?
 http://en.wikipedia.org/wiki/Xml
 http://www.w3.org/XML/
 http://w3schools.com
— стандарты
— простые пособия и тесты
 http://www.zvon.org/ — пособия,
статьи и др. (на многих языках)
 http://www.raleigh.ru/tutorials/
— русские переводы нескольких
пособий со ZVON.org
Что такое XML
XML
= eXtensible
Markup Language
Что такое XML?

eXtensible Markup Language
– Extensible — расширяемый. Каждый
пользователь приспосабливает его для своей
задачи.

XML внешне похож на HTML
– Это тоже язык разметки
(HyperText Markup Language)
– Синтаксис обоих происходит от SGML
(Standard Generalized Markup Language)
Пример HTML
<html>
<head>
<title>Title of this page</title>
</head>
<body>
<p>This is my first homepage.<br>
<b>This text is bold.</b>
And this is <b>bold <i>and italic</b>, wow</i>!
</p>
</body>
</html>
...Вот что из этого получается:
1page.htm
Пример XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<CHESSBOARD>
<WHITEPIECES>
<KING><POSITION COLUMN="G" ROW="1"/></KING>
<BISHOP><POSITION COLUMN="D" ROW="6"/></BISHOP>
<ROOK><POSITION COLUMN="E" ROW="1"/></ROOK>
<PAWN><POSITION COLUMN="A" ROW="4"/></PAWN>
<PAWN><POSITION COLUMN="B" ROW="3"/></PAWN>
…
</WHITEPIECES>
<BLACKPIECES>
<KING><POSITION COLUMN="B" ROW="6"/></KING>
<QUEEN><POSITION COLUMN="A" ROW="7"/></QUEEN>
<PAWN><POSITION COLUMN="A" ROW="5"/></PAWN>
<PAWN><POSITION COLUMN="D" ROW="4"/></PAWN>
</BLACKPIECES>
</CHESSBOARD>
...Вот что он описывает:
Чем XML отличается от HTML?
Почти всем.
 Главное — назначением
– HTML используется для отображения
данных в браузере. В нем смешаны
элементы содержания и
оформления.
– XML используется для хранения
данных и описания их структуры. Он
задаёт только содержание
документа.
Чем XML отличается от HTML?
 Гибкостью
– Тэги HTML и их значение жёстко
заданы в спецификации.
– В спецификации XML фиксирован
только синтаксис. Тэги XML и их
значение задаются пользователем.
– Фактически, XML — это не один язык,
а семейство языков, потому что
каждый пользователь, придумывая
свои тэги, задаёт свой язык.
Чем XML отличается от HTML?
 Немного
— синтаксисом
Требования к синтаксису более
строгие, что делает структуру
документа более наглядной и
облегчает автоматизацию его
проверки и обработки
Применения XML

Обработка структурированных данных
– разработка веб-сайтов, системы управления
содержанием (CMS); трансляции новостей (RSS)
 Google
XML Sitemaps
– базы данных (Native XML DBMS и экспорт-импорт
из других БД)
– создание и обработка метаданных (см. тж. Semantic Web)
 Dublin
Core; OLAC, IMDI
– ведение технической документации
(формат DocBook и др.)
– обработка текста и разметка мультимедиа
 OpenOffice.org
2.0+, MS Office 2007+
 ELAN, Transcriber,…
Применения XML

Обработка структурированных данных
– Semantic Web — «надстройка» над Web’ом, с
помощью метаданных описывающая свойства и
содержание (сетевых) ресурсов и логические связи
между ними.
Цель — осмысленная машинная обработка
информации, логические выводы и т. д.
– Semantic Web основан на модели RDF (Resource
Description Framework), где все отношения
описываются тройками «субъект-отношениеобъект», а все элементы троек являются
идентификаторами ресурсов (URI).
Один из двух основных форматов
записи RDF — RDF-XML.
Применения XML

Обмен данными между приложениями
Программы, использующие разные внутренние форматы, могут
успешно обмениваться данными в XML.
– промышленная разработка и производство
– электронная коммерция (business2business, business2consumer)

Amazon Web Services
– лингвистика: Fieldworks (БД) => XML => ELAN


Обмен данными с портативными устройствами
Некоторые сферы применения XML
–
–
–
–
–
–
–
Scalable Vector Graphics (SVG) (векторная графика);
SMIL (Synchronized Multimedia Integration Language);
VoiceXML (команды программ речевого интерфейса);
MusicXML (музыкальные партитуры);
ebXML (electronic business XML);
Chemical Markup Languge;
Structured Product Labeling (фармакология);…
Рекомендуемые XML-редакторы
 http://www.firstobject.com
foxe — firstobject XML editor
(.exe в архиве .zip, не требует установки)
Очень простой и быстрый редактор.
Поддерживает Юникод. Имеется валидатор.
 http://www.freexmleditor.com/
Exchanger XML Lite V3.2
(требует установки, понадобится для
выполнения заданий по XSL)
Полнофункциональный редактор XML/XSL
с отладчиком для XSL-трансформаций.
Увы, давно не обновлялся.
Простой XML-документ
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE booklist SYSTEM "books-1.dtd">
<booklist>
<book>
<author>А.А. Зализняк</author>
<title>Древнерусские энклитики</title>
<city>Москва</city>
<year>2008</year>
</book>
<book>
<author>J.K. Rowling</author>
<title>Harry Potter and the Secret Chamber</title>
<city>New York</city>
<year>2005</year>
</book>
</booklist>
Синтаксис XML
 Основные
понятия:
– документ (≈ файл)
– элемент
<KING>
<POSITION COLUMN="G" ROW="1"/>
</KING>
– атрибут
.. COLUMN="G" ..
Синтаксис XML
 Каждый
документ должен иметь
ровно один корневой элемент
У
каждого открывающего тэга
должен быть закрывающий
 Тэги
должны быть правильно
вложены друг в друга
 Значения
атрибутов обязательно
берутся в кавычки
 Регистр
символов в именах важен!
Синтаксис XML
 Имя
элемента может:
– содержать буквы, цифры, подчеркивание,
двоеточие или точку
– начинаться с только с буквы или
подчеркивания
кроме

букв “xml” (в любом регистре)
Значения атрибутов могут заключаться в
(двойные прямые) кавычки либо апострофы.
Одни могут использоваться внутри других:
<xsl:param name="file" select="'books.xml'"/>
<xsl:param name='file' select='"books.xml"'/>
Специальные символы
 Entities
В тексте элемента не могут использоваться
специальные символы разметки: < и &. Они
должны заменяться на < и &.
Также определены: > > " " ' '
 CDATA
sections
Если необходимо вставить в документ фрагмент
текста, содержащий много спецсимволов,
используется конструкция CDATA (Character Data).
Парсер игнорирует всё до символов ]]>:
<example>
<![CDATA[ <%aaa%>bb&cc<<dd ]]>
</example>
Правильность документов
XML-документ, отвечающий требованиям
синтаксиса, называется правильно
построенным (well-formed).
 Правильно построенные документы
успешно обрабатываются парсером.
 Однако, эта характеристика ничего не
говорит о содержании документа —
осмысленно ли оно? Знаем ли мы, что
означают его элементы и атрибуты?

Определение типа (DTD)
DTD — Document Type Definition
 Задаёт возможную структуру для
некоторого типа XML-документов
(т. е. задаёт один возможный язык)

– как могут называться элементы
– как они могут друг в друга вкладываться
– какие у каждого элемента могут быть
атрибуты

Документ, отвечающий некоторому DTD,
называется действительным
(valid). Этот вид правильности
проверяется валидатором.
Определение типа (DTD)
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT booklist (book*) >
<!ELEMENT book (author, title, city, year)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT city (#PCDATA)>
<!ELEMENT year (#PCDATA)>
Определение типа (DTD)
Содержимое элементов
<!ELEMENT book (author, title, city, year)>
СПИСОК ДОЧЕРНИХ ЭЛЕМЕНТОВ
author, title — последовательность
author|title — выбор (или — или)
EMPTY — пустой элемент
ANY — любая комбинация допустимых типов
#PCDATA — текстовое содержание
(Parsed Character Data: оно анализируется парсером,
так как потенциально может содержать вложенные
элементы)
Определение типа (DTD)
Количество повторений элемента
<!ELEMENT booklist (book*) >
book — 1, обязательный
book? — 1, необязательный (0 или 1)
book+ — 1 или больше (сколько угодно)
book* — 0 или больше (сколько угодно)
Добавим в book необязательный
элемент publisher? (издательство)
Определение типа (DTD)
Добавляем атрибуты
В документ:
<book lang="rus" bookid="AAZ01">
<author>А.А. Зализняк</author>
…
</book>
имя атрибута
В DTD:
<!ATTLIST book
lang CDATA #IMPLIED
bookid ID #REQUIRED>
Определение типа (DTD)
Типы атрибутов
<!ATTLIST book
lang CDATA #IMPLIED
bookid ID #REQUIRED
genre (fiction|nonfiction) #IMPLIED>
(..|..) — одно из перечисленных значений
CDATA — простой текст (Character Data)
ID — идентификатор (значение не может повторяться)
IDREF — ссылка на идентификатор другого элемента
…и некоторые другие
Определение типа (DTD)
Значения атрибутов по умолчанию
<!ATTLIST book
lang CDATA "eng"
bookid ID #REQUIRED
genre (fiction|nonfiction) #IMPLIED>
либо значение по умолчанию, либо:
#IMPLIED — атрибут необязателен
#REQUIRED — атрибут обязателен
#FIXED значение — значение неизменно
DTD и другие схемы

DTD — только один из видов схем для
описания структуры XML-документов.
+ Может встраиваться в описываемый
документ.
+ Компактные размеры.
+ Поддерживается большинством парсеров.
–
–
–
–
Синтаксис отличен от XML.
Ограниченные возможности.
Не поддерживает пространства имён.
Не поддерживает типы данных.
DTD и другие схемы
В серьезных проектах чаще применяются более сложные и
выразительные средства, в особенности два:

XML Schema
–
–
–
–

Синтаксис XML.
Развернутая система типов данных, но не расширяемая.
Громоздкая запись.
Легко описать фиксированное число (диапазон) повторений
элемента/группы.
Relax NG
– Два варианта синтаксиса: XML и компактный, полностью
переводимые друг в друга.
– Редуцированная система типов данных,
но с возможностями расширения.
– Допускает группы с нефиксированным порядком элементов.
– Атрибуты могут использоваться при моделировании
структуры документа наравне с элементами.

Например, наличие дочернего элемента может зависеть от
определенного значения атрибута.
Продолжение — на
w3schools.com (и не только)
 Тест
на основные понятия
http://w3schools.com/xml/xml_quiz.asp
 Учебники
по XML и другим
технологиям (XPath, XSLT и др.)
Download