Разработка морфосинтаксического анализатора на основании морфемного словаря и построения деревьев зависимости
Написание программы морфосинтаксического анализатора, способной проводить морфологический и синтаксический анализ текстов на естественном языке (русском). Разработка метода морфологического и синтаксического разбора, структуры программного обеспечения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.12.2019 |
Размер файла | 45,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Важно заметить, что изменение одной из имеющихся функций на каждом из этапов не влечет за собой принципиальные изменения в работе вышестоящих этапов.
3.2 Апробация
Условия проведения тестирования были подробно описаны в первой главе дипломной работы. Тесты глобально разделялись на две группы - апробация морфологического анализатора и апробация синтаксического анализатора. Таким образом, для каждого из двух основных элементов ПО была определена точность работы, что в дальнейшем позволит провести дополнительную настройку и доработку.
Для апробации морфологического анализатора, реализующего метод работы без лемматического словаря, были проведены модельные эксперименты. Тексты, выбранные для тестирования, были разделены на 3 класса:
* искусственные - короткие предложения с простой структурой;
* естественные простые - тексты, взятые из открытых источников, но очищенные от заведомо некорректной с точки зрения программы пунктуации и слов, которые программа заведомо не распознает в соответствии с функциональными требованиями;
* естественные усложненные - фрагмент текста, использованного в соревновании Dialogue Evaluation 2010, с сохранением пунктуации и всех слов.
Во время каждого теста программа будет оценена по двум критериям - наличие верной гипотезы о принадлежности слова к той или иной части речи и наличие верной гипотезы о роде или лице слова. В случае, когда программа верно определила принадлежность слова к предлогам, союзам или именам собственным, второй критерий будет считаться заведомо верным, так как работа с именами собственными и служебными частями речи происходит вне основного анализатора.
Каждый из тестов представлял собой запуск программы с определенным текстом в виде входных данных. Как говорилось выше, слово считалось проанализированным верно тогда, когда набор гипотез, ему соответствующий, содержал верную гипотезу.
Количество верно проанализированных слов по группе «искусственные тексты» составила 65-100% для частей речи и 0-50% для параметра «род/лицо».
Количество верно проанализированных слов по группе «естественные простые тексты» 61-84% для частей речи и 34-36% для параметра «род/лицо».
Количество верно проанализированных слов по группе «естественные сложные тексты» 61% для частей речи и 40% для параметра «род/лицо».
Для апробации синтаксического анализатора также были проведены модельные эксперименты. Тексты (предложения) были разделены на две группы:
* Упрощенные - тексты, не имеющие или почти не имеющие заведомо исключительных случаев для данного ПО.
* Реалистичные - тексты, взятые из литературных источников и не проходившие процедуру упрощения.
Для более точной оценки качества работы анализатора маски вводились вручную и считались заведомо верными. Таким образом, данная оценка описывает исключительно качество работы синтаксического парсера, без влияния предшествующих программ.
Во время тестов программа оценивалась по двум критериям - полнота дерева зависимостей и корректность зависимостей. Критерии являются независимыми и позволяют оценить реализованный алгоритм с различных точек зрения. Результаты апробации приведены в таблице 3.
Таблица 3. Результаты апробации синтаксического модуля
Упрощенные |
Реалистичные |
||
Полнота |
67% |
34% |
|
Корректность |
90% |
50% |
3.3 Выводы
По итогам работы были сделаны следующие выводы:
Предложенные реализации морфологического и синтаксического анализаторов соответствуют поставленным в первой главе дипломной работы задачам.
Точность работы анализаторов на данном этапе может считаться достаточной, но в дальнейшем требует улучшения.
Желательна доработка связующего модуля для отсева большего количества заведомо неверных гипотез.
Заключение
В рамках проведенной работы был проведен подробный анализ проблемы предсемантического разбора текстов на русском языке. В соответствии с выдвинутой гипотезой разработки без использования лемматического словаря был разработан и реализован метод морфологического анализа слов на базе морфемного разбора. Был также разработан и реализован алгоритм построения деревьев зависимостей на базе морфемной информации о словах предложения. Совмещение данных алгоритмов посредствам общего основного тела программы позволило передавать информацию от морфологического к синтаксическому модулю и в рамках программного комплекса проводить построение деревьев зависимостей из неразмеченных текстов на русском языке в рамках оговоренных функциональных ограничений.
Список использованных источников
[1] Ермоленко Т.В. и Гайдамака А.С. Синтаксическая модель предложения русского языка на основе предикатных структур // Искусственный интеллект, 2012, № 3. -- С. 126-136.
[2] Зимовец Н.В. и Санивская Е.А. Синтаксические модели предложения: подходы к выделению
[3] Соревнование Dialogue Evaluation 2010. Официальный сайт конференции Диалог, 2010. URL: http://www.dialog-21.ru/dialogue2010/results/ (дата обращения 29.01.2019)
[4] Гашков А.В. Повышение точности определения морфологических признаков неизвестных слов методом аналогий с помощью нечетких множеств. // Вестник Челябинского государственного университета, 2014, № 7 (336). Филология. Искусствоведение. Вып. 89. -- С. 20-23.
[5] Официальный сайт библиотеки Pymorphy. URL: https://pythonhosted.org/pymorphy (дата обращения 17.03.2019)
[6] Официальный сайт ABBYY Compreno. URL: https://www.abbyy.com/ru-ru/infoextractor/compreno/?utm_source=google&utm_medium=cpc&utm_campaign=ga-sdk&utm_content={source_type}+t:{position_type}+a:{addphrases}+p:{position}&utm_term=%2Babbyy%20%2Bcompreno&gclid=CjwKEAjwutXIBRDV7-SDvdiNsUoSJACIlTqlMx6N1kkC5QNCupeyJRKNEahct2USuxbcIrgIUAX6sxoCOujw_wcB (дата обращения 18.03.2019)
[7] Диалог синтаксис 2012. URL: http://www.dialog-21.ru/media/1385/toldova.pdf (дата обращения 16.04.2019)
[8]SEMSIN на конференции dialog. URL: http://www.dialog-21.ru/media/1394/kanevsky.pdf (дата обращения 21.04.2019)
[9]ABBYY на конференции dialog. URL: http://www.dialog-21.ru/media/1386/anisimovich.pdf (дата обращения 21.04.2019)
Размещено на Allbest.ru
...Подобные документы
Проектирование программы-анализатора, состоящей из двух частей: лексического анализатора, разбивающего исходный текст программы на лексемы и заполняющего таблицу имен; синтаксического анализатора, проверяющего соответствие текста заданной грамматике.
курсовая работа [2,0 M], добавлен 14.06.2010Написание программы, которая выполняет лексический и синтаксический анализ входного языка программирования, порождает таблицу лексем с указанием их типов и значений, а также строит синтаксическое дерево; текст входного языка вводится с клавиатуры.
курсовая работа [761,5 K], добавлен 23.02.2012Разработка технического задания на проектирование, определение требований к программе. Предварительный выбор метода решения синтаксического анализатора, проектирование программного приложения, конфигурация технических средств программы и её тестирование.
курсовая работа [28,5 K], добавлен 28.06.2011Разработка программного приложения, производящего проверку синтаксиса простой программы: выбор метода создания синтаксического анализатора, описание требований к программному обеспечению, написание алгоритмов решения и тестирование конечного продукта.
курсовая работа [579,7 K], добавлен 03.07.2011Методы грамматического разбора при разработке учебного транслятора. Проектирование лексического анализатора и магазинного автомата. Программная реализация синтаксического анализатора текстового языка высокого уровня. Разработка модуля интерпретации.
курсовая работа [697,2 K], добавлен 06.01.2013Создание алгоритма для построения синтаксического анализатора полиномов и его реализация в среде Visual Studio 2005 на языке программирования C#. Программное решение задачи поиска максимального числа единиц в бинарном представлении простых чисел.
курсовая работа [723,5 K], добавлен 04.10.2010Место компилятора в программном обеспечении. Принципы работы и автоматизация построения синтаксического анализатора. Дерево разбора и его преобразование в дерево операций. Назначение и этапы семантического анализа. Идентификация языков программирования.
реферат [265,1 K], добавлен 20.12.2007Понятие синтаксического анализа. Программный продукт для обработки данных строкового типа. Построение сканера текстов с использованием утилиты flex, синтаксического анализатора с помощью утилиты bison. Грамматика языка программирования обработки строк.
курсовая работа [261,7 K], добавлен 29.10.2012Программная реализация синтаксического анализатора произвольного текста. Матрица и дерево переходов для программы. Код программы с построчным комментарием. Порядок запуска среды разработки Visual Studio. Интерфейс и номера Лихтенштейна, скриншот.
контрольная работа [855,1 K], добавлен 13.02.2014Синтаксический анализ простой программы на языке С. Предварительный выбор метода решения задачи. Разработка технологии обработки информации. Проектирование программных модулей. Процесс тестирования программы. Требования к программному обеспечению.
курсовая работа [934,7 K], добавлен 01.07.2011Общая характеристика и оценка возможностей языка программирования си-шарп, его сходные и отличительные черты от С++ и Java. Разработка с помощью данного языка программирования лексического и синтаксического анализатора. Составление таблиц разбора.
курсовая работа [111,6 K], добавлен 11.06.2010Синтаксически ориентированная трансляция: общие понятия; транслятор, интерпретатор, препроцессор. Программная реализация трансляции, основанной на структуре текста; идея Н. Хомского; языковые процессоры. Заголовочные файлы, алгоритмы и функции программы.
курсовая работа [734,3 K], добавлен 04.06.2013Рaзрaботка программного приложения (синтаксического aнaлизaторa), которое производит проверку синтaксисa простейшей программы на языке С++. Процедура проверки арифметических и логический выражений. Механизм удаления всех фиктивных переменных из программы.
курсовая работа [27,2 K], добавлен 28.06.2011Этапы разработки программного приложения, выполняющего синтаксический анализ программы на языке С и форматирование текста программы на языке С. Требования к программному обеспечению и интерфейсу. Конфигурация технических средств и оценка надежности.
курсовая работа [1,6 M], добавлен 22.06.2011Конструкции условных операторов if-else и простые типы языка Си. Общая схема работы компилятора. Алгоритм построения дерева разбора, строки вывода синтаксического разбора. Построение обратной польской записи как формы внутреннего представления программы.
курсовая работа [1,3 M], добавлен 01.06.2013Эксплуатация анализатора качества электроэнергии Satec PM175. Создание документов "Видение" и "Спецификация требований" для системы сбора данных с анализатора. Проектирование серверного и клиентского приложения в среде программного обеспечения LabVIEW.
курсовая работа [830,6 K], добавлен 25.09.2013Детерминированная автоматная модель синтаксического анализатора. Исследование структуры разработанной программы, требования к функциональности, Основные элементы и принципы реализации. Листинг спроектированной программы и анализ полученных результатов.
курсовая работа [69,1 K], добавлен 11.12.2015Создание транслятора, обрабатывающего код программы на языке Паскаль и за счет эквивалентных операторов генерирующего программу на Си. Особенности внешней спецификации и работы лексического анализатора. Структура программы, вывод результатов на экран.
курсовая работа [254,0 K], добавлен 02.07.2011Разработка технологии обработки информации, структуры и формы представления данных. Проектирование программных модулей. Блок-схема алгоритма и исходный код программы анализа арифметического выражения, синтаксического анализа простой программы на языке С.
курсовая работа [2,4 M], добавлен 12.12.2011Структура, классификация и требования к реализации компилятора. Проектирование и реализация анализирующей части компилятора языка С++. Способы реализации лексического анализа. Алгоритм работы синтаксического анализатора. Принципы программной реализации.
курсовая работа [774,2 K], добавлен 26.01.2013