Разработка системы сбора статистики использования маркеров стиля в научных публикациях на английском языке

Анализ бизнес-процесса сбора статистики и создания отчета. Сравнительный анализ средств обработки языка. Обзор существующих плагинов для программы Gate Developer. Проектирование и разработка программного модуля для сбора статистики и генерации отчетов.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 03.07.2017
Размер файла 1,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Пермский филиал федерального государственного автономного образовательного учреждения высшего образования

«Национальный исследовательский университет

«Высшая школа экономики»

Факультет экономики, менеджмента и бизнес-информатики

Выпускная квалификационная работа

?????????? ??????? ????? ?????????? ????????????? ???????? ????? ? ??????? ??????????? ?? ?????????? ?????

по направлению подготовки 38.03.05 Бизнес-информатика

образовательная программа «Бизнес-информатика»

Горбунова Мария Андреевна

Руководитель Старший преподаватель кафедры

информационных технологий в бизнесе НИУ ВШЭ-Пермь

В.В. Ланин

Пермь, 2017

Аннотация

Данная работа посвящена описанию разработки программного модуля разрабатываемого на базе программы Gate Developer. Разработка предназначена, прежде всего, для сбора статистики использования маркеров академического стиля в научных публикациях на английском языке, но также имеет целью реализацию возможности генерации отчетов на основании собранных данных. При успешной реализации и тестировании данный программный модуль может применяться в сфере образования, при контроле качества обучения и академических исследованиях.

Первая глава содержит описание бизнес-процесса, автоматизируемого посредством плагина, обзор и выбор средства обработки естественного языка, на основе которого произведен и описан обзор существующих плагинов. Данная часть также содержит обзор генераторов отчетов, среди которых был произведен выбор одного для последующей интеграции в программный модуль. Во второй главе описаны процессы моделирования и проектирования программного продукта. А именно произведено формирование функциональных требований, разработка архитектуры программного продукта, а также выбраны средства для его реализации. Третья глава представляет собой описание процесса реализации программного модуля. В данном разделе описан ход разработки прототипа, а также описан его функционал. В заключении описаны основные результаты проделанной работы и значимость исследования для дальнейшей реализации продукта.

Данная разработка описывает процесс разработки инструментального средства для решения проблем компьютерной лингвистики, таким образом, ориентирована, прежде всего, на пользователей, которые занимаются исследованиями обработки естественного языка с помощью компьютерных средств, а также читателей, задействованных в академической деятельности в рамках данной сферы.

  • Содержание
  • Введение
  • Глава 1. Анализ существующих систем и инструментов для обработки естественного языка
    • 1.1 Анализ бизнес-процесса сбора статистики и создания отчета
    • 1.2 Сравнительный анализ средств обработки языка
      • 1.2.1 Система AntConc
      • 1.2.2 Система WordSmith Tools
      • 1.2.3 Система Sketch Engine
      • 1.2.4 Система Gate Developer
      • 1.2.5 Веб-система CQPWeb
    • 1.3 Обзор существующих плагинов для программы Gate Developer
      • 1.3.1 Система ANNIE
      • 1.3.2 Группа компонентов OpenNLP
      • 1.3.3 Плагины Academic Corpus Tagger
    • 1.4 Обзор средств для генерации отчетов
      • 1.4.1 Генератор отчетов Crystal Reports Server
      • 1.4.2 Система Stimulsoft Reports
      • 1.4.3 Генератор отчетов Jasper Report
      • 1.4.4 Генератор отчетов Next Report
      • 1.4.5 Программа BIRT
    • Вывод по первой главе
  • Глава 2. Проектирование программного модуля для сбора статистики и генерации отчетов
    • 2.1 Формирование требований к плагину
      • 2.1.1 Требования к программному модулю от заказчика
      • 2.1.2 Обработанные функциональные требования
    • 2.2 Разработка архитектуры плагина
    • 2.3 Выбор средств разработки
      • 2.3.1 Выбор языка программирования
      • 2.3.2 Обзор интегрированных сред разработки
    • Выводы по второй главе
  • Глава 3. Разработка программного модуля
    • 3.1 Описание параметров входа и выхода
    • 3.2 Описание процесса создания плагина
    • 3.3 Особенности реализации плагина в среде Gate Developer
    • 3.3 Разработка шаблонов для генерации отчетов
    • 3.4 Результаты реализации программного модуля
  • Заключение
  • Библиографический список
  • Приложение А. UseCase диаграмма для описания функциональных требований
  • Приложение Б. Листинг программы
  • Приложение В. Руководство пользователя по установке и настройке программного модуля StatsCollector

Введение

Корпусная лингвистика является одним из наиболее перспективных и востребованных направлений в области исследований естественного языка. Данная наука занимается разработкой, созданием и использованием, так называемых текстовых корпусов, состоящих из документов, объединённых по какому-либо признаку. С помощью корпусов лингвисты решают широкий спектр задач, например, подсчитывают статистику использования различных языковых единиц, представление лингвистических данных, реализация математического анализа текста и т.д.

Проведение анализа текста без использования компьютерных инструментальных средств - это достаточно затратный по времени и силам процесс, поэтому необходимо использовать программные инструментальные средства. На данный момент существует большое количество инструментов для обработки корпусов текстов. Наиболее распространенными являются AntConc[1], WordSmith Tools[2], Gate Developer[3], Sketch Engine[4] и CQPweb[5], каждая из которых предоставляет пользователю возможность хранить и редактировать корпуса текстов. Однако, вышеупомянутые средства имеют ряд недостатков, например, подобные системы имеют недостаточные средства сбора статистики, так как они не адаптируемы к потребностям пользователей. Но необходимо отметить, что подобный функционал должен быть в системах такого рода, так как с появлением корпусов, объёмы исследуемых данных в разы увеличились, и ручная обработка стала весьма трудозатратной.

