close

Вход

Забыли?

вход по аккаунту

Голенков Иван Александрович.Разработка информационно-аналитической системы обработки полнотекстовых документов

код для вставки
1
2
Содержание
Введение ................................................................................................................... 3
1 Анализ предметной области и формирование требований к информационной
системе...................................................................................................................... 5
1.1 Актуальность выбранной тематики ................................................................ 5
1.2 Анализ существующих решений ................................................................... 13
1.3 Моделирование предметной области ............................................................ 20
2 Проект автоматизации ....................................................................................... 25
2.1 Постановка задачи автоматизации ................................................................ 25
2.2 Детальное проектирование............................................................................. 35
2.3 Математическое обеспечение ........................................................................ 46
2.4 Описание основных компонентов системы.................................................. 52
Заключение ............................................................................................................ 57
Список литературы ............................................................................................... 59
3
Введение
За последние годы отмечается значительное увеличение объемов информации, представленной, в том числе, в форме текстовых документов. Этим обуславливается потребность в автоматизации различных задач, связанных с обработкой и
анализом текстовых данных на естественном языке. Сказанное позволяет сделать
вывод об актуальности тематики настоящей выпускной квалификационной работы,
связанной с обработкой текстовых документов.
В современной науке выделились следующие направления, связанные с обработкой полнотекстовых документов: машинный перевод, информационной поиск, реферирование текста, классификация текстов, извлечение знаний. В настоящее время направление машинного перевода активно развивается силами компаний-разработчиков систем машинного перевода (PROMT, trados). Область информационного поиска также активно развивается за счет компаний, разрабатывающих и поддерживающих поисковые сервисы (Google, Yandex). Методы классификации реализуются множеством компаний, занимающихся обработкой неструктурированных текстовых данных (Intelligent Miner for Text, TextAnalyst, Text Miner).
Объект исследования выпускной квалификационной работы составляет процесс обработки полнотекстовых документов.
Предмет исследования составляют алгоритмы стемминга, классификации и
информационного поиска.
Целью выпускной квалификационной работы является реализация информационно-аналитической системы обработки полнотекстовых документов, реализующей технологии стемминга, рубрикации и информационного поиска.
Достижение поставленной цели предполагает решение следующих задач:
1.
Систематизировать теоретические сведения о содержании процесса об-
работки полнотекстового документа;
2.
Рассмотреть алгоритмы и инструменты, предназначенные для решения
отдельных задач по обработке полнотекстовых документов;
3.
Разработать в нотации языка UML проектные решения для программ-
ной реализации отдельных алгоритмов обработки текстов;
4
4.
Программно реализовать подготовленные проектные решения.
В ходе выполнения выпускной квалификационной работы применялись следующие теоретические и эмпирические методы проведения исследования: аппарат
математической статистики, алгоритмы стемминга, алгоритмы классификации текстов, методы информационного поиска, возможности языка программирования
Ruby и фремворка Ruby on Rails
Структура выпускной квалификационной работы определена следующими
элементами: введение, первая глава, вторая глава, заключение и список использованных источников.
Во введении обосновывается актуальность выбранной темы, описываются
объект и предмет исследования, а также производится постановка цели и задач,
подлежащих выполнению в данной работе.
В первой главе работы рассматриваются перспективы создания информационно-аналитической системы для обработки полнотекстовой информации, приводятся методы Text Mining, которые должны быть реализованы данной системой. На
основе полученных знаний будет произведено моделирование предметной области.
Практический блок, включенный во вторая главу выпускной квалификационной работы, содержит постановку задачи автоматизации, где рассмотрены требования по организации структуры и компонентов информационно-аналитической
системы. Кроме того, вторая глава включает детальное проектирование информационной системы, содержащее моделирование программных классов информационно-аналитической системы, призванных отразить внутреннюю структуру и бизнес-логику всего приложения.
Практический блок также включает моделирование при помощи диаграмм
деятельности и взаимодействия, согласно нотации языка UML, и рассмотрение математического обеспечения информационно-аналитической системы. Завершающим пунктом второй главы является описание основных компонентов системы.
В заключении выпускной квалификационной работы описаны результаты
выполнения поставленных задач, а также проведена оценка успешности достижения поставленной цели.
5
1 Анализ предметной области и формирование требований к информационной системе
1.1 Актуальность выбранной тематики
Развитие методов записи и хранения данных привело к бурному росту объемов собираемой и анализируемой информации. Объемы данных настолько внушительны, что человеку просто не по силам проанализировать их самостоятельно, и
хотя необходимость проведения такого анализа вполне очевидна, проведем оценку
актуальности выбранной тематики. Для этого прибегнем к рассмотрению двух основополагающих для данной предметной области терминов: структурированные и
неструктурированные данные.
Неструктурированные данные – данные, не имеющие заранее определенной
структуры или не организованные в определенном порядке. Примером неструктурированных данных является текстовая информация. Отсутствие структурированности данных приводит к трудностям анализа, особенно в случае использования
традиционных программ, предназначенных для работы со структурированными
данными (аннотированными или хранящимися в базах).
Структурированные данные – это данные, которые были упорядочены и организованны с целью обеспечения возможности применения к ним алгоритмов обработки. В этом случае подразумевается, что данные упорядочены в виде вертикальных столбцов, именуемых полями, с горизонтальными строками, называемыми записями. Причем все записи содержат один и тот же набор полей, а все поля
– один и тот же набор записей.
Помимо текстовых данных, примерами неструктурированных данных являются также электронные сообщения, аудиофайлы, цифровые изображения и видеоклипы. Хотя во всех таких файлах есть некоторая структура, например, в электронных сообщениях есть адрес, тема, текст письма и т. д., которые обычно хранятся в форме, не позволяющей осуществлять простую и логичную классификацию, в отличие от данных, полученных посредством ввода текстовой информации
6
в электронные формы (стандартный способ ручного ввода структурированных данных), в результате вычислений или каких-либо других компьютерных транзакций,
в процессе которых автоматически создаются наборы структурированной информации.
Обработка неструктурированной информации является актуальной задачей,
как минимум, по трем причинам:
1.
Деятельность по обработке неструктурированной информация уже
привела к значительному продвижению в области ее структуризации, результатами
такой деятельности является XML и прочие средства теговой разметки, которые
значительно упрощают процесс поиска, классификации, сортировки и создания отчетов для информации, хранящейся в файлах, а не в структурированных базах данных. Совершенствование существующих алгоритмов структуризации документов
позволит применять методы по обработке к любому типу информации.
2.
Проблемы обработки информации, связанные с доступом к файлам, их
сохранением, сегодня становятся все менее острыми благодаря непрекращающейся
уже более десяти лет работе по отладке операционных систем и открытых стандартов в области извлечения и хранения данных [4]. Все больше данных становится
доступно для алгоритмов структуризации и обработки.
3.
Системы обработки неструктурированной информации пополняются
все новыми функциями, облегчающими использование данной информация для
бизнес-целей, например, для прогнозирования и принятия решений. Параллельно с
этим растет доля информации, которую организации создают и хранят в электронной форме, а значит, и желают использовать для оптимизации производства. Спрос
на инструменты обработки неструктурированной текстовой информации не угасает.
Исследования, проведенные в источниках [3], [4], выявили статистику, согласно которой лишь около 10-20% корпоративной информации хранится в структурированной форме. Использование в корпоративных целях инструментов для
структуризации данных не особенно распространено, в основном потому, что существующие инструменты, работающие с неструктурированной информацией
7
предоставляли доступ лишь к малой доле массива неструктурированных данных.
Более того, основной задачей данных информационных систем была автоматизация канцелярской работы, что имеет значение лишь для небольшого числа неавтоматизированных задач. Однако благодаря тому, что корпоративная информация
становится все более доступной, поскольку она создается и поддерживается в электронном формате, а также благодаря теговым файловым системам и т. д., средства
работы с неструктурированной информацией приобретают все большее значение
для выполнения ключевых бизнес-операций. Компании используют такие средства
для взаимодействия с клиентами, упрощения реализации транзакций, усовершенствования функций управления производительностью и т. п.
Для проведения анализа неструктурированных данных применяется Data
Mining – процесс выявления скрытых закономерностей, обнаружения в сырых данных (RAW data) ранее неизвестных знаний, простых для интерпретации и практически полезных в различных областях деятельности [11]. Методы Data Mining основываются на базе различных научных дисциплин: статистки, теории баз данных,
искусственного интеллекта, алгоритмизации, визуализации и других наук.
Алгоритмы, используемые в Data Mining, требуют большого количества вычислений. Раньше это являлось сдерживающим фактором широкого практического
применения Data Mining, однако рост производительности современных процессоров снял остроту этой проблемы. Поэтому теперь за небольшой промежуток времени можно провести качественный анализ сотен тысяч и миллионов записей.
Одним из разделов Data Mining является Text Mining. Рассмотрим данное
направление более подробно, поскольку данная справка пригодится нам далее. Text
Mining – это набор технологий и методов, предназначенных для извлечения информации из текстовых данных [3]. Основной целью технологии Text Mining является
обработка больших объемов исходных данных и автоматизация процесса извлечения необходимой информации из обработанного массива данных. Назовем основные технологии Text Mining, согласно источнику [11].
1. Information Extraction (извлечение информации):
8
а) Feature (Entity) Extraction – извлечение слов или групп слов, которые
могут быть важны для описания содержания документа. Примерами таких
слов могут быть упоминания персон, организаций, географических мест, терминов предметной области или наиболее значимые словосочетания, характеризующие тематику документа;
б) Feature (Entity) Association Extraction – извлечение различного рода
связей между извлеченными сущностями. Например, даже если выбранные
субъекты упомянуты в разных документах, но имеют какую-то общую характеристику (время, место и т. д.), можно с большой степенью определенности
сказать, есть ли между ними какая-то связь или нет;
в) Relationship, Event and Fact Extraction – самый сложный вариант извлечения информации, осуществляющий извлечение сущностей, распознавание фактов и событий, а также извлечение информации из этих фактов.
2. Summarization (автоматическое реферирование, аннотирование) – это построение краткого содержания документа на основе полного текста, из которого
выделены наиболее значимые слова и словосочетания.
3. Categorization (категоризация, классификация) – процесс отнесения документа к одной или нескольким категориям. Категории могут быть различны и способны характеризовать, например, тематическую направленность, жанровую или
оценочную.
4. Clusterization – процесс отнесения документов в группы по принципу их
схожести. Процесс кластеризации характеризуется обязательным указанием количества кластеров.
5. Information retrieval (информационный поиск) – процесс поиска среди неструктурированной документальной информации, данных, удовлетворяющих информационным потребностям пользователя.
Согласно статистике, приведенной в [11], использование в информационных
системах, так или иначе взаимодействующих с текстовыми данными, методов Text
Mining в 90% случаев ограничивается только автоматизацией поиска, извлечение
информации автоматизировано приблизительно в 10% решений, и только в редких
9
случаях подобные системы берут на себя аналитическую работу. Причины этого
будут рассмотрены далее.
Рассмотрим преимущества и недостатки, а также проведем сравнительный
анализ трех подходов к автоматизации процесса получения информации:

