Статья опубликована в рамках: XXXIII Международной научно-практической конференции «Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ» (Россия, г. Новосибирск, 16 ноября 2017 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
ПРИМЕНЕНИЕ СИНТАКСИЧЕСКИХ АНАЛИЗАТОРОВ В СИСТЕМАХ ПРОВЕРКИ СВОБОДНЫХ ОТВЕТОВ НА ЕСТЕСТВЕННОМ ЯЗЫКЕ
Стремительный процесс развития информационных технологий диктует потребность в совершенствовании процесса обучения и тестирования знаний учащихся. Для достижения высокой эффективности дистанционного образования необходимо организовывать качественную обратную связь с обучаемым. Последнее обеспечивается в интеллектуальных обучающих системах контролем знаний обучаемого, осуществляемого автоматическими тестирующими подсистемами. Целью таких систем, анализирующих ответ студента на естественном языке, является выявление смысла, заложенного в ответе, и последующее сравнение со смыслом эталонного ответа, заданного преподавателем. В данной статье рассмотрена пригодность использования синтаксических анализаторов в качестве вспомогательных инструментов для оценки свободных ответов.
На текущий момент существует более двух десятков инструментов для синтаксического и семантического анализа [1], но выбор необходимо сузить с учетом следующих требований – инструмент должен быть бесплатным и поддерживать русский язык. Далее будут рассмотренные инструменты, удовлетворяющие установленным требованиям.
Томита Парсер.
Томита-парсер [2] – разработка Яндекса для извлечения структурированных данных из текста на естественном языке. Для вычленения фактов используются свободно-контекстные грамматики и словари. Грамматики описываются на формальном языке «Томита». Язык описания грамматик позволяет очень гибко описывать правила извлечения фактов и является идеальным решением для случаев, когда мы заранее знаем класс фактов, которые мы хотим извлечь – например, даты рождения, адреса, родственные связи и роли в кино.
Ниже приведен листинг с описанием грамматических правил для поиска в тексте названий улиц, шоссе, проездов.
#encoding "utf-8"
StreetW -> 'проспект' | 'проезд' | 'улица' | 'шоссе';
StreetSocr -> 'пр' | 'просп' | 'пр-д' | 'ул' | 'ш';
StreetDescr -> StreetW | StreetSocr;
StreetNameNoun -> (Adj<gnc-agr[1]>) Word<gnc-agr[1],rt> (Word<gram="род">);
NumberW_1 -> AnyWord<wff=/[1-9]?[0-9]-?((ый)|(ий)|(ой)|й)/> {outgram="муж,ед,им"};
NumberW_2 -> AnyWord<wff=/[1-9]?[0-9]-?((ая)|(яя)|(ья)|я)/> {outgram="жен,ед,им"};
NumberW_3 -> AnyWord<wff=/[1-9]?[0-9]-?((ее)|(ье)|(ое)|е)/> {outgram="сред,ед,им"};
NumberW -> NumberW_1 | NumberW_2 | NumberW_3;
StreetNameAdj -> Adj<h-reg1> Adj*;
StreetNameAdj -> NumberW<gnc-agr[1]> Adj<gnc-agr[1]>;
Street -> StreetDescr interp (Address.Descr) StreetNameNoun<gram="род", h-reg1> interp (Address.StreetName::not_norm);
Street -> StreetDescr interp (Address.Descr) StreetNameNoun<gram="им", h-reg1> interp (Address.StreetName::not_norm);
Street -> StreetNameAdj<gnc-agr[1]> interp (Address.StreetName) StreetW<gnc-agr[1]> interp (Address.Descr);
Street -> StreetNameAdj interp (Address.StreetName) StreetSocr interp (Address.Descr);
Такие правила бы пришлось писать для каждой новой предметной области и типа вопроса. В рамках задачи тестирования с ответами на контекстно-свободных языках Томита-парсер является отличным решением для системы тестирования знания фактов, так как позволяет прозрачно описать, в отличие от нейронной сети, правила извлечения. Но для обслуживания такой системы потребуется группа специалистов, которая будет заниматься поддержкой и разработкой новых правил.
Проект АОТ
Проект АОТ[3] – один из самых распространенных инструментов для анализов текстов на русском языке. Синтаксический анализ построен на методе «Head-Driven Phrase Structure Grammar» - формальной грамматике, являющейся надстройкой над грамматикой составляющих, которая включает в себя лексическую информацию. Метод заключается в поиске главной синтаксической подгруппы, и является набором правил для рекурсивного построения дерева из групп [4]. В результате получается дерево синтаксических фрагментов и групп. Пример разбор простого приложения приведен ниже:
Рисунок 1. Пример синтаксического разбора средствами АОТ
При оценке ответа на свободном языке возможно выделять пары или деревья синтаксических связей для последующего сравнения с заданным эталонным ответом, с заранее выделенными синтаксическими связями. При этом возникает дополнительная задача интерпретации синтаксического дерева в набор семантических отношений между словами.
MaltParser
MaltParser - инструмент для работы с деревьями зависимостей, написанный на Java. Позволяет построить модель по размеченному корпусу и строить деревья для новых данных основываясь на ней. Для обучения модели для работы с русским языком обычно используется корпус СинТагРус. Инструмент прост в обращении, так как распространяется в виде jar-приложения и имеет набор заранее обученных моделей. Слабым местом инструмента является производительность – синтаксический разбор предложения «Дом, который построил Джек» занял 13 секунд.
SyntaxNet
SyntaxNet - это основанный на TensorFlow фреймворк определения синтаксических связей, использует нейронную сеть. В настоящий момент поддерживается 40 языков, в том числе и Русский. Более того, для TensorFlow опубликован исходный код уже натренированной модели нейронной сети "Parsey McParseface", пригодная для разбора текста. Система была разработана в рамках проекта, основными задачами которого является придание компьютерным системам возможности читать и понимать человеческий язык. Точность модели обученной на корпусе СинТагРус оценивается в 87.44% по метрике LAS (Label Attachment Score – точность предсказания главного слова и отношений зависимостей к главному слову); 91.68% по метрике UAS (Ulabled Attachment Score – точность предсказания только главного слова) и с точностью в 98.27% определт часть речи и грамматические характеристики слов [5].
Инструмент «MaltParser» и фреймворк «SyntaxNet» похожи в методах определения синтаксических отношений, они оба обучаются на размеченных корпусах и строят деревья зависимостей. Недостатком «MaltParser» является то, что при обучении на одинаковом корпусе, скорость парсинга и анализа одного запроса у него на порядок ниже, чем у SyntaxNet (13 секунд против 0.5 секунд для предложения «Дом, который построил Джек»).
Приведем пример разбора предложения данным фреймворком:
Рисунок 2. Пример синтаксического разбора средствами SyntaxNet
Как и в случае разбора средствами АОТ, где мы получили дерево отношений, из результата анализа предложения SyntaxNet можно извлечь связи между словами для последующего сравнения со связями эталонного ответа, но в данном случае результат описывается грамматикой зависимостей, а не грамматикой составляющих.
В случае SyntaxNet можно предполагать, что с растущей популярностью использования нейронных сетей в компьютерной лингвистике, качество моделей со временем будет улучшаться, а размер размеченных корпусов расти, тем самым повышая качество проводимого синтаксического анализа и расширяя сферу его применения.
Список литературы:
- Обработка текста – NLPub.ru [Электронный ресурс] – Режим доступа. – URL: https://nlpub.ru/Обработка_текста (дата обращения 11.11.2017)
- Томита-парсер – технологии Яндекса [Электронный ресурс] – Режим доступа. – URL: https://tech.yandex.ru/tomita/ (дата обращения 11.11.2017)
- Проект АОТ [Электронный ресурс] – Режим доступа. – URL: http://aot.ru/index.html (дата обращения 11.11.2017)
- Ножов И.М. Морфологическая и синтаксическая обработка текста (модели и программы), диссертационная работа, 2000, Москва
- Sboev A.G., Gudovskikh D.V., Ivanov I., Moloshnikov I.A., Rybka R.B., Voronina I. Research of a Deep Learning Neural Network Effectiveness for a Morphological Parser of Russian Language, 2017.
дипломов
Оставить комментарий