Таким образом, статистическая обработка языка ускоряет исследование, а также позволяет с помощью методов математической статистики подтвердить или опровергнуть гипотезу о каком-либо языковом явлении. Из чего следует, что данная работа актуальна и является решением проблемы недостаточного функционала систем обработки корпусов текстов.

Одним из инструментов для обработки корпусов текстов является программа Gate Developer. Данная программа позволяет создавать и изменять правила по обработке текстов. Стоит отметить, что данный инструмент широко применяется для обработки корпусов текстов. Программа является бесплатной и предоставляется с открытым исходным кодом, что очень удобно для дальнейшего расширения функционала. Так же, как и в системах упомянутых выше, в программе Gate Developer нет инструментария, позволяющего генерировать отчеты о собранной статистике.

Объектом исследования в данной работе выступают инструментальные средства обработки текстовых корпусов. Тогда как предметом - средства сбора статистической информации при обработке корпусов текстов, встроенные в инструментарий.

Таким образом, целью данной работы является разработка средства сбора статистики на базе программы Gate Developer для отображения информации о корпусе текстов, обладающего такими свойствами как генерация отчетов о собранных данных, на основе параметров, введенных пользователем, и формирование структуры отчета.

Для достижения данной цели необходимо выполнить ряд задач:

1. Провести анализ существующих средств обработки лингвистических корпусов. Выявить основные достоинства и недостатки рассмотренных программ. Рассмотреть примеры реализации плагинов в программе Gate Developer. Рассмотреть средства генерации отчетов.

2. Сформулировать функциональные требования к разрабатываемому продукту. Выбрать инструментальные средства реализации.

3. Разработать архитектуру модуля для сбора статистики.

4. Разработать плагин для сбора статистики и базовые отчетные формы.

Для исследования объекта необходимо применить такие методы как:

- моделирование информационных систем (для моделирования плагина и его архитектуры);

- формализация (при представлении требований к продукту);

- статистика (для сбора статистических данных в корпусах текстов);

- вероятностно-теоретические методы (при расчёте дополнительных показателей, выводимых в отчете по сбору статистики).

Результатом выполнения данной работы должен быть плагин, позволяющий представить пользователю определенный набор статистики в виде отчета.

Данная работа состоит из 3 глав. Первая глава содержит в себе сравнительный анализ существующих средств обработки языка, а также анализ реализованных плагинов для программы Gate Developer. Во второй главе формируются требования к разрабатываемому плагину, описывается выбор средств для его разработки, а также разрабатывается архитектура плагина. Третья глава является описанием реализации программы, ее работы и первичного тестирования.

Глава 1. Анализ существующих систем и инструментов для обработки естественного языка

В данной главе приводится анализ бизнес-процесса сбора статистики и создания отчета и анализ существующих на данный момент инструментов для обработки естественного языка. На основе информации полученной в результате анализа будут выбраны инструменты для интеграции программного модуля.

1.1 Анализ бизнес-процесса сбора статистики и создания отчета

Для разработки программного обеспечения необходимо тщательно рассмотреть процесс, который автоматизируется с помощью программы. В рассматриваемом случае это бизнес процесс обработки текстового корпуса и генерации отчета о собранной статистике. С помощью анализа бизнес-процесса можно определить его «слабые места» и вывести функциональные требования к программному модулю.

Язык моделирования UML помогает графически описать бизнес-процесс, модель системы или организационную структуру [1]. В данном стандарте существует такой тип диаграмм как Activity Diagrams, предназначенные для описания последовательности действий необходимых для достижения конкретной цели. В данном случае этой целью является сгенерированный отчет.

Для рассматриваемого бизнес-процесса были разработаны две диаграммы активностей - AS-IS и TO-BE. Первая показывает, как процесс функционирует в данный момент, вторая, соответственно, как он должен работать, используя плагин. Сравнительный анализ данных диаграмм должен помочь сформулировать требования к разрабатываемому программному модулю.

Диаграмма AS-IS, представленная на рисунке 1.1, содержит двух актеров: пользователя и систему Gate Developer. Первое что делает пользователь, это загружает текстовый корпус в систему Gate Developer, используя пользовательский интерфейс программы. Далее проходит обработка текста, согласно задачам пользователя, после чего система генерирует *.txt документ с данными о частоте употребления элементов аннотированного текста. После чего, пользователь вручную вычленяет необходимые данные из полученного документа и создает отчет с помощью каких-либо текстовых или табличных редакторов. В результате, выходом процесса является отчет, составленный и оформленный по требованиям пользователя. Стоит отметить, что процесс мог занять большое количество времени и потребовать определенных усилий пользователя, не говоря о том, что многие показатели могли быть не подсчитаны. Таким образом, можно сделать вывод, что процесс на данном этапе функционирует не эффективно, так как является затратным по времени, а также требует частого вмешательства пользователя.

Рисунок 1.1. Диаграмма активностей для бизнес-процесса "AS-IS"

Рассмотрим диаграмму TO-BE, которая отражает вариант преобразования процесса, используя программный модуль (см. рис. 1.2). Как можно увидеть на диаграмме, теперь пользователь принимает меньшее участие в функционировании процесса. Точкой входа также является загрузка пользователем корпуса текстов. Далее происходит обработка текстов, но теперь с использованием плагина, для сбора статистических данных. Далее программный модуль должен представить интерфейс, с помощью которого пользователь программы может установить определенные параметры отчета, такие как список отображаемых пунктов и настройки отображения и оформления. Плагин производит обработку результатов и генерирует отчет, в соответствии с установленными требованиями. Выходным параметром данного процесса также является отчет, соответствующий запросам пользователя, но по сравнению с процессом AS-IS он требует меньшего вмешательства пользователя и, как следствие, меньших трудозатрат.

Рисунок 1.2. Диаграмма активностей для бизнес-процесса "TO-BE"