Подхода, основанного на применении информационно-поисковых си-
стем (ИПС);

Подхода, основанного на автоматизации извлечения информации;

Подхода, основанного на автоматизации аналитических структур.
Основные преимущества подхода, основанного на применении в различного
рода программных продуктах инструмента ИПС, вполне очевидны: распространенность и общедоступность поисковых технологий, большинство решений по созданию поискового инструмента в системе уже реализованы в виде свободно распространяемых и портируемых библиотек. С точки зрения конечного пользователя
продукта ИПС – также наиболее доступное и понятное, так называемое one-clickрешение, когда пользователь набирает поисковый запрос, ИПС выдает результаты,
релевантные данному запросу, и пользователь вручную обрабатывает всю найденную информацию.
Поскольку инструменты поиска развиваются уже давно и достигли высокой
стадии зрелости, они вполне успешно отвечают на вопрос, где находится информация. А пользователи успели настолько привыкнуть к интерфейсу ИПС, что нет
необходимости проводить какое-то специальное обучение.
Однако, если речь идет об обработке больших массивов данных, применение
одних только поисковых систем, с точки зрения конечного пользователя, становится малоэффективным, так как требует значительных человеческих ресурсов на
этапах поиска информации и ее анализа.
Подход, основанный на автоматизации извлечения информации, предполагает наличие технологически развитого инструмента, способного выделять из текста нужные элементы, используя методы Text Mining. Работа данного инструмента
состоит в том, чтобы структурировать подающуюся на вход текстовую информацию. Модель данных структурированной информации может иметь вид простых
10
сущностей (персоны, организации, географические названия) или сложных (факты,
содержащие некое событие, его участников, дату, финансовые параметры и пр.).
События бывают различные: происшествия, сделки, суды и т. п. Указанный инструмент позволяет автоматически собирать результаты своей работы в коллекции данных, которые уже пригодны для проведения анализа.
Анализировать подобные наборы данных значительно проще и быстрее, чем
результаты работы поисковика. На данном этапе также имеет смысл применение
средств Text Mining – таких как реферирование, классификация, кластеризация – в
зависимости от поставленной цели.
На сегодняшний день поставщики инструментов Text Mining снабжают свои
продукты возможностями интеграции с источниками документов (в основном с
Web-ресурсами) и с базами данных через файлы формата XML. Предоставляется
также набор SDK, применение которого подразумевает довольно дорогую дальнейшую разработку. Но основной проблемой использования этих технологий является
сложность настройки и поддержки таких инструментов. Это обусловлено спецификой компьютерной лингвистики, оперирующей терминами синтаксиса, и семантики. Как правило, конечные пользователи и разработчики далеки от этих материй,
и в итоге возможности таких инструментов используются лишь на 5-10% [11].
Несмотря на то, что подобный подход обуславливает лишь частичное использование методов Text Mining, пользователь уже избавлен от необходимости вручную просматривать тысячи документов и подбирать ключевые слова, поскольку
это делает система. Появляются дополнительные возможности автоматической
классификации и сопоставления подобных документов. Кроме того, информационная способна самостоятельно распознать смысловые элементы текста, например,
факты, события, и передавать их на последующую обработку.
Следующий подход базируется на автоматизации аналитических процедур.
В простейшем случае в руках конечного пользователя есть такие аналитические
инструменты, как например, MS Excel и MS Access или в усовершенствованном
варианте – BI и Data Mining. С целью оптимизации процесса обработки неструкту-
11
рированной информации напрашивается очевидное решение: совместить инструменты Text Mining с инструментами анализа. Интегрировать элементы между собой можно при помощи базы данных. Для автоматизации процесса нужен некий
механизм, который запросит информацию у ИПС, обнаружит искомые факты,
структурирует их, сохранит в базе и сообщит о выполненном задании. Тогда аналитик должен будет только открыть отчеты и проанализировать результаты.
Приведем пример работы совокупности инструментов поиска, добычи и анализа неструктурированной информации, реализованных компанией EPAM Systems
на базе платформы Clarabridge, описанный в источнике [11].
Система, базирующаяся на совокупности поиска, добычи и анализа информации, позволяет составлять различного рода рейтинги и прогнозы на основе информации, содержащейся в открытых и корпоративных источниках. Так, например,
при расчете рейтинга упоминаемости автомобильных брендов в новостях, публикуемых на сайте Yandex, система нашла ссылки, извлекла факты, выявила связи
между ними, структурировала полученную информацию и провела ее анализ (рисунок 1). Поскольку процесс автоматизирован, пользователь сразу получает готовый информационный продукт, позволяющий судить о том, какие позитивные или
негативные качества ассоциируются с каждым из представленных брендов и как со
временем меняются мнения покупателей. Если кнопкой мыши щелкнуть на той или
иной части графика, например, демонстрирующей падение рейтинга BMW, – система подскажет причины этого падения (в данном случае причиной стало появление негативных отзывов о автомобилях BMW).
Технологические комплексы, подобные Clarabridge, могут также использоваться для выявления тенденций рынка при помощи анализа заметок call-центров,
новостных статей в СМИ и Интернете, мнений покупателей на онлайновых форумах и в блогах [11]. При этом информация из неструктурированных документов
интегрируется с данными из CRM-систем и других источников.
12
Рисунок 1 – Рейтинг популярности автомобильных брендов в онлайновых новостных источниках
Исходя из проведенного в [11] исследования, можно сделать вывод, что в
силу инерции мышления пользователи с недоверием относятся к автоматизации работы с понятиями фактов, событий, персон, организаций и т. п. В основном именно
это заставляет пользователей отказываться от технологий Text Mining и загружать
себя ручной обработкой результатов поиска. Есть и объективные трудности, связанные с обработкой текстовых данных. Методы Text Mining должны быть адаптированы к предметной области, что нередко требует временных и прочих ресурсов.
Некоторые типы текстов, например, художественная литература, плохо поддаются
машинной обработке, в том числе методам классификации и кластеризации.
Между тем технологии добычи информации из неструктурированных текстов (Text
Mining) используются на практике уже сегодня. Со временем их применение будет
только расширяться, поскольку объемы доступной и полезной информации растут
с каждым днем, а потребность в их анализе по-прежнему не удовлетворена.
В данной выпускной квалификационной работе будет реализован второй рассмотренный подход – подход, основанный на автоматизации извлечения информации, поскольку именно легковесные и привычные рядовым пользователям инструменты по обработке и структуризации информации наиболее востребованы на данный момент.
13
1.2 Анализ существующих решений
Рынок инструментов Data Mining и Text Mining представлен множеством инструментов. Разработкой в данном секторе всемирного рынка программного обеспечения заняты как известные лидеры, так и новые развивающиеся компании. Инструменты могут быть представлены либо как самостоятельное приложение, либо
как дополнения к основному продукту. Как правило, это масштабируемые системы, в которых реализованы различные математические и лингвистические алгоритмы анализа текстовых данных, имеющие развитые графические интерфейсы,
богатые возможности визуализации и манипулирования данными, предоставляющие доступ к различным источникам данных. Примерами таких систем являются:

Intelligent Miner for Text (IBM);

TextAnalyst (Мегапьютер Интеллидженс);

Text Miner (SAS);

SemioMap (Semio Corporation);

Knowledge Server (Autonomy);

Galaktika-ZOOM (корпорация «Галактика»);

InfoStream (Информационный центр «ЭЛВИСТИ»).
Рассмотрим некоторые из этих систем более подробно.
1.
IBM Intelligent Miner for Text – это инструментарий для разработки про-
граммного обеспечения, предназначенного для извлечения знаний [9]. Он содержит инструменты для программистов приложений, которые хотят создать приложения для извлечения ключевой информации из очень большого количества документов, электронных писем или веб-страниц, хранящихся в Интернете или в Интрасетях, без необходимости их читать. С помощью Intelligent Miner for Text можно
осуществлять следующие задачи [9]:

Сортировка документов по темам, выделение преобладающих в кол-
лекции тем и аннотация тем и документов;

Поиск релевантных документов с использованием мощных и гибких
инструментов построения запросов.
14
Intelligent Miner for Text содержит четыре основных компонента:

IBM Text Analysis Tools: включают инструмент идентификации языка,
комплексные инструменты кластеризации, инструмент аннотирования и средства
извлечения ключевых понятий. Эти инструменты определяют язык документа,
групповые концептуально связанные документы, классифицируют документы по
контенту, выводят сводки документов и извлекают ключевые элементы текста.

IBM Text Search Engine: многофункциональная поисковая система, ко-
торая настраивается как для сложного полнотекстового поиска (включая функции
интеллектуального анализа текста), так и для веб-поиска. Поисковая система дополняется шаблонами Java (TM) и Java Beans, которые помогают создавать приложения для текстового поиска и административные функции, доступные из браузера
с поддержкой Java.

Пакет IBM Web Crawler: состоит из готового к запуску поискового ро-
бота и инструментария Web Crawler для создания настраиваемых поисковых роботов.

IBM NetQuestion Solution – решение для текстового поиска на локаль-
ном Web-сайте или на нескольких Интернет или Интранет-серверах, основанное на
Text Search Engine и Web Crawler.
Стоимость продуктов разных уровней семейства Intelligent Miner составляет
от 18 до 75 тысяч долларов.
Согласно статистике, приведенной в источнике [9] Intelligent Miner for Text
чаще остальных представленных продуктов используется в корпоративной среде,
где необходимо применение интеллектуального анализа текстов.
2.
TextAnalyst был разработан российской компаний «Мегапьютер Интел-
лидженс» в качестве инструмента для анализа содержания текстов, смыслового поиска информации, формирования электронных архивов, и предоставляет пользователю следующие основные возможности:

анализа содержания текста с автоматическим формированием семанти-
ческой сети с гиперссылками – получения смыслового портрета текста в терминах
основных понятий и их смысловых связей;
15

анализа содержания текста с автоматическим формированием темати-
ческого древа с гиперссылками – выявления семантической структуры текста в
виде иерархии тем и подтем;

смыслового поиска с учетом скрытых смысловых связей слов запроса
со словами текста;

автоматического реферирования текста – формирования его смысло-
вого портрета в терминах наиболее информативных фраз;

кластеризации информации – анализа распределения материала тек-
стов по тематическим классам;

автоматической индексации текста с преобразованием в гипертекст;

ранжирования всех видов информации о семантике текста по «степени
значимости» с возможностью варьирования детальности ее исследования;

