Геохронологическая шкала
Московский Государственный Университет Путей сообщения
(МИИТ)
Кафедра АСУ
Курсовой проект
«Разработка программных средств конвертирования HTML текстов в семантическую сеть»
Выполнила:
Студентка 5-го курса группы УИС-511 Болотова Е.А.
Проверил: Саркисян
Р.Е.
Москва 2001
Содержание:
Что такое семантическая сеть …………………………..3
Основные сведения о языке HTML …………………….3
1.Введение ………………………………………….3
2.Сруктура HTML-документа
……………………..4
Что такое фреймы ……………………………………….7
Возможности представления знаний на базе
языка HTML
……………………………………………...8
TextAnalyst 2.0 – персональная система
автоматического анализа текста ………………………..14
Принцип работы HTML-конвертора
…………………...17
Список использованных источников …………………..21
Что такое семантическая сеть
Семантическая сеть – структура для представления
знаний в виде ориентированного графа, в котором вершины – это понятия, а дуги -
отношения. Термин семантическая означает "смысловая", а сама
семантика – это наука, устанавливающая отношения между символами и объектами,
которые они обозначают, что есть наука, определяющая смысл знаков.
Самые первые семантические сети были разработаны в
качестве языка-посредника для систем машинного перевода. Однако последние
версии семантических сетей стали более мощными и гибкими и составляют конкуренцию
логическому программированию, фреймовым системам и другим языкам представления.
На сегодняшний день существует множество вариантов
семантических сетей. Их терминология и структура различаются, но существуют
сходства, присущие всем семантическим сетям:
1.
Узлы семантических сетей
представляют собой концепты предметов, событий, состояний
2.
различные узлы одного концепта
относятся к различным значениям, если они не помечены как относящиеся к одному
концепту
3.
дуги семантических сетей создают
отношения между узлами-концептами (пометки над дугами указывают на тип
отношения)
4.
некоторые отношения между
концептами представляют собой лингвистические падежи, такие как агент, объект,
реципиент и инструмент (другие означают временные, пространственные, логические
отношения и отношения между отдельными предложениями
5.
концепты организованы по уровням в
соответствии со степенью обобщенности так, как, например, сущность, живое
существо, животное, плотоядное.
Несмотря на некоторые различия, сети удобны для
чтения и обработки компьютером, а также достаточно мощны, чтобы представить
семантику естественного языка.
Наиболее часто в семантических сетях используются
следующие отношения:
-
связь типа "часть-целое"
("класс-подкласс", "множество-подмножество" и т.п.)
-
функциональные связи, определяемые
обычно глаголами "производит", "принадлежит" и т.п.)
-
количественные
("больше", "меньше", "равно" и т.п.)
-
пространственные ("близко
от", "далеко от" и т.п.)
-
временные ("раньше",
"позже" и т.п.)
-
логические связи ("и",
"или" и т.п.)
-
лингвистические связи и т.д.
Основные сведения о языке HTML
1. Введение
Все стандартные броузеры для сети Интернет используют
способы представления текстов, основанные на языке HTML. HTML
(Hyper Text Markup Language)
– это язык разметки гипертекста. Этот язык «понимают» все компьютеры, он
довольно прост, но при этом имеет достаточные выразительные средства для
удобного описания разных типов документов. Язык позволяет хранить текст в
«чистом» виде (не кодируя его), что делает возможным просмотр HTML
скриптов с помощью обычных текстовых редакторов. Этот язык предоставляет
авторам Интернет - публикаций средства:
-
представления документов,
включающих заголовки, тексты, таблицы, списки, «картинки» и т.п. элементы;
-
осуществления навигации по
отдельным документам и множеству документов путем использования гиперссылок;
-
конструирования диалоговых форм
для взаимодействия с удаленными сервисами, доступными в сети;
-
включения в документы вычисляемых
форм (spread-sheets), видео и звука, равно как и разнообразных
приложений.
Первая версия языка HTML была
разработана Т. Бернерс-Ли из Европейского Центра ядерных исследований (CERN).
В дальнейшем язык претерпел существенные изменения. К середине 90-х годов
произошла стандартизация его версий, которая стала курироваться международными
организациями. В настоящее время наиболее развитой является версия языка HTML
4.0, в которой представлены новые возможности аппаратуры и требования
производителей программного обеспечения броузеров, а также пожелания Интернет –
авторов.
2. Структура HTML-документа
В HTML – файле находится символьная информация. Часть ее –
это данные, составляющие содержимое документа, а другая часть – HTML
– теги, языковые конструкции, используемые для разметки документа и управляющие
его отображением. Для выделения тегов в тексте HTML – документа
эти конструкции берутся в угловые скобки. Обычно теги используются парами:
открывающий и закрывающий тег.
Типичный HTML – документ имеет следующую
структуру:
< ! DOCTYPE HTML PUBLIC “-//W3C//DTD
HTML 4.0//EN”
“#"6713.files/image001.jpg">
Фрагмент соответствующего HTML – текста
представлен ниже:
<html>
<head>
---------------------------------
<meta name="KEYWORDS"
content="Microsystems, TextAnalyst, text mining, knowledge discovery,
textmining, e-commerce, classification, semantic analysis, neuro networks,
natural linguistc, text processing, Микросистемы, анализ текстов, база знаний,
документооборот, классификация, семантический анализ, нейронные сети, натуральные
языки, текст процессор">
<meta
name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta
name="ProgId" content="FrontPage.Editor.Document">
<title>Microsystems,
Ltd</title>
<link
rel="stylesheet" type="text/css"
href="style.css">
</head>
-----------------------------------------------
<body topmargin="0"
leftmargin="0">
<table border="0"
cellspacing="0" cellpadding="0">
<tr>
<td valign="top" width="239"><a
href="/index.php?lang=eng"><img
border="0"
src="/images/top_logo.gif"></a></td>
<td valign="top"
align="left">
<table border="0"
cellspacing="0" cellpadding="0">
<tr><td
width="100%"><img border="0" src="/images/top_up.gif">
</td></tr>
<tr> <td
width="100%">
<table border="0"
cellspacing="0" cellpadding="0" width="100%"
<tr><td
width="100%">
-------------------------------------
</table>
</td></tr>
</table>
<!-- end menu -->
----------------------------------------------
<!-- start menu here -->
<table border="0"
cellspacing="0" cellpadding="0" width="100%">
<tr> <td width="241"
valign="top" align="left">
<table border="0"
width="100%" cellspacing="0" cellpadding="0">
<tr><td
width="100%">
<p> </p>
<p align="center">
<img border="0"
src="/images/10thyear_s.gif" width="210"
height="52">
</p>
</td></tr>
<tr><td width="100%"
valign="top" align="left">
<!-- left menu-->
<table border="0"
width="218">
<tr><td width="210"
bgcolor="#DDDDDD" valign="top" align="left">
<p
align="right"><b>Products</b></td>
</tr>
<tr
onmouseout="this.style.backgroundColor='transparent'"
onmouseover="this.style.backgroundColor='#6B8ADE'">
<td
width="210" align="right">
<a
href="/index.php?lang=eng&dir=content/products/&id=body&left=
content/products/menu.txt "
target="_self">
<span style="color: #000000;
text-decoration: none">
TextAnalyst SDK</span></a>
</td></tr>
<tr><td width="210"
align="right">
<p align="right"><img
border="0" src="/images/bd14580_.gif" width="12"
height="12">
TextAnalyst</p>
</td></tr>
<tr
onmouseout="this.style.backgroundColor='transparent'"
onmouseover="this.style.backgroundColor='#6B8ADE'">
<td width="210"
align="right">
<a
href="/index.php?lang=eng&dir=content/products/&id=
tref&left=content/products/menu.txt
" target="_self">
<span style="color: #000000; text-decoration:
none">
Text Referent</span></a>
</td></tr>
<!-- end left menu-->
----------------------------------------
</table>
<!-- end here -->
</td>
<!-- free space -->
<td valign="top"
align="left">
</td>
<!-- end free space -->
<td valign="top"
align="left" >
<!-- content started here -->
<table border="0"
cellspacing="6" cellpadding="0">
<tr> <td
width="100%" valign="top" align="left">
<head>
<meta name="DESCRIPTION"
content="TextAnalyst - personal text mining system">
<meta name="KEYWORDS"
content="TextAnalyst, personal, text mining">
<title>TextAnalyst</title>
</head>
<div align="left">
<table border="0"
align="left" cellspacing="4" cellpadding="3">
<tr> <td valign="top"
align="center" width="250">
<p
align="center"> </p>
<p align="center"><a
href="cgi-bin/stat/loadfile.pl?file=ta_rus">
<p align="center">Получите
бесплатную версию
TextAnalyst</p>
<table border="0">
<tr><td width="100%"
bgcolor="#008000">
<p align="center">
<font color="#FFFFFF">Системные требования</font></td>
</tr>
<tr><td
width="100%">Intel-based PC</td> </tr>
<tr> <td
width="100%">Windows 9X, NT, 2000, Me</td> </tr>
<tr> <td width="100%"
bgcolor="#C0C0C0">
<p align="center">
<font
color="#FFFFFF">Технические
характеристики</font></td>/tr>
<tr><td width="100%"
valign="top" align="left">
<ul>
<li> Средняя скорость анализа
текста около 1Мбайт/мин (при использовании
Pentium-II).</li>
<li>Максимальный
объем анализируемой подборки не ограничен и зависит от объема ресурсов
компьютера и настройки TextAnalyst.</li>
<li>Собственный объем TextAnalyst не
превышает 5Мб.</li>
<li>Форматы обрабатываемых
файлов:</li>
<li>*.txt (ANSI, DOS), *.rtf</li>
<li>Экспорт информации в форматы: *.txt,
*.csw (электронные таблицы).</li>
</ul> </td></tr>
</table>
-----------------------------------
<h1 align="center">
<img
border="0" src="../../images/octopus_shaden.gif"
align="left" width="99"
height="112">TextAnalyst 2.0 </h1>
<p
align="center"><b>персональная система автоматического анализа
текста </b></p>
<p>TextAnalyst разработан в качестве
инструмента для анализа содержания текстов, смыслового поиска информации,
формирования электронных архивов, и предоставляет пользователю следующие
основные возможности: </p>
<ul>
<li>анализа содержания текста с
автоматическим формированием семантической сети с гиперссылками - получения
смыслового портрета текста в терминах основных понятий и их смысловых
связей; </li>
<li>анализа содержания текста с
автоматическим формированием тематического древа с гиперссылками - выявления
семантической структуры текста в виде иерархии тем и
подтем; </li>
<li>смыслового поиска с учетом скрытых
смысловых связей слов запроса со словами текста; </li>
<li>автоматического реферирования
текста - формирования его смыслового портрета в терминах наиболее информативных
фраз; </li>
<li>кластеризации информации - анализа
распределения материала текстов по тематическим классам;</li>
<li>автоматической индексации текста с
преобразованием в гипертекст; </li>
<li>ранжирования всех видов информации
о семантике текста по «степени значимости» с возможностью варьирования
детальности ее исследования; </li>
<li>автоматического/автоматизированного формирования полнотекстовой базы
знаний с гипертекстовой структурой и возможностями ассоциативного доступа к
информации; </li>
</ul>
<p align="center"><b>Не
пугайтесь обилия возможностей!</b></p>
<p
align="center"><i>Работа с TextAnalyst покажется Вам неожиданно
простой и приятной, а его аналитические способности сэкономят массу полезного
времени...
</i></p></td> </tr>
</table></div></td> </tr>
</table>
----------------------------------
</body>
</html>
Сравнив приведенные экранную форму и HTML-текст,
видим, что семантически значимыми элементами данного документа являются:
-
ключевые слова, относящиеся к
данному документу: Microsystems, TextAnalyst, text mining, knowledge discovery,
textmining, e-commerce, classification, semantic analysis, neuro networks,
natural linguistc, text processing, Микросистемы, анализ текстов, база знаний,
документооборот, классификация, семантический анализ, нейронные сети, натуральные
языки, текст процессор (тег <META>);
-
все меню организованы в виде
таблиц (тег <TABLE>), в ячейках которых (тег <TD>)
расположены ссылки (тег <A
href …>), с помощью которых можно
перейти к другой интересующей информации. Например, можно получить информацию о
продуктах данной компании, выбрав их название из левого меню.
-
текст описания возможностей
программы TextAnalyst организован в виде списка (тег <li>).
Т.о. можно видеть, семантически значимые
характеристики документа могут быть разбросаны по разным частям документа или
по разным документам. Это сильно затрудняет семантический анализ Интернет –
документов.
Решение этой проблемы в настоящее время связано с
использованием двух подходов. Первый подход предполагает, что семантическая
разметка документа выполняется вручную его автором на основе специальных метатегов,
а второй подход связан с автоматическим или полуавтоматическим преобразованием
исходного текста в специальное семантическое представление. Целесообразно
конвертировать HTML-тест в более удобную форму представления для
дальнейшей обработки.
TextAnalyst 2.0 – персональная система автоматического анализа текста
TextAnalyst
разработан в качестве инструмента для анализа содержания текстов, смыслового
поиска информации, формирования электронных архивов, и предоставляет пользователю
следующие основные возможности:
§ анализ содержания текста с автоматическим
формированием семантической сети с гиперссылками - получение смыслового портрета
текста в терминах основных понятий и их смысловых связей;
§ анализ содержания текста с автоматическим
формированием тематического древа с гиперссылками - выявление семантической
структуры текста в виде иерархии тем и подтем;
§ смысловой поиск с учетом скрытых смысловых связей слов
запроса со словами текста;
§ автоматическое реферирование текста - формирование его
смыслового портрета в терминах наиболее информативных фраз;
§ кластеризация информации - анализ распределения
материала текстов по тематическим классам;
§ автоматическая индексация текста с преобразованием в
гипертекст;
§ ранжирование всех видов информации о семантике текста
по «степени значимости» с возможностью варьирования детальности ее исследования;
§ автоматическое/автоматизированное формирование
полнотекстовой базы знаний с гипертекстовой структурой и возможностями ассоциативного
доступа к информации.
Рассмотрим на нашем примере работу этой программы.
После запуска TextAnalyst, необходимо открыть текстовый файл, в котором
расположен HTML-документ нашего примера. Программа выполняет анализ
предложенного текста и выдает результаты (см. рисунок)
Изучив предложенный текст, TextAnalyst формирует
сеть наиболее значимых понятий, содержащихся в данном тексте. В такую включены
те термины текста, которые несут основную смысловую нагрузку. Т.о. сеть позволяет
отбросить несущественную информацию и представить содержание текста в сжатом
виде. Каждое понятие, появляющееся множество раз в различных частях текста, в
сети представлено единственным узлом. Различные формы слов для отображения в
один узел сети представляются к общей грамматической форме.
Каждый элемент сети характеризуется числовой оценкой –
смысловым весом. Связи между понятиями также характеризуются весами. Значение
смыслового веса (от 1 до 100) показывает, насколько важную роль играет понятие
для смысла всего текста, т.е. как много информации в тексте касается данного
понятия. Максимальное значение, равное 100, говорит о том, что понятие является
ключевым и представляет важнейшую тему текста. Маленькое, близкое к единице
значение показывает, что соответствующая тема лишь вскользь упомянута в тексте
и в нем очень мало информации, относящейся к данному понятию. Второе число,
стоящее перед смысловым весом, ближе к раскрытому узлу, представляет вес связи
от понятия в вершине раскрытого списка к данному. Большое значение веса связи
(близкое к 100) указывает на то, что подавляющая часть информации в тексте,
касающаяся первого, касается в то же время и второго понятия. Малое (близкое к
1) значение означает, что первое понятие слабо связано со вторым и очень мало
информации по первой теме касается в тоже время и второй.
По умолчанию на экране отображаются понятия с весом не
менее 5. Вид сети на экране можно настраивать, изменяя количество отображаемых
понятий и связей, а также способ их сортировки.
TextAnalyst предоставляет услугу автоматического реферирования. Формируемый реферат
содержит список наиболее информативных предложений текста. Это позволяет быстро
ознакомиться с содержанием текста. Подробность реферата можно настраивать, изменяя
количество формирующих его предложений. Каждое предложение характеризуется
относительной степенью значимости во всем тексте.
В нашем примере реферат выглядит таким образом:
98 анализа
содержания текста с автоматическим формированием семантической сети с гиперссылками -
получения смыслового портрета текста в терминах основных понятий и
их смысловых связей;
98 </li>
<li>анализа содержания текста с автоматическим формированием
тематического древа с гиперссылками - выявления семантической структуры текста в виде
иерархии тем и подтем;
По умолчанию на экране отображаются предложения
реферата с весами не менее 90.
Для рассматриваемого выше примераHTML-текста
описания страницы Analyst.ru фрагменты семантической сети выглядят следующим
образом:
Принцип работы HTML-конвертора
Рассмотрим в качестве примера следующее подмножество HTML-языка,
которое может быть задано следующими определениями:
HTML-text :: = <HTML> HEAD BODY
</HTML>
HEAD :: = TITLE{HEAD}| META{HEAD}| LINK{HEAD}…
TITLE :: = <TITLE> строка </TITLE>
META :: = <META
name="KEYWORDS" content="строка">
KEYWORDS :: = …
BODY :: = <BODY> HTML-BODY
</BODY>
HTML-BODY :: = PARAGRAPH{HTML-BODY}
| TABLE {HTML-BODY} | LIST{HTML-BODY} | ANCHOR{HTML-BODY} | …
PARAGRAPH :: = <P> текст
</P>
TABLE :: = <TABLE> TABLE-CELLS
</TABLE>
TABLE-CELLS :: =
STROKA{TABLE-CELLS} | …
STROKA :: = <TR> CELL </TR>
CELL :: = <TD> текст </TD>
LIST :: = <UL> LIST-ATOM </UL>
LIST-ATOM :: = …
ANCHOR :: = <A HREF=LINK> TEXT
</A>
TEXT :: = …
LINK: = …
Синтаксическая диаграмма, соответствующая этим
правилам выглядит следующим образом:
С теоретической точки зрения HTML – это
простой язык программирования с контекстно-свободной грамматикой. Для анализа HTML-текстов
можно использовать нисходящие распознаватели, реализуемые на базе метода
рекурсивного спуска. Рассмотрим продукционно-фреймовый формализм представления
знаний и разработку на его основе интеллектуальный HTML-конвертор.
Для начала необходимо задать регулярное отображение
каждого правила спецификации HTML-конструкций в соответствующий объект базы знаний на
уровне фрейма-прототипа. Система таких прототипов даст нам описание языка, а
множество фреймов-экземпляров – спецификацию конкретных и синтаксически правильных
HTML-текстов. Основные правила такого отображения таковы:
-
каждому концепту из левой части BNF-определения
ставим в соответствие имя фрейма-прототипа;
-
альтернативам из правой части BNF-определения
при этом должны соответствовать имена слотов этого фрейма;
-
для концептов-нетерминалов
соответствующий слот должен иметь тип frame;
-
для концептов-терминалов
соответствующие слоты будут, как правило, иметь тип numb или string;
-
рекурсия в BNF-определениях
заменяется итерацией, а соответствующие слоты становятся множественными.
После применения данных правил к BNF-определениям
языка HTML получим следующее множество фреймов-прототипов:
[html is_aprototype, if_added HTML();
HEADframe, restr_by head;
BODYframe, restr_by body ];
[head is_aprototype, if_added HEAD();
BODY{frame}, restr_by one_of {title,
meta, …}];
[title is_aprototype, if_added TITLE();
BODYstring ];
[meta is_aprototype, if_added META();
BODYstring ];
………………….
[body is_aprototype, if_added BODY();
SENT{frame}, restr_by one_of {header,
paragraph, table, …}];
[paragraph is_aprototype, if_added
PARAGRAPH();
[LIST is_aprototype; ATOM{frame}, if_added
LI() ];
BODYframe, restr_by text];
[table is_aprototype; if_added TABLE();
TAB{frame}, restr_by one_of
{stroka,…};]
[stroka is_aprototype, if_added TR();
CELLS{frame}, restr_by one_of{cell,…}];
[cell is_aprototype, if_added TD();];
……………………
[anchor is_aprototype;
BODYframe, restr_by text];
……………………
[link is_aprototype;
URLframe, restr_by one_of {http,ftp,…}];
MAILframe, restr_by mail];
[url is_alink; without_slot MAIL];
[http is_aurl, if_added HTTP();
SERVERstring;
DIR{string};
FILEstring];
[ftp is_aurl, if_added FTP();
SERVERstring;
DIR{string};
FILEstring];
…………………………
В соответствии с приведенными фреймами-прототипами и
синтаксическими диаграммами, можно специфицировать процедурную часть конвертора
как систему демонов, присоединенных к фреймам или к их слотам.
Спецификация одного из таких демонов представлена ниже
на языке Java:
HEAD head=null;
BODY body-null;
………….
String keyword;
Public void HTML (String name) {
Super (name);
keyword=getToken();
if (keyword.compareTo (“<HTML>”) =
=0 {
head = new HEAD (getNewName());
body = new BODY (getNewName());
};
keyword = getToken ();
if (keyword.compareTo (“</HTML>”)=
=0) return;
}
…………………
Public void (String nam) {
Super (name);
Keword=getToken();
If (keyword compareTo (“<BODY>”)
= = 0 {
paragraph = new PARAGRAPH
(getNewName());
header = new HEADER (getNewName());
table = new TABLE (getNewName());
};
keyword = getToken ();
if (keyword compareTo (“</BODY>”) = =
0) return;
}
…………………………..
}
По существу, такой демон является конструктором класса
HTML, а запуск конвертора осуществляется с помощью
оператора создания нового объекта этого класса:
HTML currPage = new HTML (get_new_name());
При этом будут рекурсивно вызываться конструкторы
других классов (на верхнем уровне это HEAD, BODY), что, в конечном
счете, приведет к построению множества фреймов-экземпляров, представляющих
анализируемую HTML-страницу.
Получение полезной в дальнейшем базы знаний
предполагает дальнейшую семантическую интерпретацию фреймового представления и
построение в конечном счете семантической сети, отражающей смысл исходного
Интернет – документа.
Список использованных источников:
1)
Т.А. Гаврилова, В.Ф. Хорошевский «Базы знаний интеллектуальных систем»,
учебник, Санкт-Петербург, «Питер», 2001
2)
www.citforum.ru
3)
www.bur.oivta.ru
4)
www.analyst.ru