В результате моделирования процессов AS-IS и TO-BE, а также их сравнительного анализа, было выявлено несколько требований предъявляемых разрабатываемому модулю:

1. Сбор статистических данных и подсчет стандартных показателей.

2. Возможность предоставления пользовательского интерфейса для управления генерацией отчета.

3. Генерация отчета согласно пользовательским параметрам.

Прежде чем приступать к моделированию программного модуля и его реализации необходимо рассмотреть рынок инструментов для обработки текстовых корпусов и проанализировать реализованные решения. Данный шаг может помочь, точнее определить проблему, а также ознакомиться с различными подходами к решению данной задачи.

1.2 Сравнительный анализ средств обработки языка

На данный момент реализовано огромное количество систем по обработке естественного языка. Для выяснения необходимого функционала для разрабатываемого программного модуля, необходимо провести обзор систем-аналогов, выявить существующие средства для сбора статистики и генерации отчетов, и каким образом они реализованы.

Для сравнительного анализа систем были сформулированы следующие критерии:

1. Возможность генерации отчетов.

2. Поддержка различных форматов отчетов.

3. Список параметров, заносимых в отчет.

4. Формирование пользовательских отчетов.

5. Возможность расширения функционала, а именно встраивания дополнительных программных модулей в систему.

6. Язык разработки.

Проанализируем наиболее популярные системы обработки естественного языка.

1.2.1 Система AntConc

Программа является настольным приложением, подходит под такие операционные системы как MS Windows, Linux и Mac. Приложение предоставляется бесплатно на официальном сайте [1] и не требует установки.

Приложение AntConc предназначено для многоцелевой обработки текста. Система содержит в себе 7 инструментов:

1. Конкорданс. Показывает, как ключевое слово используется в разных контекстах исследуемого текста.

2. График конкорданса. График позволяет увидеть, какие файлы содержат искомое ключевое слово.

3. Просмотр файлов. Предоставляет возможность просмотреть оригинальный файл.

4. Кластеры. Позволяют просмотреть упорядоченный список кластеров, которые появляются в процессе поиска.

5. Расположение. Показывает расположение искомого элемента в тексте.

6. Список слов. Данный инструмент производит подсчет всех слов в корпусе и представляет упорядоченный список, с помощью которого можно посмотреть наиболее употребляемые элементы.

7. Список ключевых слов. Инструмент создает «Список слов» для ключевых слов, запрашиваемых пользователем.

Используя описанные инструменты, лингвист может провести исследование корпуса, найти языковые единицы и сравнить частотности их использования [3]. Домашняя страница программы показана на рисунке 1.3.

Рисунок 1.3. Домашняя страница системы AntConc

После обработки текста, программа отображает данные в виде таблицы. Пользователю предоставляется возможность выгрузить результаты обработки текста в файлы нескольких форматов (*.txt,*.text, *.html,*.xml, *.ant) [3, 19] .Стоит отметить, что отображаемые параметры настроить нельзя, они определены в приложении. Содержание отчета зависит от того, какой раздел открыт в окне на данный момент. Несмотря на то, что данные представляются в табличном виде, программа не позволяет загрузить их в MS Excel.

Подсчет статистики в данной системе представлен в разделе «Collocates», который представляет собой таблицу с информацией о частотности использования искомого слова в сочетании с каким-либо словом/сочетанием букв. Интерфейс данного раздела представлен на рисунке 1.4.

Рисунок 1.4. Представление статистики в системе AntConc

Система реализована на языке программирования Perl и поддерживает дальнейшее расширение функционала. Стоит отметить, что создание пользовательских отчетов система не поддерживает.

1.2.2 Система WordSmith Tools

Приложение «WordSmith Tools» [18] является настольным, платным, требующим установки программным обеспечением, которое ориентировано на многоцелевой анализ корпусов текстов. Также существует бесплатная версия данного приложения с ограниченным функционалом и сроком работы. Стоит отметить, что система работает только под MS Windows, что является существенным недостатком в сравнении с другими системами [20]. Программа реализована на языке программирования Python и не поддерживает расширения функционала.

Пользователю доступны для работы три компонента:

1. Компонент WordList, который позволяет формировать список отдельных слов и кластеров слов, также отсортировать их по алфавиту или частоте.

2. Компонент KeyWords позволяет построить список ключевых слов.

3. Компонент Concord, используется для построения списков совпадений в контексте по искомому слову.

Загрузить тексты можно в форматах TXT, PDF, DOC, DOCX, HTML, XML или SGML [21]. Домашняя страница системы представлена на рисунке 1.5.

Рисунок 1.5. Домашняя страница системы WordSmith Tools

В приложении есть возможность сохранить результаты в форматах *.xml, *.txt, Excel spreadsheet и Concordance list. В отчет заносятся стандартные атрибуты - слово, частота употребления, источник, словарная форма и набор документов.

Статистика, собранная с анализируемого документа показана в разделе Concord (см. рис. 1.6). Как и в системе AntConc, WordSmith представляет результаты обработки в табличном виде с различными показателями. Преимуществом данной системы является то, что представленные результаты можно экспортировать в формате XLS. Тем не менее, добавлять пользовательские параметры в отчеты нельзя.

Рисунок 1.6. Раздел Concord в системе WordSmith Tools

1.2.3 Система Sketch Engine

Система «Sketch Engine» [22] - это веб-система, которая позволяет изучать текстовые корпуса и извлекать из них нужную информацию. Инструмент предоставляет бесплатную пробную версию на 30 дней с возможностью использования полного функционала (рис 1.7). После окончания пробного периода, пользователю предлагается выбрать несколько видов платных подписок, с разными наборами функций. Программный код системы использует такие языки программирования как C++, Python и JavaScript. Также возможно расширение функционала системы за счет подключения новых программных компонентов.

Рисунок 1.7. Домашняя страница Sketch Engine