автоматического/автоматизированного формирования полнотекстовой
базы знаний с гипертекстовой структурой и возможностями ассоциативного доступа к информации.
Система TextAnalyst предоставляется методы Text Mining в качестве отдельного математического аппарата, который разработчики программного обеспечения
могут встраивать в свои продукты, не опираясь на платформы информационно-поисковых систем или СУБД.
Основная платформа для применения системы – MS Windows 9x/2000/NT.
Существует также плагин TextAnalyst для браузера Microsoft Internet Explorer.
3.
Американская компания SAS Institute выпустила систему SAS Text
Miner для сравнения определенных грамматических и словесных рядов в письменной речи. Text Miner – весьма универсален, поскольку может работать с текстовыми документами различных форматов – в базах данных, файловых системах и
даже в Web.
Text Miner обеспечивает логическую обработку текста в среде мощного пакета SAS Enterprise Miner. Это позволяет пользователям обогащать процесс анализа
16
данных, интегрируя неструктурированную текстовую информацию с существующими структурированными данными.
Основными преимуществами Text Miner являются [9]:
1.
Улучшение модели данных: предиктивные модели использую ситуаци-
онные знания для описания будущих сценариев. Однако, важные обстоятельства и
события, описанные в полях комментариев, заметках, отчетах, запросах, веб-комментариях и т. д., не попадают в структурные поля модели, несмотря на то, что
данные достаточно легко анализируются. С помощью Text Miner появляется возможность добавлять выделенные из текстовых источников идеи в свои модели для
большей прогностической способности.
2.
Автоматическое обучение: автоматизируются трудоемкие ручные опе-
рации, такие как извлечение темы или ключевых терминов, путем использования
машинного обучение и методов обработки естественного языка. Высокопроизводительные процедуры позволяют получать результаты за считанные минуты, даже
для больших коллекций.
3.
Добавление тематического исследования: Text Miner позволяет направ-
лять результаты машинного обучения с помощью интерактивных графических интерфейсов, чтобы легко идентифицировать релевантность, модифицировать алгоритмы, принадлежность документов и групповые материалы в значимые совокупности. Результаты исследований можно расширять за пределы базовых начальных
и конечных тематических списков, чтобы уточнить автоматически созданные правила и темы.
4.
Вмешательство в алгоритмы обработки: текст структурирован в число-
вые представления, которые суммируют коллекции документов и становятся исходными данными для методов прогнозирования и интеллектуального анализа данных. Используя ту же визуальную среду, что и SAS Enterprise Miner, можно легко
изучить ключевые темы, выявить наиболее значимые фразы и увидеть, как меняются условия с течением времени, поэтому пользователь всегда будет знать, что
изменить или включить в алгоритм для достижения лучших результатов.
17
Вместе с тем, компания SAS отмечает, что продукт Text Miner предназначен,
в основном, для применения к бизнес-задачам.
4.
SemioMap – это продукт компании Entrieva, созданный в 1996 г. уче-
ным-семиотиком Клодом Фогелем (Claude Vogel) [11]. В мае 1998 г. продукт был
выпущен как промышленный комплекс SemioMap 2.0 – первая система Text
Mining, работающая в архитектуре клиент-сервер [11]. Система SemioMap состоит
из двух основных компонент – сервера SemioMap и клиента SemioMap. Работа системы протекает в три фазы:

Индексирование – сервер SemioMap автоматически читает массивы не-
структурированного текста, извлекает ключевые фразы (понятия) и создает из них
индекс;

Кластеризация понятий – сервер SemioMap выявляет связи между из-
влеченными фразами и строит из них, на основе совместной встречаемости, лексическую сеть («понятийную карту»);

Графическое отображение и навигация – визуализация карт связей
обеспечивает быструю навигацию по ключевым фразам и связям между ними, а
также возможность быстрого обращения к конкретным документам.
SemioMap поддерживает разбиение материала по «папкам», создание отдельной базы данных для каждой папки. Связи между понятиями, которые выявляет
SemioMap, базируются на совместной встречаемости фраз в абзацах исходного текстового массива.
Центральным блоком SemioMap является лексический экстрактор – программа, которая извлекает фразы из текстовой совокупности и выявляет совместную встречаемость этих фраз (их взаимные связи). Лексический экстрактор базируется на патентованной технологии SEMIOLEX. Она реализует идеи вычислительной семиотики, науки о знаках в языковой коммуникации, разработанной Клодом Фогелем.
5.
Программный комплекс Галактика-ZOOM предназначен для аналити-
ческой обработки текстовых неструктурированных документов, находящихся в
подключаемых базах данных.
18
Галактика-ZOOM объединяет три технологии: классическая поисковая система, система сбора текстовых данных (Text Mining), система аналитической обработки информации [11].
Программный комплекс Галактика-ZOOM позволяет распределять по тематике информационный поток, исследовать, анализировать и выявлять тенденции.
В список задач, решаемых инструментом Галактика-ZOOM входит:

поиск в большом объеме неструктурированной информации.

анализ найденной информации;

анализ изменений проблемы и интереса к ней во времени;

информационная «разведка» – добыча уникальной разрозненной пря-
мой и косвенной информации;

формирование и ведение тематических досье с возможностью вскры-
тия тенденций;

вскрытие и исследование потенциальных угроз и тревожных тенден-

анализ «негатива» – выявление источников, целей, заказчиков, причин
ций;
и поводов;

выявление и исследование «информационных аномалий» в массивах
данных;

реферирование текстов;

вскрытие взаимосвязей персон, событий, процессов, тенденций и их не-
явной корреляции;

автоматизированное решение типовых маркетинговых задач, напри-
мер, задач «рейтингования» нескольких предприятий в том или ином регионе.
Система содержит конверторы часто встречающихся форматов: простой
текст, RTF, DOC, HTML. Galaktika-ZOOM и функционирует в среде ОС Windows.
6.
Охват, обобщение больших динамических информационных массивов,
непрерывно генерируемых в Internet, требует качественно новых подходов. Ввиду
чего возникает необходимость создания методов мониторинга информационных
19
ресурсов, тесно связанных с методологией контент-анализа – контент-мониторинга. Для получения качественных и количественных срезов такой мониторинг
должен производится постоянно на протяжении не определенного заранее времени. Для решения этой задачи в Информационном центре «ЭЛВИСТИ» разработана технология InfoStream. Программно-технологические средства InfoStream
включают три основные составляющих:
 центр сбора и обработки информации;
 центр организации интерактивного доступа к базам данных;
 центр контент-мониторинга.
