Разработка системы анализа стилистики синтаксических конструкций научных текстов на английском языке
Задача автоматизированного анализа стиля англоязычных текстов. Описание алгоритмов и библиотек для автоматизированного анализа текстов на английском языке. Реализация системы для анализа синтаксического стиля научных текстов на английском языке.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 27.08.2018 |
Размер файла | 665,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Пермский филиал федерального государственного автономного образовательного учреждения высшего образования
«Национальный исследовательский университет «Высшая школа экономики»
Факультет экономики, менеджмента и бизнес-информатики
Выпускная квалификационная работа
по направлению подготовки 38.03.05 Бизнес-информатика
образовательная программа «Бизнес-информатика»
РАЗРАБОТКА СИСТЕМЫ АНАЛИЗА СТИЛИСТИКИ СИНТАКСИЧЕСКИХ КОНСТРУКЦИЙ НАУЧНЫХ ТЕКСТОВ НА АНГЛИЙСКОМ ЯЗЫКЕ
Гайнетдинова Вероника Андреевна
Руководитель старший преподаватель кафедры
информационных технологий в бизнесе
НИУ ВШЭ - Пермь В.В. Ланин
Пермь, 2018 год
Аннотация
Работа посвящена разработке системы анализа стилистики синтаксических конструкций научных текстов на английском языке. Автором работы является Гайнетдинова Вероника Андреевна.
Выпускная квалификационная работа состоит из трех глав, а также введения и заключения. Первая глава содержит результаты исследования методов анализа текстов, обоснован выбор подходящих средств. Кроме того, проведен анализ существующих решений (систем и средств), позволяющих проводить интеллектуальный анализ текстов. Отдельно представлено описание корпусов документов, которые используются в данном исследовании. Вторая глава посвящена описанию алгоритмов для реализации системы, а также проектированию необходимой базы данных и архитектуры системы. Отдельно отражены алгоритмы для сбора метрик по тексту. В третьей главе отражен процесс программной реализации заявленной системы для анализа научных текстов на английском языке. Также описан процесс тестирования разработанной системы.
В данном документе 65 страниц и содержится 10 таблиц и 11 рисунков.
Оглавление
- автоматизированный синтаксический текст стиль
- Введение
- 1. Задача автоматизированного анализа стиля текстов
- 1.1 Описание предметной области и ключевых терминов
- 1.2 Постановка задачи в целом и требования к системе
- 1.3 Обзор систем автоматизированного анализа текста
- 1.4 Описание алгоритмов и библиотек для автоматизированного анализа текстов на английском языке
- 1.5 Описание наборов эталонных документов (корпусов) для анализа
- 1.6 Экономическое обоснование разработки системы
- 1.7 Выводы по главе
- 2. Проектирование разрабатываемой системы
- 2.1 Спецификация требований к разрабатываемой системе
- 2.2 Синтаксические конструкции английского языка, значимые при оценке стиля текста и алгоритмы их поиска
- 2.3 Архитектура разрабатываемой системы
- 2.4 Проектирование базы данных, необходимой для реализации системы
- 2.5 Проектирование API разрабатываемой системы
- 2.6 Проектирование графического интерфейса
- 3. Реализация системы для анализа синтаксического стиля научных текстов на английском языке
- 3.1 Разработка серверной части приложения
- 3.2 Сбор статистики и проверка гипотез
- 3.3 Разработка клиентской части приложения
- 3.4 Тестирование разработанной системы
- Заключение
- Библиографический список
- Приложения
- Приложение А Код серверной части приложения
- Приложение Б Код клиентской части приложения
- Приложение В Тесты серверной части приложения
- Приложение Г Тесты клиентской части приложения
Введение
Во многих сферах жизни (от чтения новостей до проведения научной работы) человек сталкивается с обработкой больших объемов информации с целью получения из нее полезных сведений. Проблема быстрой и качественной обработки информации остается актуальной в различных областях деятельности, так как до сих пор не существует ее универсального решения. Отсутствие единого инструмента для всестороннего анализа текста обусловлено тем, что есть совершенно разные стороны для анализа: синтаксис языка, семантика текста, стилевое оформление (как со стороны синтаксиса, так и со стороны лексики) и т.д. На данный момент реализованы ряд систем, позволяющих проводить интеллектуальный анализ текстов, например, для поиска по тексту или определения эмоционального окраса [1-3]. Интеллектуальный анализ текстов (text mining) - это процесс выделения полезной информации из исходного текста с использованием средств искусственного интеллекта [4]. В том числе такие средства могут применяться для анализа стиля текста.
В лингвистике выделяют понятие функционального стиля речи. Функциональный стиль - это система речевых средств языка, которые используются в той или иной сфере общения [5]. Например, выделяют научный стиль, который применяется в науке и научных журналах. Основная функция такого стиля - сообщить информацию, а также доказать ее истинность. Анализ стилистики синтаксических конструкций научных текстов может найти свое применение, например, при проверке научных статей на соответствие правилам издательства или для определения «уровня» статьи с точки зрения используемого синтаксиса. Учитывая большие объемы научных текстов, которые должны регулярно проверяться и отсеиваться (в частности, издательствами), проблема быстрого и качественного анализа стиля синтаксических конструкций является актуальной. Таким образом, вытекает противоречие между требованиями к синтаксическому стилю научных работ с одной стороны, и отсутствием четко сформулированных критериев и автоматизированной системы проверки стилистики синтаксических конструкций текстов, с другой стороны.
Исходя их вышесказанного, проблема исследования заключается в отсутствии инструмента для автоматизированного анализа стилистики синтаксических конструкций научных текстов на английском языке. Объектом же данной работы являются синтаксические конструкции документов. Предметом исследования являются средства компьютерной лингвистики для проверки стиля синтаксических конструкций текстов.
Целью исследования является разработка системы анализа стилистики синтаксических конструкций научных текстов на английском языке на основе сбора данных по настроенным метрикам (определенным экспертами).
Для достижения поставленной цели необходимо решить ряд задач, а именно:
1. Провести аналитическое исследование существующих методов анализа текстов, выбрать подходящие методы для стилистического анализа синтаксических конструкций текстов на английском языке.
2. Подготовить набор эталонных документов на английском языке для сравнительного анализа с проверяемым текстом и формирования набора показателей (маркеров).
3. Подготовить набор тестовых документов на английском языке для тестирования работы системы.
4. Выполнить проектирование модели хранения и высокоуровневого представления системы, в том числе используемых алгоритмов, с помощью современных языков моделирования.
5. Сформировать показатели (осмысленные, которые будут понятными пользователю) и алгоритмы расчета метрик по ним на основе анализа эталонных документов.
6. Разработать систему анализа стилистики синтаксических конструкций научных текстов на английском языке.
7. Протестировать систему на тестовых документах.
На данный момент уже были совершены подходы к решению проблемы анализа стиля синтаксических конструкций научных текстов на английском языке. Так, в 1992 году в одном из университетов Канады была разработана система для обучения студентов научному письменному стилю [1]. Однако, эта система обладала рядом ограничений, например, позволяла обрабатывать тексты только по одному предложению.
На этапе проведения исследования будут использованы следующие методы: анализ классификация, сравнение, моделирование, а также методы объектно-ориентированного программирования.
На защиту выносятся:
1. Набор критериев, определяющих стиль синтаксических конструкций научного текста на английском языке.
2. Разработанные алгоритмы анализа стилистических особенностей синтаксических конструкций.
3. Автоматизированное средство (система) для выполнения анализа синтаксического стиля научных текстов.
В ходе работы был выявлен и описан набор критериев, имеющих значительный вес при анализе синтаксического стиля научных документов. Разработаны алгоритмы расчета метрик для анализа стиля синтаксических конструкций научных текстов на английском языке. Реализована система, автоматизирующая проверку стилистики синтаксиса в научных текстах.
1. Задача автоматизированного анализа стиля текстов
В главе описывается предметная область проводимого исследования; постановка задачи анализа стилистики синтаксических конструкций в общем виде; сравнительный анализ существующих программных средств; описание возможностей выбранных средств, которые будут использованы при разработке; назначение системы, а также детализация требований к системе в целом.
1.1 Описание предметной области и ключевых терминов
Прежде всего необходимо привести определения ключевых понятий и терминов.
Синтаксический анализ (парсинг) - понятие, используемое в компьютерной лингвистике для обозначения процесса сопоставления последовательности лексем (токенов, слов) формального языка с его формальной грамматикой. Программа, выполняющая синтаксический анализ, называется парсером (или синтаксическим анализатором) [4].
Обычно результатом синтаксического анализа является построенное синтаксическое дерево (дерево разбора). Синтаксическое дерево (дерево разбора) - ориентированное дерево, имеющее корневую вершину, которое является представлением синтаксической структуры некоторой строки в соответствии с контекстно-независимой грамматикой [4].
Под маркером в работе будет подразумеваться некая известная специфическая последовательность синтаксических средств, отличающая хороший синтаксический стиль научного текста на английском языке. Метрикой же будем называть конкретное значение, рассчитанное по рассматриваемой выборке документов, для заданного маркера. Например, маркером может быть наличие пассивного залога в работе, а метрикой для этого маркера будет конкретное значение - 6-8%.
Во время разработки системы будет необходимо выявить маркеры и рассчитать метрики, присущие хорошему синтаксическому стилю. Для этой цели необходимо подготовить две выборки данных: обучающую и тестовую. Обучающая выборка будет использоваться во время формирования (выявления) маркеров и подсчета метрик во время разработки системы, а тестовая выборка необходима для валидирования работы системы (тестирование выдаваемых результатов).
1.2 Постановка задачи в целом и требования к системе
Основной задачей данной работы является разработка системы, позволяющей производить автоматизированный анализ стиля синтаксических конструкций английских научных текстов и выдавать рекомендации по улучшению стиля анализируемой работы.
Поставленная задача логично разбивается на следующие подзадачи:
1. Выделение синтаксических конструкций предложения (определение основных характеристик входящего предложения).
2. Сбор маркеров и конкретных значений по ним (метрик), являющиеся индикаторами синтаксического стиля. Автоматизация расчета метрик.
3. Выдача рекомендаций по стилю текста для улучшения качества проанализированной работы с точки зрения синтаксиса.
4. Расчет пользовательских метрик, а также проведение статического синтаксического анализа по заданным правилам.
5. Интерфейсная часть приложения - пользовательский интерфейс для работы с системой (веб-приложения).
Таким образом, описанные подзадачи позволяют выделить основные модули разрабатываемой системы. Система автоматизированного анализа стилистики синтаксических конструкций научных текстов на английском языке будет состоять из пяти частей: «Синтаксический анализ», «Сбор метрик», «Стилевые рекомендации», «Пользовательские правила» и «Веб-приложение». Функциональные требования, предъявляемые к каждому из модулей, будут описаны на этапе проектирования системы.
1.3 Обзор систем автоматизированного анализа текста
В качестве аналогов разрабатываемой системы будут рассмотрены приложения, предназначенные для анализа текстов на английском языке. Для анализа выбраны системы, которые позволяют производить разносторонний автоматизированной анализ текстов. Будут проанализированы следующие проекты:
1. DocBridge Delta (Compart) [2] - программное решение, позволяющее производить проверку качества документа, основываясь на сравнении двух файлов (текущей и предыдущей версии) для выявления появившихся проблем качества. Система позволяет производить проверку текста на соответствие заданному набору правил, а также запускать автоматизированные тесты.
2. PaperRater [6] - автоматизированная система, позволяющая производить интеллектуальный анализ текста, включающий проверку грамматики, подсчет процента заимствований, выдачу инструкций по улучшению.
3. After the Deadline [3] - система с открытым исходным кодом, использующая методы искусственного интеллекта для проведения анализа текстов, написанных на естественном языке. Приложение находит ошибки в текстах (написание слов и грамматика), а также генерирует предложения по улучшению стиля (с точки зрения разговорности, то есть упрощает текст с точки зрения используемых выражений).
4. OnlineCorrection.com [7] - это сервис, проверяющий тексты на английском языке на наличие ошибок написания слов, базовой грамматики, а также стилевых ошибок. Программа также умеет генерировать предложения по улучшению текста.
5. LanguageTool [8] - это приложение с открытым исходным кодом, позволяющее производить проверку наличия ошибок в текстах на различных языках.
6. Scribens [9] - система, предоставляющая инструмент для проверки грамматических и стилевых ошибок в текстах. Также предоставляется статистические данные для проверяемого текста, такие как количество слов, предложений, параграфов и другие.
Для более детального сравнения описанных выше систем необходимо разработать ряд критериев. Выбранные критерии представлены ниже:
1. Выдача рекомендаций по улучшению стиля.
2. Проверка синтаксического научного стиля.
3. Оценка «уровня» текста с точки зрения научного стиля.
4. Установка пользовательских правил.
5. Приложение доступно без установки дополнительного программного обеспечения (web-версия).
6. Бесплатная версия.
7. Обработка текста целиком.
8. Работа с документами в формате pdf и doc.
9. Предоставление статистики по тексту.
Визуализация сравнения систем на основе выделенных критериев представлена в таблице 1.1.
Таблица 1.1
Сравнение систем для автоматического анализа текстов
Критерий |
DocBridge Delta |
PaperRater |
After the Deadline |
Online Correction |
Language Tool |
Scribens |
|
Выдача рекомендаций по улучшению стиля |
- |
+ |
+ |
+ |
- |
+ |
|
Проверка синтаксического научного стиля |
- |
- |
- |
- |
- |
- |
|
Оценка «уровня» текста с точки зрения научного стиля |
- |
- |
- |
- |
- |
- |
|
Установка пользовательских правил |
+ |
- |
+ |
- |
- |
- |
|
Приложение доступно без установки дополнительного программного обеспечения (web-версия) |
+ |
+ |
+ |
+ |
+ |
+ |
|
Бесплатная версия |
- |
+ |
+ |
+ |
+/- |
+ |
|
Обработка текста целиком |
+ |
+ |
+ |
+ |
+ |
+ |
|
Работа с документами в формате pdf и doc |
+ |
- |
- |
- |
- |
- |
|
Предоставление статистики по тексту |
- |
+ |
- |
- |
- |
- |
Изучив полученные результаты сравнения, можно сделать вывод, что среди описанных выше систем нет приложения, которое бы полностью соответствовало заявленным критериям. Таким образом, систему для анализа стилистики синтаксических конструкций текстов на английском языке необходимо разработать.
1.4 Описание алгоритмов и библиотек для автоматизированного анализа текстов на английском языке
Для разработки системы, позволяющей производить анализ синтаксического стиля текстов, потребуется ряд средств, предназначенных для автоматизированного анализа текста. В частности, это библиотеки и алгоритмы для парсинга документов, построения синтаксических деревьев и выявления частей речи в предложениях.
Наиболее известный парсер в области обработки текстов на естественных языках это разработка Стэндфордского университета - The Stanford Parser, который является статистическим парсером. Данный пакет программ написан на языке программирования Java и является реализацией вероятностного парсера для английского языка. Данный парсер при разборе предложения строит синтаксическое дерево (дерево зависимостей), а также помечает все слова соответствующими тегами.
Стэндфордский парсер позволяет добавлять свои теги для разметки предложений. Однако для хороших результатов следует убедиться, что предоставлен правильно размеченные примеры и использованы верные имена для тегов. Важно отметить, что описанная библиотека не подходит для проверки грамматики в приложениях. Проверить работу парсера можно с помощью веб-интерфейса, предоставляемого официальном сайтом разработчика библиотеки (рисунок 1.1). Для проверки будем использовать предложение, взятое из научного текста по политологии: «Then we fit a statistical model and discuss results and implications».
Рисунок 1.1 Результат работы стенфордского парсера
Другой полезной библиотекой для синтаксического парсинга текстов является SyntaxNet, разработанная в Google. SyntaxNet - это фреймворк основанная на технологии нейронных сетей. На вход функции-обработчику подается предложение, написанное на естественном языке. Каждое слово во входном предложении маркируется тегом, обозначающим часть речи, который описывает синтаксическую функцию слова. А также устанавливаются связи между словами в предложении, которые представляются в виде направленного дерева разбора. Пример синтаксического разбора предложения представлен на рисунке 1.2 (для наглядности опущены некоторые параметры, описывающие токены). Для проверки также воспользуемся предложением из научной работы по политологии: «Then we fit a statistical model and discuss results and implications».
Рисунок 1.2 Синтаксический разбор предложения SyntaxNet
Описанный выше фреймворк для синтаксического разбора текстов SyntaxNet будет использован в процессе разработки системы анализа стилистики синтаксических конструкций научных текстов на английском языке. Выбор обусловлен тем, что SyntaxNet осуществляет синтаксический разбор предложения значительно быстрее Стэндфордского парсера, а также предоставляет более подробную информацию о разобранном предложении
1.5 Описание наборов эталонных документов (корпусов) для анализа
Перед этапом проработки архитектуры системы и непосредственно разработки необходимо подготовить набор эталонных документов на английском языке для их анализа с целью получения целевых показателей и метрик. Полученные характеристики будут использовать для сравнительного анализа эталонных документов с проверяемым текстом. Важно, что под набором эталонным документов в данном контексте понимаются не только «хорошие», с точки зрения синтаксического стиля, статьи, но и также «плохие». В частности, имеется в виду, что будут использованы стилистически верные работы (образцы) - работы профессионалов, компетентных авторов научных текстов, а также тексты, стилистический стиль которых необходимо сравнить в образцами - работы студентов НИУ ВШЭ-Пермь разных направлений подготовки.
Научно-учебной группой НИУ ВШЭ в Перми «Разработка программного обеспечения для проведения корпусных исследований английского языка» был собран ряд корпусов студенческих работ [10]. Корпусы разделены по направлениям подготовки студентов, а именно: менеджмент, экономика, политология, история, право, бизнес-информатика и программная инженерия. Описанные шесть корпусов содержат работы Research Proposal, написанные студентами НИУ ВШЭ в рамках дисциплины «Академическое письмо на английском языке». Документы представлены в формате txt.
Корпусы профессиональных текстов представлены в виде набора статей, написанных компетентными авторами (в основном носителями языка). Данные статьи выпущены под именами известных университетов (например, Оксфорд). Корпусы профессиональных работ будут использованы во время статистического анализа для выявления синтаксических маркеров хорошего научного стиля текстов на английском языке. Для валидирования найденных маркетов будут проводиться сравнения с работами студентов, изучающих английский.
Описанные корпусы статей будут разделены на два набора: обучающая выборка и тестовая. Обучающая выборка будет использовать для получения показателей и метрик, являющихся индикаторами «хорошего» синтаксического стиля научного текста. Тестовый набор будет использован для оценки того, насколько правильные результаты выдает система при проверке работы.
1.6 Экономическое обоснование разработки системы
В рамках представленной выпускной квалификационной планируется разработка системы для анализа стилистики синтаксических конструкций научных текстов на английском языке. Данная система разрабатывается для кафедры английского языка НИУ ВШЭ-Пермь и может быть использована для проверки студенческих работ перед дальнейшей публикацией в научных журналах.
Разработка системы включается в себя ряд этапов:
1. Анализ предметной области.
2. Поиск и подготовка корпусов научных текстов, которые будут взяты за основу при разработке системы.
3. Статистический анализ найденных корпусов, формирование правил хорошего стиля.
4. Программная реализация модуля для автоматизированной проверки стилистики синтаксических конструкций научных текстов на английском языке.
5. Создание веб-оболочки пользовательского интерфейса.
6. Тестирование приложения и исправление ошибок.
Далее следует определить ресурсные затраты на разработку проекта с точки зрения участников. Список участников и соответствующие им роли представлены в таблице 1.2.
Таблица 1.2
Роли участников проекта
Участник проекта |
Роль |
|
Гайнетдинова Вероника Андреевна |
Автор выпускной квалификационной работы, аналитик, а также разработчик и тестировщик системы |
|
Ланин Вячеслав Владимирович |
Научный руководитель выпускной квалификационной работы |
|
Стринюк Светлана Александровна |
Эксперт-консультант в области академического английского |
Распределение ролей по этапам разработки, а также временные затраты представлены в таблице 1.3. В последней колонке представлен итоговый подсчет времени, необходимого на каждый из этапов.
Таблица 1.3
Распределение ролей по этапам разработки
Название этапа |
Роль |
Временные затраты |
||
1. Анализ предметной области. |
Аналитик |
2 дня |
2 дня |
|
2. Поиск и подготовка корпусов научных текстов, которые будут взяты за основу при разработке системы. |
Аналитик |
3 дня |
3 дня |
|
Научный руководитель |
1 день |
|||
3. Статистический анализ найденных корпусов, формирование правил хорошего стиля. |
Аналитик |
3 дня |
5 дней |
|
Разработчик |
2 дня |
|||
Эксперт-консультант |
1 день |
|||
Научный руководитель |
1 день |
|||
4. Программная реализация модуля для автоматизированной проверки стилистики синтаксических конструкций научных текстов на английском языке. |
Разработчик |
28 дней |
28 дней |
|
5. Создание веб-оболочки пользовательского интерфейса. |
Разработчик |
7 дней |
7 дней |
|
6. Тестирование приложения и исправление ошибок. |
Разработчик |
7 дней |
10 дней |
|
Тестировщик |
3 дня |
Таким образом, разработка всего приложения займет 55 дней, что приблизительно равняется 2 месяцам. Так как проект разрабатывается в рамках выпускной квалификационной работы и делается по заказу кафедры иностранных языков, на него не будет выделен отдельный бюджет. Поэтому все временные затраты участников проекта не будут оплачены материально. Однако возможно подсчитать недополученную прибыть участников, и соответственно расходы на выполнение проекта. Расходы представлены в таблице 1.4.
Таблица 1.4
Затраты на выполнение проекта
Роль |
Ставка |
Время работы |
Затраты (руб) |
||
Аналитик |
180 руб/ч |
8 дней |
64 часа |
11 520 |
|
Разработчик |
340 руб/ч |
44 дня |
352 часа |
119 680 |
|
Тестировщик |
250 руб/ч |
3 дня |
24 часа |
6 000 |
|
Научный руководитель |
350 руб/ч |
2 день |
16 часов |
5 600 |
|
Эксперт-консультант |
375 руб/ч |
1 день |
8 часов |
3 000 |
Таким образом, получаем итоговые приблизительные затраты на разработку описанной системы в 145,8 тысяч рублей. В дальнейшем разработанная система может быть монетизирована. Некоторые из возможных путей монетизации представлены ниже:
1. Платные подписки для сервиса - запуск нескольких планов работы с системой, например, базовый, премиум и студенческий (предполагается предоставлять студентам бесплатный доступ к полной версии сервиса).
2. Получение пожертвований (благодарностей за разработку сервиса, выраженных в денежной форме).
3. Показ рекламы на сайте сервиса.
4. Продать сервис другой компании.
5. Добавить элементы биржи в бизнес-модель сервиса - создать площадку, где знатоки английского смогут за некоторую плату в ручную проверять предложенные документы. Монетизация - взимание комиссии с транзакций, совершенных на сайте.
Наиболее рабочим методом монетизации для разрабатываемого сервиса может стать первый способ. Запуск трех видов подписок потенциально может покрыть издержки на разработку. В таблице 1.5 представлены примерные параметры выбранного способа монетизации. Предположим, что сервисов пользуется около 2,5 тыс. человек, из которых около 125 человек приобрели премиум подписку, а 350 человек пользуются студенческой подпиской сервиса, за которую заплатили 5 вузов.
Таблица 1.5
Монетизация за счет подписок
Вид подписки |
Стоимость в месяц (руб) |
Количество купивших (чел) |
Ожидаемая прибыль (руб) |
|
Базовый пакет |
0 |
1 925 |
0 |
|
Премиум пакет |
700 |
125 |
85 700 |
|
Студенческий пакет |
0 |
450 |
0 |
Таким образом, предположительная прибыль составит около 95,7 тысяч рублей в месяц. При этом необходимо учесть также переменные расходы на содержание сайта, а именно оплату хостинга (в среднем 5 000 руб/месяц) и администрирование (своими силами). Выбранный способ монетизации предположительно окупит издержки уже через два месяца существования (при условии, что около 5 вузов и 125 человек будут оплачивать расширенную подписку). Так как такое количество пользователей появится не в первый день, необходимо также закладывать издержки на рекламу сервиса.
1.7 Выводы по главе
Аналитическое исследование позволило выявить необходимость разработки системы для автоматизированного анализа стилистики синтаксических конструкций научных текстов на английском языке. Необходимость обусловлена отсутствием специализированного инструмента для анализа синтаксического стиля английских научных текстов. Также были описаны современные программные пакеты (библиотеки), которые позволяют производить синтаксический разбор предложений. Для реализации системы был выбран фреймворк SyntaxNet, потому что он позволяет произвести быстрый (по сравнению с другими программными решениями) синтаксический разбор предложений и предоставляет очень подробную информацию о проанализированном предложении.
Кроме того, выполнено экономическое обоснование разработки системы. Чтобы окупить расходы на разработку системы, которые составили примерно 145 тысяч рублей, в дальнейшем после разработки основной функциональности системы могут быть добавлены элементы для монетизации, а именно: платные подписки на использование системы.
2. Проектирование разрабатываемой системы
В главе содержатся требования к разрабатываемой системе для анализа стилистики синтаксических конструкций научных текстов на английском языке, а также описаны алгоритмы, которые будут использованы при реализации системы и представлен список значимых при оценке синтаксического стиля текста синтаксических конструкций.
2.1 Спецификация требований к разрабатываемой системе
На этапе анализа исследуемой проблемы анализа стиля синтаксических конструкций текстов на английском языке были выделены пять модулей. Детализация требований к каждому из модулей представлена ниже:
1. Модуль «Синтаксический анализ»:
1.1. Осуществление разбора предложения согласно описанной формальной грамматике английского языка: то есть выделение синтаксических единиц заданного предложения.
1.2. Осуществление разбора текста согласно описанной формальной грамматике, определение контекстных синтаксических особенностей предложений и текста в целом.
2. Модуль «Сбор метрик»:
2.1. Создание набора показателей (и формул для их расчета), расчет которых необходим для проведения анализа стилистики синтаксических конструкций текстов на английском языке.
2.2. Автоматизация расчета метрик по выявленным показателям.
2.3. Сбор статистической информации (расчет метрик) по обучающей выборке.
3. Модуль «Стилевые рекомендации»:
3.1. Выдача ответа о качестве текста в бинарном виде (хороший/плохой).
3.2. Выдача ответа о качестве текста в виде процента «похожести» на эталонные работы.
3.3. Выдача предположений рекомендательного характера о необходимых изменениях текста для приближения проверяемой работы к эталонному состоянию.
3.4. Объяснение полученных результатов (описание собранных метрик, расшифровка приведенных показателей).
4. Модуль «Пользовательские правила»:
4.1. Предоставление возможности пользователю добавить свои показатели и определить правила расчета значений по ним.
4.2. Расчет метрик и выдача результатов по заданным пользователем показателям.
4.3. Проведение статического синтаксического анализа текстов по заданным пользователем правилам.
4.4. Предоставление возможности пользователю определять свои правила для выдачи сообщений после автоматического анализа текста.
4.5. Выдача заданных пользователем рекомендаций в соответствии с описанными им правилами.
5. Модуль «Веб-приложение»:
5.1. Визуальное представление работы системы: от загрузки пользовательского документа до выдачи рекомендаций.
5.2. Корректная работа в современных браузерах (Google Chrome, Yandex Browser).
2.2 Синтаксические конструкции английского языка, значимые при оценке стиля текста и алгоритмы их поиска
Анализ синтаксического стиля научных текстов на английском языке будет производится путем статистического подсчета различным метрик, отражающих синтаксические особенности предложений и теста в целом. Экспертами были определены ряд правил английского языка для написания письменных работ в научном стиле [11-12]. В качестве гипотез выдвигается значимость следующих синтаксических конструкций при оценивании синтаксического стиля текста:
1. Количество подлежащих в предложении - среднее значение, максимальное и минимальное значения, медиана, мода.
2. Использование «relative connectors» (who, in which, at which, when, into which, who, that, where, whose, whom) - частота использования, рассчитанная на предложение/абзац.
3. Использование деепричастных оборотов (и дополнений) - отдельный подсчет по типу оборота (описывающие время, место и т.д.) - частота использования.
4. Использование conjunctions (co-coordinate and subordinate) - частота использования.
5. Использование пассивного залога - частота на единицу текста, местоположение вхождений (введение, основная часть, заключение).
6. Наличие базовой структуры научного текста - введение, основная часть, заключение.
7. Использование вопросительных предложений - частота использования.
8. Использование условных предложений - частота использования.
9. Использование связок\ссылок на предыдущие предложения (this, that, these, those) - частота использования.
Для каждой из выборок можно рассчитать среднеквадратичное отклонение от среднего эталонного значения (посчитанного для выборки работ, написанных профессиональными авторами). Кроме того, можно учитывать глубину синтаксического дерева каждого из предложений и собирать общую статистику по проверяемому тексту - среднее значение, минимальное и максимальное значения, медиану, моду.
Далее важно определить алгоритмы расчета метрик по каждому показателю, описанному выше. Приведем статистические формулы, необходимые для расчетов [13].
Среднее значение рассчитывается как среднее арифметическое:
где i - элемент выборки, n - размер выборки.
Среднеквадратичное отклонение - показывает абсолютное отклонение измеренных значений от среднего арифметического, рассчитывается как:
где i - элемент выборки, - выборочное среднее, n - размер выборки.
Полезным может стать также и коэффициент вариации, который характеризует меру отклонения измеренных значений от среднего. Чем меньше значение коэффициента, тем относительно меньший разброс и большая выровненность исследуемых значений. Коэффициент вариации рассчитывается по формуле:
где - выборочное среднее, - среднеквадратичное отклонение.
Медиана - это величина изучаемого признака, которая расположена в середине ряда, состоящего из упорядоченных числовых значений этого признака.
Мода - это наиболее часто встречаемое значение признака вариационного ряда (то есть значение признака, обладающее наибольшей частотой).
Для определения интервалов допустимых значений можно воспользоваться квантилем. Квантиль для эмпирической интервальной выборки рассчитывается по формуле:
где j - уровень квантиля, - нижняя граница интервала, содержащего квантиль (интервал определяется по накопленной частоте интервалов), - ширина интервала, содержащего квантиль, - накопленная частота интервала, предшествующего интервалу, содержащему квантиль, - частота интервала, содержащего квантиль.
Помимо статистических формул, необходимо также понимать, каким образом определять наличие той или иной синтаксической конструкции в предложении. Алгоритмы поиска описанных выше синтаксических конструкций представлены в таблице 2.1. В SyntaxNet используются стандартные аббревиатуры (тэги) для описания назначения токена в предложении [14].
Таблица 2.1
Определение синтаксических конструкций в тексте
Синтаксический маркер |
Алгоритм поиска |
|
Подлежащие в предложении |
Определяется во время построения синтаксического дерева, маркируется парсером как Subj. Необходимо подсчитать количество слов, отвеченных тэгом Subj в предложении. |
|
Использование «relative connectors» |
Поиск заданных вхождений в строку. Подстроки для поиска: who, in which, at which, when, into which, who, that, where, whose, whom. |
|
Использование деепричастных оборотов (и дополнений) |
В качестве маркеры используются тэги, полученные после синтаксического разбора предложения. tmod - модификатор времени; тэг указывает на то, что данное слово служит для указания времени. agent - дополнение к пассивному глаголу, следующее после связки «by». num - числовой модификатор. purpcl - модификатор указывающий на цель (например, in order to). |
|
Использование conjunctions |
Общий тэг - «conj». Co-ordinate (используется тэг «cc»): …and (then)…; not only…, but also; …but…; …(and) yet…; …(and) so…; …(and) hence…; …or (else)… Subordinate: , who…;, which…;, where…;, when…; although…; whereas…; while…; in spite of the fact that…; despite the fact that…; so (that)…; because…; due to the fact that…; if…; as/so long as…; before…; after…;, after which…; when…; now that… |
|
Использование пассивного залога |
Поиск синтаксических структур: Subj + finite form of to be + Past participle. |
|
Наличие базовой структуры научного текста |
Определение введения по ключевым словам: начинается с заголовка Introduction, заканчивается следующим заголовком. Заключение - начинается после ключевого слова Conclusion. |
|
Использование вопросительных предложений |
Два подхода: 1. Поиск вопросительных знаков в конце каждого из предложений (проверить вхождение символа «?»). 2. Поиск синтаксических конструкций присущих вопросительным предложениям: инвертированный порядок подлежащего и сказуемого, использование вопросительных слов. |
|
Использование условных предложений |
Поиск синтаксических конструкций присущих условным предложениям в английском языке: 1. Нулевой тип - использование настоящего времени в обоих частях предложения, наличие ключевых слов: if, unless, when. 2. Первый тип - использование простого настоящего времени в части с условием и использование простого будущего времени во второй части; наличие ключевых слов: if, unless. 3. Второй тип - использование простого прошедшего времени в части с условием (if-clause), would/might + inf во второй части. 4. Третий тип - использование совершенного прошедшего времени в части с условием (if-clause) и would/might + have + past participle во второй. |
|
Использование связок\ссылок на предыдущие предложения |
Поиск вхождения ключевых слов: this, that, these, those. |
2.3 Архитектура разрабатываемой системы
Архитектура разрабатываемой системы должна быть клиент-серверной с тонким клиентом. Под тонким клиентов подразумевается программа-клиент, которая переносит большую часть задач на сторону серверного приложения.
Архитектура разрабатываемой системы должна включать:
1. Клиентское приложение (далее - клиент).
2. Серверное приложение (далее - сервер).
3. База данных.
Взаимодействие между компонентами в виде диаграммы компонент (UML) представлено на рисунке 2.1.
Рисунок 2.1 Архитектура разрабатываемой системы
Алгоритм работы разрабатываемой системы проиллюстрирован диаграммой последовательности, выполненной на языке моделирования UML (рисунок 2.2).
Рисунок 2.2 Диаграмма последовательности
Далее представлено описание каждого из логических компонентов системы:
1. Клиентское приложение - тонкий клиент, реализующий интерфейс пользователя; позволяет вводить пользовательские данные и отображать результаты работы в виде, понятном для пользователя. Обеспечивает пользовательское взаимодействие с системой.
2. Серверное приложение - приложение, реализующее большую часть бизнес-логики системы; реализует взаимодействие с базой данных (запись и чтение данных); производит синтаксический анализ пользовательских документов и возвращает результат клиенту; состоит из двух модулей: SyntaxNet - осуществляет синтаксический разбор заданного предложения и модуль, осуществляющий бизнес-логику и предоставляющий ресурсы пользователю.
3. База данных - хранилище данных системы; взаимодействие с сервером осуществляется посредством запросов.
Разрабатываемый веб-сервис должен соответствовать архитектурному стилю взаимодействия компонентов REST. Таким образом, вызов удаленной процедуры будет представлять собой REST-запрос (обычно GET и POST), а все необходимые данные будут передаваться в теле или параметрах запроса. В данном случае это позволит упростить архитектуру и ускорить этап разработки.
2.4 Проектирование базы данных, необходимой для реализации системы
Описание сущностей базы данных, необходимых для реализации системы представлено в таблице 2.2.
Таблица 2.2
Описание сущностей базы данных
Сущность |
Атрибуты |
Тип данных |
Описание |
|
Пользователь |
Login |
String |
Служит для разграничения рабочих областей пользователей и привязки истории к конкретному пользователю |
|
Научная работа |
Id |
String |
UUID объекта |
|
User |
String |
Логин пользователя, который загрузил данную работу |
||
MetricsId |
String |
UUID объекта с рассчитанными метриками по данной работе |
||
Узел синтаксического дерева ParsedWord |
posTag |
String |
Часть речи |
|
word |
String |
Анализируемое слово |
||
dep |
String |
Обозначение роли в предложении |
||
number |
String |
Число: единственное или множественное (относится к существительным) |
||
mood |
String |
Настроение, характеризующее слово |
||
degree |
String |
Степень сравнения (присуще прилагательным) |
||
tense |
String |
Время (присуще глаголам) |
||
contains |
[ParsedWord] |
Дочерние вершины (зависимые слова) |
||
Результаты проверки (PaperResult) |
Id |
String |
UUID объекта |
|
PaperId |
String |
UUID проверенной работы |
||
Percent |
Double |
Процент близости работы к образцу |
||
Checks |
[Check] |
Значение по каждой из метрик |
||
Проверка (Check) |
Id |
String |
UUID объекта |
|
totalCount |
Integer |
Общее количество подсчитываемого значения на весь текст |
||
average |
Double |
Среднее количество подсчитываемого значения на предложение в тексте |
||
Правила для проверки CheckConfig |
Id |
String |
UUID объекта |
|
paperLabel |
String |
Метка, обозначающая тематику работы |
||
minValue |
Double |
Минимальное значение по заданной метрике |
||
maxValue |
Double |
Максимальное значение по заданной метрике |
||
checkIden |
String |
Метка, обозначающая название метрики |
Объект CheckConfig используется для хранения и задания правил синтаксического стиля, выявленных по корпусам эталонных документов.
2.5 Проектирование API разрабатываемой системы
В соответствии с решаемой в данной работе задаче по разработке системы для анализа стиля синтаксических конструкций научных тестов на английском языке, необходимо спроектировать минимальное API для полноценной работы системы. Ниже в формате списка представлен перечень необходимых ресурсов для решения поставленной задачи:
1. /login - POST-запрос на авторизацию пользователя в системе по уникальному логину.
2. /papers - GET-запрос на получение списка научных работ, загруженных пользователем.
3. /papers/{id} - GET-запрос на получение заданной научный работы, загруженной пользователем.
4. /upload-paper - POST-запрос на загрузку файла с научной работой в систему.
5. /papers/{id}/checks-results - GET-запрос на получение результатов анализа стиля определенной работы авторизованного пользователя.
6. /delete-paper - POST-запрос на удаление заданного файла с научной работой авторизированного пользователя.
7. /charts/frequency - GET-запрос на получение данных для построения графиков для визуализации частоты использования заданного параметра в работах по заданной тематике.
8. /prof-paper-results - POST-запрос, запускающий проверку эталонных научных работ по заданной тематике.
9. /checks-config - POST-запрос на добавление новых стилевых правил.
2.6 Проектирование графического интерфейса
В рамках разработки системы для анализа стиля синтаксических конструкций научных текстов на английском языке необходимо и достаточно разработать интерфейс, содержащий элементы:
1. Форма логина - текстовое поле для ввода логина и кнопка с функциональностью «Войти в систему».
2. Кнопка для выхода из системы и смена логина.
3. Элемент (например, кнопка) для открытия файловой системы для выбора загружаемого файла.
4. Список загруженных пользователем работ с информацией: о названии файла, проценте близости к образцу и дате проверки.
5. Элемент (кнопка) для запуска проверки загруженного документа.
6. Элемент с подробной информацией о проверке документа.
Макет спроектированного интерфейса главной страницы приложения представлено на рисунке 2.3.
Рисунок 2.3 Макет главной страницы
3. Реализация системы для анализа синтаксического стиля научных текстов на английском языке
В главе описаны процесс программной реализации системы для анализа стиля синтаксических конструкций научных текстов на английском языке. Отдельно отражены разработка клиентской и серверной частей приложения, а также тестирование разработанной системы.
3.1 Разработка серверной части приложения
Серверная часть приложения представлена несколькими компонентами, а именно:
1. Docker-контейнер с приложением для взаимодействия с SyntaxNet фреймворком.
2. Spring Boot приложение, предоставляющее API.
3. Приложение базы данных.
Для развертывания приложения, обеспечивающего взаимодействие с SyntaxNet, используется система контейнеризации Docker - открытая платформа для разработчиков и системных администраторов для сборки, отправки и развертывания распределенных приложений [15]. Приложение, взаимодействующее с фреймворком SyntaxNet, написано на языке Python. Данное приложение предоставляет REST сервис для осуществления синтаксического разбора предложений. В качестве результата синтаксического разбора заданного предложения выдается ответ в одном из форматов: в виде синтаксического дерева или в виде массива. Формат JSON для отправки POST запроса на осуществление синтаксического разбора представлен ниже:
{
“strings”: [”string”],
“tree”: Boolean
}
Spring Boot приложение написано на языке программирования Java. Данный компонент реализует всю основную бизнес-логику приложения (проверку синтаксического стиля документов, авторизацию пользователей), взаимодействует с базой данных и с приложением SyntaxNet, предоставляет REST API для клиентского приложения.
Описание разработанных ресурсов представлено в таблице 3.1.
Таблица 3.1
Описание ресурсов
URL |
HTTP-метод |
Описание |
|
api/v1/upload-paper |
POST |
Позволяет передать файл на сервер. Параметры: file - передаваемый файл. В ответ сервер отдает UUID загруженного файла. |
|
api/v1/papers |
GET |
Позволяет получить полный список загруженных файлов для заданного пользователя. Параметры: userId - login пользователя. |
|
api/v1/papers |
GET |
Позволяет получить заданный файл для заданного пользователя. Параметры: id - UUID файла, userId - login пользователя. |
|
api/v1/papers |
GET |
Позволяет получить результаты проверки для заданного файла заданного пользователя. Параметры: id - UUID файла, userId - login пользователя. |
|
api/v1/login |
POST |
Авторизует пользователя в системе. Параметры: login - уникальное имя пользователя в системе. |
|
api/v1/me |
GET |
Позволяет получить данные текущего авторизованного пользователя. Параметры: текущая сессия. |
|
api/v1/delete-paper |
POST |
Удаляет загруженный файл пользователя. Параметры: fileId - UUID удаляемого файла. |
|
api/v1/charts |
GET |
Позволяет получить данные для построения статистических графиков Параметры: label - строковая константа, обозначающая предметную область анализируемых работ. Пример: label=politology. |
|
api/v1/checks-config |
GET |
Позволяет получить набор эталонных правил стиля синтаксических конструкций текстов. |
|
api/v1/checks-config |
POST |
Позволяет задать набор эталонных правил стиля синтаксических конструкций текстов. Параметры: JSON, описывающий правила. |
|
api/v1/upload-prof-paper |
POST |
Позволяет загрузить эталонный документ по заданной тематике. Параметры: file - загружаемый файл, label - строковая константа, обозначающая предметную область анализируемых работ. |
|
api/v1/prof-papers |
GET |
Позволяет получить список всех работ по заданной тематике. Параметры: label - строковая константа, обозначающая предметную область анализируемых работ. |
|
api/v1/prof-paper-results |
POST |
Позволяет запустить проверку эталонных работ по заданной тематике и получить результаты. Параметры: label - строковая константа, обозначающая предметную область анализируемых работ. |
Реализовано также и разграничение доступа к ресурсам. В системе реализовано два уровня доступа: пользовательский и администраторский. Уровень администратора позволяет использовать ресурсы, взаимодействующие с настройками работы системы, а именно:
1. Настройка конфигурации правил для проверки синтаксического стиля.
2. Загрузка эталонных работ.
3. Запуск сбора метрик по корпусам эталонных работ.
4. Запрос на получение данных проверки эталонных работ.
Проверка стиля синтаксических конструкций загруженных текстов по определенной тематике производится следующим образом:
1. С помощью SyntaxNet строится синтаксическое дерево каждого из предложений проверяемого текста.
2. Параллельно производится подсчет статистики использования заданных синтаксических конструкций.
3. Полученные значения по каждому маркеру сравниваются с эталонными диапазонами, рассчитанными по корпусу профессиональных работ (по каждой тематике отдельно).
4. Формируется текстовый отчет о соответствии работы эталонным значениям.
В качестве базы данных выбрано нереляционное хранилище типа «ключ-значение» Redis (remote dictionary server). Выбор обусловлен простотой работы с базой данных, высокой скоростью обработки запросов на доступ к данным, а также наличием возможности относительно простого масштабирования и высокой отказоустойчивости.
Программный код серверной части приложения представлен в Приложении А.
3.2 Сбор статистики и проверка гипотез
В ходе разработки был произведен подсчет частотности употребления различных синтаксических конструкций. Возможные варианты конструкций формировались с помощью дерева: считался узел и его предок. Производился подсчет синтаксических конструкций, состоящих из одного, двух и более синтаксических единиц текста. Примеры таких маркеров представлены в таблице 3.2. Всего была подсчитана частота употребления более чем 900 различных синтаксических конструкций. Также к этим метрикам были добавлены следующие: подсчет количества вопросительных предложений и определение синтаксической сложности предложений на основе подсчета глубины (высоты) синтаксического дерева.
Таблица 3.2
Описание маркеров
Маркер |
Описание маркера |
|
advcl:advmod |
advcl (adverbial clause modifier) - условие, которое изменяет глагол или другой предикат (прилагательное и т.д.). Выступает в роли модификатора. Указывает на придаточные времени, следствия, цели, условные предложения. advmod (adverbial modifier) - наречие или наречная фраза, которая служит для изменения предиката или слова-модификатора. |
|
parataxis:compound |
parataxis (parataxis) - отношение между словом (часто основным предикатом предложения) и другими элементами предложения таким как: скобка или двоеточие/точка с запятой, размещенными рядом без какой-либо явной связи с корневым словом. compound (compound) - выражает «комбинированное» отношения. Может выступать для связки существительных или для связки последовательных глаголов. |
|
ccomp:xcomp |
ccomp (clausal complement) - указывает на зависимое предложение, которое является основным аргументом. То есть он функционирует как объект глагола или прилагательное. xcomp (open clausal complement) - открытое дополнение глагола или прилагательного, то есть дополнение без его собственного субъекта. |
|
conj:obl |
conj (conjunct) - координирующая связь между двумя элементами, выраженная, например, с помощью «and», «or». obl (oblique nominal) - используется для выражения неосновного аргумента или дополнения, выраженного через существительное или местоимение. |
|
conj:obj |
conj (conjunct) - координирующая связь между двумя элементами, выраженная, например, с помощью «and», «or». obj (object) - объект; является вторым по важности аргументом глагола после подлежащего. Как правило, это существительное, обозначающее сущность, на которую оказывают воздействие. |
|
ccomp |
ccomp (clausal complement) - указывает на зависимое предложение, которое является основным аргументом. То есть он функционирует как объект глагола или прилагательное. |
Подобные документы
Инструменты анализа академического стиля английского языка. Проектирование архитектуры портала для анализа и оценки стиля научных публикаций на основе методов корпусной лингвистики. Моделирование жизненного цикла системы и взаимодействия её компонентов.
дипломная работа [2,4 M], добавлен 27.08.2017Понятие семантики; обзор и анализ существующих средств семантического разбора естественно-языковых текстов. Разработка алгоритма работы системы на основе семантического анализа, его реализация на языке программирования; проектирование интерфейса системы.
дипломная работа [1,7 M], добавлен 18.03.2012Морфологические анализаторы (морфологизаторы) на различных языках программирования. Анализ методов и технологий автоматической обработки ЕЯ-текстов. Разработка модуля графематического анализа и создания таблицы лексем. Программная реализация классов.
дипломная работа [3,0 M], добавлен 06.03.2012Разработка программного продукта для психолингвистического анализа текстов. Предметная область, основные требования. Анализ рабочих процессов отдела рекламно-выставочной и издательской деятельности. Оценка эффективности проекта и стоимости владения.
дипломная работа [3,1 M], добавлен 12.10.2015Разработка алгоритма автоматического создания отзывов на русском языке с использованием лексико-синтаксических шаблонов. Процесс создания текста при помощи цепей Маркова. Принцип работы Томита-парсера. Применение автоматических генераторов текстов.
курсовая работа [150,6 K], добавлен 27.09.2016Особенности системы вопросно-ответного поиска информации. Выбор таксономии семантических тэгов. Ознакомление с символьными шаблонами вопросов на английском языке из системы OpenEphyra. Правила работы тривиального модуля анализа вопросов на русском языке.
реферат [776,7 K], добавлен 16.03.2014Состав и принцип работы аппаратуры. Выбор параметров корреляционного анализа и Фурье-анализа. Разработка и применение алгоритма корреляционного анализа. Реализация алгоритма Фурье-анализа на языке С++ и алгоритма корреляционного анализа на языке С#.
дипломная работа [4,6 M], добавлен 30.11.2016Составление транслятора на языке С для перевода кода программы из языка Pascal в код программы на языке Cи. Распознавание и перевод конструкций: for, type, function, integer. Вешняя спецификация, описание, структура, текст программы; распечатка текстов.
курсовая работа [287,8 K], добавлен 24.06.2011Понятие синтаксического анализа. Программный продукт для обработки данных строкового типа. Построение сканера текстов с использованием утилиты flex, синтаксического анализатора с помощью утилиты bison. Грамматика языка программирования обработки строк.
курсовая работа [261,7 K], добавлен 29.10.2012Разработка системы автоматизированного анализа сложных объектов образовательной системы. Построение диаграмм последовательности, кооперации, классов, состояний, компонентов, а также развертывания. Представление сгенерированных кодов клиента и сервера.
курсовая работа [501,1 K], добавлен 23.06.2014