Система поддерживает загрузку текстовых корпусов разных форматов (.doc, .docx, .htm, .html, .pdf, .ps,. tar.bz2,.tar.gz, .tei, .tgz, .tmx, .txt, .vert, .xml, .zip.) [22]. Для анализа текстов пользователю доступен большой спектр инструментов, начиная от обычного поиска слова в тексте, заканчивая специальными фильтрами для поиска предложений по определенной схеме. В системе не существует возможности для сохранения полученных результатов на компьютер пользователя. Статистика использования языковой единицы в текстовом корпусе представляется в виде таблицы, которая представлена на рисунке 1.8. То есть обработка конечных результатов сводится к копированию представленной таблицы.

Рисунок 1.8. Таблица со статистикой Sketch Engine

Инструмент предоставляет в распоряжение пользователя достаточно широкий спектр возможностей для подсчёта математических и статистических показателей. В то же время выгружать результаты обработки текста не представляется возможным, что является существенным недостатком по сравнению с аналогами.

1.2.4 Система Gate Developer

Gate Developer - это бесплатное настольное приложение, требующее установки, которое позволяет создавать, изменять и обслуживать программные компоненты по обработке языка [2]. Программа предоставляется с открытым исходным кодом и имеет множество примеров реализованных программных модулей.

Сильной стороной системы является аннотирование текста и дальнейшее его изучение на основе полученных аннотаций. Маркеры для разметки текста могут быть стандартными, а могут задаваться пользователем. Подсчет статистических данных программа не осуществляет, но подготавливает хорошую базу для подобных вычислений. Пример аннотированного документа представлен на рисунке 1.9.

Рисунок 1.9. Домашняя страница Gate Developer

Пользователю предлагается производить обработку текста, используя три компонента: языковые ресурсы, обрабатывающие ресурсы и приложения. Приложения, являются результатом объединения двух других компонентов - обрабатывающие ресурсы применяются к лингвистическим. В качестве языковых ресурсов могут быть использованы документы разных форматов, таких как TXT, Plain Text, HTML, SGML, RTF, PDF, Microsoft Office, OpenOffice [4], а также дополнительные форматы документов, которые доступны посредством плагинов. Эти документы в свою очередь могут быть объединены в корпуса, а корпуса в хранилища данных (DataStore). Система позволяет выгружать XML файлы с аннотированными текстами, но не имеет возможности генерировать отчеты.

1.2.5 Веб-система CQPWeb

CQPWeb - это веб-система, которая позволяет пользователям исследовать большие корпуса текстов для получения какой-либо информации [17]. Данный ресурс является бесплатным, но обладает большим недостатком - он не позволяет пользователю загружать собственные корпуса текстов. Для изучения доступны 45 встроенных корпусов на различных языках. Внешний вид домашней страницы системы представлен на рисунке 1.10.

Рисунок 1.10. Домашняя страница CQPWeb

Система позволяет пользователю выгрузить результаты обработки текста на свой компьютер в формате «*.txt». В данном отчете можно увидеть результаты выполнения пользовательского запроса, а именно четыре столбца: номер совпадения, само совпадение, количество подобных совпадений и процентное представление.

После того как система проанализирует предоставляемые корпуса на предмет искомого слова, на экране появляется таблица с данными статистики (см. рис 1.11).

Рисунок 1.11. Страница с собранной статистикой CQPWeb

Пользователь может выполнить следующие действия с данными таблицы:

1. Создать новый запрос данных.

2. Сузить границы поиска.

3. Упорядочить по частотности.

4. Распределить по группам.

5. Отсортировать.

6. Просмотреть расположение слов в тексте.

7. Скачать результаты поиска.

8. Категоризировать результаты поиска.

9. Сохранить текущее число совпадений поиска.

Система позволяет выгружать результат обработки текста, в формате TXT, который представляет собой табулированный файл с данными. Пользовательские параметры добавлять в отчет также не предоставляется возможным, но доступна возможность выбора нескольких параметров отображения, таких как метаданные, название файла, наименования колонок и т.д. Для реализации системы были использованы языки программирования Perl, Python и R. Стоит отметить, что расширение функционала системы является возможным, за счет подключения новых программных модулей.

Описанные выше сведения удобно представить в виде таблицы (см. табл. 1.1).

Таблица 1.1. Сравнительная таблица средств обработки текста

Название системы

Генерация отчетов

Форматы экспорта

Параметры отчета

Пользовательские отчеты

Расширение функционала

Язык разработки

AntConc

+

+ (.txt, .text, .html,.htm, .xml, .ant)

Hit, KWIC, File

-

+

Perl

WordSmith Tools

+

+ (.txt, .xml, .xls, .rtf, WordList files)

Word, Frequency, Texts, Lemmas, Set

-

-

Python

Sketch Engine

-

+ (.txt, .xml)

Word, Co-occurrence count, Candidate Count, T-score, MI, logDice

-

+

C ++ , Python , JavaScript , JQuery

Gate Developer

-

+ (.xml)

Type, Set, Start, End, ID, Features

-

+

Java

CQPWeb

+

+ (.txt)

No, Search Results, No. Of occurrences, Percent

-

+

Perl, R, PHP

По итогам анализа систем обработки естественного языка, можно сделать ряд выводов. Ни одна из рассмотренных систем не позволяет пользователю вносить собственные параметры в отчет. Некоторые из систем не предоставляют возможности генерировать отчеты, также, как и не во всех реализована функция сбора статистики. В большинстве из рассмотренных систем отчет представляет собой файл в формате «*.txt», с ограниченным набором параметров. Данный формат является универсальным для дальнейшей обработки, но не обеспечивает пользователю четкого графического отчета о произведенной обработке текста. Одна из систем, WordSmith Tools, позволяет отобразить отчет посредством MS Excel, что является преимуществом перед другими инструментами.