Ядром механизма обработки контента InfoStream является полнотекстовая
информационно-поисковая система InfoReS. Технология позволяет создавать полнотекстовые базы данных и осуществлять поиск информации, формировать тематические информационные каналы, автоматически рубрицировать информацию,
гистограммы распределения весовых значений отдельных понятий, а также динамики их встречаемости по времени. Технология InfoStream позволяет обрабатывать
данные в форматах MS WORD (DOC, RTF), PDF, и всех текстовых форматов (простой текст, HTML, XML). Системы на основе InfoStream в настоящее время функционируют на платформах таких ОС: FreeBDS, Linux, Solaris.
Как можно видеть, рынок программного обеспечения Text Mining представлен множеством инструментов, на нем идет постоянная конкурентная борьба за потребителя. Такая конкуренция порождает новые качественные решения. Все большее число поставщиков стремятся объединить в своих инструментах как можно
большее число современных методов и технологий.
В то же время специалисты в работе [11] отмечают отставание существующего программного обеспечения от теоретических разработок в связи со сложностью программной реализации некоторых новых теоретических разработок методов и алгоритмов Text Mining.
20
1.3 Моделирование предметной области
Разрабатываемая информационно-аналитическая система является средством не только обработки полнотекстовых документов, но и их хранения, обеспечивающая доступ к обрабатываемым документом неограниченному числу потенциальных пользователей. В какой-то степени организация взаимодействия пользователя с информационной системой будет напоминать взаимодействие с цифровой
библиотекой. Сама концепция веб-приложения информационной системы представляет собой реализацию некоторой концепции, архитектуры и технологии, построенной на основе концепции традиционной библиотеки, поскольку и информационно-аналитическая система, и традиционная (или цифровая) библиотека являются:
а) хранилищем информации (хранилищем контента);
б) системой дополнительных сервисов и услуг, которые снижают издержки
пользователей по доступу к информации.
В качестве дополнительных услуг в разрабатываемой информационной системе выступает инструмент автоматической классификации добавляемых документов, многопользовательский интерфейс с «личным кабинетом» для каждого
пользователя, возможность сохранять документы в «избранном» для обеспечения
быстрого и комфортного доступа к наиболее важным документам, для оценки качества документ в разрабатываемую информационную систему введены особые
пользователи – модераторы. Модераторы – пользователи на общественных сетевых
ресурсах, имеющие более широкие права, чем обычные пользователи. Модераторы
чаще всего следят за соблюдением правил ресурса в конкретных темах или разделах сетевого ресурса.
Одним из ключевых факторов при проектировании информационной системы, предоставляющей доступ к каким-либо знаниям, является выбор модели доступа к хранимым данным. Моделей доступа к данным существует два вида: модели с открытым доступом, характеризуемые в основном тем, что для получения
доступа к информации не нужно вносить плату за подписку или проходить обяза-
21
тельную регистрацию, и с закрытым, имеющим множество ограничений. Наибольшую популярность в последнее время приобретает модель открытого доступа, поскольку открытый доступ представляет собой большую ценность для пользователей, в то время как коммерческую ценность могут генерировать различные сервисы-надстройки, предоставляемые информационной системой. Стремление же
ограничить доступ к знаниям посредством предоставления платного доступа создаёт пользователям значительные неудобства. Невозможность использования чужих результатов для развития знаний, безусловно, оказывает негативный эффект
на скорость получения и качество научных результатов.
С целью получения обоснованного цифрами результата, подтверждающего
эффективность одной из моделей, был проведен анализ данных потребления контента на основе данные взятых из Яндекс. Метрика по двум цифровым библиотекам – КиберЛенинка и НЭБ. Национальная электронная библиотека – это проект,
развиваемый Российской государственной библиотекой (РГБ). КиберЛенинка – это
научная электронная библиотека, построенная на парадигме открытой науки (Open
Science), основными задачами которой является популяризация науки и научной
деятельности.
В таблице 1 и на рисунке 2 приведена статистика просмотров документов,
хранимых в базах данных НЭБ и ресурса КиберЛенинка.
Таблица 1 – Статистика просмотров объектов книговыдачи за девять месяцев 2016 г.
Месяцы
январь
февраль
март
апрель
май
июнь
июль
август
сентябрь
Итого
НЭБ
КиберЛенинка
502 631
600 037
787 676
816 080
848 759
756 729
593 593
876 553
1 063 261
2 400 000
4 050 000
5 490 000
5 640 000
6 350 000
4 730 000
2 240 000
2 060 000
4 210 000
6 846 128
37 170 000
22
7 000 000
6 000 000
5 000 000
4 000 000
3 000 000
2 000 000
1 000 000
0
январь
февраль
март
НЭБ всего
апрель
май
июнь
июль
август
сентябрь
КиберЛенинка всего
Рисунок 2 – Количество обращений к документам
По приведенным данным очевидно, что контент ресурса КиберЛенинка действительно востребован. При этом абсолютные цифры говорят сами за себя. Количество обращений к контенту ресурса КиберЛенинка существенно превышает количество обращений к НЭБ, несмотря на разницу в масштабах проектов.
Таким образом, можно сказать, что модель открытого доступа значительно
увеличивает число потребителей контента, т.е. наиболее оптимальным решением
для проектируемой информационной системы является использование модели с открытым доступом и облегченным процессом поиска информации, отличным от
библиотечных норм. В качестве инструмента, облегчающего процесс поиска и загрузки документов, выступает автоматизированная классификация документов. С
целью предотвращения наполнения базы идентичными документами в информационную систему будет введен сервис проверки документов на уникальность, основанный на сравнении загружаемого документа с имеющимися в базе.
На основе данных, полученных о предметной области, построим модель
предметной области. Модель предметной области – это визуальное представление
концептуальных классов или объектов реального мира в терминах предметной области [6]. Модель предметной области является одной из самых важных моделей
23
объектно-ориентированного анализа. На ней отображаются основные концептуальные классы предметной области.
На языке UML модель предметной области отображается в виде диаграммы
классов, на которой не определены никакие операции (рисунок 3). Следует отметить, что модель предметной области предназначена не для описания программных
компонентов, а для отображения классов понятий реального мира.
Рисунок 3 – Модель предметной области
На рисунке 3 изображена модель предметной области проектируемой информационной системы. Одним из главных концептуальных классов является класс
Информация о документе, хранящий информацию, описывающую файл документа, которая может понадобиться пользователю при работе с данным документом.
Класс информация о документе связан с классом Тема, поскольку в классе
информация о документе хранится тема данного документа. Это необходимо для
осуществления классификации документов.
Все документы информационной системы находятся в некотором хранилище, которое изображено на рисунке 2 посредством класса Список документов.
24
В модель предметной области введен класс Пользователь. Пользователи являются создателями документов. Каждый документ, в свою очередь, хранит информацию о пользователе, создавшем его.
Каждый документ в информационной системе нуждается в проверке, поэтому в модель предметной области введен класс Модератор. Помимо функции
проверки документов, в обязанности модераторов входит блокировка пользователей в случае нарушения пользователями правил, установленных в информационной системы.
25
2 Проект автоматизации
2.1 Постановка задачи автоматизации
Возрастание объемов информации и потребность в ускорении и более сложных способах ее обработки вызывают необходимость создания автоматизированных информационных систем, предназначенных для обработки полнотекстовой
информации.
В параграфе 1.1 были описаны примера автоматизации ручного труда по обработке текстовой информации и было выдвинуто утверждение о том, в реализации
каких инструментов автоматизации больше всего нуждается конечный пользователь при использовании автоматизированной информационной системы.
Автоматизированная информационная система – взаимосвязанная совокупность данных, оборудования, программных средств, стандартов, процедур, предназначенных для сбора, обработки, распределения, хранения, выдачи (предоставления) информации в соответствии с требованиями, вытекающими из целей ее создания. В целом АИС можно рассматривать как систему с автоматизированной технологией получения результатной информации.
Аналогично рассмотренным в пункте 1.2 примерам информационных систем
Text Mining, разрабатываемая АИС будет реализовывать указанные в пункте 2.3
методы Text Mining – обработку текстовой информации, классификацию текстовой
информации и информационный поиск. Прежде чем приступать к выявлению требований к АИС, рассмотрим, какие существуют типы требований, согласно источнику [5], к чему они относятся и для чего предназначены.
1)
Требования к продукту – содержит в своей основе то, что формулирует
заказчик. Цель, которую преследует заказчик – получить хороший конечный продукт: функциональный и удобный в использовании. Потому требования к продукту
являются основополагающим классом требований.
Требования к проекту – содержит вопросы формулирования требований к
проекту, т.е. к тому, как разработчик будет выполнять работы по созданию целевой
26
системы. Заказчик, вступая в договорные отношения с разработчиком, несет различные риски, главным из которых является риск получить продукт с опозданием,
либо ненадлежащего качества.
2)
Современные ИС – это крупные программные системы, содержащие в
себе множество модулей, функциональных интерфейсных элементов, отчетов и т.д.
Общепринятый прием борьбы со сложностью при моделировании сложных объектов – это абстракция и декомпозиция.
Применительно к анализу требований к программным системам эти принципы приводят к разделению требований по уровням. Уровни требований связаны
с одной стороны, уровнем абстракции системы, с другой – с уровнем управления
на предприятии
Выделяют 3 уровня требований [5]:
a. Верхний уровень – уровень бизнес-требований. Примеры бизнес-требований: система должна сократить срок оборачиваемости обрабатываемых
на предприятии заказов в 3 раза. Бизнес-требования обычно формулируются
топ-менеджерами, либо акционерами предприятия.
b. Средний уровень – уровень требований пользователей. Пример: система должна представлять диалоговые средства для ввода исчерпывающей
информации о заказе, последующей фиксации информации в БД и маршрутизации информации о заказе к сотруднику, отвечающему за его планирование и исполнение. Требования пользователя часто бывают плохо структурированными, дублирующими, противоречивыми. Поэтому для создания системы важен третий уровень, в котором осуществляется формализация требований.
c. Нижний уровень – функциональный. Пример по работе с электронным
заказом: заказ может быть создан, отредактирован, удален и перемещен с
участка на участок.
3)
Системные требования и требования к программному обеспечению
Существуют различные трактовки понятия «Системные требования» (system
requirements).
27
В источнике [5] К. Вигерс формулирует данный термин, как «высокоуровневые требования к продукту, которые содержат многие подсистемы, то есть системе». При этом под системой понимается программная, программно-аппаратная,
либо человеко-машинная система. Данная система является сложной, структурированной системой и системные требования являются подмножеством функциональных требований к продукту. В данное подмножество целесообразно относить
наиболее важные, существенные требования, которые относятся в целом к системе
и не содержат избыточной детализации.
Системные требования являются подмножеством функциональных требований к ИС. Это наиболее важные, существенные требования, которые относятся в
целом к системе и не содержат избыточной детализации.
Различаются:

общие системные требования к ИС;

требования к ПО, как подмножеству системных требований, направ-
ленных исключительно на программные компоненты системы.
В практике компьютерной инженерии бытует более узкий подход: под системными требованиями понимаются требования, выдвигаемые прикладной программной системой (в частности - информационной) к среде своего функционирований (системной, аппаратной).
Пример таких требований:

тактовая частота процессора;

объем памяти;

требования к выбору ОС и т.д.
4)
Функциональные, нефункциональные требования и характеристики
продукта
Функциональные требования регламентируют функционирование или поведение системы и отвечают на вопрос «что должна делать система?» в тех или иных
ситуациях.
28
Функциональные требования определяют для разработчика цели, задачи и
сервисы, предоставляемые системой заказчику. Функциональные требования записываются обычно при посредстве предписывающих правил: «система должна позволять кладовщику формулировать приходные и расходные накладные». Другим
способом являются так называемые варианты использования (users cases).
Use case – вариант использования, прецедент. Данный термин был введен в
обиход программной инженерии шведским учёным Айваром Якобсоном (Ivar
Hjalmar Jacobson) и по сей день является одной из наиболее позитивных абстракций
в области создания требований к программному обеспечению [6]. Согласно нотации UML, прецеденты являются средством для определения требуемых использований системы [6]. Как правило, они применяются для извлечения требований к
системе, то есть, того, что система предполагает делать. Основными понятиями,
связанными с вариантами использования являются акторы, прецеденты, и объект.
Объектом является рассматриваемая система, в которой применяются прецеденты.
Пользователи и любые другие системы, которые могут взаимодействовать с объектом, представлены в качестве акторов. Акторы всегда моделируют сущности, находящиеся за пределами системы. Требуемое поведение объекта задается одним или
несколькими вариантами использования, которые определяются в соответствии с
потребностями акторов. Строго говоря, термин «вариант использования» относится к типу прецедента. Экземпляр прецедента относится к проявлению поведения, соответствующего типу прецедента. Такие случаи, как правило, описывается
через спецификацию взаимодействий.
Нефункциональные требования, соответственно, регламентируют внутренние и внешние условия или атрибуты функционирования системы. К. Вигерс выделяет следующие основные группы нефункциональных требований [5]:

Ограничения – условия, ограничивающие выбор возможных решений
по реализации отдельных требований или их наборов. Они существенно ограничивают выбор средств, инструментов и стратегий при разработке внешнего вида и
структуры (в том числе архитектуры) продукта или системы.
29

Бизнес-правила – политика, руководящие принципы или положения,
которые определяют или ограничивают некоторые аспекты бизнеса, в том числе
правила, определяющие состав и правила выполнения определенных бизнес-процессов. К бизнес-правилам относятся корпоративные политики, правительственные постановления, промышленные стандарты и вычислительные алгоритмы, которые используются при разработке продукта или системы либо непосредственно
влияют на разработку.

Внешние интерфейсы – описание аспектов взаимодействия с другими
системами и операционной средой. К ним относятся требования к API продукта
или системы, а также требования к API других систем, с которыми осуществляется
интеграция.

Предложения по реализации – предложения, оценивающие возмож-
ность использования определенных технологических и архитектурных решений.

Предложения по тестированию разрабатываемого ПО – дополнения к
требованиям, указывающие, каким образом то или иное требование должно быть
протестировано.
Прежде чем заняться анализом требований к информационной системе, дадим определение самому понятию анализа требований. Анализ требований – часть
процесса разработки программного обеспечения, включающая в себя сбор требований к программному обеспечению (ПО), их систематизацию, выявление взаимосвязей, а также документирование. Является частью общеинженерной дисциплины
«инженерия требований».
Проведем выявление требований, согласно каждой из приведенных выше методик классификации.
В основе составления требований к продукту и процессу лежит, в первую
очередь, формулировка цели, преследуемой заказчиком. Поэтому выделим цель и
задачи. Целью создания информационно-аналитической системы обработки полнотекстовой информации является предоставление бесплатного доступа к большому количеству материалов различной тематики, а также к инструментам, автоматизирующим обработку текстовых данных.
30
В список основных задач информационно-аналитической системы входит:

Постепенное наращивание массива хранимой информации;

Представление пользователям удобного интуитивно понятного пользо-
вательского интерфейса;

