Автоматическая обработка естественного
Download
Report
Transcript Автоматическая обработка естественного
Автоматическая
обработка
естественного языка
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 и др.)