Таким образом, стоит отметить, что возможность генерировать пользовательские отчеты с графическим отображением полученных данных не реализована ни в одной из рассмотренных систем, тем не менее, подобная функция является полезной при представлении результатов обработки текста.

1.3 Обзор существующих плагинов для программы Gate Developer

Разработка программного модуля производится на базе системы Gate Developer, поэтому необходимо рассмотреть плагины, реализованные в рамках данного инструмента. На данный момент в системе Gate Developer существует 72 встроенных и 14 подключаемых плагинов [2]. Нет необходимости рассматривать каждый из них, в рамках данной работы целесообразно проанализировать программные модули, связанные со сбором статистических данных, генерацией отчетов или выгрузкой аннотированного текста для обработки.

Корпусная обработка текстов в рамках системы GATE сосредоточена на трех видах ресурсов:

- Лингвистические ресурсы (LRS, Language Resourсes), это такие компоненты как текстовые корпуса, словари, онтологии корпусов и т.д.

- Процессные ресурсы (PRS, Processing Resources), объекты, которые представляют собой алгоритмы обработки текстов, анализаторы, генераторы.

- Визуальные ресурсы (VRS, Visual Resources), представляют собой компоненты визуализации и редактирования.

Все ресурсы, интегрированные в GATE, составляют CREOLE (a Collection of REusable Objects for Language Engineering), в который также будет добавлен программный модуль по сбору статистики. В набор плагинов CREOLE входит система ANNIE, которая предназначена для извлечения текстовой информации [2].

1.3.1 Система ANNIE

Данный инструмент работает в режиме конвейера, схема которого изображена на рисунке 1.12. Система ANNIE включает в себя следующие возможности:

- Токенизация (ANNIE English Tokenizer), разбиение текста на более мелкие части, токены.

- Разметка частей речи (ANNIE POS-Tagger), автоматическая морфологическая разметка, в ходе которой словам в тексте приписываются тэги в соответствии с частью речи и грамматическими характеристиками [5].

- Разбивка на предложения (ANNIE Sentence Splitter).

- Извлечение именованных сущностей (ANNIE Gazetteer, ANNIE NE Transducer).

- Анализ кореферентности (ANNIE OrthoMatcher), отношения между частями высказывания указывающими на один и тот же объект [6].

Рисунок 1.12. Схема функционирования компонента ANNIE

В системе ANNIE можно выделить следующие ключевые компоненты:

- Document Reset PR, удаляет разметку со всего текста, кроме тех параметров которые пользователь отметил как «setToKeep».

- Tokenizer, используется для упомянутой выше токенизации.

- Gazetteer, выделяет именованные сущности в тексте, которые представляют собой названия городов, организаций, дней недели и т.д.

- Sentence Splitter, делит текст на предложения, разделяя их на типы в зависимости от знака в конце предложения (вопросительные, утвердительные, восклицательные).

- RegEx Sentence Splitter, также как и предыдущий инструмент, делит текст на предложения, но уже используя JAPE, преобразователь регулярных выражений.

- Part of Speech Tagger, используется для упомянутой выше разметки частей речи.

- Semantic Tagger, производит семантическую аннотацию текста используя Jape.

- Orthographic Coreference, используется для анализа кореферентности, описанного выше.

- Pronominal Coreference, находит цитаты, прямую речь, местоимения и т.д.

Группа компонентов ANNIE используется для аннотации неструктурированного текста. Данный инструмент является незаменимым в рамках системы GATE при первичной обработке текстового корпуса. Применение плагинов ANNIE значительно упрощает дальнейшую работу с корпусами.

1.3.2 Группа компонентов OpenNLP

Данный инструмент представляет собой группу Java-компонентов, которые предназначены для выделения выражений, токенизации, разметки частей речи, чанкинга, парсинга, определения именованных сущностей и кореферентности.

В набор компонентов OpenNLP входят:

- OpenNLP Tokenizer;

- OpenNLP Sentence Splitter;

- OpenNLP POS Tagger;

- OpenNLP Chunker;

- OpenNLP Parser;

- OpenNLP NER.

Стоит отметить, что многие инструменты из набора OpenNLP, имеют схожие с плагинами ANNIE названия и функции. Рассмотрим те, которые не представлены в системе ANNIE:

OpenNLP Chunker - это инструмент для «чанкинга», который является частичным синтаксическим разбором, разбиением текста на синтаксически связные фрагменты [8].

OpenNLP Parser позволяет выполнить синтаксический разбор. Инструмент необходимо применять к уже аннотированному тексту. В качестве результата плагин представляет результаты парсинга аннотации в виде синтаксического дерева.

1.3.3 Плагины Academic Corpus Tagger

Academic Corpus Tagger - это набор плагинов, предназначенных для разметки текста в соответствии с маркерами научного стиля академического английского языка [7]. В состав данного инструмента входят следующие плагины:

- Academic Tagger Annotations Counter, счетчик аннотированных тегов;

- Annotations Deleter, инструмент для очищения текста от уже реализованных аннотаций;

- BeHaveTagger, плагин, который выделяет глаголы be и have, а также проверяет слова стоящие за ними на предмет морфологических характеристик;

- ComplexConjExtractor, выделяет двойные союзы, отделяя их от схожих конструкций;

- PrePostPositiveExtractor, компонент помогающий определить существительные с определениями, стоящими до или после слова;

- TheTheConjunction, выделяет двойной союз the;

- VerbTenseTagger, аннотирует временные глагольные формы (Past, Present, Future);

- WordlistFinder, выделяет в тексте точные совпадения или совпадения начальной формы слов представленных в списке, который служит входным параметром плагина;

- WordlistSplitFinder, производит тоже действие что и WordlistFinder, но со словосочетаниями состоящими из 2 частей разделенных «…»;

- WordlistSuffixFinder, выделяет слова соответствующие суффиксам или частям речи указанным как критерии поиска во входном параметре-списке;