Представление пользователям инструментов Text Mining для информа-
ционного поиска, классификации, поиска по аналогии, проверке уникальности и
т.д.;

Предоставление доступа к информационной системе с любого устрой-
ства, имеющего доступ в Интернет;
Далее опишем требования к информационной системе на основе трёхуровневого распределения. На верхнем уровне располагаются бизнес-требования к ИС. В
качестве бизнес-требования выступает облегчение доступа к информации со стороны пользователей. Поскольку существует множество информационных систем,
специализирующихся только на хранении информации, только на поиске или
предоставляющих инструментарий по обработке, выглядит логичным создание системы, объединяющей, как минимум, три эти функции и тем не менее не перегруженной излишним функционалом, а также являющуюся легковесной и мультиплатформенной.
На среднем уровне находятся пользовательские требования, в которые входит наличие интеллектуально понятного и удобного интерфейса, наличие учетных
записей с возможностью сохранения контента информационной системы в разделе
«избранное» для осуществления быстрого доступа к нему. Важными функциями
информационной системы являются также функции по сортировке и фильтрации
контента, автоматическому классифицированию и проверке на уникальность. Необходимой для пользователя выступает функция поиска по контенту, а также предложения контента по аналогии.
Процессы нижнего уровня будут описаны далее, в модели, содержащей выявление функциональных требований.
Перейдем к выявлению системных требований. Информационная система
предполагает реализацию в виде веб-приложения. Веб-приложение – это клиент-
31
серверное приложение, в котором клиентом выступает браузер, а сервером – вебсервер. Логика веб-приложения распределена между сервером и клиентом, хранение данных осуществляется, преимущественно, на сервере, обмен информацией
происходит по сети. Таким образом, для разрабатываемой информационной системы не существует четких требований относительно вида устройства, с которого
пользователь предполагает получить доступ к ИС, или платформы, на которой данной устройство работает. Пользователю необходимо лишь иметь доступ в Интернет на его устройстве, а также браузер. Устройство пользователя выступает в клиент-серверной модели в качестве средства отображения интерфейса веб-приложения, вся логика приложения реализована на серверной стороне, также как и хранение данных.
Для того, чтобы наглядно продемонстрировать имеющиеся функциональные
требования осуществим моделирования данных требований при помощи диаграммы вариантов использования (users cases), описанной ранее, согласно нотации
языка UML.
Как можно видеть на рисунке 4, разрабатываемая информационная система
предполагает наличие трех видов пользователей: неавторизованный пользователь,
авторизованный пользователь и модератор.
Рисунок 4 – Диаграмма вариантов использования
32
Под неавторизованным пользователем подразумевается пользователь, не
имеющий аккаунт в ИС или не вошедший в него. Неавторизованному пользователю доступен ограниченный набор функций – просмотр списка имеющихся в базе
документов и поиск по списку, но не просмотр текста данных документов. Данное
решение обосновано введением в информационную систему минимального порога
загрузки документов. Данный порог означает, что пользователю, прежде чем получить доступ к базе данных АИС, необходимо загрузить определенное количество
собственных документов. Такой способ контроля за доступом к базе данных призван ускорить процесс ее пополнения.
Процесс регистрации пользователя состоит из заполнения обязательных полей логина, пароля и почтового адреса, а также не обязательных к заполнению полей, содержащих ФИО пользователя, дата рождения и т.д. Авторизация пользователя будет производиться на основе введенных при регистрации логина и пароля.
Пользователь, авторизованный в информационной системе, обладает наиболее широким набором функций. По пересечению минимального порога загрузки
документов, авторизованный пользователь получает доступ к просмотру и скачиванию имеющихся в базе данных документов. Полезным дополнением функционала для авторизованного пользователя является возможность помечать документы
как «избранные», что позволит осуществить скорейший доступ к ним из информационной системы. Процесс просмотра текста документа из базы данных дополнен
функцией предложения документов, аналогичных по содержанию. Отбор аналогичных документов будет производиться в автоматизированном режиме.
Добавление пользователем нового документа осуществляется посредством
заполнения полей с информацией о данном документе (название документа, аннотация, тема документа и т.д.), а также прикрепления текстового файла. Редактирование загруженного пользователем документа подразумевает возможность изменения информации о документе, а также обновление текстового файла документа. По
необходимости пользователь может удалить загруженный им документ.
33
Для осуществления контроля за добавляемыми документами в информационную систему вводится модератор. Только модератор имеет возможность заблокировать или разблокировать пользователя в случае нарушения им правил, введенных в ИС. Модератор вправе удалить любой документ, содержащийся в информационной системе, не соответствующий какому-либо условию отбора для документов. Только модератору доступна функция создания тем, на основе которых будет
производиться автоматическая классификация, и которые можно будет выбирать в
поле «Темы» при загрузке документа. Модератор также имеет возможность отмечать документы как «проверенные» в случае прохождения ими всех критериев отбора.
Поскольку большая часть функциональных требований была рассмотрена,
перейдем к рассмотрению нефункциональных требований и рассмотрим ограничения, накладываемые на разрабатываемую АИС, а также опишем предложения по
реализации, исходя из указанных ограничений.
Для начала рассмотрим необходимость использования архитектуры «клиентсервер». Выбор архитектуры «клиент-сервер» обоснуется тем, что хотя разрабатываемое приложение и является распределенным, используется централизованная
база данных. Это позволяет руководству сохранять полный контроль над информационной системой, а также обеспечивать полную связность всех компонентов системы. Кроме того, важным преимуществом клиент-серверной модели является то,
что большая часть ресурсоемких процессов выполняется на серверной стороне, что
позволяет значительно снизить требования к устройству клиента, вследствие чего
появляется возможность реализовать данную АИС в виде web-приложения. Но помимо преимуществ, данная архитектура и выбор реализации АИС в виде веб-приложения накладывают некоторые ограничения на разработчиков, в том числе ограниченный выбор языков программирования, и наиболее существенное ограничение
– необходимость поиска хостинга приложения.
В качестве основного языка программирования для проектируемой ИС был
выбран динамический высокоуровневый язык Ruby. Ruby является наиболее опти-
34
мальным решением для быстрого старта проекта вследствие высокой скорости разработки, обширной базы библиотек, инструментов и платформ для развертывания
приложений, пакетных менеджеров, менеджеров зависимостей и шаблонизаторов.
Кроме того, Ruby обладает независимой от операционной системы реализацией
многопоточности, а также кроссплатформенностью интерпретатора языка, вследствие чего разработчик не будет привязан к конкретной платформе. Предсказуемость, стабильность и надежность делают Ruby хорошим выбором для продукта в
долгосрочной перспективе. Программной платформой в разрабатываемой информационной системе будет выступать Ruby on Rails (RoR).
В качестве используемой в проектируемой информационной системе СУБД
будет выбрана MySQL – свободная реляционная система управления базами данных, разработку и поддержку, которой осуществляет корпорация Oracle. СУБД
MySQL распространяется как под GNU General Public License, так и под собственной коммерческой лицензией, что является наиболее существенным плюсом, если
учитывать, что разработка информационной системы предполагает быть быстрой
и бюджетной.
Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы, данное
расширение поможет запустить и проверить работоспособность информационной
системы без развертывания на сервере. Одной из главных причин, обосновавших
выбор именно СУБД MySQL, является гибкость данной системы управления базами данных, которая обеспечивается наличием большого количества типов таблиц, поддерживающих как полнотекстовый поиск, что критически необходимо в
проектируемой ИС, так и таблиц, поддерживающих транзакции на уровне отдельных записей. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД
MySQL имеется обширная база типов таблиц и постоянно появляются новые.
Поскольку постановка задачи автоматизации произведена, а также осуществлено выявление требований к информационной системе и описаны способы их осуществления, перейдем к проектированию автоматизации.
35
2.2 Детальное проектирование
Для описания проектируемой информационной системы с различных аспектов поведения используем проектирование в нотации языка UML при помощи диаграммы классов, диаграммы последовательности и диаграммы деятельности. Диаграмма классов – это набор статических, декларативных элементов проектируемой
модели. Классы – это базовые элементы любой объектно-ориентированной системы. Классы представляют собой описание совокупностей однородных объектов
с присущими им свойствами – атрибутами, операциями, отношениями и семантикой [6].
На диаграмме класс отображается как прямоугольник, имеющий три области.
Верхняя область содержит имя класса, которое является уникальным и отличает
его от других классов. В средней области находятся атрибуты класса, а в нижней
его методы.
Атрибуты класса описывают состав и структуру тех данных, которые будут
храниться в объектах данного другим классам.
Описание метода на диаграмме классов содержит название, тип возвращаемого значения, если такое имеется класса [6]. Каждый атрибут задается именем,
типом данных, хранящихся в этом атрибуте и модификатор видимости, определяющий доступность данного атрибута и список параметров, который состоит из перечисления их названий и типов. Список параметров может быть пустым. Кроме
того, методы, как и атрибуты, имеют модификатор видимости. Закрытые методы,
также называемые приватными, не доступны для вызова вне класса. Открытые же
методы, называемые публичными, могут быть вызваны методами других классов.
В данном случае диаграмма классов поможет рассмотреть общую концепцию
будущей информационной системы через понимание ее логической структуры и
описание физической реализации.
Изображенная на рисунке 5 диаграмма классов, представлена следующими
наиболее важными к рассмотрению классами:
 Терм;
 Документ;
36
 Тема;
 Модератор;
 Пользователь.
