Глава 1. Обзор литературы

advertisement
Санкт-Петербургский государственный политехнический университет
Физико-механический факультет
Кафедра прикладной математики
Проект допущен к защите
Зав.кафедрой
__________ В.Е.Клавдиев
"__"___________________ 2009 г.
ДИПЛОМНЫЙ ПРОЕКТ
Тема: «Разработка информационного агента (робота) информационнопоисковой системы для сбора информации в сети Интернет»
Специальность: 010200 - Прикладная математика и информатика
Выполнил студент гр.6057/2
(подпись) В.А. Малков
Руководитель, к.ф.-м.н., доц.
(подпись) А.А. Иванков
Консультант по охране труда, к.т.н., доц.
(подпись) В.В. Монашков
Санкт-Петербург
2009
Содержание
Глава 1.
Обзор литературы ...................................................................................................... 4
1.1
Актуальность проблемы поиска и сбора информации в Интернет........................... 4
1.2
Виды ИПС ....................................................................................................................... 7
1.2.1
Классификационные ИПС ..................................................................................... 7
1.2.2
Кольца ссылок ........................................................................................................ 8
1.2.3
Словарные ИПС ..................................................................................................... 8
1.2.4
Метапоисковые ИПС ............................................................................................. 8
1.3
Задачи ИПС .................................................................................................................... 9
1.3.1
Сбор информации .................................................................................................. 9
1.3.2
Формализация информационной потребности пользователя............................ 9
1.3.3
Вывод результатов поиска .................................................................................. 10
1.3.4
Перечень задач модулей абстрактной ИПС ...................................................... 11
1.4
Задачи робота ИПС ...................................................................................................... 12
1.4.1
Сбор информации ................................................................................................ 12
1.4.2
Индексирование ................................................................................................... 14
1.5
Задача лексического анализа документа и методы ее решения .............................. 17
1.5.1
Точный поиск записи в словаре.......................................................................... 18
1.5.2
Метризация множества лексем ........................................................................... 22
1.5.3
Поиск в метрических пространствах ................................................................. 26
Глава 2.
Постановка задачи, исследование, решение ......................................................... 31
2.1
Постановка задачи ....................................................................................................... 31
2.2
Разработка и анализ методов решения задачи .......................................................... 33
2.2.1
Фильтрация текста ............................................................................................... 33
2.2.2
Исследование характеристик обрабатываемых текстов .................................. 34
2
2.2.3
Адаптация алгоритма лексического анализа к документам WWW ................ 36
2.2.4
Требования к структуре данных словаря ........................................................... 37
2.2.5
Методы для точного поиска строк ..................................................................... 37
2.2.6
Метрика, заданная на множестве лексем........................................................... 41
2.2.7
Метод для приближенного поиска записей ....................................................... 42
2.3
Проектирование ........................................................................................................... 49
2.3.1
База данных .......................................................................................................... 49
2.3.2
Информационный агент ...................................................................................... 51
2.3.3
Модуль лексического анализа ............................................................................ 54
2.4
Реализация .................................................................................................................... 60
2.4.1
Разработка программы ........................................................................................ 60
2.4.2
Тестирование ........................................................................................................ 61
Глава 3.
Обсуждение результатов ......................................................................................... 62
Глава 4.
Охрана труда ............................................................................................................ 64
4.1
Введение ....................................................................................................................... 64
4.2
Помещение.................................................................................................................... 66
4.3
Микроклимат ................................................................................................................ 67
4.4
Уровень шума ............................................................................................................... 68
4.5
Рабочее место ............................................................................................................... 69
4.6
Освещение .................................................................................................................... 75
4.7
Электробезопасность ................................................................................................... 77
Глава 5.
Заключение ............................................................................................................... 80
Список литературы ..................................................................................................................... 81
3
Глава 1. Обзор литературы
1.1
Актуальность проблемы поиска и сбора информации в
Интернет
В 1995 году Федеральный Совет по Сетям США (Federal Networking Council, FNC) в
сотрудничестве с компьютерным сообществом принял резолюцию, определяющую термин
«Интернет» (Internet, Interconnected Networks). Это глобальная информационная система,
которая:

логически связана с помощью единого адресного пространства на базе IP
(Internet Protocol) или его расширенными/последующими версиями;

поддерживает передачу данных с помощью семейства протоколов TCP/IP
(Transmission
Control
Protocol/Internet
Protocol)
или
его
расширенными/последующими версиями и/или другими IP-совместимыми
протоколами;

предоставляет, использует, делает доступными, публично или персонально,
информационные услуги высокого уровня, базирующиеся на описанной выше
инфраструктуре [1].
Интернет объединяет компьютерные сети, расположенные по всему миру. На его базе
действует множество информационных услуг, таких как электронная почта, передача
файлов, и, в том числе, WWW (World Wide Web, или просто Web) – система гипертекстовых
документов и других информационных ресурсов.
Отличительная особенность гипертекстовых документов - наличие в них ссылок (в
контексте WWW называемых еще URL - Uniform Resource Locator) на другие документы в
том же либо другом формате. В данном контексте мы трактуем понятие документ
расширительно - это источник информации, хранимой в любом формате, доступном для
4
визуального восприятия. Сервер, предоставляющий информационные ресурсы WWW,
называется веб-сервером.
С
1989 года, когда были
опубликованы
первые предложения по внедрению
гипертекстовой технологии в существующую на тот момент глобальную сеть [2], количество
веб-серверов растет практически экспоненциально (рис. 1.1) [3].
Рис. 1.1. Рост количества веб-серверов с течением времени
По мере распространения поставщиков услуг доступа в Интернет и снижения цен на эти
услуги, всё больше людей получили возможность не только использовать информацию из
Сети, но и добавлять её, и, довольно часто, бессистемно. В наши дни, благодаря своей
доступности, WWW становится одним из популярнейших источников информации.
Изменение, обновление информационных ресурсов в смысле количества и качества
документов, старение хранимой информации - далеко не полный перечень процессов,
имеющих место в WWW.
Ввиду децентрализованности структуры WWW, ее архитектура и принципы построения
не
предполагали
какой-либо
контроль
и
упорядочение
содержимого.
Полезность
информации, доступной из WWW, как прагматическая ее оценка варьируется в весьма
широких пределах.
5
Рассмотрим в самом общем виде процесс получения информации. Если человек хочет
получить какую-либо информацию, говорят, что у него возникла информационная
потребность. Для её выражения он излагает неформальное описание требуемой информации,
например, в виде вопроса на естественном языке. Уже на этом этапе проблематично
обеспечить полноту такого описания: в каком контексте интерпретировать фразу, насколько
подробный требуется ответ.
Предположим теперь, что пользователь имеет некоторую информационную потребность и
ему доступно электронное хранилище информации. Хранилище может быть снабжено
информационно-поисковой системой (ИПС), реализующей некоторое множество операций
над множеством хранимых данных. Средством выполнения операций может служить форма
поиска, принимающая запросы на языке информационно-поисковой системы (ИПЯ).
Пользователю необходимо формализовать информационную потребность в терминах ИПЯ,
то есть отказаться от формулировки на естественном языке (ЕЯ) и ограничиться
несколькими словами запроса на ИПЯ. Полнота такой постановки вопроса практически
исключается. Следовательно, становится невозможным и точный на него ответ.
Степень
соответствия
документа
информационной
потребности
называют
его
пертинентностью, или когнитивной релевантностью [4]. Это субъективная оценка. Для
пользователя ИПС решающее значение имеет пертинентность информации, выдаваемой
системой на его запросы. Степень соответствия документа запросу, то есть формализованной
информационной потребности, называют системной (алгоритмической) релевантностью. Это
объективная оценка. Вычислить её, в отличие от пертинентности, возможно и без помощи
пользователя. Поэтому она часто используется ИПС для выделения подмножества
документов,
соответствующих
поисковому
запросу.
Такие
документы
называются
релевантными данному запросу.
Документ, алгоритмически релевантный запросу, может не быть пертинентным
информационной потребности пользователя. Степень соответствия оценки алгоритмической
6
релевантности
и
пертинентности
определяется
тем,
какие
алгоритмы
оценивания
реализованы на стороне ИПС, насколько хорошо ИПС «понимает» запрос на ИПЯ и
характеризует полезность ИПС для пользователя в целом.
Результатом поиска обычно является список документов, являющихся релевантными
запросу в соответствии с оценкой ИПС. Количественными критериями эффективности
поиска обычно принимают две величины: точность и полноту результата, выданного ИПС на
поисковый запрос. Точность результата – это доля пертинентных (объективно релевантных)
документов в результате поиска. Полнота – это доля найденных пертинентных в общем
числе пертинентных документов [5]. Нерелевантные документы иногда называют шумом по
отношению к релевантным, которые в этом случае называют сигналом [4].
1.2
Виды ИПС
1.2.1 Классификационные ИПС
Идея библиотечных систематических каталогов применительно к Интернету привела к
появлению классификационных ИПС. Они представляют собой систематизированные по
тематике каталоги ссылок на ресурсы WWW. Составитель самостоятельно оценивает
релевантность информационного ресурса определенной тематике и добавляет ссылку на нее
в
каталог.
Достоинством
такого
подхода
является
соответствие
содержания
информационного ресурса тематике раздела каталога, содержащего ссылку на этот ресурс.
Однако для создания и поддержания такой ИПС требуются экспертные знания в
покрываемых ИПС предметных областях, большой объем ручного труда на пополнение
каталога, обновление или удаление утративших актуальность ссылок. С точки зрения
пользователя, может оказаться недостаточно детальным или неудобным упорядочение на
уровне тематик. Примером каталога ссылок может служить сайт www.dmoz.org,
поддерживаемый большим сообществом добровольцев.
7
1.2.2 Кольца ссылок
Сходный с классификационными ИПС подход используется при организации так
называемых колец ссылок (WebRing). Сайты, посвященные одной тематике, содержат
ссылки друг на друга, образуя «кольцо», по которому пользователь может перемещаться от
сайта к сайту в поиске необходимой ему информации. Зачастую в кольце присутствует сайткоординатор, хранящий список сайтов-участников кольца. В этом случае они также хранят
ссылку
на
координатор.
Существуют
каталоги
колец
ссылок,
как,
например,
http://dir.webring.com/rw, содержащий информацию о более чем 40000 сообществ. Как и в
случае классификационных ИПС, данная схема подразумевает формирование кольца с
участием коллектива администраторов информационных ресурсов. Соответствие заявленной
тематике и полнота таких ресурсов в значительной степени субъективна. С точки зрения
пользователя, удобство работы с кольцами ссылок оценивается неоднозначно: можно как
найти кольцо по нужной тематике, так и потратить время на просмотр «мусора».
1.2.3 Словарные ИПС
Словарные
поисковые
системы
лишены
указанных
недостатков.
Множество
информационных ресурсов (документов), на которых планируется выполнять поиск,
предварительно
обрабатывается
для
составления
инвертированного
индекса.
Он
представляет собой отображение из множества слов словаря – отсюда название ИПС – на
множество документов. Поисковые запросы принимаются на определенном ИПЯ.
Инвертированный индекс позволяет при обработке запроса без больших вычислительных
затрат получить список релевантных, по критериям данной ИПС, документов, и выдать его
пользователю. Примерами словарных ИПС могут послужить Яндекс, Google.
1.2.4 Метапоисковые ИПС
На ранних этапах развития словарных ИПС для WWW качество результатов поиска было
сравнительно низким, а количество ИПС данного типа, напротив, значительно. Это
8
способствовало возникновению метапоисковых ИПС. Системы этого типа принимают
пользовательские запросы на некотором ИПЯ и перенаправляют их сразу на несколько ИПС
словарного типа, переводя запрос на их собственные ИПЯ. Результаты поиска каждой из них
объединяются, причем метапоисковая система может упорядочить ссылки на документы в
соответствии с собственными критериями оценки релевантности.
Таким образом,
пользователь освобождается от необходимости выполнять рутинную работу по отправке
запросов, выражающих одну информационную потребность, на несколько словарных ИПС.
1.3
Задачи ИПС
1.3.1 Сбор информации
Процессы постоянного обновления и старения информации в WWW приводят к тому, что
индексы словарных ИПС достаточно быстро устаревают. Поэтому возникает необходимость
обновлять индекс как можно чаще. Эту работу выполняет модуль ИПС, называемый
поисковым роботом, краулером (crawler), информационным агентом [5]. Он посещает
информационные ресурсы, предназначенные для индексирования, начиная с некоторого
исходного набора URL. Выполняются обновление устаревшей, мониторинг изменяющейся и
добавление новой информации в индекс. Подробно этап индексирования для словарных
ИПС будет рассмотрен далее.
1.3.2 Формализация информационной потребности пользователя
При работе с ИПС от пользователя требуется некоторая формализация информационной
потребности. В этом смысле словарные ИПС являются более гибкими, чем остальные
рассмотренные типы. Они принимают запросы на ИПЯ, который может обеспечивать
широкие возможности задания операций для выражения информационной потребности.
9

Булевы операторы. Например, запрос «теория AND алгоритм» дает ИПС команду
построить пересечение множеств документов, содержащих первое либо второе
слово.