- WordlistVerbTagger, выделяет в тексте указанный список глаголов.

Описанный набор плагинов является наиболее важным в рамках данной работы, так как обладает рядом функций, которые будут необходимы при разработке и тестировании плагина для сбора статистики.

По итогам рассмотрения существующих плагинов в системе Gate Developer, можно сделать ряд выводов. Во-первых, в системе реализовано достаточно большое количество пользовательских плагинов, следовательно, существует множество примеров и пособий по этому процессу. Во-вторых, многие плагины выполняют функции, которые необходимы в ходе процесса сбора статистических данных, а значит заново реализовывать их не обязательно. В-третьих, вследствие того, что разработчики постоянно реализуют компоненты для системы Gate, проектная команда Gate создала набор инструментов и методических пособий для разработчиков, которые значительно упрощают процесс создания новых инструментов. Например, Gate Developer, Gate Embedded и Gate Cloud позволяют программистам ускорить разработку продукта, а также повысить его качество, за счет автоматизации данного процесса.

Стоит отметить, что среди рассмотренных инструментов нет ни одного предоставляющего доступ к генератору отчетов, таким образом, необходимость данной разработки снова подтверждается. Для того чтобы встроить генератор отчетов в разрабатываемый инструмент необходимо проанализировать системы, представленные на рынке и выбрать ту, которая максимально удовлетворяет критериям поставленной задачи.

1.4 Обзор средств для генерации отчетов

Проанализировав средства для обработки языка было выявлено, что ни одно из них, включая Gate Developer, не предоставляет пользователю возможность сгенерировать отчет. Данный факт является показателем того что системы недостаточно доработаны, так как отсутствие генерации отчетов -- это существенный недостаток. Для того чтобы построить программный модуль, который выполнял бы такую функцию, необходимо просмотреть решения, которые существуют на рынке в данный момент и выбрать подходящую систему. Определим, что является генератором отчетов.

Генератор отчетов - это библиотека или программа, позволяющая представить данные в структурированном виде, удобном для чтения и печати [9]. Чаще всего для пользователя достаточно затруднительно, после завершения работы с какими-либо данными, формировать отчет вручную. Инструменты для генерации отчетов значительно облегчают задачу.

Стоит отметить, что генераторы отчетов нужны не только пользователям, но и разработчикам, так как система, оснащенная функцией выведения отчетности, имеет некоторое преимущество перед аналогами.

Для дальнейшей разработки программного модуля необходимо проанализировать имеющиеся на рынке средства генерации отчетов и выбрать тот, который максимально удовлетворяет требованиям. Были выбраны 5 генераторов отчетов: Crystal Reports, StimulSoft Reports, Jasper Report, Next Report, BIRT. Для оценивания каждого из инструментов были разработаны следующие критерии:

1. Язык внедрения.

2. Возможность создания диаграмм.

3. Форматы документов отчетов, выгружаемых пользователю.

4. Возможность выбора визуального оформления отчета (шрифты, цветовое оформление, отступы и т.д.).

5. Стоимость программы.

6. Открытый код.

7. Возможность работы с базами данных.

Теперь необходимо проанализировать каждое средство генерации отчетов в отдельности.

1.4.1 Генератор отчетов Crystal Reports Server

Данный инструмент разработан компанией SAP и предназначен для использования компаниями малого и среднего бизнеса [27]. Одним из важных достоинств данного инструмента является подробная документация с описанием всех функций системы. Генератор отчетов поддерживает большинство языков программирования (в том числе и Java), что позволяет разработчикам легко интегрировать его в приложения.

Данное программное средство предоставляет пользователю возможность работы со сложными цветовыми диаграммами. Также с помощью специальных инструментов можно изменять параметры оформления отчета. Стоимость системы достаточно велика для академических исследований, примерно 75 000 рублей [10], поэтому разработчики данного инструмента не предоставляют исходный код.

Система предоставляет широкий спектр возможностей для работы с базами данных, различными СУБД, а также поддерживает работу с языком запросов SQL.

Программа позволяет экспортировать отчеты в различных популярных форматах (.doc, .xls, .rtf,.pdf и т.д.).

1.4.2 Система Stimulsoft Reports

StimulSoft Reports - это полный набор инструментов для построения отчетов в средах JavaScript, ASP.NET, ASP.NET MVC, WPF, Silverlight, WinRT, HTML5, Windows Forms, PHP, Java, и Flex [11]. Система поддерживает работу с различными видами таблиц, диаграмм и других средств визуализации. В данном инструменте содержится полноценный дизайнер отчета, который позволяет разработчику полностью спроектировать шаблон отчета.

Данное средство генерации отчетов предоставляется пользователям в ценовом диапазоне от 29 000 рублей [12], но также предоставляется и бесплатная демоверсия для ознакомления с продуктом. Предоставляется несколько вариантов покупки, с исходным кодом и без.

Программа позволяет работать с базами данным и запросами SQL, а также экспортировать готовые отчеты в различных форматах.

1.4.3 Генератор отчетов Jasper Report

Jasper Report - это Java-библиотека для работы с отчетами. Система позволяет выгружать готовые отчеты в форматах PDF, RTF, HTML, XLS, CSV и XML [12]. Данное средство позволяет загружать данные из различных источников, от документа в формате XML до самостоятельно созданного источника данных. Также возможна неограниченная встраиваемость отчетов друг в друга. Для работы с диаграммами в системе встроена специальная библиотека. язык плагин программный статистика

Основным преимуществом данного инструмента перед другими является то, что он бесплатен и предоставляется с открытым исходным кодом. Так же, как и аналоги, Jasper Report позволяет оперировать запросами SQL и работать с различными базами данных. В системе есть встроенный дизайнер, который позволяет настраивать внешний вид отчетов.

1.4.4 Генератор отчетов Next Report