Рисунок 5 – Диаграмма классов
Класс Терм является основополагающим и необходим для осуществления поиска и сравнения текстов, описание данных процессов будет более подробно рассмотрено в параграфе 2.3. Данный класс имеет следующие атрибуты: слово, идентификатор терма, документ терма и количество. Атрибут слово является строковой
переменной и хранит уникальный терм. Идентификатор терма хранит целое число,
являющееся первичным ключом, необходимое для идентификации уникального
терма в таблице базы данных. Документ терма – атрибут, хранящий ссылку на документ, к которому принадлежит данный терм. Атрибут количество имеет тип целого числа и хранит информацию о количестве вхождений данного терма в текст
документа. Стоит заметить, что все атрибуты данного класса являются приватными, это означает, что получать и изменять их значения могут только методы
37
этого класса. Методами данного класса являются: вернуть слово, вернуть количество, вернуть документ, вернуть идентификатор, получить экземпляр по идентификатору, сохранить в БД. Методы вернуть слово, вернуть количество, вернуть документ осуществляют доступ к приватным атрибутам данного класса. Данные методы осуществляют операцию чтения, а операция записи остается недоступной, так
как в данном случае изменять значения данных атрибутов после создания объекта
и начальной инициализации нецелесообразно.
Методы вернуть идентификатор, получить экземпляр по идентификатору, сохранить в БД являются реализацией методов, определенных в интерфейсе Работа с
базой данных. Интерфейсы необходимы для выделения общей функциональности
нескольких классов и создания протокола взаимодействия других классов с этой
функциональностью. В данном случае все классы, реализующие интерфейс Работа
с базой данных, могут вернуть уникальный идентификатор создаваемых ими объектов и получить экземпляр данных объектов при помощи другого метода данного
интерфейса – получить экземпляр по идентификатору. Интерфейс Работа с базой
данных также способен сохранить объект в базе данных.
Класс Документ необходим, в первую очередь, для автоматической классификации загруженного документа, а также для хранения информации о нем. Кроме
того, класс Документ реализует процессы сравнения текста документа с поисковым
запросом и сравнение просматриваемого документа с другими документами из
базы данных. В данном классе имеются следующие атрибуты: идентификатор документа, тема, название документа, текст документа, автор, проверен модератором,
ссылка на файл документа, термы. Тема – атрибут, хранящий ссылку на тему, к
которой принадлежит данный документ. Она может быть задана явно при загрузке
документа или определена автоматически. Атрибут название документа является
строковой переменной, хранящей название документа. Атрибут текст документа
также имеет строковый тип и хранит полный текст документа, получаемый из загружаемого файла. В атрибуте автор хранится ссылка на экземпляр класса Пользователь, из учетной записи которого был загружен данных документ. Атрибут проверен модератором – булева переменная, принимающая значение истина после
38
проверки модератором документа, загруженного пользователем. Атрибут ссылка
на файл документа имеет строковый тип и хранит ссылку на исходный файл документа. Она необходима для реализации возможности скачивать загруженные пользователями документы. В атрибуте термы хранится массив ссылок на связанные с
этим документом термы. Данный массив необходим для осуществления автоматической классификации, а также сравнения документа с другим документом или поисковым запросом.
Атрибуты тема, название документа, проверен модератором являются публичными, так как после создания объекта имеется необходимость в их чтении и
изменении. Однако при реализации информационной системы, согласно принципу
инкапсуляции, эти атрибуты должны быть приватными, а доступ к ним должен осуществляться при помощи пар методов чтения и записи. Тем не менее, так как эти
методы не содержат никакой бизнес-логики, кроме присваивания и возврата значений, на диаграмме классов имеет смысл оставить их публичными, чтобы избежать
излишнего усложнения. Примером необходимости создания методов чтения и записи является атрибут ссылка на файл документа. Основной причиной создания
методов является невозможность простой установки строкового значения ссылки
на документ. Необходимо осуществить загрузку файла на сервер, изменить значение атрибута текст документа, обновить термы данного документа и после этого
присвоить атрибуту ссылка на документ необходимое значение. Эту работу выполняет метод загрузить файл документа. За чтение атрибута отвечает метод вернуть
ссылку на файл документа.
Кроме описанных выше методов, в классе документ имеются: вернуть текст
документа, вернуть темы документа, вернуть автора документа, сравнить с другим
документом, сравнить с поисковым запросом, создать термы документа, классифицировать документ, вернуть идентификатор, получить экземпляр по идентификатору, сохранить в БД. Класс Документ является одним из классов, реализующих
интерфейс работа с базой данных, и реализует методы вернуть идентификатор, получить экземпляр по идентификатору, сохранить в БД.
39
Метод создать термы документа является приватным, то есть его вызов может быть осуществлен только из других методов. Он удаляет термы, связанные с
документом, если такие существуют, и создает новые. Его вызов осуществляется
при создании нового документа и обновлении файла существующего. В вызове
данного метода вне методов класса нет необходимости.
Методы вернуть текст документа, вернуть темы документа, вернуть автора
документа осуществляют операцию чтения для приватных атрибутов класса.
Метод сравнить с другим документом используется для создания списка
сходных по смыслу с текущим документов. Данный метод возвращает число с плавающей запятой, принимающее значения от 0 до 1, где 1 означает максимальную
близость документов, а 0 – их полное различие.
Метод сравнить с поисковым запросом аналогичен методу сравнить с другим
документом. Оба метода возвращают число с плавающей запятой, принадлежащее
отрезку от 0 до 1, однако метод сравнить с поисковым запросом осуществляет сравнение не с хранящимися в информационной системе документом, а с введенным
пользователем поисковым запросом и используется при поиске документа.
Метод классифицировать документ используется при автоматической классификации документа.
Основным назначением класса Тема является связь имеющихся в информационной системе документов с одним из объектов данного класса. Атрибутами данного класса являются: идентификатор темы, название темы, документы темы. Атрибут название темы имеет строковый тип и является публичным, так как его значения должны меняться и считываться другими классами. Атрибут документы
темы хранит массив ссылок на все документы, связанные с этой темой.
Класс Тема реализует интерфейс Работа с БД, т.е. методы данного интерфейса: вернуть идентификатор, получить экземпляр по идентификатору, сохранить
в БД. Кроме того, в классе Тема имеется метод вернуть документы темы, который
осуществляет операцию чтения приватного атрибута документы темы.
Класс Пользователь предназначен для регистрации в информационной системе новых аккаунтов, для авторизации пользователей. Класс Пользователь также
40
определяет прохождение минимального порога загрузки документов, необходимого для получения полного доступа к базе документов ИС.
Данный класс имеет следующие атрибуты: идентификатор пользователя, логин, пароль, фамилия, имя, отчество, почта, дата рождения, заблокирован, избранные документы, документы пользователя. Все атрибуты, кроме идентификатор
пользователя и логин, являются публичными, а значит их значения могут быть считаны и изменены другими классами. Строковые атрибуты логин и пароль необходимы для авторизации пользователя в системе. Атрибут логин является приватным,
так как значение данного атрибута должно устанавливаться лишь при создании
класса, после чего оставаться неизменным, а считывать значение необходимо
только внутри методов данного класса. Атрибуты фамилия, имя и отчество являются строковыми и хранят информацию о личности пользователя. В строковом атрибуте почта хранится адрес электронной почты пользователя, который может
быть необходим для связи с пользователем или для восстановления пароля. Атрибут дата рождения имеет тип дата и содержит информацию о возрасте пользователя. Атрибут заблокирован является булевой переменной, которая принимает значение истины, если модератор по какой-либо причине заблокировал пользователя.
Значение ложь означает, что пользователь не является заблокированным. Атрибут
избранные документы является массивом ссылок на документы, которые пользователь пометил как избранные. Он служит для быстрого доступа к важным для пользователя документам. Атрибут документы пользователя также является массивом
ссылок на документы. Данный атрибут хранит ссылки на те документы, которые
пользователь загрузил в информационную систему.
Класс Пользователь реализует интерфейс Работа с базой данных, т.е. реализует методы данного интерфейса: вернуть идентификатор, получить экземпляр по
идентификатору, сохранить в БД. Также класс Пользователь реализует интерфейсы
Авторизация и Работа с документами.
Интерфейс Авторизация определяет один метод авторизоваться, принимающий строковые параметры логин и пароль. Интерфейс Работа с документами опре-
41
деляет два метода: редактировать документ и удалить документ. Реализация данных методов в классе Пользователь такова, что пользователь может редактировать
и удалять только те документы, которые были добавлены им самим. Кроме этого
класс Пользователь реализует метод регистрация, который принимает строковые
параметры логин и пароль и создает новый экземпляр класса.
Класс Модератор так же, как и пользователь, имеет атрибуты логин, пароль,
фамилия, имя, отчество, дата рождения, почта, имеющие такой же смысл, как и у
пользователя. Помимо перечисленных атрибутов класс Модератор имеет атрибут
идентификатор модератора. Данный класс реализует интерфейсы Работа с базой
данных, Работа с документами, Авторизация и их методы вернуть идентификатор,
получить экземпляр по идентификатору, сохранить в БД, авторизоваться, редактировать документ и удалить документ. Особенности реализации методов интерфейса Работа с документами заключается в том, что модератор, в отличии от пользователя, может редактировать и удалять любые существующие в ИС документы.
Кроме методов реализации интерфейсов, класс Модератор имеет следующие
методы: блокировать пользователя, разблокировать пользователя, создать тему,
подтвердить проверку документа. Методы блокировать пользователя и разблокировать пользователя, принимающие ссылку на экземпляр класса Пользователь, меняют состояние атрибута заблокирован, определенного в классе Пользователь. Заблокированный пользователь теряет возможность просматривать и скачивать документы, а добавленные им документы пропадают из всех возможных выборок.
Метод подтвердить проверку присваивает значение истина атрибуту проверен модератором класса Документ. Документы, проверенные модератором, автоматически включаются в обучающее множество документов, используемое при автоматической классификации. Метод создать тему, принимающий строковый параметр,
содержащий название новой темы, создает новый экземпляр класса Тема.
Классы Список тем, Список документов, Список пользователей необходимы
для того, чтобы хранить списки соответствующих объектов и подготавливать их к
42
отображению путем сортировки или фильтрации. Подготовка производится посредством вызова методов отсортировать и отфильтровать, предоставляемых данным классам интерфейсом Работа со списками.
Для представления взаимодействия между объектами системы используем
диаграмму последовательности. Данный вид диаграмм отражает следующие аспекты проектируемой системы:

обмен сообщениями между объектами;

ограничения, накладываемые на взаимодействие объектов;