Учёт морфологии языка. Это может быть способность ИПС «понимать» различные
формы одного и того же слова, например по запросу «печь» будет проведен поиск
документов и со словом «печка».
Еще один способ выражения информационной потребности состоит в постановке перед
ИПС задачи поиска документа, похожего, в каком-то определенном смысле, на документобразец, указанный пользователем. Перечисленные возможности предоставляет, например,
поисковая система «Яндекс» в режиме расширенного поиска (http://yandex.ru/advanced.html).
Нечто среднее между поиском по запросу на ИПЯ и использованием каталога ссылок
представляет собой поиск с помощью словарной ИПС документов заданной тематики. От
ИПС в этом случае требуется на этапе индексирования выделять множество тематик и
сортировать по ним документы.
1.3.3 Вывод результатов поиска
После того, как пользователь составил свой запрос, происходит его интерпретация
поисковой системой. В этот этап входят лексический, синтаксический разбор выражениязапроса, работа с индексом. Для обеспечения быстродействия поискового интерфейса
пользователя ИПС важно, чтобы вся эта работа не потребовала больших вычислительных
затрат.
Учитывая неизбежность огрубления описания информационной потребности на этапе
формализации, велика вероятность ошибочной оценки непертинентных документов как
релевантных. Вывод результатов поиска должен обеспечивать пользователю минимум
усилий по выбору пертинентных и отсеву непертинентных документов. Для этого список
10
результатов выводят в порядке убывания релевантности, включая в него фрагменты текста
документов.
1.3.4 Перечень задач модулей абстрактной ИПС
Обобщив вышесказанное, приведем перечень задач, решаемых модулями абстрактной
ИПС.

Загрузка
с
WWW-сервера
информационного
ресурса,
адрес
которого
предварительно получен каким-либо способом.

Структурный анализ документа: распознавание в документе заголовков и других
способов выделения фрагментов текста, влияющих на оценку релевантности.

Лексический анализ документа: идентификация слов текста в словаре ИПС,
удаление несущественных лексем.

Грамматический анализ документа в соответствии с грамматикой ЕЯ: определение
части речи и грамматической формы лексемы.

Синтаксический анализ документа: определение, какими членами предложения
являются лексемы. Это позволяет разрешить референций дополнений, указанных
местоимениями, на существительные – прецеденты, что может изменить вес этих
лексем-существительных при оценке релевантности документа [6].

Семантический анализ документа. Например, построение векторной модели
документа для последующей оценки его релевантности запросам.

Индексирование информации, хранимой на стороне ИПС.

Систематизация накопленной информации.

Предоставление пользователям интерфейса для создания и выполнения поисковых
запросов.

Предоставление пользователям результатов поиска в форме списков адресов
ресурсов, релевантных формализованному запросу на информацию.
11
1.4
Задачи робота ИПС
1.4.1 Сбор информации
Рассмотрим процесс сбора информации ИПС на примере прототипа Google [7]. Для
работы с объемами информации, исчисляемыми миллиардами веб-страниц, Google
использует распределённую систему сбора информации. Модуль «URL-провайдер»
поставляет ссылки нескольким роботам, работающим распределенно. Каждый робот
поддерживает порядка сотни соединений одновременно, используя собственный DNS-кеш.
Полученные роботами веб-страницы помещаются в хранилище для последующего анализа и
индексирования.
Список ссылок, которые должен обработать робот, формируется путем анализа ранее
полученных локальных копий документов. Адаптивный подход предполагает расстановку
приоритетов загрузки ресурсов по некоторому критерию. Больший приоритет отдается часто
обновляемым информационным ресурсам.
В некоторых случаях посещение роботом информационных ресурсов может быть
нежелательным.
Например,
обработка
веб-сервером
запросов
от
роботов
создает
дополнительную нагрузку на него. На страницах сайта может быть опубликована
информация для личного пользования, появление которой в списке результатов поиска
нежелательно для автора. В 1994 году было принято соглашение о способе ограничения
посещения веб-серверов роботами. Было предложено использовать файл с именем robots.txt,
размещенный в корневом каталоге веб-сервера и имеющий особый формат. Он позволяет
администратору сервера рекомендовать роботам (всем или некоторому их подмножеству,
определяемому именами роботов) подмножество ресурсов сервера, которые нужно
анализировать, а также периодичность таких проверок [8].
В дополнение к файлу robots.txt создают карту сайта (sitemap). Она представляет собой
XML-файл стандартизованной схемы, содержащий список
12
URL страниц сайта с
метаданными, такими как дата и время обновления, частота обновления, важность по
сравнению с остальными ресурсами данного сайта. URL карты сайта указывается в файле
robots.txt [9].
Для взаимодействия с веб-серверами предназначен протокол HTTP (Hyper Text Transfer
Protocol).
В
число
его
основных
возможностей
входят
получение
содержимого
информационного ресурса с веб-сервера, отправка пользовательских данных на веб-сервер.
Помимо содержимого, в тексте ответа веб-сервера на НТТР-запрос обычно присутствуют
такие метаданные, как дата и время последнего обновления содержимого, его формат, размер
и другая дополнительная информация [9].
Язык гипертекстовой разметки HTML (Hyper Text Markup Language) допускает наличие
на некоторых веб-страницах форм. Результатом заполнения формы служит URL,
содержащий текст полей. Заполненная форма может открывать доступ к содержимому вебсервера, на которое отсутствуют прямые ссылки из других документов или карты сайта.
Такое содержимое получило название «Глубокая Паутина» (Deep Web). Считается, что она
может содержать не меньше информации, чем доступная по обычным ссылкам часть WWW.
Для получения содержимого «Глубокой Паутины» в Google разработан полностью
автоматизированный подход, название которого можно перевести как «вывод на
поверхность» (surfacing approach). Из обработки исключаются формы, содержащие такие
поля, как «Имя пользователя», «Пароль». Большинство форм содержит несколько полей, и
перечисление всевозможных элементов декартова произведения множеств содержимого
каждого поля неэффективно. Google генерирует несколько сотен вариантов заполнения
формы на основе анализа уже полученных страниц. Документы, доступные через
сгенерированные URL, могут быть проиндексированы подобно любым другим вебстраницам. Это позволяет использовать существующую инфраструктуру ИПС и допускает
включение страниц «Глубокой Паутины» в результаты поиска [10].
13
Часть «Глубокой Паутины» может быть доступна лишь в результате исполнения кода
JavaScript, содержащегося в веб-странице, что создает дополнительные трудности и является
предметом исследования в Google. Индексирование Flash-содержимого уже реализовано и не
относится к «Глубокой Паутине». Для этого Adobe предоставляет средство для извлечения
из Flash-роликов текста и ссылок.
Полученные роботом веб-страницы могут быть непригодны для анализа и нуждаться в
предварительной обработке. Причинами служат некорректный HTML-код, неверное
указание текстовой кодировки или его отсутствие и многое другое. Выявление кодировки
является предметом статистического анализа текста. В результате предварительной
обработки в хранилище помещаются документы, приведенные к стандартной кодировке
ИПС и соответствующие требованиям гипертекстовой разметки.
1.4.2 Индексирование
Термин «индексирование» означает выражение содержания документа и/или смысла
информационного
запроса
на
информационно-поисковом
языке
[11].
Процесс
индексирования может состоять из таких операций, как:

отбор терминов, описывающих документ;

взвешивание терминов в соответствии с предполагаемой важностью терминов;

классификация и определение отношений между терминами.
В большинстве ИПС для описания содержания документов и запросов используются
полученные таким образом множества терминов с весами. Расчеты весовых коэффициентов
обычно основаны на частоте появления данного термина в документе или частоте его
появления во всех доступных документах, а также с учетом положения термина внутри
документа (например, в заголовке) и взаимного расположения терминов в тексте. Во всех
существующих методах индексирования применяется процедура исключения некоторых
высокочастотных терминов, которые заведомо не являются ценными для отражения
14
содержания документа. Для исключения общеупотребительных слов, к которым относятся
предлоги, союзы, артикли, вспомогательные глаголы, частицы, местоимения и т.п.,
используются стоп-словари. Стоп-словарь (стоп-лист, стоп-список, отрицательный словарь)
– это словарь служебных и неинформативных терминов, которые не должны входить в число
терминов индексирования. Число служебных слов в отрицательном словаре составляет
обычно несколько сотен, в зависимости от системы [4].
В контексте словарных ИПС под индексированием понимают построение индекса –
структуры
данных,
пригодной
для
выполнения
поисковых
запросов
с
малыми
вычислительными затратами. Индексом сокращенно называют обратный индекс – структуру
данных, хранящую отображение из множества слов в множество документов. Прямой индекс
– структура данных, хранящая отображение из множества документов в множество слов [4].
Векторная модель документа
Многие современные алгоритмы индексирования и поиска текстовой информации
основаны на векторной модели документа. В ней каждому терму ti в документе d j
сопоставляют неотрицательный вес wij . То же самое выполняют для запроса q , сопоставляя
каждому его терму ti неотрицательный вес wi . Пусть freqij - частота использования
(количество вхождений) ti в документ d j . Нормализованная (по всем документам) частота
использования терма ti в документе d j определяется следующим образом:
tf ij 
freqij
max freqil
,
l
а в качестве веса терма ti в документе d j принимают величину, учитывающую, насколько
часто данный терм используется в других документах коллекции:
wij  tfidf ij  tf ij  log
15
ni
,
N
где ni - количество документов, содержащих терм ti , а N - общее количество документов
в коллекции. Тогда каждый документ и запрос можно представить в виде n -мерного вектора
d j  ( w1 j ,...wkj ) ,
где k - мощность множества всех различных термов во всех документах. Близость
документа d j к запросу q оценивается как корреляция между векторами их описаний [5].
При применении данного подхода к созданию ИПС для WWW проявился следующий его
недостаток. Создатели веб-страниц имеют возможность включить в текст документа
популярные термины поисковых запросов в неограниченном количестве, что необязательно
соответствует содержанию документа. В результате ИПС высоко оценивает релевантность
таких веб-страниц, тогда как пертинентность их оказывается невелика.
Для решения это проблемы разработчики Google предложили PageRank – метод оценки
значимости веб-страниц, основанный на топологии сети ссылок в WWW. Идея заключается в
предположении, что значимость веб-страницы тем выше, чем больше других веб-страниц
содержит ссылки на нее и чем больше их собственная значимость [7].
Учет морфологии языка
Многие ИПС при обработке поискового запроса учитывают морфологию ЕЯ, на котором
составлен запрос. Поиск автоматически выполняется не только по указанным в запросе
словоформам, но и по однокоренным словам. Например, Яндекс не только применяет для
поиска известные словоформы слов запроса, но и генерирует возможные варианты
словоформ для неизвестных ему слов [12].
Учет семантики слов
Помимо статистических подходов для вычисления релевантности документов, интенсивно
исследуются методы, учитывающие семантику слов в запросах и документах. Между
словами естественных языков можно обнаружить различные смысловые отношения.
16
Например, отношения, обусловленные наличием логических связей между предметами и
явлениями, обозначаемыми словами. Например: стол и стул - мебель; лампа и свет - причина
- следствие; лопата и экскаватор - функциональное сходство [13]. Из этих примеров видно,
что смысл поискового запроса или фрагмента документа может быть выражен абсолютно
разными с точки зрения лексики единицами речи. Статистические методы, такие как
векторная модель документа, данное обстоятельство не учитывают.
Для машинного применения семантической информации создаются специальные
словари, хранящие семантические отношения между словами. Отдельной проблемой
является
представление
этой
информации
в
компьютере.
Широко
используются
семантические сети. Сеть можно представить в виде маркированного ориентированного
графа с помеченными узлами и дугами. Узлам соответствуют некоторые объекты, а дугам семантические отношения между ними [13].
Примером
семантической
сети
является
база
данных
WordNet
(http://wordnet.princeton.edu/). В ней различные части речи сгруппированы по смысловому
сходству. Каждая группа выражает некоторое отдельное понятие. Группы взаимосвязаны
между собой посредством семантических и лексических отношений. Полученная сеть может
просматриваться пользователями с помощью специального ПО, а так же использоваться
разработчиками ПО через программный интерфейс. Разработка базы WordNet ведется
добровольцами, она постоянно совершенствуется. Появляются версии для различных
языков.
1.5
Задача лексического анализа документа и методы ее
решения
Будем предполагать, что слово (лексема) – это цепочка символов. Словарь хранит
отображение
из
множества
слов,
являющихся
ключами,
во
множество
записей,
представляющих произвольную дополнительную информацию, сопоставленную с ключами.
17
Целью лексического анализа документа является идентификация слов, из которых он
состоит, то есть сопоставление каждому слову в документе соответствующей ему записи
словаря. Решение такой задачи предполагает разработку методов организации словаря для
эффективного поиска в нем записей по ключу.
Данная задача усложняется, если допустить, что текст может содержать слова с
ошибками, опечатками, или отсутствующие в словаре словоформы. Потребуется выполнять
поиск записи не по точному ключу, а по приближенному в некотором смысле. Будем
называть отсутствующие в словаре слова (новые словоформы, слова с ошибками или
опечатками) неизвестными, а содержащиеся в словаре слова - известными.
1.5.1 Точный поиск записи в словаре
Аргументом поиска (запрашиваемым ключом, запросом) будем называть слово, для
которого требуется найти соответствующую запись в словаре. Пусть N
- мощность
множества ключей словаря.
Отметим, что поиск записи с заданным ключом эквивалентен поиску этого ключа.
Например, найдя ключ в массиве записей, дополнительную информацию можно получить,
обратившись по адресу с некоторым фиксированным смещением от адреса ключа. Либо
вместе с ключом можно хранить ссылку на область данных с дополнительной информацией
[14].
Последовательный поиск
Очевидный способ поиска записи в массиве – последовательно перебирать ключи,
останавливаясь, когда найден ключ, совпадающий с запрашиваемым. Сложность такого
поиска составит в худшем случае O ( N ) операций сравнения ключей.
Предположим, что распределение вероятностей различных запросов не является
равномерным. Например, Ципф установил, что в естественных языках n -е по частоте
употреблений слово встречается
с частотой, обратно пропорциональной
18
n
[15].
Следовательно, поиск в словаре каждого слова текста на естественном языке будет иметь
аргументы, распределенные по Ципфу. Предварительно отсортируем ключи в порядке
уменьшения частоты обращения к ним. Тогда последовательный поиск в упорядоченном
словаре будет выполняться примерно в
1
ln N раз быстрее, чем в неупорядоченном словаре
2
[14].
Поиск путем сравнения ключей
Пусть U - множество ключей словаря. Рассматриваемые далее методы поиска сравнением
ключей требуют, чтобы над ключами записей словаря было определено отношение
линейного порядка. Это отношение, обозначенное символом «  », должно удовлетворять
следующим свойствам:

a, b U

a, b, c U

a, b U
a  bb  a  a  b;
a  bb  c  a  c ;
a bb  aa b.
Бинарный поиск в упорядоченном массиве ключей имеет сложность O (log N ) . Вариации
этого метода включают и поиск Фибоначчи. Он также имеет логарифмическую сложность,
но меньший множитель-константу [14].
Приведённые методы пригодны для словаря фиксированного размера, поскольку вставка
и удаление элементов в массив записей с сохранением его упорядоченности трудоёмки. Для
обеспечения возможности вставки и удаления записей словаря используют дополнительные
структуры данных над множеством записей словаря.
Бинарное дерево поиска в точности соответствует бинарному поиску на массиве ключей.
Математическое ожидание высоты (длины наибольшего пути из корня в лист) построенного
случайным образом бинарного дерева составляет O (log N ) . Все основные операции (поиск,
вставка, удаление ключа) в таком дереве выполняются в среднем за время O (log N ) [16]. В
19
худшем случае высота такого дерева может достигать числа его узлов, а время, требуемое
для поиска ключа, составит O( N ) .
AVL-дерево и красно-черное дерево, являющиеся сбалансированными, позволяют
гарантированно выполнять основные операции (поиск элемента по ключу, вставка и
удаление элемента) за время O (log N ) [16].
В качестве альтернативы сбалансированным деревьям предложены «слоеные» списки
(skip lists). Это результат применения вероятностного подхода к линейным спискам, дающий
в среднем логарифмическое время работы для операций поиска, вставки и удаления записи.
В узлах «слоеного» списка хранятся указатели не только на следующий элемент, но и на
некоторые последующие. Это позволяет пропускать часть списка при поиске. В результате
слоеный список для N ключей в среднем требует O ( N ) единиц памяти, а сложность
операций поиска, вставки и удаления ключа составляет в среднем O (log N ) [17].
B-дерево является сильноветвящимся сбалансированным деревом поиска и имеет высоту
O (log N ) . B-дерево порядка m содержит в узлах ключи количеством до m  1 и указатели на
дочерние узлы, число которых не более m . Узлы образуют страницы, которые удобно
загружать с медленного носителя только при необходимости. Добавление и удаление ключей
затрагивает минимум страниц. Операции поиска, вставки и удаления записи занимают время
O (log N ) [14]. Этот метод целесообразно применять для организации поиска записей
словаря, хранящихся в низкоскоростной внешней памяти. Например, в случае, если
количество записей настолько велико, что невозможно разместить их все в оперативной
памяти.
Цифровой поиск
Вместо сравнения ключей можно воспользоваться тем, что ключи представимы в виде
последовательности цифр или букв. Эту идею применяют в методах цифрового поиска.
20
Цифровое дерево поиска (рис. 1.2) имеет узлы, помеченные буквами. Указатели на
дочерние узлы хранятся в поле-массиве каждого узла. Каждое поддерево хранит окончания
строк, имеющих некоторый общий префикс, определяемый путем от корня до данного узла,
поэтому такие деревья иногда называют префиксными. На рисунке показано цифровое
дерево для множества слов as, at, be.
[корень]
[B]
[A]
B
A
[S]
S
[E]
[T]
T
E
Рис. 1.2. Цифровое дерево
В данном представлении любой узел цифрового дерева может иметь до A дочерних
узлов, где A - алфавит для хранимых строк. Следовательно, для хранения ссылок на
дочерние узлы в каждом узле должно быть предусмотрено поле-массив с A элементами.
Или должна использоваться какая-либо динамическая структура данных для хранения
ссылок только на существующие дочерние узлы. Сложность поиска ключа не зависит от
количества хранимых ключей N и составляет O (l ) сравнений символов, где l - длина
искомой строки-ключа.
Направленный ациклический граф слов (directed acyclic word graph, DAWG) является
развитием идеи цифрового дерева. Он хранит в узлах не только общие префиксы, но и
остальные общие подстроки, чем достигается экономия памяти [18].
Метод PATRICIA (Practical Algorithm to Retrieve Information Coded in Alphanumeric)
предназначен для работы с большими ключами переменной длины. Он исключает наличие
21
цепочек узлов с единственным потомком, что возможно для обычных префиксных деревьев.
Оценка количества сравнений символов при поиске ключа составляет O (log N ) [14].
Известна комбинация последнего метода и B-дерева, называемая строковым B-деревом
(String B-Tree), предназначенная для поиска на множестве ключей, хранимых во внешней
памяти. Сложность основных операций (в терминах количества обращений к внешнему
носителю) составляет O (log N ) [19].
В методе тернарных деревьев применена идея цифрового поиска, но память используется
значительно экономнее. На практике он лишь немногим медленнее цифровых деревьев.
Авторы метода экспериментально показывают, что он также превосходит по скорости
поиска методы, основанные на хешировании, и является одним из быстрейших методов
поиска на множестве строк. Для сбалансированного тернарного дерева требуется время
O (log N  k ) для операций вставки, поиска и удаления ключей, где N - количество ключей,
k - их длина [20].
Хеширование
Методы, основанные на хешировании, имеют время работы в среднем O (1) , но, в отличие
от методов со сбалансированными деревьями, не обеспечивают удовлетворительную
верхнюю границу времени поиска. Недостатком можно считать и необходимость заранее
выделять область памяти под хеш-таблицу, т.е. заранее должно быть известно количество
ключей, которые будут в ней храниться [14].
1.5.2 Метризация множества лексем
Если на множестве ключей словаря задать меру близости, то может быть поставлена
задача о поиске записи по приблизительному ключу.
Если ключи представлены в виде векторов в конечномерном пространстве, то в качестве
меры близости для них можно применить метрики
22
max xi  yi ,
i
x y
i
i
,
i
( xi  yi )
2
,
i
где x , y - векторы, i - индекс компоненты.
В приложениях, ориентированных на обработку текста, где ключами являются строки,
часто удобнее в качестве меры близости количественно выразить стоимость преобразования
одной строки в другую. Будем обозначать записью x длину строки x .
Для строк равной длины служит расстояние Хемминга. Оно равно количеству позиций, в
которых символы первой и второй строки различны:
hammingdist ( x, y )  {i : 0  i  x  x[i ]  y[i ]} ,
где x[i ] обозначает символ строки x , а y[i ] - символ строки y в позиции i [21].
Для строк различной длины можно использовать расстояние Левенштейна. По сравнению
с расстоянием Хемминга, дополнительно допускаются операции вставки и удаления
символа. Часто его называют еще редактирующим расстоянием [21].
В методе n-грамм (n-grams) близость строк определяется количеством общих подстрок
определенной длины. Для строк x и y , между которыми вычисляют меру близости,
формируют множества S x , S y
подстрок длины n , n  min( x , y ) . Меру близости
вычисляют, например, следующим образом:
gramdist ( x, y ) 

x[ g ]  y[ g ] ,
gS x S y
где x[ g ] - количество вхождений n-граммы g в строку x [23].
23
Редактирующее расстояние
Пусть  - конечный алфавит. Пусть * - это множество цепочек (строк) в алфавите  .
Обозначим через S  * множество всевозможных строк конечной длины в алфавите  .
Далее под строками будем понимать строки конечной длины в конечном алфавите.
Метрика Левенштейна определяется следующим образом. Рассмотрим
операции
редактирования строки (  обозначает пустой символ):
1. вставка символа  ( , a ) ;
2. удаление символа  (a,  ) ;
3. замена символа  (a, b), a  b .
Каждой
операции
последовательности
сопоставлена
операций
равна
стоимость,
сумме
обычно
стоимостей
равная
операций,
1.
Стоимость
входящих
в
последовательность.
Редактирующее расстояние (далее – просто расстояние) d ( x, y ) : S  S 
между
строками x и y определяется минимальной стоимостью последовательности операций
редактирования, преобразующих строку x в y .
Если расширить набор операций редактирования еще одной:
4. перестановка соседних символов  (ab, ba ), a  b ,
(при условии, что эти символы являются смежными в обоих словах), то получим метрику
Дамерау (Damerau) [24].
Функция редактирующего расстояния удовлетворяет свойствам метрики:
1. Рефлексивность:
d ( x, y )  0  x  y
2. Неотрицательность:
x, y  S d ( x, y )  0
3. Симметричность:
24
x, y  S d ( x, y )  d ( y, x)
4. Неравенство треугольника:
x, y, z  S d ( x, z )  d ( x, y )  d ( y, z )
Таким образом, множество конечных строк вместе с метрикой Левенштейна образуют
метрическое пространство M ( S , d ) .
Данная метрика обладает свойством:
0  d ( x, y )  max( x ; y ) .
Алгоритм вычисления редактирующего расстояния Вагнера-Фишера (Wagner-Fisher) [21]
использует метод динамического программирования. Пусть требуется вычислить d ( x, y ) .
Вычисляются элементы матрицы C( x  1, y  1) по следующим правилам:
1. Ci ,0  i ;
2. C0, j  j ;
Ci 1, j 1 , xi  y j

3. Ci , j  
.
1  min(Ci 1, j , Ci , j 1 , Ci 1, j 1 ), xi  y j
Тогда
d ( x, y )  C x , y .
Элемент
Ci , j
равен
минимальному
количеству
операций
редактирования, необходимых, чтобы преобразовать x1..i в y1.. j (префиксы строк x и y
длиной i и j соответственно). Сложность данного алгоритма составляет O( x  y ) . Он
является одним из наиболее гибких для вычисления различных вариантов функции
редактирующего расстояния [21].
Существуют и более эффективные алгоритмы вычисления редактирующего расстояния.
Алгоритм Масек-Патерсон (Masek-Paterson) [21], накладывающий ограничения на весовую
функцию для операций редактирования, требует O(
n2
n2
) времени и O(
) памяти ( n log n
log n
длина большей из двух строк, между которыми вычисляется расстояние), но лучшая
асимптотическая оценка по сравнению с алгоритмом Вагнер-Фишер проявляется на практике
25
только для строк значительной длины. Например, для случая бинарного алфавита лучшая
производительность достигается только для строк длиной более 262418 символов [21].
Алгоритм
Юкконена
(Ukkonen),
основанный
на
методе
динамического
программирования, требует O (dm) времени и памяти, где d - расстояние между строками,
m - наименьшая из их длин. Он хорошо подходит в тех случаях, когда строки похожи, т.е.
редактирующее расстояние между ними невелико [21].
1.5.3 Поиск в метрических пространствах
Задав метрику d на множестве допустимых объектов X , определив конечное множество
поиска U  X , можно решать задачи поиска в метрическом пространстве M ( X , d ) , которые
формулируются следующим образом.

Поиск по диапазону (Range search). Дан запрос q  X . Найти все элементы U ,
находящиеся на расстоянии не более r от q , т.е. множество {u U | d (q, u )  r} .

Ближайший сосед (Nearest Neighbor, NN). Дан запрос q  X . Найти ближайший к
q элемент множества U , т.е. {u U | v U d (q, u )  d (q, v)} .

k -Ближайших соседей ( k -Nearest Neighbor). Дан запрос q  X . Найти k
ближайших
к
q
элементов
множества
U,
т.е.
множество
{A  U | A  k  u  A, v U  A d (q, u)  d (q, v)} .
В ряде работ различных авторов рассматриваются частные случаи поставленных задач.
Перечислим основные направления исследований и результаты.

Векторные
пространства.
дополнительную
информацию
Специализированные
о
координатах.
методы
используют
Разработаны
оптимальные
алгоритмы поиска ближайшего соседа. Среди наиболее популярных методов: kdдеревья, R-деревья, quad-деревья, X-деревья. Поскольку методы для векторных
пространств хорошо исследованы, часто к ним пытаются свести задачи на объектах
26
другой природы, таких как изображения (которые трудоемко сравнивать как
векторы) или строки. Однако существующие методы чрезвычайно чувствительны к
размерности векторного пространства. Алгоритмы поиска ближайшего соседа и
поиска по диапазону зависят от неё экспоненциально («curse of dimensionality»,
«проклятие размерности») [22; 25].

Отображение
метрических
пространств
на
векторные,
так
называемое
проецирование [25]. Целью является найти такое отображение объектов исходного
метрического пространства в некоторое векторное пространство, в котором
вычисление метрики выполняется эффективнее.

Метрические пространства общего вида (general metric spaces). Известны
результаты успешного применения методов, использующих только информацию о
расстоянии, для векторных пространств (M-деревья) [25]. В целом, методы для
метрических пространств можно классифицировать как по применяемой функции
расстояния:
o непрерывная функция расстояния;
o дискретная функция расстояния,
так и по типу используемой структуры данных:
o древовидные структуры данных;
o прочие структуры данных.
В таблице 1.1 представлены актуальные алгоритмы поиска в метрических пространствах в
соответствии с обзором [25] и их основные характеристики.
Таблица 1.1
Сравнение методов поиска в метрических пространствах
27
Сокр. назв.
BKT
FQT
FHQT
FQA
VPT
MVPT
VPF
BST
GHT
GNAT
VT
MT
SAT
AT
AESA
LC
Полное назавание
Древовидная Дискрет. d
Burkhard–Keller tree
+
+
fixed queries tree
+
+
fixed-height fixed queries tree
+
+
fixed queries array
+
vantage-point tree
+
multi-vantage-point tree
+
vantage point forest
+
bisector tree
+
generalized-hyperplane tree
+
geometric near-neighbor access tree
+
Voronoi tree
+
M-tree
+
spatial approximation tree
+
antipole tree
+
approximating eliminating search algorithm
list of clusters
-
Сложн. по памяти Сложн. по времени
Θ(n )
n^ α
O(n logn )
n^ α
O(nh )
logn^b
Θ(nhb )
logn^b
logn*
Θ(n )
logn*
Θ(n )
n^(1-α) logn*
Θ(n )
Θ(n )
Θ(n )
Θ(nm^2 )
Θ(n )
Θ(n )
Θ(n )
Θ(n )
Θ(n^2 )
Θ(n )
n^(1- Θ(1/ loglogn))
O(1)**
-
*Только для небольших диапазонов поиска
**Эмпирическое заключение
Обозначения: n - количество ключей, 0    1 - коэффициент, зависящий от структуры
метрического пространства и диапазона поиска, h - высота дерева, b - количество хранимых
в узле ключей (bucket size), m - количество дочерних узлов.
Существование большого количества методов поиска в метрических пространствах
обусловлено тем, что данная область задач, а также их трудоемкость, еще не вполне
исследованы.
Приближенные методы поиска в метрических пространствах
Как и другие задачи, не имеющие достаточно эффективных точных методов, задача
поиска в метрических пространствах исследуется в контексте приближенных методов
решения.
Расстояние от x  X до множества T  X определяется следующим образом:
d ( x, T )  inf yT d ( x, y ) .
Приблизительный ближайший сосед (Approximate Nearest Neighbor, ANN). Задача,
обозначаемая (1   )-ANN , ставится следующим образом. Дан запрос q  X , задан   0 .
Найти a U : d ( q, a )  (1   )d ( q,U ) .
28
Пусть T  X . Открытым шаром радиуса r с центром x  X в T  X называют
множество
BT ( x, r )  { y  T : d ( x, y)  r} .
Внутренняя размерность (doubling dimension) метрического пространства общего вида
M ( X , d ) определяется как наименьшее k , такое что любой шар в U радиуса r может быть
покрыт 2 k шарами радиуса
r
[26]. Будем обозначать далее внутреннюю размерность как
2
dim( X ) .
В работе [26] доказан ряд утверждений о вычислительной и пространственной сложности
методов поиска в метрических пространствах общего вида. Предложены методы решения
задачи
(1   )-ANN , отвечающие выведенным оценкам. Приведем здесь некоторые
результаты.

Для любого метрического пространства M ( X , d ) и любого фиксированного
0 
2
5
трудоемкость решения (1   )-ANN составляет не менее 2(dim( X ))
вызовов процедуры вычисления метрики. Для вероятностных алгоритмов такова
трудоемкость в среднем. Приводится пример соответствующего алгоритма. Он
имеет пространственную сложность O( N 3 ) .

Приводится пример 3-ANN алгоритма, имеющего временную сложность O (log N )
и пространственную - O( N ) . То есть, начиная с некоторого порогового значения
параметра точности, существуют приближенные алгоритмы, решающие задачу
(1   )-ANN эффективно.
29
Трудоемкость задач поиска в метрических пространствах
Важным этапом анализа алгоритмов является оценка их вычислительной сложности и
требований к объему памяти.
Сложность перечисленных выше задач поиска в метрических пространствах в настоящее
время интенсивно исследуется, однако результаты пока есть лишь для некоторых частных
случаев этих задач.
Для известных методов поиска в метрических пространствах общего вида, требующих не
более O( N ) памяти, оценка времени поиска составляет ( N 1 ) , где   0 - константа,
характеризующая метод. Вероятно, это связано с тем, что метрические пространства общего
вида не дают достаточно конкретной информацию о своей структуре, чтобы решать задачи
на них эффективно [27]. Результатов по сложности приближенного поиска для строк пока
практически нет [28]. Эффективный поиск в пространстве строк с метрикой Левенштейна
является открытой проблемой [22].
30
Глава 2. Постановка задачи, исследование, решение
2.1
Постановка задачи
Требуется расширить возможности существующей ИПС. Она состоит из базы данных
(БД), служащей для централизованного хранения и обмена информацией, и модулей
различного назначения, таких как прототип робота для сбора информации, анализаторы,
пользовательский интерфейс.
Целью работы является создание модуля информационного агента (ИА) ИПС. Он должен
осуществлять сбор информации из WWW и выполнять её предварительную обработку.
Сбор информации должен производиться следующим образом. ИА получает список URL
документов из БД. Выполняется их загрузка из WWW по протоколу HTTP.
Затем ИА при помощи дополнительных сервисов обрабатывает загруженные документы.
В их число могут входить:

Модуль для преобразования документов в плоский текст

Лексический анализатор

Статистический анализатор для представления документов в векторной модели

Другие средства обработки документов
Результаты обработки должны сохраняться в БД. Взаимодействие с БД должно
производиться по протоколам семейства TCP/IP.
Программные модули ИА должны исполняться на ПК под управлением ОС Windows.
Нельзя использовать библиотеки сторонних разработчиков с закрытым исходным кодом.
ИА должен экономично использовать оперативную память. Модуль лексического разбора
должен хранить необходимую ему информацию (словарь) в оперативной памяти, чтобы
исключить повышенную нагрузку на внешнее запоминающее устройство (ВЗУ).
Архитектура ИА должна предусматривать параллельную работу нескольких его
экземпляров таким образом, чтобы исключить какие-либо из возможных конфликтов
31
совместного доступа к БД, равно как и дублирование работы друг друга. При этом
экземпляры ИА могут быть запущены одновременно как на одном, так и на нескольких ПК.
Исходный код ИА должен быть переносимым, допуская сборку программы для
исполнения под управлением ОС Linux.
Как составную часть работы над ИА, необходимо создать модуль, реализующий сервис
лексического анализа. Входными данными для него будут служить словарь и документы для
анализа.
Словарь представляет собой множество записей. Каждая запись содержит слово в
качестве ключа и некоторые дополнительные данные («словарная статья», коэффициент
семантической значимости лексемы и любую другую информацию, связанную со словомключом записи). Способ хранения словаря может варьироваться. В качестве рабочего
варианта для хранения словаря в рамках данной работы будет использоваться текстовый
файл, содержащий в каждой строке слово-ключ, коэффициент значимости этой лексемы, и,
возможно, другие поля, разделенные пробелами.
Считать, что документы перед лексическим анализом уже преобразованы в плоский текст
одним из сервисов. Далее в контексте лексического анализатора будем под документом
понимать плоский текст, полученный из него.
Целью лексического анализа является идентификация лексем входного документа. То
есть, каждому слову текста должна быть
сопоставлена словарная статья. Если
соответствующей слову записи в словаре не обнаружено, данное слово отмечается как
неопознанное.
Дополнительной задачей лексического анализатора является удаление семантически
ненагруженных лексем.
Выходными данными лексического анализатора служит последовательность ссылок или
идентификаторов, обеспечивающих непосредственный (без поиска) доступ к записям
32
словаря. Модульная архитектура ИПС ставит еще одну дополнительную задачу: разработать
подходящий формат для передачи выходных данных другим модулям ИПС.
2.2
Разработка и анализ методов решения задачи
2.2.1 Фильтрация текста
В процессе лексического анализа целесообразно удалить элементы текста, которые не
понадобятся при дальнейшей обработке документа. Такими элементами в контексте
решаемых нами задач являются знаки препинания, числа, слова-сокращения и др.
Для оценки коэффициента релевантности документа следует учитывать в нем, по
возможности, только семантически нагруженные лексемы. Соответственно, семантически
незначимые лексемы (СНЛ) следует удалять уже на стадии лексического анализа.
Упорядочим слова текста в порядке убывания их частоты. Порядковый номер слова в
таком упорядочении называется рангом слова. Дж. К. Зипф установил, что семантически
значимыми можно считать слова, чьи ранги принадлежат некоторому диапазону (рис. 2.1)
[15, 29].
Рис. 2.1
Семантическая значимость определенной лексемы не является одинаковой для различных
предметных областей. Если перед лексическим анализом документа задать предметную
33
область, в рамках которой впоследствии будут выполняться поисковые запросы, то
представится возможность адаптивно оценивать семантическую значимость лексем. То есть,
значимость отдельной лексемы будет зависеть от выбора предметной области. Это не
исключает и более общий подход, когда указание предметной области не является
обязательным.
Будем называть стоп-списком множество лексем, подлежащих удалению. В него войдут
СНЛ для выбранной предметной области, и, возможно, другие лексемы. Целесообразно
хранить признак семантической значимости лексемы в поле дополнительной информации
соответствующей записи словаря.
2.2.2 Исследование характеристик обрабатываемых текстов
Чтобы изучить особенности работы алгоритмов лексического анализа на множестве
документов, которые предстоит обрабатывать ИА, было проведено предварительное
исследование. В качестве исходных данных использовались документы различной тематики
и стилей изложения на английском языке. Таким образом, была получена достаточно
представительная выборка документов по основным типам информационных ресурсов,
доступных в WWW. Документы были вручную загружены и сгруппированы по нескольким
категориям.
1. Техническая документация. Руководства по программному обеспечению, статьи об
алгоритмах
и
структурах
данных,
обзоры
аппаратного
обеспечения.
Характеризуются наличием специальных терминов, сокращений.
2. Художественная литература. Тексты различных произведений. Характеризуются
богатым языком и наличием устаревших словоформ.
3. Неформальное общение. Тексты сообщений интернет-форумов. Характеризуются
наличием разговорных и письменных сокращений, большим количеством опечаток
и орфографических ошибок.
34
Целью исследования является оценка следующих количественных показателей для
указанных категорий текстов:

соотношение между количеством известных и неизвестных слов (см. п. 1.5);

соотношение между количеством уникальных и повторяющихся в пределах
документа неизвестных слов.
В качестве словаря использован список английских слов, содержащий около 110000
записей. Подсчеты проведены при помощи модуля лексического анализа. В таблице 2.1
собраны полученные результаты. Указаны доли известных и неизвестных лексем, а также
доли уникальных и повторяющихся лексем в числе неизвестных для каждой категории
текстов.
Таблица 2.1
Результаты исследования документов
Техническая документация
Художественная литература
Неформальное общение
Общая доля лексем, % Доля в числе неизвестных, %
Известных Неизвестных Уникальных Повторяющихся
89
11
16
84
96
4
14
86
86
14
11
89
Полученные результаты позволяют сделать ряд выводов.
1. В текстах, созданных человеком (и для человека), доля известных лексем велика и
составляет около 90% от общего числа слов в документе.
2. Многие неизвестные слова встречаются в документе неоднократно. Доля
уникальных
(в документе) неизвестных слов составляет
примерно
15%.
Следовательно, в общем числе слов документа их доля составляет лишь 1,5%.
3. Меньше всего неизвестных лексем содержат тексты литературных произведений,
больше всего – тексты неформального общения. Вероятно, это объясняется тем,
что последние содержат большое количество опечаток и словоформ естественно
сложившейся терминологии (ЕСТ).
35
2.2.3 Адаптация алгоритма лексического анализа к документам WWW
Результаты предварительного исследования дают основания утверждать, что доля
неизвестных слов в текстах документов из WWW составляет около 10%. Методы точного
поиска записей превосходят по скорости методы приближенного поиска на порядки.
Следовательно, алгоритм работы лексического анализатора нужно построить так, чтобы
сначала предпринималась попытка идентифицировать каждую лексему документа методом
точного поиска. Затем для неопознанных точным поиском лексем следует построить список
возможных лексем-кандидатов методом приближенного поиска.
Второй результат наблюдений – вывод о том, что 85% неизвестных слов в тексте
повторяются,
т.е.
встречаются
не
менее
двух
раз.
Выполнения
дорогостоящего
приближенного поиска на повторных вхождениях неизвестных слов можно избежать. Для
этого следует сохранять уникальные результаты приближенного поиска в кеш результатов –
дополнительную структуру данных, обеспечивающую быстрые добавление и поиск
результатов по слову-ключу. Это потребует дополнительной памяти, однако количество
уникальных неизвестных слов при обработке документов по одной тематике, относительно
невелико (15%), и записей в кеше будет всего около 1,5% от общего количества слов в
документе. Для экономии памяти (за счет быстродействия) размер кеша можно ограничить.
Чем больше повторных вхождений неизвестных слов в тексте, тем существеннее окажется
выигрыш от использования кеша. Можно ожидать сокращения количества вызовов
процедуры приближенного поиска примерно в 5-6 раз.
Третье наблюдение: можно предположить, что если неизвестное слово повторяется в
документе многократно, то это – корректная, но неизвестная словарю словоформа. Собрать
статистику о доле каждого из неизвестных слов удобно при добавлении и поиске в кеше,
сопоставив с каждой записью кеша счетчик обращений. Затем выработать эвристическое
правило, которое определяет пороговое значение доли вхождений, при превышении
36
которого лексема считается новой словоформой. Так можно при помощи лексического
анализатора формировать список лексем-кандидатов на добавление в словарь.
2.2.4 Требования к структуре данных словаря
Сформулируем общие условия и требования к структурам данных для организации поиска
по словарю английского языка.

В качестве ключей выступают строки средней длины 10 символов [20],
максимальной – 45 символов [30]. В исключительных случаях могут встречаться и
более длинные ключи. В основном, это названия химических соединений и другие
специальные термины.

Структура данных должна быть экономичной с точки зрения использования
оперативной памяти. Предполагаемая мощность множества поиска составляет
порядка 105 - 106 ключей.

Структура данных должна полностью храниться в ОЗУ компьютера во избежание
интенсивного обмена данными с ВЗУ.

Во время работы программы множество записей словаря неизменно.
Для решения этой задачи проведем анализ метода хеширования: он требует небольшого
количества дополнительной памяти, а постоянство множества записей словаря позволит
создать хеш-таблицу заранее известного размера.
2.2.5 Методы для точного поиска строк
Хеш-таблица
Для точного поиска на множестве записей словаря сформируем хеш-таблицу с
разрешением коллизий при помощи линейных списков. Размер хеш-таблицы примем равным
мощности множества поиска U с тем, чтобы математическое ожидание длины списка
каждой ячейки составляло один элемент. Чтобы обеспечить константное время в среднем для
37
выполнения операций вставки, удаления, поиска элемента в хеш-таблице, достаточно, чтобы
размер хеш-таблицы был пропорционален количеству хранимых ключей [16]. Именно
поэтому необходимо знать количество ключей в момент создания хеш-таблицы.
Воспользуемся хеш-функцией для строк, предложенной в работе [20]. Она эффективна и
хорошо распределяет строки [20]. Пусть S - строка, t - размер хеш-таблицы.
HASHFUNC( S , t )
i  0, n  0
while
i  Length[ S ]
n  31* n  S [i ]
return
n mod t
Дополнительно отметим, что благодаря использованию строк в качестве ключей, даже в
случае коллизии при просмотре соответствующего линейного списка для принятия решения
о переходе к следующему его элементу достаточно будет сравнить лишь несколько первых
символов строк-ключей.
Тернарные деревья поиска
Тернарные деревья поиска на практике превосходят по быстродействию хеш-таблицы,
проигрывая им по объему дополнительной памяти [20]. Существующие алгоритмы для
тернарных деревьев позволяют эффективно добавлять и искать данные по ключу-строке. Для
сбалансированного тернарного дерева требуется время O (log N  k ) для операций вставки,
поиска и удаления ключей, где N - количество ключей, k - их длина [20]. В настоящей
работе не рассматриваются специальные подходы для балансирования тернарных деревьев.
Вместо этого используется наблюдение из [20, 31] о том, что при добавлении ключей в
случайном порядке характеристики тернарного дерева приближаются к характеристикам
сбалансированного тернарного дерева.
Каждый тернарного дерева узел имеет следующие поля:

SplitChar - символ;
38

LoKid , EqKid , HiKid - указатели на дочерние узлы.
Любое из этих полей может быть пустым в зависимости от положения узла в дереве.
Рассмотрим процедуру добавления узла в тернарное дерево. Обозначения: p - ссылка на
поле, указывающее на узел или место, куда его нужно добавить, S - добавляемая строка, i текущая позиция в строке S .
INSERT(
if
p, S , i )
p  NIL
SplitChar[ p ]  S [i ]
if
{создаем новый узел с очередным символом строки}
S [i ]  SplitChar[ p ]
INSERT( LoKid [ p ], S , i )
else if
S [i ]  SplitChar[ p ]  i  Length[S ]
INSERT( EqKid [ p ], S , i
 1)
{продвигаемся по строке}
else
INSERT( HiKid [ p ], S , i )
Пример тернарного дерева для множества ключей {ink, as, it} показан на Рис. 2.1.
I
A
N
S
K
T
AS_DATA
INK_DATA
IT_DATA
Рисунок 2.1
Пунктирной стрелкой показаны указатели EqKid , сплошной - LoKid и HiKid . Узлылистья в поле SplitChar вместо символа хранят ссылку на данные, сопоставленные с
соответствующим ключом.
39
Рассмотрим рекурсивную процедуру поиска ключа в тернарном дереве. Выполняется
поиск ключа S , начиная с узла p . В зависимости от символа, хранимого в текущем узле,
процедура переходит к одному из дочерних узлов. Если текущий символ строки совпадает с
символом в узле, осуществляется переход в узел EqKid и переход к следующему символу
строки.
SEARCH(
if
p, S , i )
p  NIL
return
if
i  Length[ S ]
return
if
false
{достигнут конец строки: ключ найден}
true
{можно вернуть данные, сопоставленные с текущим узлом}
S [i ]  SplitChar[ p ]
{переход в левое поддерево}
return SEARCH( LoKid [ p ], S , i )
else if
S [i ]  SplitChar[ p ]
{переход в правое поддерево}
return SEARCH( HiKid [ p ], S , i )
else
return SEARCH( EqKid [ p ], S , i
 1)
{переход к след. символу и в среднее поддерево}
Возвращаемое значение «истина», если ключ найден в дереве, и «ложь» в противном
случае. В реальных приложениях возвращают дополнительные данные, сопоставленные с
найденным ключом.
В числе достоинств тернарных деревьев поиска следует отметить экономию памяти при
хранении в них ключей с одинаковым префиксом. Общий префикс хранится в виде
единственной цепочки узлов. В условиях решаемой задачи, с использованием словарей
естественных языков, содержащих заметное количество групп слов с одинаковыми
префиксами, это преимущество может быть нами использовано.
40
Дополнительные замечания к рассмотренным методам точного поиска
В работе [20] авторы показывают, что методы хеширования и тернарных деревьев
являются одними из самых эффективных для организации словарей со строками в качестве
ключей.
Подсчет переходов по указателям LoKid , EqKid и HiKid при поисках всех ключей
дерева показал, что не следует добавлять в дерево ключи в лексикографическом порядке.
При этом либо поле LoKid , либо поле HiKid узлов остается незаполненным. Проигрыш в
среднем времени поиска по сравнению со сбалансированным деревом оказывается
существенным: 275%. В то же время, при случайном порядке добавления ключей, проигрыш
во времени составляет лишь 14% [20].
2.2.6 Метрика, заданная на множестве лексем
Поскольку входными данными для лексического анализатора являются тексты вебстраниц, созданные человеком, они могут содержать слова с орфографическими ошибками
или опечатками. Доля таких слов относительно невелика: около 10% по результатам
предварительного исследования. Тем не менее, для того, чтобы не лишаться части
информации, хранящейся в тексте, необходимо при лексическом анализе распознавать и
такие слова.
Следует, однако, учитывать, что перед нами стоит задача не только исправления опечаток,
но и распознавания отсутствующих в словаре словоформ. Долю неизвестных слов можно
уменьшить, дополняя словарь, однако это требует участия человека – редактора словаря.
Улучшить работу лексического анализатора, повысив долю распознанных лексем, можно,
реализовав приближенный поиск по словарю.
Определим, что такое близость (сходство) ключа записи к запросу. Для наших задач
естественно считать близкими следующие типы пар ключей.

Слово с опечаткой и то же слово в правильном написании: «shound» и «sound».
41

Две словоформы одной и той же основы: «arrogance» - известная и «arrogancy» неизвестная (устаревшая форма написания). Считаем, что дополнительной
информации о морфологии слов нет. Имеется только корректная словоформа в
словаре.
Для указанных случаев в качестве меры близости (функция сходства) двух слов
(хранящихся как строки), хорошо подходят метрика Левенштейна [32], она же
«редактирующее расстояние», или метрика Дамерау (добавляется операция транспозиции)
[24].
Выбор метрики Левенштейна для сравнения словоформ имеет следующие достоинства.

80% опечаток исправляется при помощи одной операции редактирования [24].

Работает не только для английского языка, но и для многих других (исключение:
языки с иероглифами и некоторые другие).

Есть возможность модифицировать метрику (учет морфологии).
2.2.7 Метод для приближенного поиска записей
Требования к методу приближенного поиска
Сформулируем требования к методу приближенного поиска по словарю. Они частично
совпадают с требованиями к методу точного поиска.

Характеристики строк-ключей совпадают с таковыми для случая точного поиска

Структура данных должна быть экономичной в использовании оперативной
памяти. Приемлемая верхняя граница дополнительных расходов памяти составляет
O ( N ) , где N - количество хранимых ключей.

Диапазон поиска будет обычно составлять одну или две операции редактирования.
При больших диапазонах количество лексем, предлагаемых как варианты
распознавания неизвестной лексемы, может доходить до десятков.
42

Эффективность точного поиска (диапазон нулевой величины) несущественна,
поскольку для него применяется другой метод.
Анализ подходящих методов
Учитывая, что в задаче поиска по словарю мы имеем дело со строками в качестве
объектов метрического пространства и редактирующим расстоянием в качестве метрики,
анализируются
методы,
ориентированные на
дискретную
метрику и
метрическое
пространство общего вида: BK-tree, FQ-tree, FHQ-tree, FQ-array. В работе [33] авторы
сравнивают эти структуры данных. Перечислим их основные результаты ( N обозначает
количество ключей, хранимых в дереве).

Для словаря из 500000 слов общим размером 5 Мбайт наиболее быстрым является
BK-дерево.

Дополнительные расходы памяти для BK-дерева составляют O ( N ) .

Для поиска в диапазоне r  1 просматривается 5%-8% узлов, вычислительная
сложность алгоритма составляет O( N 0.6..0.7 ) операций вычисления расстояния.

Для поиска в диапазоне r  2 просматривается 17%-25% узлов, вычислительная
сложность алгоритма составляет O( N 0.8..0.9 ) операций вычисления расстояния.

Для поиска в более широких диапазонах вычислительная сложность поиска
составляет приблизительно O ( N ) .

Точный поиск (диапазон r  0 ) требует в среднем O (log N ) операций вычисления
расстояния.
Сопоставляя характеристики BK-дерева с выдвинутыми требованиями к поисковой
структуре данных, приходим к выводу, что этот метод хорошо подходит к решению
поставленной задачи.
FQ-, FQH-деревья отличаются от BK-деревьев наличием фиктивных узлов, добавляемых
при построении деревьев с целью сократить количество вычислений расстояния при поиске.
43
FQ-, FQH-деревья требуют больше памяти, чем BKT, а эффективность поиска улучшается
незначительно. FQ-массив - это более компактное табличное представление FQH-дерева с
аналогичными характеристиками [25].
BK-деревья
BK-дерево (Burkhard-Keller Tree) является одним из первых предложенных методов
поиска в метрическом пространстве [34]. Метод включает в себя два этапа: предварительная
обработка множества поиска и выполнение поисковых запросов.
В процессе предварительной обработки из элементов множества поиска строится
поисковая структура данных – BK-дерево. Каждый узел node хранит ключ key[node] –
элемент множества поиска и имеет некоторое количество дочерних узлов child i [node] с
индексами i .
Построение BK-дерева с корневым узлом node для множества V
выполняется в
соответствии со следующей рекурсивной процедурой.
BUILD( V , node )
p  x V
{выбираем произвольный элемент множества}
key[node]  p
i  0
{строим разбиение
V
на подмножества
Vi  {v V : d (v, p)  i}
Vi  
{ d ( v,
p)
Vi }
вычисляет расстояние}
BUILD( Vi , child i [node] ) { i -ое поддерево строится для
Ui }
На каждом шаге текущее множество V разбивается на конечное число подмножеств
Vi  {v V : d (v, p)  i} ,
состоящих из элементов, удаленных в точности на расстояние i
от элемента,
сохраненного в текущем узле node . Дочерний узел с индексом i является корнем поддерева,
хранящего элементы Vi .
44
На рис. 2.2 показан пример BK-дерева для множества строк {tree, trie, till, true, free, look,
lift} и расстояния Левенштейна в качестве метрики.
tree
3
1
trie
1
till
4
look
2
true
3
free
lift
Рис. 2.2
Рассмотрим процедуру вставки элемента с ключом x в BK-дерево с корневым узлом
node .
INSERT( node, x )
dist  d (key[node], x )
{расстояние между ключом текущего узла и новым}
if (child dist [node]  NIL)
{пусто ли поддерево, соотв. расстоянию
key[child dist [node]]  x
dist ?}
{доб. дочерний узел, соотв. расстоянию
dist }
else
INSERT( child dist [node], x ) {доб.
x
в поддерево с корнем
child dist [node] }
Процедура вставки ищет узел, к которому в качестве дочернего добавляется узел,
соответствующий новому элементу.
Процедура поиска элемента по диапазону принимает в качестве параметров запрос q и
диапазон r . Она начинает частичный обход BK-дерева от корня.
Находясь в некотором узле, соответствующем элементу a , для дальнейшего поиска
достаточно просмотреть дочерние узлы с индексами из множества
{i : d ( q, a )  r  i  d ( q, a )  r} .
Докажем это утверждение.
45
Доказательство. Пусть q - запрос, r - диапазон поиска, a - элемент, хранимый в текущем
узле, x - один из искомых элементов:
d ( q, x )  r .
Запишем неравенство треугольника:
d (a, x )  d (a, q)  d ( q, x ) ,
d ( a , q )  d ( a , x )  d ( x, q) .
Из трех последних неравенств следует:
d ( a, q)  r  d ( a, x )  d (a , q)  r .
Таким образом, любой искомый элемент x находится в указанных пределах расстояний
от
a . Достаточно просматривать только те поддеревья текущего узла, которые
соответствуют расстояниям в этих пределах.⊠
Приведем псевдокод процедуры поиска по диапазону.
RANGE_SEARCH( node, q, r )
if (d ( q, key[node])  r )
yield ( node)
{если текущий ключ в диапазоне}
{возвращаем данный узел в числе результатов}
for i  {l : d ( q, key[node])  r  l  d ( q, key[node])  r  l  0}
{выбираем поддеревья}
RANGE_SEARCH( child i [node], q, r ) {для дальнейшего поиска}
Эвристики для строковых BK-деревьев
Алгоритм построения BK-дерева не обеспечивает его сбалансированности. Поэтому время
поиска в худшем случае может составлять O ( N ) . Однако можно ожидать сокращения
времени поиска, уменьшив высоту BK-дерева, заполняя промежуточные уровни более
плотно. Мы исследовали характер хранимых в BK-дереве ключей и предлагаем варианты
оптимизации быстродействия алгоритмов на BK-дереве.
Рассмотрим некоторый узел BK-дерева v . Пусть
46
lmax  max s
sU
- максимальная длина строки в множестве поиска U . Тогда по свойству редактирующего
расстояния между самыми удаленными строками расстояние равно
d max  max d ( s1, s2 )  lmax .
s1 ,s2U
Следовательно, любой узел BK-дерева для множества U имеет не более lmax дочерних
узлов.
Введем функцию
Qw (r)  {u U : d ( w, u)  r} ,
равную мощности подмножества слов множества поиска U , находящихся от слова w на
расстоянии ровно r . На рис. 2.3 показаны графики Qw ( r ) для слов «wk», «hieroglyphic», и
график, усредненный по всем словам словаря.
Qw(d)
Зависимость количества слов от расстояния
60000
50000
40000
30000
20000
10000
0
wk
hieroglyphic
среднее
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
d
Рис. 2.3
Если значения Qw ( r ) рассмотреть как случайную величину с параметром r , можно
вычислить стандартное отклонение  w для набора её значений при r  [1; lmax ] . Оно
характеризует равномерность графика Qw ( r ) .
47
Набор значений Qw ( r ) для слова «wk» имеет наименьшее стандартное отклонение, для
слова «hieroglyphic» - наибольшее среди всех слов словаря, на котором выполнялось
исследование.
Построим для множества поиска U BK-деревья с корнями «wk» и «hieroglyphic». Из
графика следует, что поддеревья корня «wk» будут наполнены равномернее (между собой),
чем поддеревья корня «hieroglyphic».
Аналогичными рассуждениями для дочерних узлов корня можно предположить, что,
выбрав для них слова словаря с возможно меньшим значением  w , мы обеспечим для них
равномерное наполнение поддеревьев.
Выдвинем гипотезу о том, что помещая ключи в BK-дерево в порядке увеличения  w ,
начав с ключа с наименьшим его значением, удастся сократить среднее время поиска по
приближенному ключу. Из графиков Qw ( r ) также можно заключить, что большинство слов
словаря имеет близкое к наилучшему возможному распределение значений Qw ( r ) . Однако
некоторые слова, в число которых входит и «hieroglyphic», в качестве корня поддерева
подходят плохо.
Сбор статистики для построения словаря
Вычисление Qw ( r ) для всех слов словаря – трудоемкая операция, требующая вычисления
расстояния между всеми возможными парами слов словаря и, следовательно, занимающая
2
время O ( U ) . Предложим эффективные способы ее оценки, основанные на нашем
исследовании.
1. Для каждого слова
w
вычислять
Qw ( r )
для случайного подмножества
U ` U небольшой мощности.
2. Упорядочение ключей словаря в порядке возрастания  w показало, что  w имеет
тенденцию к росту вместе с длиной ключа (рис. 2.4 – значения  w и длины ста
48
случайных слов из словаря). Следовательно, можно помещать ключи в BK-дерево,
отсортировав их в порядке возрастания длины.
Связь σ(w) с длиной слова
14
12
Длина слова
10
8
6
4
2
0
5500,00
6500,00
7500,00
8500,00
9500,00
10500,00
σ(w)
Рис. 2.4
2.3
Проектирование
Укажем основные архитектурные решения, выбранные при проектировании и разработке
ИА и модуля лексического анализа. В данном разделе применяются терминология и
диаграммы языка UML (Unified Modeling Language) [35].
2.3.1 База данных
Для снабжения ИА URL документов, сохранения результатов обработки загруженных
документов, разработана структура БД, показанная на рис. 2.5.
49
crawlerlog
url
pages
id
PK
id
crawlerid
msg
time
urlid
FK2
url
updateperiod
lastvisit
querycounter
errorcounter
lasttaken
crawlerid
FK1
PK
id
PK
urlid
body
lexed
FK1
FK1
crawlers
id
PK
connected
Рис. 2.5 Структура БД ИА
Она включает следующие таблицы:

url – таблица, хранящая список URL документов, подлежащих обработке или уже
обработанных;

crawlers – таблица для регистрации в ИПС экземпляров ИА;

pages – таблица для сохранения загруженных и обработанных документов;

crawlerlog – таблица для диагностических сообщений от экземпляров ИА.
При параллельной работе нескольких экземпляров ИА таблицы БД (и ссылки на
документы для загрузки!) становятся критическим ресурсом: каждый экземпляр в любой
момент времени может попытаться обновить информацию в БД. Для решения этой задачи
решено использовать в качестве объекта синхронизации саму БД. Это возможно благодаря
тому, что операции над таблицами БД (добавление, обновление записей) выполняет
атомарно, т.е. следующая операция (быть может, запрошенная другим клиентом БД) не
начинает выполняться до завершения предыдущей.
Приведем пример взаимодействия экземпляра ИА с БД.
1. Запущен экземпляр ИА. Он устанавливает соединение с БД и регистрируется в
ИПС путем добавления новой записи в таблицу crawlers. Поле id этой таблицы
имеет свойство AUTOINCREMENT, означающее, что добавление записи влечет
автоматическое присвоение ей очередного идентификатора. Он присваивается
50
данному экземпляру ИА. Добавление записи - это атомарная операция, т.е. ни один
другой экземпляр ИА не получить тот же самый идентификатор. Экземпляр ИА
сохраняет значение поля id добавленной им записи во внутреннюю переменную и
использует его для последующего взаимодействия с БД.
2. Экземпляр ИА резервирует фиксированное (указанное в конфигурационном файле)
количество записей таблицы url, помечая, что они приняты в обработку. Для этого
он обновляет поля lasttaken (время принятия в обработку) и crawlerid (уникальный
идентификатор экземпляра ИА). Обновление полей выполняется как атомарная
операция, следовательно, ни один другой экземпляр ИА не сможет зарезервировать
те же записи таблицы url.
3. Экземпляр ИА считывает значения поля url зарезервированных им записей и
выполняет загрузку и обработку соответствующих документов.
4. При сохранении результатов ИА обновляет поля lastvisit, querycount, errorcount,
crawlerid таблицы url. Значение поля crawlerid устанавливается в NULL. Результаты
загрузки и обработки документа сохраняются в таблицу pages. Поле body содержит
загруженный документ в формате HTML, поле lexed – метатекст – результат
лексического анализа.
2.3.2 Информационный агент
Проектируемый ИА должен обеспечивать автоматический сбор и предварительную
обработку информации из WWW. Он должен выполнять следующие основные функции.

Инициализация в соответствии с настройками, указанными в конфигурационном
файле.

Получение списка URL документов для загрузки из удаленной БД.

Загрузка документов по протоколу HTTP.

Обработка загруженных документов с помощью дополнительных модулей.
51

Сохранение результатов обработки документов в удаленную БД.
ИА должен допускать одновременную работу нескольких экземпляров с общей удаленной
БД без дублирования работы друг другом.
Требуется реализовать дополнительный модуль обработки загруженных документов –
лексический анализатор.
Диаграмма развертывания
В соответствии с постановкой задачи, ИА должен взаимодействовать с удаленной БД.
Экземпляров ИА может быть запущено несколько, и, возможно, на различных компьютерах.
Для работы компонента ИА (Robot), на каждом компьютере должны быть размещены
исполняемый файл (robot.exe) и файл словаря (dictionary.txt).
Продемонстрируем эти сведения на диаграмме развертывания (рис. 2.6).
Рис. 2.6 Диаграмма развертывания
Диаграмма компонентов
Компонент – это повторно используемая часть программного обеспечения, реализующая
определенное
функциональное
свойство
системы
[35].
Выполним
иерархическую
декомпозицию проектируемой системы и, на основании сведений из постановки задачи,
конкретизируем компоненты ИА (рис. 2.7).
52
Рис. 2.7. Диаграмма компонентов
Центральным компонентом ИА является Модуль Загрузки Документов (Downloader). Он
содержит точку входа в программу ИА и инкапсулирует процесс ОС. Данный компонент
обращается к другим компонентам через их интерфейсы.
Для загрузки документов из WWW ИА обращается к системной библиотеке,
предоставляющей программный интерфейс Berkeley Socket API. Подмножество функций
этой библиотеки, используемых ИА для работы по протоколу HTTP, назовем HTTPAccess.
Для взаимодействия с БД используется набор функций (интерфейс DBAccess)
промежуточной библиотеки, скрывающей детали общения с конкретной реализацией БД.
Интерфейс модуля лексического анализа, доступного в качестве библиотеки, назовем
DocumentProcessor.
Диаграмма деятельности
Продемонстрируем процесс лексического анализа на уровне Модуля Загрузки Документов
распределенный между основным модулем ИА (Robot) и модулем лексического анализа
(Lexer) (рис. 2.8).
53
Рис. 2.8. Диаграмма деятельности
При включении в систему дополнительных сервисов обработки загруженных документов,
поток управления будет аналогичным образом передаваться и в другие модули.
2.3.3 Модуль лексического анализа
Основные операции модуля ЛА:

инициализация;

лексический анализ текста;

завершение работы.
54
Инициализация
В начале работы модуль ЛА загружает словарь из указанного в качестве параметра файла.
Формат файла – текстовый. При загрузке словаря модуль строит поисковые структуры
данных для быстрого поиска в соответствии с выбранными методами.
По окончании инициализации модуль ЛА должен быть готов к выполнению ЛА текстов.
Лексический анализ текста
При вызове процедуры анализа модуль получает в качестве параметра плоский текст. В
ходе анализа он формирует выходной мета-текст (формат которого требуется разработать).
Мета-текст содержит идентификаторы распознанных лексем, информацию о достоверности
лексем, распознанных приближенным методом, а также нераспознанные лексемы.
Процедура лексического анализа будет вызываться ИА многократно по мере поступления
документов на обработку.
Завершение работы
Модуль лексического анализа должен освободить занимаемые ресурсы.
Диаграмма вариантов использования
ИА обращается к модулю лексического анализа с единственной целью: выполнить анализ
некоторого текста. Лексический анализатор при этом может, в зависимости от настроек,
дополнительно выполнить подсчет лексем для представления входного документа в
соответствии с векторной моделью. Без лексического анализа вектор документа вычислить
невозможно. Составленная по этому описанию диаграмма вариантов использования
представлена на рис. 2.9.
55
Рис. 2.9 Диаграмма вариантов использования
Действующим лицом по отношению к лексическому анализатору выступает ИА (Robot).
Схема работы лексического анализатора
Уточним приведенный выше вариант использования «Анализ документа» («Parse
Document»). Для этого составим схему работы модуля лексического анализа.
1. Модуль лексического анализа принимает на вход документ в виде плоского текста.
2. Из текста выделяются слова; знаки препинания, цифры и другие символы, не
входящие в состав слов, игнорируются.
3. Выполняется идентификация каждой лексемы текста.
a. Точный поиск в словаре (поисковая структура данных - хеш-таблица).
b. Точный поиск в кеше результатов (поисковая структура данных - тернарное
дерево).
c. Приближенный поиск в словаре (поисковая структура данных - BK-дерево).
4. Результат приближенного поиска (если он выполнялся) сохраняется в кеш.
По этому описанию составлена диаграмма деятельности для модуля лексического анализа,
представленная на рис. 2.10.
56
Рис. 2.10. Диаграмма деятельности для модуля лексического анализа
Словарь предметной области
Рассмотрим подробнее часть модуля лексического анализа, обеспечивающую быстрый
поиск и идентификацию лексем в словаре. Для идентификации классов модуля лексического
анализа составим словарь терминов этой предметной области.

Лексический анализатор (Lexer) – ключевая абстракция, инкапсулирующая
операции и данные для выполнения лексического анализа текстов.

Документ (Document) – хранит загруженный текст документа из WWW.

Диспетчер поиска по словарю (DictionarySearcher) – объект, выполняющий поиск
записей словаря различными методами.

Запись словаря (Record) – ключ и дополнительные данные (RecordData),
сопоставленные с ним.

Поисковый запрос (Query) – лексема, которую требуется идентифицировать и
максимальное редактирующее расстояние, в пределах которого должны находиться
ключи искомых записей.
57

Результат поиска (Match) – идентификатор записи словаря, удовлетворяющей
параметрам поиска.

Поисковые структуры данных (HashTable, BKTree) – объекты, реализующие
конкретные методы поиска, разработанные при анализе задачи.

Кеш
результатов
поиска
(TSTree)
–
объект,
сохраняющий
результаты
приближенного поиска на случай повторных запросов.
Диаграмма классов
Продемонстрируем на рис. 2.11 диаграмму классов модуля лексического анализа,
спроектированную по словарю предметной области.
Рис. 2.11 Диаграмма классов
Данная диаграмма конкретизирует внутренние классы модуля лексического анализа,
обеспечивающие его поисковые функции для быстрой идентификации лексем. Отметим, что
для экономии памяти поисковые структуры данных (хеш-таблица и BK-дерево) построены
над общим хранилищем записей словаря DictionaryStorage.
58
Формат результата лексического анализа
Необходимо разработать формат данных для передачи результатов ЛА другим модулям
ИПС. Учитывая, что обмен информацией между модулями планируется через БД, а также
текстовую природу данных, решено использовать текстовый формат с идентификаторами,
называемый мета-текстом.
Результат лексического анализа – это последовательность идентификаторов записей
словаря, соответствующих известным лексемам. Помимо этого, для неизвестных лексем
анализатор предлагает несколько наиболее близких известных лексем-кандидатов в качестве
замены. Наконец, могут остаться нераспознанные неизвестные лексемы.
Опишем язык мета-текста при помощи грамматики.
meta_text  lexeme_list | e
lexeme _ list  lexeme lexeme _ list | lexeme
lexeme  match | no _ match
match  exact _ match | approximate _ match
exact _ match  index
approximate _ match  {word
suggestion _ list}
suggestion _ list  suggestion
suggestion _ list | suggestion
suggestion  index:distance
no _ match  ? word
Курсивом обозначены нетерминалы. Обычным шрифтом – терминалы. e обозначает
пустую цепочку. meta _ text - начальный нетерминал. Чтобы не загромождать описание
грамматики, в качестве терминалов указаны условные обозначения со следующими
значениями:

index - целое неотрицательное число, индекс записи словаря;

word - неизвестное слово из входного текста;
59

distance - редактирующее расстояние, на котором находится лексема-кандидат из
словаря.
Также терминалами являются символы { , } , ? , : и пробел.
Предложенный формат удобен тем, что без труда читается как программно, так и
человеком, что позволяет контролировать результаты лексического анализа визуально.
Приведем пример фрагмента текста и соответствующего ему мета-текста.
…the Atari 800. As a point of reference, the IBM Selectric keyboard is…
…97124 ?atari 5193 0 71953 65116 78982 97124 46567 {selectric 30563:1} 52251 50764…
2.4
Реализация
2.4.1 Разработка программы
Для реализации ИА выбран язык программирования C++, сочетающий возможность
написания эффективного кода с поддержкой парадигмы объектно-ориентированного
программирования (ООП). Первое свойство дает возможность создавать программы с
небольшими дополнительными расходами памяти и процессорного времени. Поддержка
ООП позволяет напрямую перенести проектные решения, включая структуру модулей и
классов, в программный код. Кроме того, язык C++ позволяет создавать переносимый код,
для него существуют компиляторы на многих платформах. Разработка велась в среде Visual
Studio 2003, 2005.
Для БД выбрана СУБД MySql 5.0. Она поддерживает локальное и удаленное
взаимодействие через TCP/IP, проста в настройке и использовании. Доступна для многих
платформ.
ИА выполнен как консольное приложение, поскольку рассчитан на автономную работу
без участия пользователя. Для настройки ИА служит текстовый конфигурационный файл,
хранящий параметры доступа к БД и «расписания» загрузки документов.
60
Соединение с веб-серверами
выполняется при помощи системной
библиотеки,
реализующей Berkeley Socket API. Она доступна на различных платформах.
Загрузка документов из WWW осуществляется по протоколу HTTP 1.0. Выбор в пользу
данной версии сделан на основании простоты использования. Загрузка документов
осуществляется посредством запроса GET. Реализована работа ИА через прокси-сервер,
параметры которого можно задать в конфигурационном файле.
Модуль ЛА выполнен как статическая библиотека. Реализованы специальные режимы для
выполнения замеров быстродействия и сбора статистики работы.
2.4.2 Тестирование
Функционально модуль ИА можно разделить на три основных блока, реализующих:

взаимодействие с БД для получения списка URL документов и сохранения
результатов;

загрузку документов из WWW;

лексический анализ документов.
Для тестирования ИА целесообразно контролировать ход его работы, изменяя параметры
лишь одного из этих блоков, исключив внешние по отношению к нему источники ошибок. В
отладочном режиме ИА ведет в текстовом файле журнал действий и событий с указанием
времени очередной записи.
Для тестирования и сбора статистики модуля лексического анализа было собрано
отдельное консольное тестовое приложение, принимающего в качестве параметров имена
файлов словаря и документов. Параметры запуска позволяют включить режим вывода
лексем вместо индексов для контроля результата.
61
Глава 3. Обсуждение результатов
План
1. Результаты работы ИА
Масштабируемость системы сбора информации ИПС для большого количества
1.1.
URL в списке заданий
1.1.1.
Скорость единственного экземпляра
1.1.2.
Скорость нескольких экземпляров
2. Результаты применения эвристики «о гистограмме» для BK-tree
Порядок добавления слов в BK-tree:
2.1.
2.1.1.
Лексикографический
2.1.2.
По уменьшению ширины гистограммы («оптимальный»)
2.1.3.
По увеличению длины слова
Слова-кандидаты на добавление в словарь
2.2.
2.2.1.
Вывод списка слов по результатам ЛА документа
3. Экспериментальные результаты работы алгоритмов ЛА
3.1.
Замеры скорости работы каждой из СД
3.2.
Замеры скорости ЛА
3.2.1.
Только hash (без приближенного поиска)
3.2.2.
Только BK-tree (точный и приближенный поиск)
3.2.3.
Cached BK-tree (точный и приближенный поиск)
3.2.4.
Hash + BK-tree
3.2.5.
Hash + Cached BK-tree
4. Заключение
Исследования в области поиска в метрических пространствах продолжаются.
62
Выбранный подход, представляющий словарь в метрическом пространстве, имеет
перспективы и при внедрении в ИПС более изощренных методов распознавания неизвестных
слов. Но и они не отменяют потребность в распознавании слов с орфографическими
ошибками.
63
Глава 4. Охрана труда
4.1
Введение
Охрана
труда
представляет
собой
систему законодательных
актов,
социально-
экономических, организационных, технических и лечебно-профилактических мероприятий и
средств, обеспечивающих безопасность, сохранение здоровья и работоспособности человека
в процессе труда [36]. Охрана труда выявляет и изучает возможные причины
производственных несчастных случаев, профессиональных заболеваний, аварий, взрывов,
пожаров и разрабатывает систему мероприятий и требований с целью устранения этих
причин и создания, безопасных и благоприятных для человека условий труда. Полностью
безопасных и безвредных производственных процессов не существует. Задача охраны труда
–
свести
к
минимуму вероятность
поражения
или
заболевания
работающего
с
одновременным обеспечением комфорта при максимальной производительности труда.
Сложность стоящих перед охраной труда задач требует использования достижений и
выводов многих научных дисциплин, прямо или косвенно связанных с задачами создания
здоровых и безопасных условий труда. Так как главным объектом охраны труда является
человек в процессе труда, то при разработке требований производственной санитарии
используются результаты исследований ряда медицинских и биологических дисциплин.
Особо тесная связь существует между охраной труда, научной организацией труда,
инженерной психологией, технической эстетикой и эргономикой.
Эргономика изучает трудовую деятельность в комплексе, в ней объединяются научные
дисциплины, развивавшиеся прежде независимо друг от друга.
Эргономика – научная дисциплина, изучающая трудовые процессы с целью создания
оптимальных условий труда, что способствует увеличению его производительности, а также
обеспечивает необходимые удобства и сохраняет силы, здоровье и работоспособность
человека. В последние годы много новых идей возникло в связи с рассмотрением трудовой
64
деятельности как процесса взаимодействия человека с машиной и более сложными
системами управления. В связи с этим эргономику условно можно разделить на три
подобласти.

Микро-эргономика – исследование и проектирование систем “человек – машина”.
Сюда
же
включаются
интерфейсы
“человек-компьютер”
(компьютер
рассматривается как часть машины) - как аппаратные интерфейсы, так и
программные. Соответственно, “эргономика программного обеспечения” – это
подраздел микро-эргономики. Сюда же относятся системы: “человек – компьютер
– человек”, “человек – компьютер – процесс”, “человек – программа, ПО, ОС”.

Миди-эргономика – исследование и проектирование систем “человек – рабочая
группа, коллектив, экипаж, организация”, “коллектив – машина”, “человек – сеть,
сетевое сообщество”, “коллектив – организация”. Сюда входит и проектирование
организаций, и планирование работ, и обитаемость рабочих помещений, и гигиена
труда, и проектирование залов с дисплеями общего пользования, проектирование
интерфейсов сетевых программных продуктов, и многое, многое другое.
Исследуется взаимодействие на уровне рабочих мест и производственных задач.

Макро-эргономика – исследование и проектирование систем “человек – социум,
общество, государство”, “организация - система организаций”.
Компьютер стал неотъемлемой частью жизни практически каждого человека. Сейчас
сложно найти сферу деятельности, которая так или иначе не соприкасалась с
вычислительными машинами. Комфортность труда и высокая производительность на
рабочем месте оператора зависит от правильного выбора основного и вспомогательного
оборудования, которое должно отвечать эргономическим требованиям.
В создании благоприятных условий для повышения производительности и уменьшения
напряжения пользователя значительную роль играют факторы, характеризующие состояние
65
окружающей
среды: размер и микроклимат помещения, уровень шума и вибрации в
помещении.
4.2
Помещение
Помещения с видеодисплейными терминалами (далее – ВДТ) и персональными
электронно-вычислительными машинами (далее - ПЭВМ) должны иметь естественное и
искусственное освещение [37]. Естественное освещение должно осуществляться через
светопроемы, ориентированные преимущественно на север и северо-восток.
Расположение рабочих мест с ВДТ и ПЭВМ для взрослых пользователей в подвальных
помещениях не допускается. Размещение рабочих мест с ВДТ и ПЭВМ во всех учебных
заведениях и дошкольных учреждениях не допускается в цокольных и подвальных
помещениях. В случаях производственной необходимости эксплуатация ВДТ и ПЭВМ в
помещениях без естественного освещения может проводиться только по согласованию с
органами и учреждениями Государственного санитарно – эпидемиологического надзора.
Площадь на одно рабочее место с ВДТ или ПЭВМ для взрослых пользователей должна
составлять не менее 6,0 кв. м, а объем - не менее 20,0 куб. м.
Производственные помещения, в которых для работы используются преимущественно
ВДТ и ПЭВМ (диспетчерские, операторские, расчетные и др.), и учебные помещения
(аудитории вычислительной техники, дисплейные классы, кабинеты и др.) не должны
граничить с помещениями, в которых уровни шума и вибрации превышают нормируемые
значения (механические цеха, мастерские, гимнастические залы и т.п.). Звукоизоляция
ограждающих конструкций помещений с ВДТ и ПЭВМ должна отвечать гигиеническим
требованиям и обеспечивать нормируемые параметры шума.
Помещения
с
ВДТ
и
ПЭВМ
должны
оборудоваться
системами
отопления,
кондиционирования воздуха или эффективной приточно-вытяжной вентиляцией. Расчет
воздухообмена следует проводить по избыткам тепла от машин, людей, солнечной радиации
66
и искусственного освещения. Нормируемые параметры микроклимата, ионного состава
воздуха, содержание вредных веществ в нем должны отвечать требованиям Санитарных
правил.
Для внутренней отделки интерьера помещений с ВДТ и ПЭВМ должны использоваться
диффузно - отражающие материалы с коэффициентом отражения для потолка – 0,7 - 0,8; для
стен – 0,5 - 0,6; для пола – 0,3 - 0,5. Полимерные материалы, используемые для внутренней
отделки интерьера помещений с ВДТ и ПЭВМ, должны быть разрешены для применения
органами и учреждениями государственного санитарно-эпидемиологического надзора. В
дошкольных и всех учебных учреждениях, включая вузы, запрещается для отделки
внутреннего интерьера помещений с ВДТ и ПЭВМ применять полимерные материалы
(древесностружечные плиты, слоистый бумажный пластик, синтетические ковровые
покрытия др.), выделяющие в воздух вредные химические вещества.
Поверхность пола в помещениях эксплуатации ВДТ и ПЭВМ должна быть ровной, без
выбоин, нескользкой, удобной для очистки и влажной уборки, обладать антистатическими
свойствами.
4.3
Микроклимат
Микроклиматические условия устанавливаются ГОСТом 12.1.005-88 [38] и СанПиНом
2.2.2/2.4.1340-03 [39]. Оптимальные и допустимые параметры микроклимата приведены в
таблице 4.1 и таблице 4.2, соответственно.
Таблица 4.1. Оптимальные параметры микроклимата
Период года
Холодный и
переходный
Теплый
Категория
работ
Легкая 1а
Легкая 1б
Легкая 1а
Легкая 1б
Температура
(град. С)
22-24
21-23
23-25
22-24
Примечания:
67
Скорость
Относительная
движения воздуха
влажность (%)
(м/с)
40-60
0,1
40-60
0,1
40-60
0,1
40-60
0,2

к категории 1а относятся работы, производимые сидя и не требующие физического
напряжения, при которых расход энергии составляет до 120 ккал/ч;

к категории 1б относятся работы, производимые сидя, стоя или связанные с
ходьбой и сопровождающиеся некоторым физическим напряжением, при которых
расход энергии составляет от 120 до 150 ккал/ч.
Таблица 4.2. Допустимые параметры микроклимата
Период года
Категория
работ
Температура (град. С)
Холодный и
переходный
Легкая
19-25
Относительная
влажность (%)
Скорость
движения
воздуха (м/с)
не более 75
< 0,2
не более чем на 3 град. С 24 C :
выше средней
25 o C :
температуры наружного 26 o C :
27 o C :
воздуха в 13 ч. самого
жаркого месяца, но не
28 o C :
более 28 град. С
o
Теплый
4.4
Легкая
 75
 70
 65
 60
< 0,2 - 0,5
 55
Уровень шума
На рабочем месте пользователя источником шума является вычислительная машина,
производящая постоянный шум. Шум предоставляет собой сочетание звуков, различных по
интенсивности и частоте в частотном диапазоне 10-20 кГц, не несущих полезной
информации. Шум вредно воздействует не только на органы слуха, но и на весь организм
человека в целом через центральную нервную систему. Шум – причина преждевременного
утомления, ослабления внимания, памяти. Во всех учебных и дошкольных помещениях с
ВДТ и ПЭВМ уровень шума на рабочем месте не должен превышать 50 дБА. Шумящее
оборудование (принтеры, сканеры, факсы и т.д.), уровни шума которого превышают
нормированные, должно находиться вне помещения с ВДТ и ПЭВМ.
Снизить уровень шума в помещениях с ВДТ и ПЭВМ можно использованием
звукопоглощающих материалов с максимальными коэффициентами звукопоглощения в
области частот 63 - 8000 Гц для отделки помещений (разрешенных органами и
68
учреждениями Госсанэпиднадзора России). Дополнительным звукопоглощением служат
однотонные занавеси из плотной ткани, гармонирующие с окраской стен и подвешенные в
складку на расстоянии 15 - 20 см от ограждения. Ширина занавеси должна быть в 2 раза
больше ширины окна.
4.5
Рабочее место
Под рабочим местом пользователя понимается не только стол, а пространство, где
находится и работает человек, оснащенное необходимыми техническими средствами, в
котором совершается трудовая деятельность. Организацией рабочего места называется
система мероприятий по оснащению рабочего места средствами и предметами труда и их
размещению в определенном порядке.
В соответствии с требованиями эргономики, рабочее место должно быть приспособлено
для конкретного вида деятельности и для работников определенной квалификации с учетом
их физической и психических возможностей и особенностей. Конструкция рабочего места
должна обеспечивать быстроту, безопасность, простоту и экономичность технического
обслуживания в нормальных и аварийных условиях; полностью отвечать функциональным
требованиям
и
предполагаемым
условиям
эксплуатации.
При
конструировании
производственного оборудования необходимо предусматривать возможность регулирования
отдельных его элементов с тем, чтобы обеспечивать оптимальное положение работающего.
При организации рабочего места учитываются также антропометрические данные
пользователя.
Схемы размещения рабочих мест с ВДТ и ПЭВМ должны учитывать расстояния между
рабочими столами с видеомониторами (в направлении тыла поверхности одного
видеомонитора и экрана другого видеомонитора), которое должно быть не менее 2,0 м, а
расстояние между боковыми поверхностями видеомониторов - не менее 1,2 м.
69
Рабочие места с ВДТ и ПЭВМ в залах электронно-вычислительных машин или в
помещениях с источниками вредных производственных факторов должны размещаться в
изолированных кабинах с организованным воздухообменом. Рабочие места с ВДТ и ПЭВМ
при выполнении творческой работы, требующей значительного умственного напряжения
или высокой концентрации внимания, следует изолировать друг от друга перегородками
высотой 1,5 - 2,0 м.
Оконные проемы в помещениях использования ВДТ и ПЭВМ должны быть оборудованы
регулируемыми устройствами типа жалюзи, занавесей и др.
Шкафы, сейфы, стеллажи для хранения дисков, дискет, комплектующих деталей,
запасных блоков ВДТ и ПЭВМ, инструментов следует располагать в подсобных
помещениях, для учебных заведений - в лаборантских. При отсутствии подсобных
помещений или лаборантских допускается размещение шкафов, сейфов и стеллажей в
помещениях непосредственного использования ВДТ и ПЭВМ при соблюдении требований к
площади помещений и требований.
Конструкция рабочего стола должна обеспечивать оптимальное размещение на рабочей
поверхности используемого оборудования с учетом его количества и конструктивных
особенностей (размер ВДТ и ПЭВМ, клавиатуры, пюпитра и др.). При этом допускается
использование
рабочих
столов
различных
конструкций, отвечающих
современным
требованиям эргономики. Покрытие стола должно быть матовым (с коэффициентом
отражения 20 – 50%) и легко чиститься; углы и передняя грань столешницы должны быть
закругленными. Параметры стола указаны в Таблица 4.3.
Таблица 4.3. Высота рабочей поверхности стола для пользователей
Рост
пользователя в
обуви (см)
116-130
131-145
146-160
161-175
Высота над полом (мм)
поверхность
пространство для
стола
ног, не менее
520
400
580
520
640
580
700
640
70
Рабочий стол должен иметь пространство для ног высотой не менее той, которая указана в
таблице 4.3, шириной - не менее 500 мм, глубиной на уровне колен - не менее 450 мм и на
уровне вытянутых ног - не менее 650 мм.
Клавиатуру следует располагать на поверхности стола на расстоянии 100 - 300 мм от края,
обращенного к пользователю, или на специальной регулируемой по высоте рабочей
поверхности, отделенной от основной столешницы.
Конструкция рабочего стула (кресла) должна обеспечивать поддержание рациональной
рабочей позы при работе на ВДТ и ПЭВМ, позволять изменять позу с целью снижения
статического напряжения мышц шейно - плечевой области и спины для предупреждения
развития утомления. Тип рабочего кресла должен выбираться в зависимости от характера и
продолжительности работы с учетом роста пользователя (таблица 4.4). При длительной
работе кресло должно быть массивным, при кратковременной – легкой конструкции,
свободно отодвигающееся.
Рабочее кресло должен быть подъемно - поворотным и регулируемым по высоте и углам
наклона сиденья и спинки, а также расстоянию спинки от переднего края сиденья, при этом
регулировка каждого параметра должна быть независимой, легко осуществляемой и иметь
надежную фиксацию.
Таблица 4.4. Параметры рабочего кресла
Парамтры стула
Высота сиденья над полом (мм)
Ширина сиденья, не менее (мм)
Глубина сиденья (мм)
Высота нижнего края спинки над
сиденьем (мм)
Высота верхнего края спинки над
сиденьем (мм)
Высота линии прогиба спинки, не
менее (мм)
Радиус изгиба переднего края
сиденья (мм)
Угол наклона сиденья (град)
Угол наклона спинки (град)
Радиус спинки в плане, не менее
(мм)
116-130
300
270
290
Рост пользователя в обуви (см)
131-145 146-160 161-175 более 175
340
380
420
460
290
320
340
360
330
360
380
400
130
150
160
170
190
280
310
330
360
400
170
190
200
210
220
20-50
0-4
95-108
300
71
Поверхность сиденья, спинки и других элементов кресла должна быть полумягкой, с
нескользящим, неэлектризующимся и воздухопроницаемым покрытием, обеспечивающим
легкую очистку от загрязнений.
Визуальные эргономические параметры ВДТ являются параметрами безопасности, и их
неправильный выбор приводит к ухудшению здоровья пользователей. Все ВДТ должны
иметь гигиенический сертификат, включающий, в том числе, оценку визуальных параметров.
Конструкция ВДТ, его дизайн и совокупность эргономических параметров должны
обеспечивать надежное и комфортное считывание отображаемой информации в условиях
эксплуатации.
Устройство
ВДТ
должна
обеспечивать
возможность
фронтального
наблюдения экрана путем поворота корпуса в горизонтальной плоскости вокруг
вертикальной оси в пределах
 30 градусов и в вертикальной плоскости вокруг
горизонтальной оси в пределах  30 градусов с фиксацией в заданном положении. Дизайн
ВДТ должен предусматривать окраску корпуса в спокойные мягкие тона с диффузным
рассеиванием света. Корпус ВДТ и ПЭВМ, клавиатура и другие блоки и устройства ПЭВМ
должны иметь матовую поверхность одного цвета с коэффициентом отражения 0,4 – 0,6 и не
иметь блестящих деталей, способных создавать блики. На лицевой стороне корпуса ВДТ не
рекомендуется располагать органы управления, маркировку, какие-либо вспомогательные
надписи и обозначения. При необходимости расположения органов управления на лицевой
панели они должны закрываться крышкой или быть утоплены в корпусе.
Для обеспечения надежного считывания информации при соответствующей степени
комфортности ее восприятия должны быть определены оптимальные и допустимые
диапазоны визуальных эргономических параметров. Визуальные эргономические параметры
ВДТ и пределы их изменений, в которых должны быть установлены оптимальные и
допустимые диапазоны значений, приведены в таблице 4.5.
72
Таблица 4.5. Допустимые визуальные эргономические параметры
Наименование параметров
Пределы значений
параметров
миним.
(не менее)
макс.
(не более)
Яркость знака (яркость фона),
измеренная в темноте (кд/м2)
35
120
Внешняя освещенность экрана (лк)
100
250
Угловой размер знака (угл. мин.)
16
60
Примечание:
угловой размер знака – угол между линиями, соединяющими крайние точки знака по
высоте и глаз наблюдателя. Угловой размер знака определяется по формуле: a  arctg (h / 2l ) ,
где h – высота знака, l – расстояние от знака до глаза наблюдения.
При проектировании и разработке ВДТ сочетания визуальных эргономических
параметров и их значения, соответствующие оптимальным и допустимым диапазонам,
полученные в результате испытаний в специализированных лабораториях, аккредитованных
в установленном порядке, и подтвержденные соответствующими протоколами, должны быть
внесены в техническую документацию на ВДТ. При отсутствии в технической документации
на ВДТ данных об оптимальных и допустимых диапазонах значений эргономических
параметров эксплуатации ВДТ не допускается.
Конструкция ВДТ должна предусматривать наличие ручек регулировки яркости и
контраста, обеспечивающих возможность регулировки этих параметров от минимальных до
максимальных значений.
В целях обеспечения защиты от электромагнитных и электростатических полей
допускается применение экранных фильтров, специальных экранов и других средств
индивидуальной защиты, прошедших испытания в аккредитованных лабораториях и
имеющих соответствующий гигиенический сертификат. Допустимые значения параметров
излучений указаны в таблице 4.6.
73
Мощность экспозиционной дозы рентгеновского излучения в любой точке на расстоянии
0,05 м от экрана и корпуса ВДТ, при любых положениях регулировочных устройств не
должна превышать 100 мкР/ч.
Таблица 4.6. Допустимые значения параметров неионизирующих электромагнитных излучений
Наименование параметров
Допустимое значение
Напряженность электромагнитного поля по электрической
составляющей на расстоянии 50 см от видеомонитора
10 В/м
Напряженность электромагнитного поля по магнитной
составляющей на расстоянии 50 см от поверхности
видеомонитора
Напряженность электростатического поля не должна
превышать:
для взрослых пользователей
для детей дошкольных учреждений и учащихся средних
специальных и высших учебных заведений
Напряженность электромагнитного поля на расстоянии 50
см вокруг ВДТ по электрической составляющей
должна быть не более:
в диапазоне частот 5 Гц - 2 кГц;
в диапазоне частот 2 - 400 кГц
Плотность магнитного потока должна быть не более:
в диапазоне частот 5 Гц - 2 кГц;
в диапазоне частот 2 - 400 кГц
Поверхностный электростатический потенциал не
должен превышать
0,3 А/м
20 кВ/м
15 кВ/м
25 В/м
2,5 В/м
250 нТл
25 нТл
500 В
Конструкция клавиатуры должна предусматривать:

исполнение
в
виде
отдельного
устройства
с
возможностью
свободного
перемещения;

опорное приспособление, позволяющее изменять угол наклона поверхности
клавиатуры в пределах от 5 до 15 градусов;

высоту среднего ряда клавиш не более 30 мм;

расположение часто используемых клавиш в центре, внизу и справа, редко
используемых - вверху и слева;

выделение цветом, размером, формой и местом расположения функциональных
групп клавиш;

минимальный размер клавиш - 13 мм, оптимальный - 15 мм;
74

клавиши с углублением в центре и шагом 19  1 мм;

расстояние между клавишами не менее 3 мм;

одинаковый ход для всех клавиш с минимальным сопротивлением нажатию 0,25 Н
и максимальным - не более 1,5 Н;

звуковую обратную связь от включения клавиш с регулировкой уровня звукового
сигнала и возможностью ее отключения.
При работе за ПЭВМ очень важно сохранять правильную осанку, при которой
позвоночник будет отдыхать, а не напрягаться. В этом помогает хорошо подобранное
рабочее кресло. Спинка кресла должна поддерживать нижнюю половину спины, но при этом
не быть жестко закрепленной, чтобы не препятствовать движениям в процессе работы. Ноги
должны большую часть времени стоять на полу полной ступней, согнуты чуть больше, чем
под прямым углом.
Голова должна быть немного наклонена вперед, это наиболее естественное состояние.
Монитор необходимо установить так, чтобы расстояние от глаз пользователя до любой точки
монитора было примерно одинаковое и составляло 50 – 70 см.
При работе на клавиатуре руки не должны находиться на весу, а опираться на
подлокотники. Клавиатура обязательно должна располагаться чуть ниже локтя. Угол,
образуемый между плечом и предплечьем, должен составлять около 120 градусов.
4.6
Освещение
Помещения с ВДТ и ПЭВМ должны иметь естественное и искусственное освещение.
Естественное освещение должно осуществляться через светопроемы, ориентированные
преимущественно на север и северо-восток. Рабочие места с видеотерминалами (ВДТ) и
персональными электронно-вычислительными машинами (ПЭВМ) по отношению к
световым проемам должны располагаться так, чтобы естественный свет падал сбоку,
преимущественно слева.
75
Искусственное освещение в помещениях эксплуатации ВДТ и ПЭВМ должно
осуществляться системой общего равномерного освещения. В производственных и
административно - общественных помещениях, в случаях преимущественной работы с
документами, допускается применение системы комбинированного освещения.
Освещенность на поверхности стола в зоне размещения рабочего документа должна быть
300 - 500 лк. Допускается установка светильников местного освещения для подсветки
документов. Местное освещение не должно создавать бликов на поверхности экрана и
увеличивать освещенность экрана более 300 лк.
В качестве источников света при искусственном освещении должны применяться
преимущественно люминесцентные лампы, так как у них высокая светоотдача (до 120лм/Вт
и более), продолжительный срок службы (до 10 000 ч.), малая яркость светящейся
поверхности, близкий к естественному спектральный состав излучаемого света, что
обеспечивает хорошую светопередачу. Допускается применение ламп накаливания в
светильниках местного освещения. Светильники местного освещения должны иметь
непросвечивающий отражатель с защитным углом не менее 40 градусов.
Общее освещение следует выполнять в виде сплошных или прерывистых линий
светильников, расположенных сбоку от рабочих мест, параллельно линии зрения
пользователя при рядном расположении ВДТ и ПЭВМ. При периметральном расположении
компьютеров линии светильников должны располагаться локализовано над рабочим столом
ближе к его переднему краю, обращенному к оператору.
Для обеспечения нормируемых значений освещенности в помещениях использования
ВДТ и ПЭВМ следует проводить чистку стекол оконных рам и светильников не реже двух
раз в год и проводить своевременную замену перегоревших ламп.
76
4.7
Электробезопасность
Электробезопасность – система организационных и технических мероприятий и средств,
обеспечивающих защиту людей от вредного и опасного воздействия электрического тока,
электрической дуги, электромагнитного поля и статического электричества.
По степени поражения людей электрическим током рабочее помещение программиста
относится к категории помещений без повышенной опасности, поскольку является сухим,
нежарким,
непыльным,
с
нетокопроводящим
полом,
возможность
случайного
одновременного прикосновения к токоведущим частям и заземленным конструкциям
присутствует лишь в случае грубейшего нарушения ТБ при техническом обслуживании ЭВМ
и ПУ. В связи с этим требуется соблюдение необходимых мер предосторожности, в т. ч.
использование
средств
индивидуальной
защиты
(при
техническом
обслуживании
оборудования), что закреплено в инструкции по ТБ, в соответствии с ГОСТом 21552-84 [40].
Электропитание осуществляется от однофазной сети переменного тока номинальным
напряжением 220 В и частотой переменного тока 50 Гц с заземленной нейтралью.
Предельные отклонения по напряжению и частоте соответствуют ГОСТу 12.1.038-82 [41].
Для защиты от поражения электрическим током выполнено заземление корпусов
оборудования. Все оборудование имеет предохранители в цепи питания. При прикосновении
в ВЦ к любому из элементов ПЭВМ могут возникнуть разрядные токи статического
электричества. Для снижения возникающих статических зарядов в ВЦ покрытие полов
следует выполнять из однослойного поливинилхлоридного линолеума. Не рекомендуется
носить одежду из синтетических тканей. К общим мероприятиям защиты от статического
электричества в ВЦ можно отнести общее и местное увлажнение воздуха (до 50%),
ионизацию воздуха.
При прохождении через организм, электрический ток оказывает следующие виды
воздействий:
77

термическое воздействие (выражается в ожогах отдельных участков тела, нагреве
кровеносных сосудов, нервов и иных тканей);

электролитическое воздействие (выражается в разложении крови и других
органических жидкостей в организме, что вызывает существенное изменение в их
физико-химических составах);

биологическое воздействие (выражается в раздражении и возбуждении живых
тканей
организма,
нарушением
внутренних
биоэлектрических
процессов,
протекающих в нормально действующем организме, и тесно связанных с его
жизненными функциями).
К числу основных причин, вызывающих поражение электрическим током относятся:

случайное прикосновение к токоведущим частям, или приближение к ним на опасное
расстояние;

появление
напряжений
на
металлических
не
токоведущих
частях
электрооборудования в результате пробоя или ошибочного включения;

появление напряжения на поверхности земли в результате стекания тока в землю.
В соответствии с правилами устройства электроустановок (ПУЭ) для защиты должна
применяется хотя бы одна из следующих нормативных мер:

малые напряжения;

защитное заземление, зануление или отключение.
Защитное заземление - это преднамеренное соединение с землёй или её эквивалентом
металлических нетоковедущих частей электроустановок, которые могут оказаться под
напряжением. Основной смысл данной меры защиты – создание параллельного пути с
наименьшим сопротивлением, при контакте человека с корпусом во время пробоя.
Недостатком защитного заземления является постоянное наличие напряжения на корпусе.
Защитное заземление должно присутствовать во всех помещениях. Зануление - это
преднамеренное соединение с нулевым защитным проводником. Так как возникают большие
78
токи, то необходимы плавкие вставки, но вследствие медленности срабатывания (5-7 сек),
они предназначены в основном для противопожарной защиты. Отключение – это
использование специального устройства, приводящее в действие отключающий механизм за
время меньшее 0,1 сек.
Перечислим признаки электрической опасности помещения.

Повышенная опасность: наличие токопроводящего пола, сырости (более 75%) или
токопроводящей
возможность
пыли,
повышенная
одновременного
температура
прикосновения
воздуха
к
(более
металлическим
30℃),
частям
электроустановок и заземлённым конструкциям.

Особая опасность: особая влажность (~100%, поверхности покрыты влагой),
химически
активная
среда,
могущая
разрушать
изоляцию,
наличие
электроустановок, эксплуатируемых на открытом воздухе.
В зависимости от признаков электрической опасности помещения подразделяются на три
класса: помещения без повышенной опасности (без признаков опасности), помещения
повышенной опасности (если присутствует хотя бы один признак повышенной опасности),
особо опасные помещения (присутствует хотя бы один признак особой опасности, или более
одного признака повышенной опасности).
Заземлению и занулению подлежат все электроустановки во взрывоопасных помещениях,
в помещениях повышенной и особой опасности при напряжениях свыше 36В и в других
помещениях при напряжениях свыше 500В.
79
Глава 5. Заключение
Достигнутые результаты.
Была ли выполнена поставленная задача?
Направления
дальнейших
исследований
и
развития
Распараллелить лексический анализ на несколько потоков.
80
программного
продукта.
Список литературы
1. Definition of "Internet" (http://www.nitrd.gov/fnc/Internet_res.html)
2. Tim Berners-Lee, Information Management: A Proposal, CERN, March 1989, May 1990
3. Robert
H'obbes'
Zakon,
Hobbes'
Internet
Timeline
v8.2
(http://www.zakon.org/robert/internet/timeline/#Growth)
4. В.К. Иванов, К.В. Иванов, Введение в информационно-поисковые системы.
(http://window.edu.ru/window_catalog/pdf2txt?p_id=28415)
5. И. Некрестьянинов, Тематико-ориентированные методы информационного поиска,
СПбГУ, 2000
6. Иванков А.А. Оценивание релевантности информационного ресурса при сборе
информации в сети Internet с помощью информационно - поисковых систем. Краткий
обзор современного состояния проблемы.// Научные исследования и инновационная
деятельность: материалы научно-практической конференции.- СПб.: СПбГПУ, 2008.с. 202-207. {6 стр. печатн} Секция 5: Информационные системы и технологии
7. Sergey Brin, Lawrence PageThe, Anatomy of a Large-Scale Hypertextual Web Search
Engine (http://infolab.stanford.edu/~backrub/google.html)
8. Martijn Koster, A Standard for Robot Exclusion (http://www.robotstxt.org/orig.html)
9. sitemaps.org (http://www.sitemaps.org/index.php)
10. Michael Cafarella, Edward Chang, Andrew Fikes, Alon Halevy, Wilson Hsieh, Alberto
Lerner, Jayant Madhavan, S. Muthukrishnan. Data Management Projects at Google.
SIGMOD
Record,
March
2008
(Vol.
37,
No.
(http://www.sigmod.org/sigmod/record/issues/0803/p34.centers-google.pdf)
11. ГОСТ 7.74—96 "Информационно-поисковые языки. Термины и определения"
12. Парсер mystem (http://company.yandex.ru/technology/mystem/)
81
14)
13. Шемякин Ю.И. Начала компьютерной лингвистики: Учеб. пособие.- М.: Изд-во
МГОУ, А/О "Росвузнаука", 1992. ISBN 5-7045-0132-Х
14. Кнут Д. Искусство программирования, том 3. Сортировка и поиск, 2-е изд.: Пер. с
англ. – М.: Издательский дом «Вильямс», 2005
15. Zipf, G.K. (1949). Human Behavior and the Principle of Least Effort; An Introduction to
Human Ecology. Reading, Massachusetts: Addison-Wesley.
16. Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгоритмы: построение и анализ, 2-е
изд.: Пер. с англ. – М.: Издательский дом «Вильямс», 2005
17. William Pugh, Skip lists: a probabilistic alternative to balanced trees, Communications of
the ACM, v.33 n.6, p.668-676, June 1990
18. http://en.wikipedia.org/wiki/Acyclic_deterministic_finite_automaton#Applications
19. Paolo Ferragina , Roberto Grossi, The string B-tree: a new data structure for string search in
external memory and its applications, Journal of the ACM (JACM), v.46 n.2, p.236-280,
March 1999
20. J. Bentley, R. Sedgewick. Fast algorithms for sorting and searching strings. Symposium on
Discrete Algorithms. Proceedings of the eighth annual ACM-SIAM symposium on Discrete
algorithms. New Orleans, Louisiana, United States. Pages: 360 - 369. Year of Publication:
1997
21. G. Stephen. 1992. String search. Technical report, School of Electronic Engineering
Science, University College of North Wales, Gwynedd
22. P. Indyk. Course in AT&T on Nearest Neighbor Search and Other Problems in High
Dimensional Computational Geometry. 1999 (http://theory.stanford.edu/~indyk/slides.html)
23. J. Zobel, P. Dart. Finding Approximate Matches in Large Lexicons. Software - Practice and
Experience, 1995
24. Damerau, F. 1964. A technique for computer detection and correction of spelling errors.
Commun. ACM 7, 3, 171–176
82
25. E. Chavez, G. Navarro, R.A. Baeza-Yates, J.L. Marroquin, Searching in metric spaces,
2001. ACM Computing Surveys (CSUR) Volume 33, Issue 3 (September 2001), Pages: 273
– 321
26. Krauthgamer, R. Lee, J. R. The Black-Box Complexity of Nearest Neighbor Search.
LECTURE NOTES IN COMPUTER SCIENCE 2004, ISSU 3142, pages 858-869
27. D. Karger, M. Ruhl. Finding nearest neighbors in growth-restricted metrics. Proceedings of
the thiry-fourth annual ACM symposium on Theory of computing. Session 11B. Pages: 741
- 750. 2002
28. Suleyman Cenk Sahinalp, Andrey Utis. Hardness of String Similarity Search and Other
Indexing Problems.
In International Colloquium on Automata, Languages and
Programming, pages 1080-1098, 2004.
29. А. Попов, Поиск в Интернете - внутри и снаружи. Эффективная методика поиска
информации в сети Интернет (http://www.citforum.ru/pp/search_03.shtml)
30. A
Collection
of
Word
Oddities
and
Trivia:
LONG
WORDS
(ENGLISH)
(http://jeff560.tripod.com/words11.html)
31. J. Bentley, B. Sedgewick. Ternary Search Trees.
Dr. Dobb's
Journal,
1998
(http://www.ddj.com/windows/184410528)
32. В.И. Левенштейн (1965) Двоичные коды с исправлением выпадений, вставок и
замещений символов. Доклады Академий Наук СССР 163.4:845–848. Appeared in
English as: V. I. Levenshtein, Binary codes capable of correcting deletions, insertions, and
reversals. Soviet Physics Doklady 10 (1966):707–710
33. Ricardo Baeza-Yates, Gonzalo Navarro. Fast approximate string matching in a dictionary,
1998
34. Burkhard, W. and Keller, R. 1973. Some approaches to best-match file searching. Commun.
ACM 16, 4, 230–236.
83
35. Гради Буч, Роберт А. Максимчук, Майкл У. Энгл, Бобби Дж. Янг, Джим Коналлен,
Келли А. Хьюстон. Объектно-ориентированный анализ и проектирование с
примерами приложений. Вильямс, 2008 г.
36. Евдокимов В.И., Козаченко В.И., Нейман Л.А., Румянцев В.В. Охрана труда и
окружающей среды. Учебное пособие. - СПб.: СПГААП, 1993.
37. Гигиенические требования к персональным электронно-вычислительным машинам и
организации работы. - СПб: СПбГПУ, 2004.
38. ГОСТ 12.1.005-88 "Общие санитарно-гигиенические требования к воздуху рабочей
зоны"
39. Санитарно-эпидемиологические правила и нормативы. СанПиН 2.2.2/2.4.1340-03
«Гигиенические требования к персональным электронно-вычислительным машинам и
организации работы».
40. ГОСТ 21552-84 «Средства вычислительной техники. Общие технические требования,
приемка, методы испытаний, маркировка, упаковка, транспортирование и хранение.»
41. ГОСТ
12.1.038-82
«Электробезопасность.
напряжений прикосновения и токов.»
84
Предельно
допустимые
значения
Download