Генератор отчетов Next Report представляет собой систему для разработки отчетов, состоящую из 3 частей (Next Report Engine, Next Report Designer, Next Report Server). Внедрение данной системы производится на языке программирования Java [14].

С помощью Next Report Designer разработчик может спроектировать дизайн отчета. Компонент «Next Report Engine» - это библиотека, которая позволяет запустить пакет Next Report внутри разрабатываемого приложения. Последний элемент, «Next Report Server», обрабатывает логику построения отчетов.

Программа позволяет экспортировать отчеты в различных форматах, таких как HTML, EXCEL, PDF и т.д. Также система работает с базами данных, SQL, диаграммами и кросс-таблицами. Пакет инструментов предоставляется бесплатно, но без исходного кода.

1.4.5 Программа BIRT

Данная программа представляет собой средство, которое позволяет визуализировать данные и генерировать отчеты из приложений, написанных на Java и Java ЕЕ. Генератор отчетов BIRT, разработанный Eclipse Foundation, состоит из двух компонентов. Первый компонент это дизайнер, с помощью которого можно разрабатывать отчетные формы, второй - позволяет генерировать эти отчеты из Java-приложения [15].

Программное средство предоставляется бесплатно и с открытым кодом. Оно позволяет разрабатывать отчеты со сложными таблицами, диаграммами, графиками, изображениями и т.д. Отчеты можно экспортировать в такие форматы как HTML, PDF, Excel, Power Point, Word [16].

Программа является бесплатной и предоставляется с открытым исходным кодом. Использование данной системы удобно для разработки на языке программирования Java, так как данный программный продукт максимально адаптирован к популярной среде разработки Eclipse.

По итогам сравнительного анализа была составлена таблица (табл. 1.2), в которой представлена краткая характеристика каждого генератора отчета в соответствии с вышеупомянутыми критериями.

Таблица 1.2 Сравнительная таблица генераторов отчетов

Язык внедрения

Возможность создания диаграмм

Форматы отчетов, выгружаемых пользователю

Возможность выбора визуального оформления

Стоимость

Открытый код

Возможность работы с базами данных

Crystal Reports

Visual Basic, C++,C#, Java и т.д.

+

RPT, RPTR, HTML, MS Word, MS Excel, ODBC, PDF, RTF, CSV, TTX, TXT, XML

+

75 000 руб.

-

+

StimlSoft Reports

JavaScript, HTML5, PHP, Java, и Flex

+

PDF, XPS, MS Power Point, HTML, MHT, TXT, RTF, MS Word, MS Excel, CSV, DBF, XML

+

29 000 руб.

+ (при определенных условиях покупки)

+

Jasper Report

Java

+

PDF, RTF, HTML, XLS, CSV и XML

+

Бесплатно

+

+

Next Report

Java

+

HTML, XLS, XLSX, PDF, DOCX, RTF,

CSV, TSV, TEXT и XML.

+

Бесплатно

-

+

BIRT

Java

+

HTML, PDF, Excel, Power Point,

Word

+

Бесплатно

+

+

Таким образом, среди всех рассмотренных средств генерации отчетов, наиболее подходящим для решения поставленной задачи является BIRT. Данный инструмент поддерживает внедрение с помощью языка программирования Java, позволяет визуализировать данные в виде диаграмм, а также выбрать параметры отображения отчета. Также выбранное средство предоставляется бесплатно, что является важным критерием при академических исследованиях.

Вывод по первой главе

В данной главе был проанализирован бизнес-процесс, который планируется автоматизировать с помощью программного модуля. По итогам анализа можно сказать, что на данный момент генерация отчетов о собранной статистике автоматизирована недостаточно, что объясняет необходимость разработки дополнительного программного обеспечения. Рассмотрев уже существующие решения, был сделан вывод, что ни один из представленных на рынке инструментов не соответствует разработанным критериям на 100%, но один из них был выбран в качестве основы для разработки плагина, а именно Gate Developer.

Данный инструмент уже оснащен большим количеством плагинов, которые также были рассмотрены в данной главе. Многие из проанализированных инструментов, встроенных в систему GATE, могут помочь при разработке программного продукта и уменьшить объемы реализации. В ходе рассмотрения плагинов было отмечено, что нет ни одной разработки включающей в себя генерацию отчетов. Для данного процесса необходим генератор отчетов, который и был выбран по итогам анализа данных средств. Инструмент для генерации отчетов BIRT подошел по большинству критериев, соответственно он будет использован в ходе разработки плагина. Основываясь на проанализированных данных можно спроектировать модель разрабатываемого программного модуля.

Глава 2. Проектирование программного модуля для сбора статистики и генерации отчетов

Данная глава является описанием этапа проектирования разрабатываемого программного модуля. На основе результатов анализа проведенного выше, были выбраны компоненты будущей системы. Далее необходимо сформулировать требования к программе и разработать архитектуру, а также выбрать средства, с помощью которых она будет реализована.

2.1 Формирование требований к плагину

Формирование требований к программному продукту является важной стадией разработки, так как помогает четко определить какие функции должна выполнять программа и какие задачи решать. В данном исследовании требования исходят от «Заказчика», в форме пожеланий пользователя, его представлений о том, как должны работать программа. Задача состоит в том, чтобы внимательно изучить требования «Заказчика» и формализовать их.

2.1.1 Требования к программному модулю от заказчика

Основной пользовательской аудиторией данного программного модуля являются специалисты в области лингвистики и филологии, люди, не ориентированные на процессы, протекающие непосредственно внутри программы. Поэтому требования сформулированы в основном к функционалу и интерфейсу. Итак, «Заказчик» сформулировал следующие требования, программный модуль должен позволять:

1. Выводить в отчет статистику аннотации по единице текста (текст, корпус, корпуса текстов).

2. Генерировать отчеты, в которых представлены результаты сравнения показателей разных единиц текста.