события, инициирующие взаимодействия объектов.
Основной задачей диаграмм последовательности является отображение сообщений, передаваемых между объектами системы, и их взаимодействия во времени. В качестве объектов могут выступать пользователи, инициирующие взаимодействие, классы, обладающие поведением в системе или программные компоненты, а иногда и системы в целом. Она отражает объекты и классы, вовлеченные
в сценарий поведения, а также цепочки сообщений, которыми эти объекты обмениваются в ходе выполнения своих методов.
Объекты, изображаемые на диаграмме, располагаются слева на право, при
этом объект, расположенный слева от остальных является инициатором взаимодействия.
Время существования объекта в системе показывается на диаграмме последовательности линией жизни. Она изображается как вертикальная пунктирная линия. Фокусом управления, изображаемым в виде вытянутого узкого прямоугольника, отмечается период взаимодействия объекта, когда он активен. Временная
шкала на диаграмме направлена сверху вниз.
Также неотъемлемой частью диаграммы последовательности являются сообщения, передаваемые между объектами. Принятие сообщения инициирует начало
некоторой деятельности объекта, принявшего сообщение, направленной на решение некоторой задачи.
Диаграмма последовательности, изображенная на рисунке 6, моделирует сценарий получения пользователем информации о документе.
43
Рисунок 6 – Диаграмма последовательности
Данный сценарий начинается с того, что пользователь инициирует поиск необходимого документа в коллекции документов. В запросе, направляемом в список
документов, пользователь передает параметры поиска. Список документов, в свою
очередь, создает запрос на формирование выборки, удовлетворяющей параметрам
поиска и передает его базе данных. Далее из данных, полученных от базы данных,
извлекается необходимая информация, которая возвращается пользователю. Пользователем выбирается предпочтительное для него отображение и параметр сортировки, которые передаются списку документов. Список документов производит
сортировку выборки документов и возврат данной выборки пользователю. В полученной отсортированной выборке пользователь выбирает необходимый документ
и запрашивает информацию о нем. Информация, необходимая пользователю, запрашивается из базы данных документом, и после получения ответа от базы данных информация возвращается пользователю.
Для представления последовательности действий, протекающих в системе,
используем диаграмму деятельности. На диаграмме деятельности представлены
переходы потока управления от одной деятельности к другой. Диаграмма деятельности является разновидностью диаграммы состояний, где все или большая часть
44
состояний являются некоторыми деятельностями, а все или большая часть переходов срабатывают при завершении определенной деятельности и позволяют перейти
к выполнению следующей [6]. Диаграммы деятельности достаточно часто используются для моделирования сложного жизненного цикл объекта, а также для описания динамики совокупности объектов.
На представленной диаграмме деятельности (рисунок 7) был отражен процесс поиска пользователем необходимого документа.
Рисунок 7 – Диаграмма деятельности
45
Обозначенная на рисунке 7 стратегия поиска документа рассчитана на авторизованного пользователя, переступившего порог минимальной загрузки документов, или модератора. Изначально пользователь задает поисковый запрос и указывает критерий поиска – поиск по названию или поиск по содержанию. В зависимости от заданных критериев выводится выборка документов, удовлетворяющих поисковому запросу, по мере их релевантности.
Помимо случая, когда поисковому запросу соответствует хотя бы один документ из базы ИС, может быть ситуация, когда ни один документ не удовлетворяет
поисковому запросу, в таком случае пользователю следует изменить критерии поиска или сам поисковый запрос.
В случае наличия документов в выборке пользователь может выбрать удобную для него сортировку и продолжить поиск необходимого документа. Все документы в выведенной выборке пользователь может открыть, просмотреть и скачать.
46
2.3 Математическое обеспечение
Одним из ключевых понятий, характеризующих выбор того или иного метода анализа текстовой информации, а также реализацию конкретного варианта поиска, является модель поиска. Модель информационного поиска – это сочетание
следующих составляющих [7]:
1) способ представления документов
2) способ представления поисковых запросов
3) вид критерия релевантности документов
Вариации этих составляющих определяют большое число всевозможных реализаций систем текстового поиска. Согласно источнику [8], основными моделями
информационного поиска являются:

модель булева поиска;

модель векторного поиска;

вероятностная модель.
В качестве используемой модели поиска была выбрана векторная модель.
Рассмотрим данную модель более подробно.
Векторная модель предполагает, что множество документов в коллекции
можно представить в виде векторов в векторном пространстве, в котором каждому термину соответствует отдельная ось [7].
Все термины, которые встречаются в документах обрабатываемой коллекции, можно упорядочить. Если для некоторого документа выписать по порядку
веса всех термов, включая отсутствующие в данном документе термы, получится
вектор, который и будет представлением данного документа в векторном пространстве. Размерность этого вектора, как и размерность пространства, равна количеству
различных термов во всей коллекции и является одинаковой для всех документов.
⃗ ( ) вектор, построенный по документу  : 
⃗ ( ) = (1 , 2 , … ,  ),
Обозначим 
где  – вес i-го терма в j-м документе, n – общее количество различных термов во всех документах коллекции.
47
Располагая таким представлением для всех документов, можно, например,
находить расстояние между точками пространства и тем самым решать задачу подобия документов – чем ближе расположены точки, тем больше похожи соответствующие документы [7]. В случае поиска документа по запросу, запрос тоже представляется как вектор того же пространства – и можно вычислять соответствие документов запросу.
Для того чтобы выразить сходство между двумя документами в количественной форме, необходимо вычислить косинусные меры сходства между их вектор⃗ (1 ) и 
⃗ (2 ) (cosine similarity):
ными представлениями 
(1 , 2 ) =
⃗ (1 ),
⃗ (2 ))
(
(1)
⃗ (1 )|| 
⃗ (1 )||
||
⃗ (1 ) и
Числитель представляет собой скалярное произведение векторов 
⃗ (2 ), а знаменатель равен произведению евклидовых норм этих векторов. Скаляр
⃗
ное произведение ( , ) двух векторов равно ∑
   . Обозначим через  () вектор
⃗ () … 
⃗  (). Евклидова длина вектора  равна
документа  с компонентами 
⃗2
√ ∑
1  ().
⃗ (1 ) и 
⃗ (2 ) так,
Знаменатель в формуле нормирует по длине векторы 
чтобы их длина стала равна единице:
⃗ (1 )

(1 ) = ⃗⃗⃗⃗⃗
|| (1 )||
⃗ (2 )

и (2 ) = ⃗⃗⃗⃗⃗
.
|| (2 )||
Теперь формулу (1) можно выписать в виде:
(1 , 2 ) = ( (1 ), (2 )) = cos .
(2)
Получим скалярное произведение нормированных векторов, соответствующих
двум документам, и являющееся мерой их сходства. Как видно из формулы (2),
мера сходства равна косинусу угла  между двумя векторами.
Опишем использование данной модели в рамках разрабатываемой системы.
Предполагается, что имеется некоторая коллекция документов, где каждый документ уже представлен в виде вектора в векторном пространстве. Для измерения
веса каждого термина в каждом документе будем использовать схему взвешивания
48
 − , где  – это частота встречаемости терма в документе, а  – обратная
документная частота. Схема взвешивания  −  присваивает каждому термину
t его вес в документе d на основе формулы:
 − , = , ×  ,
где  = 


(3)
, N – общее количество документов в коллекции [5].
После произведения подсчета весов термов каждый документ можно интерпретировать как вектор, состоящий из компонент, соответствующих каждому термину в
словаре, и весов каждого компонента, вычисленных по формуле (3).
Векторная модель, в первую очередь, применяется при обработке введенного
пользователем поискового запроса. Введенный поисковый запрос разбивается на
отдельные слова, удаляются стоп-слова. Стоп-слова – это слова в тексте, которые
не несут смысловой нагрузки, например, союзы, местоимения, частицы, междометия и т.д. После этого для вычлененных слов применяется стемминг – нахождение
основы слова для заданного исходного слова. Рассмотрим данный процесс более
подробно.
Стемминг применяется для расширения поискового запроса и является частью нормализации текста [1]. Конкретный способ решения задачи поиска называется алгоритмом стемминга, а конкретная реализация – стеммером [1].
Наиболее часто используемым среди множества стеммеров является стеммер
Портера. Основная идея стеммера Портера заключается в том, что существует ограниченное количество словообразующих суффиксов, и стемминг слова происходит
без использования каких-либо основ: только множество существующих суффиксов
и вручную заданные правила.
Алгоритм состоит из пяти шагов. На каждом шаге отсекается словообразующий суффикс, и оставшаяся часть проверяется на соответствие правилам (например, для русских слов основа должна содержать не менее одной гласной). Если полученное слово удовлетворяет правилам, происходит переход на следующий шаг.
Если нет – алгоритм выбирает другой суффикс для отсечения. На первом шаге от-
49
секается максимальный формообразующий суффикс, на втором – буква «и», на третьем – словообразующий суффикс, на четвертом – суффиксы превосходных форм,
«ь» и одна из двух «н».
Реализацией алгоритма стемминга Портера является фреймворк Snowball, который и будет использован в разрабатываемой информационной системе.
После стемминга отобранных слов по схеме взвешивания  −  для каждого полученного термина  рассчитывается его вес в запросе и формируется век⃗ (). Аналогичный процесс производится с каждым
тор запроса, обозначим его 
документом в коллекции, в результате чего получаем множество векторов
⃗ (1 ) … 
⃗ ( ), где n – количество документов в коллекции. Далее, согласно фор
муле (1), вычисляются косинусные меры сходства между полученным вектором за⃗ () и векторами 
⃗ (1 ) … 
⃗ ( ) – (, 1 ), (, 2 ), … , (,  ).
проса 
Полученные величины косинусных мер сходства позволяют оценить и вывести по мере релевантности список документов из коллекции, где значение
(,  ), близкое к 1, соответствует наиболее подходящему документу, а значение (,  ), близкое к 0 – наименее подходящему.
В задачи разрабатываемой информационной системы входит также поиск и
предложение документов, аналогичных просматриваемым. Данный процесс осуществляется аналогично поиску документов по запросу: предполагается, что имеется некоторая коллекция документов, где каждому документу соответствует свой
⃗ ( ). Для документа, просматриваемого на данный момент, которому совектор 
⃗ ( ), и множества документов в коллекции, имеющих векторы
ответствует вектор 
⃗ (1 ), … , 
⃗ (−1 ), 
⃗ (+1 ), … , 
⃗ ( ), согласно формуле (1), находят косинусные

меры соответствия ( , 1 ), … , ( , −1 ), ( , +1 ), … , ( ,  ). Полученные значения также позволяют отсортировать и вывести список документов
по мере их релевантности.
Задача классификации реализуется с использованием метода Роккио. Данный
метод относится к методам классификации, основанным на машинном обучении,
50
из чего следует, что для построения решающего правила, определяющего принадлежность документа заданному классу, будет использоваться обучающее множество документов [8]. Обучающее множество представляет собой множество документов, в котором заранее известно, к какому классу относится каждый из этих документов.
Подготовка обучающего множества документов предполагает, в первую очередь, разметку документов как релевантных, так и нерелевантных соответствующей теме [12]. Кроме того, множество необходимо проиндексировать, т.е. выполнить преобразование документов множества в вид, пригодный для обработки. С
этой целью повторяется процесс, аналогичный совершаемому в информационном
поиске: документ разбивается на отдельные слова, стоп-слова удаляются, производится стемминг слов на основе алгоритма стемминга Портера, производится подсчет частоты терминов в документе ().
Метод Роккио основан на вычислении близости между векторами документов и центроидом класса документов, относящихся к предметной области [8]. Процесс определения релевантности документа классу производится следующим образом:
1)
Загруженный документ  подвергается предварительной обработке,
где на основе взвешивания схемы взвешивания  −  формируется вектор
⃗ ( ).

2)
На основе заранее подсчитанных значений частоты терминов в доку-
ментах () с использованием схемы  −  формируются векторы документов
⃗ (1 ), 
⃗ (2 ), … , 
⃗ ( ), которые разделены на классы, соответствующие
коллекции 
заданным темам.
3)
Вычисляются центроиды классов документов. Под центроидом пони-
мается усредненный вектор класса, вычисленный на основе полученных в шаге 2
векторах данного класса, который можно посчитать при помощи следующей формулы:
51
с =
1
⃗ ( )