3. Отображать результаты обработки текста в виде графиков разных типов (гистограмма, график, круговая и т.д.).

Таким образом, пользователь в своих требованиях определяет основные функции программы, которые теперь необходимо описать подробнее.

2.1.2 Обработанные функциональные требования

Исходя из описанных выше требований, необходимо разработать и описать процесс, который выполняется, когда пользователь использует программный модуль. Для описания функций программы, как нельзя лучше подходят диаграммы UseCase, описанные выше (см. пункт 1.1.). Построенная диаграмма отображает не только функции программы, но и последовательность выполнения тех или иных задач (см. Приложение А).

Началом работы, как и было описано ранее, является загрузка текстовых корпусов в программу Gate Developer. Перед первым запуском программного модуля пользователю необходимо добавить его в систему Gate Developer, посредством модального окна добавления плагинов CREOLE. После этого следует выбор параметров выгружаемой статистики, на основе которых программный модуль на следующем шаге выполняет сбор статистических данных. Далее все действия пользователя проходят в интерфейсе дизайнера отчетов выбранной программы (система BIRT, см. пункт 1.4.). На следующем этапе пользователь выбирает показатели, которые необходимо отобразить в отчете, среди тех, которые были указаны на предыдущем шаге. Затем пользователь выбирает функцию, которой ему необходимо воспользоваться, порядок выполнения, которых не является важным. Стоит отметить, что выбор данных функций, кроме последнего, не является обязательным. Каждая из этих функций является реализацией требований, сформулированных заказчиком. После того как пользователь выбрал данные для отображения, плагин предоставляет возможность выбрать между 5 параметрами визуализации:

- Единицы текста для расчета частотности, которая определяет рамки определения частоты использования того или иного маркера, например, корпуса текстов, корпус, текст и т.д.

- Корпуса для сравнения, а также параметры, по которым будет производиться сравнение.

- Параметры отображения, такие как, таблица и график, для последнего должны быть возможность выбора типа (гистограмма, круговая, столбчатая и т.д.).

- Параметры оформления отчета, например, размер и цвет шрифта, отступы, цвет фона и т.д.

На основании всех выбранных параметров генератор отчета формирует XML файл, после чего пользователю предлагается выбрать формат выгрузки. Сформированный отчет выгружается на локальный компьютер пользователя. Формирование требований позволило рассмотреть программный модуль как единую систему, теперь же необходимо описать компоненты, из которых она состоит.

2.2 Разработка архитектуры плагина

Важным этапом разработки любого программного продукта является моделирование структуры программы. Необходимо графически изобразить и описать, как компоненты программного модуля взаимодействуют друг с другом.

Архитектура программного модуля взаимодействует, прежде всего, со средой Gate Developer, которая была выбрана для интеграции плагина в пункте 1.2. Данный инструмент является связующим звеном между плагином и корпусами текста. Gate проводит разметку корпусов, после чего направляет файлы с размеченными текстами в формате XML в плагин. Программа проводит сбор статистики, после чего данные переходят в хранилище и в систему BIRT. Данный инструмент состоит из 2 компонентов: Report Designer и Report Engine (рис. 2.1). Первый выступает в качестве пользовательского интерфейса посредством элемента Custom Designer, второй - в качестве обработчика данных.

Рисунок 2.1. Архитектура системы для генерации отчетов BIRT

Целевым компонентом является отчет, который генерируется и выгружается через генератор отчетов BIRT. В рассматриваемой архитектуре пользователь производит ввод различных параметров, а также контролирует работу программы. Схематичное изображение архитектуры программного продукта представлено на схеме (см. рис. 2.2.).

Рисунок 2.2. Архитектура программного модуля

Итак, архитектура плагина построена и описана взаимосвязь компонентов, необходимо изучить средства, для реализации, которые подходят для разработки такого рода. После этого должны быть выбраны инструменты, которые будут использоваться при разработке программного продукта.

2.3 Выбор средств разработки

Тщательное рассмотрение и последующий выбор инструментов для разработки позволит повысить качество продукта, а также сократить время исправления возможных ошибок, вызванных использованием не подходящих средств. Необходимо описать и выбрать средства разработки двух типов, а именно, язык программирования и среда разработки. Сначала выберем язык, на котором будет написан программный модуль.

2.3.1 Выбор языка программирования

На данный момент на рынке существует более 8 000 языков программирования, но для данного исследования нет необходимости рассматривать их, так как в пункте 1.2. была выбрана система для интегрирования плагина - среда Gate Developer. Данная программа реализована на языке программирования Java, таким образом, вопрос о выборе языка реализации плагина не возникает.

Группа разработчиков системы Gate Developer создала инструмент для работы с языком программирования Java - Gate Embedded, фреймворк предоставляющий доступ ко всем функциям Gate Developer. Gate Embedded представляет собой набор библиотек, которые помогают программистам создавать плагины для среды. Состав данного инструмента показан на рисунке 2.3.

Рисунок 2.3. Архитектура инструмента Gate Embedded

Gate Embedded состоит из различных слоев, которые в свою очередь содержат в себе средства для работы с теми или иными элементами. Существует 7 основных слоев: слой форматов документов, слой корпусов, слой пользовательского интерфейса, слой работы с приложениями, слой процессных ресурсов, слой языковых ресурсов и слой хранения данных. Все эти средства в комплексе позволяют программисту получить доступ к объектам и функциям программы Gate Developer без применения сторонних библиотек. Тем не менее, для непосредственного написания Java-кода необходим инструмент, рассмотрим наиболее популярные из них.

2.3.2 Обзор интегрированных сред разработки

Интегрированная среда разработки (англ. IDE - Integrated Development Environment) - это набор программных средств, с помощью которых происходит разработка программы. Чаще всего IDE содержит в себе текстовый редактор, компилятор/интерпретатор, средство сборки и отладчик.

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.