∑
|с | ∈с
где с – это множество документов обучающей выборки, относящихся к классу
С.
4)
⃗ ( ) и найденными центОпределение близости между документом 
роидами классов ⃗⃗⃗⃗
 производится при помощи вычисления косинусной меры сходства между ними на основе формулы (1):
( , с ) =
⃗ ( ),
⃗ с )
(
.
⃗ ( )||
⃗ с ||
||
Соответственно, чем ближе полученное значение ( , с ) к 1, тем выше
релевантность документа  классу .
В базе данных разрабатываемой информационной системы хранятся документы обучающей выборки и загружаемые документы, а также наборы слов, соответствующие каждому документу и значения частоты слов в данных наборах ().
Это необходимо для того, чтобы производить обработку текста и подсчет слов единожды, что оптимизирует повторяющийся процесс вычисления вектора документа.
52
2.4 Описание основных компонентов системы
Разрабатываемую информационную систему можно изобразить следующей
схемой (рисунок 7):
Рисунок 8 – Основные компоненты системы
Опишем каждый из представленных на схеме уровней.
Уровень представления реализован при помощи клиентского приложения
для взаимодействия с системой и веб-интерфейсом администратора системы, написанных с использованием средств НТМL, JavaScript и СSS. Для загрузки, изменения и получения данных о документах используется REST API.
Пользовательский интерфейс клиентского приложения реализован следующим образом (рисунок 9):
Рисунок 9 – Окно добавления новой темы
53
Для примера добавим 3 темы: биологию, социологию и физику (рисунок 10).
Рисунок 10 – Список тем
Окно добавления нового документа подразумевает возможность добавления
документа с указанием темы вручную или с автоматической классификацией. Для
указания темы вручную необходимо выбрать нужную, из выпадающего списка заранее введенных тем. Выбор темы вручную необходим в момент создания обучающей выборки. Добавление документа с пометкой «Автоматическая классификация» необходимо для автоматической классификации нового документа. Например, добавим текст из области физики и поставим флажок «Автоматическая классификация», то есть без указания темы вручную (рисунок 11). База данных была
заранее наполнена документами.
Рисунок 11 – Окно добавления нового документа
54
Добавленный документ, который в примере выше было необходимо классифицировать, будет выведен в новом окне с указанием автоматически определенной
темы. Ниже выводится список документов по мере их совпадения с добавленным
(рисунок 12).
Рисунок 12 – Автоматическая классификация документа
Информационный поиск можно продемонстрировать следующим образом:
введем в поле поиска запрос «магнитное поле». В результатах поиска можно видеть
список всех документов в базе данных, выведенный по мере их релевантности поисковому запросу (рисунок 13).
55
Рисунок 13 – Информационный поиск
Уровень бизнес-логики обрабатывает поступающую от пользователей информацию. Данный уровень построен в соответствии со стилем построения архитектуры RЕSТ.
REST (Representational State Transfer) – стиль построения архитектуры распределенного приложения. REST используют для построения приложений, в которых клиенты могут отправлять запросы службам, т.е. для приложений, реализующих подход «клиент-сервер».
Данные в REST передаются при помощи протокола НТТР в виде небольшого
количества данных в одном из форматов: НТМL, ХML, JSON [10]. В данном случае
используется формат НТМL.
Веб-приложение построено с использованием языка Rudy и веб-фреймворка
Ruby on Rails.
Ruby on Rails – фреймворк, написанный на языке программирования Ruby,
реализует архитектурный шаблон Model-View-Controller для веб-приложений, а
также обеспечивает их интеграцию с веб-сервером и сервером баз данных. Является открытым программным обеспечением и распространяется под лицензией
MIT.
56
На уровне бизнес-логики осуществляются действия по классификации документов, проверке оригинальности, информационному поиску, поиску аналогичных
документов и т.д.
Уровень хранения данных представлен базой данных MySQL. Несколько
процессов или потоков могут одновременно читать данные из одной базы. Запись
в базу можно осуществить только в том случае, если никаких других запросов в
данный момент не обслуживается.
57
Заключение
Целью настоящей выпускной квалификационной работы являлось проектирование и реализация информационно-аналитической системы обработки полнотекстовой информации. Для достижения данной цели был поставлен ряд задач. Поэтапно проанализируем выполнение каждой из задач и результаты данного процесса.
Претензия на актуальность данного проекта, выдвинутая еще во введении,
была оценена на основе конкретных статистических данных и примеров, в результате чего можно было сделать вывод о том, что создание данной информационноаналитической системы является перспективным решением.
Первым шагом на пути проектирования информационно-аналитической системы, призванной обрабатывать неструктурированные полнотекстовые данные,
является, соответственно, изучение методов обработки и анализа данных, т.е. методов Data Mining и Text Mining. Следующий шаг включает изучение рынка программных продуктов, реализующих эти методы. Как можно видеть из анализа, конкуренция на рынке достаточно высока и имеются в данной области лидирующие
продукты, такие как, например, IBM Intelligent Miner for Text. Изучение программных продуктов, их преимуществ и недостатков, позволило выявить некоторую закономерности между предоставляемым инструментарием и популярностью продукта. Данная закономерность помогла определить, автоматизирование каких процессов обработки текстовых данных является наиболее востребованным у пользователей.
Исходя из полученных данных, можно было перейти к постановке задачи автоматизации. На данном этапе было определено ввести в информационно-аналитическую систему информационный поиск для скорейшего доступа к контенту, автоматическую и ручную классификацию, отбор документов по аналогии и т.д. На основе выдвинутых задач можно было перейти к выявлению требований к системе.
По результатам проведения анализа требований были решены вопросы о системных требованиях к информационно-аналитической системе, ее функциональ-
58
ному составу, также был проведен анализ нефункциональных требований, позволивший определиться с инструментарием, используемым для создания информационной системы.
Детальное проектирование было начато с моделирования предметной области, что позволило продемонстрировать поведение компонентов информационной
системы в среде ее использования.
Более четкое представление о внутреннем устройстве информационно-аналитической системы предоставила диаграмма классов, которая отразила концепцию приложения, обозначила протокол взаимодействия между сущностями системы и отразила наиболее существенные к рассмотрению участки кода данного
проекта.
Помимо диаграммы классов были составлены диаграмма деятельности и диаграмма последовательности, необходимые для того, чтобы отразить некоторые аспекты работы информационной системы и участия в данной работе пользователей
системы, которые нельзя было отразить на статичной диаграмме классов.
Подробный обзор основных компонентов системы позволили сформировать
законченное представление о разработанной информационно-аналитической системе.
Поскольку осуществление всех поставленных задач было завершено
успешно, и конечный продукт сформирован, цель настоящей выпускной квалификационной работы можно считать выполненной.
59
Список литературы
1.
Агеев, М. С. Извлечение значимой информации из web-страниц для за-
дач информационного поиска / М. С. Агеев, И. В. Вершинников, Б. В. Добров. – М.:
Яндекс, 2005. – 301 с.
2.
Агеев, М. С. Методы автоматической рубрикации текстов, основанные
на машинном обучении и знаниях экспертов / М. С. Агеев. – М.:МГУ, 2004.– 136 с.
3.
Бабин, Д.В. Повышение эффективности извлечения знаний на основе
интеллектуального анализа и структурирования информации / Д.В. Бабин, С.М. Вороной, Е.В. Малащук // Искусственный интеллект: сб. ст. – Москва, 2005. – С. 259264.
4.
Беленький, А. Текстомайнинг. Извлечение информации из неструкту-
рированных текстов / А. Беленький // КомпьютерПресс. – 2008. № 10.–С. 174-179.
5.
Вигерс, К. Разработка требований к программному обеспечению / К.
Вигерс. – М.: Русская Редакция, 2004. – 576 с.
6.
Гвоздева, Т. В. Проектирование информационных систем / Т. В. Гвоз-
дева; Б. А. Баллод. – Ростов н/Д.: Феникс, 2009. – 508 с.
7.
Губин, М. В. Модели и методы представления текстового документа в
системах информационного поиска / М. В. Губин – СПб.:СПбГУ, 2005. – 89 с.
8.
Лифшиц, Ю. Алгоритмы для интернета: Автоматическая классифика-
ция текстов / Лифшиц Ю. – СПб.: СПбГУ, 2006. – 8 с.
9.
Маннинг, К. Д. Введение в информационный поиск : [пер. с англ.] / К.
Д. Маннинг, П. Рагхаван, Х. Шютце. – М.: Вильямс, 2011. – 520 с.
10.
Некрестьянов, И.С. Тематико-ориентированные методы информацион-
ного поиска / И.С. Некрестьянов – СПб, 2000. – 88 с.
11.
Технологии анализа данных: Data Mining, Text Mining, OLAP / А. А.
Берсегян, М. С. Куприянов, В. В. Степаненко, И. И. Холод. – Изд. 2-е, доп. И перераб. – СПб.: БХВ-Петербург, 2014. – 384 с.
12.
Токарева, Е. И. Иерархическая классификация текстов / Е. И. Токарева
– М.:МГУ, 2010. – 47 с.
j,i\iцTi.*
Tl**
lil'i{lýýLTlXil]|{
р i.*
Орловский ГУ
гýfiегfu$&Y
l"l
ы
iЦ'lt\д$ý{
спрАвкА
о результатах проверки текстового документа
на наличие заимствований
Проверка вьlполнена в системе
Антиплагиат.вУ3
Автор работы
Голенков Иван Александрович
Факультет, кафедра,
номер группы
физико-математический,
Тип работы
пЩипломная работа
Название работы
VKR 29 06 17 1 s nomerami res
Название файла
VKR_29_06_17_1_s_nomerami_res,pdf
Процент заимствования
30,20%
Процент цитирования
0,00%
П
роцент оригинальl-tости
.Щата
кафедра алгебры и математических методов в экономихе
69,80%
проверки
13:09:30 29 июня 2017r.
Модули поиска
Модуль поиска ЭБС "БиблиоРоссика"; L{итирование; Модуль поиска ЭБС
"Университетская библ иотека онлайн "; Коллекция диссертаций РГБ; Коллекция
ellBRARY,RU; Модуль поиска ЭБС "АЙбукс"; Модуль поиска Интернет; Модуль поиска
ЭБС "Лань"; Модуль поиска "фГБОУ ВО Оry им. И.С.Тургенева"; Кольцо вузов
Работу проверил
Селютиц Владимир !митриевич
ФИ0 проверяюч]еrо
.щата
подписи
е8.
0ý
Чтобы убедиться
в подлинности справки,
используйте QR-код, который
содер)+{ит ссылку ва отчет.
.t0,|?
,Ответ на вопрос, является ли обнаруженное заимствование
коррЬктirБlм, система оставляет на усмотрение проверяющеrо,
Пfiедоставлвнная информация не помежит использованию
в ком'мерческих целях.
1/--страниц
Пожаловаться на содержимое документа