Система семантического разбора для естественно-языковых текстов
Понятие семантики; обзор и анализ существующих средств семантического разбора естественно-языковых текстов. Разработка алгоритма работы системы на основе семантического анализа, его реализация на языке программирования; проектирование интерфейса системы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 18.03.2012 |
Размер файла | 1,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
СОДЕРЖАНИЕ
Введение
1. Обзор и анализ существующих средств семантического разбора естественно-языковых текстов
2. Постановка задачи
3 Анализ алгоритмов для системы обработки естественно-языковых текстов
3.1 Графематический анализ
3.1.1 Входные и выходные данные
3.1.2 Графематические дескрипторы
3.1.3Деление на предложения
3.2 Морфологический анализ
3.3 Синтаксический анализ
3.4 Семантический анализ
4. Структура системы построения семантического разбора для естественно-языковых текстов
4.1 Графематический анализ
4.2 Морфологический анализ
4.4 Статистический анализ
4.4 Синтаксический анализ
4.5 Семантический анализ
5. Использования н-граммного словаря msr
5.1 Методы хранения словарей
5.2 Описание морфоанализатора для словаря
5.3 Таблицы кодирования постоянных грамматических характеристик
5.4 Таблицы кодирования переменных грамматических характеристик
6. Алгоритмы анализа системы
6.1 Алгоритм графематического разбора
6.2 Алгоритм морфологического разбора
6.3 Алгоритм синтаксическо-семантического разбора и построения сети
7. Проектирование интерфейса
7.1 Требования к разработке интерфейса
7.2 Интерфейс системы
8. Структура программного обеспечения
9. Описания функционирования и тестирование системы
9.1 Описания функционирования
9.2 Тестирования программного кода
10. Требование к оборудованию при эксплуатации ЭВМ
11. Организационно-экономическая часть
Выводы
Список использованных источников
Приложение А. Техническое задание
Приложения В. Экранные формы
Приложение Б. Листинг программы
ВВЕДЕНИЕ
Наиболее естественным для человека способом общения является естественный язык (ЕЯ), Предлагаемые методы ориентированы на решение поставленной проблемы путем создания русскоязычных онтологических информационных систем.
Проблема создания тезаурусов и глоссариев как информационной базы является ключевым моментом в любой предметной области на определенном этапе ее развития. При этом в настоящий момент нет русскоязычной ментальной модели лексикона человека, дающей возможность динамического развития семантических понятий предметной области, связанной с информационными технологиями.
Разработка автоматизированной системы семантического анализа является основой программного обеспечения с пользовательским интерфейсом, близким к естественно-языковому. Построение тезаурусов должно способствовать снятию проблемы терминологической путаницы в работе информационных систем.
Анализ существующих исследований, посвященных решению задачи автоматизированного построения тезаурусов, выявил крайне незначительное число готовых и апробированных решений, что во многом связано с отсутствием достаточно проработанной теории и практики решения задач анализа неструктурированной, естественно-языковой текстовой информации. Эффективное решение задачи разработки программы, реализующей динамическую визуализацию понятийных окружений, и составляет суть диссертационной работы.
Исследования в области автоматической обработки текста и формализации естественных языков, планомерно продвигаясь от самых простых методов анализа к более сложным методам. Данные исследования постепенно приближаются к такому уровню обработки текста, на котором уже возможно представление текста не просто в виде последовательности слов, а единым целым, обладающим неким смыслом, что уже соответствует человеческому восприятию.
Стремительное увеличение вычислительных мощностей сделало возможным применение трудоёмких лингвистических алгоритмов на больших объемах данных. Но, несмотря на то, что в области формализации естественных языков и систем автоматической обработки текста, в частности, задействовано большое количество людей и мощностей, работающих в самых разных направлениях. Результаты пока довольно скудны, так как ни одна из существующих моделей не может перекрыть структуру языка в целом, а объёмы данных, с которыми имеет дело лингвистика, очень большие.
Такое положение вещей само собой рождает задачу создания системы, удобной для отработки различных решений анализа с целью нахождения наиболее оптимальных и эффективных. Этому способствует то, что как сам анализ, так и программные комплексы, реализующие данные подходы, достаточно легко поддаются фрагментации, т.е. делению на функциональные блоки, выполняющие изолированную функциональность. Исходя из данной специфики проблемной области, наиболее естественной задачей являлось создание модульного программного испытательного стенда, дающего возможность реализации отдельных функциональных блоков, применяя для каждого из них последние достижения в данной области, а затем реализовать их совместную работу путём точной настройки каждого из них в отдельности и гибкой компоновки между собой.
1. ОБЗОР И АНАЛИЗ СУЩЕСТВУЮЩИХ СРЕДСТВ СЕМАНТИЧЕСКОГО РАЗБОРА ЕСТЕСТВЕННО-ЯЗЫКОВЫХ ТЕКСТОВ
Перед тем как анализировать различные существующие средства семантического разбора естественно-языковых текстов, необходимо понять, что собой представляет семантический разбор.
Семантическим разбором, в данном случае, является извлечение, из текста, сведений об интересующих объектах, фактах и событиях. Полученные таким образом сведения представляются в формализованной форме в виде объектов предметной области и связей между ними, после чего поступают на обработку традиционными методами в зависимости от текущих задач.
Мы привыкли к тому, что компьютеры, как правило, работают со структурированными и формализованными данными. Это могут быть базы данных с таблицами и полями, электронные формы и карточки объектов, тексты программ на формальных языках и инструкции (программы) в машинных кодах. Вместе с тем, для человека наиболее естественной формой представления информации является естественный язык, то есть применительно к компьютеру, это записанный в документ текст. Какие возможности по обработке текста нам предоставляют современные информационные средства? Это, прежде всего, хранение, передача, поиск и проверка орфографии. Но все эти сервисы относятся непосредственно к текстовому представлению (символам, в лучшем случае - словам и фразам), а не к информации, которая в этих текстах содержится! В итоге складывается ситуация, когда в организации накоплен значительный объем текстовых документов, но информация, содержащаяся в них, не доступна для обработки классическими автоматизированными средствами. Семантический анализ текстов позволяет эффективно использовать эти информационные ресурсы для решения различных задач.
Одна из таких систем является информационно-аналитическая система "АРИОН" - мощное средство работы с разнородными источниками информации, использующее инновационные технологии извлечения и обработки знаний [1].
Система позволяет работать как со структурированными (таблицы, базы данных, xml), так и неструктурированными (документы и тексты на естественном языке) источниками информации. Пользователь получает эффективный инструмент аналитики с развитыми механизмами визуализации и большим набором функций по извлечению, загрузке, очистке и обработке информации.
В состав информационно-аналитической системы "АРИОН" входит специальный модуль - Лингвистический процессор АРИОН-ЛИНГВО. На вход Лингвистический процессор получает текстовый документ. Результатом его работы является массив связной фактографической информации, который далее передается в модуль идентификации для выделения похожих и слияния совпадающих объектов.
Выделение фактографической информации осуществляется с помощью специализированных правил, которые описывают процедуры выделения объектов и связей на внутрисистемном языке лингвистического процессора, построенном на базе XML. Лингвистический процессор выполняет обработку полнотекстовой информации в соответствии со следующими этапами изображенных на рисунке 1.1.
Размещено на http://www.allbest.ru/
Рисунок 1.1 - Этапы обработки полнотекстовой информации
Последний этап заключается в выделении словарных понятий, разборе объектов предметной области и создании связей между выделенными объектами.
Результатом работы лингвистического процессора является набор объектов и связей между ними, который традиционно представляют в виде так называемой фактографической (семантической) сети. Результат работы Лингвистического процессора изображен на рисунке 1.2.
Рисунок 1.2 - Лингвистический процессор, выделение объектов
Данная форма визуализации является удобной и естественной для дальнейшей работы пользователя с выделенной информацией. Такой интерфейс интуитивно понятен и не требует длительного освоения и обучения. Каждый объект имеет набор атрибутов, заданных в рамках описания предметной области. Атрибуты - это характеристики объекта, например, "Имя", "Фамилия" и "Дата рождения" для объекта "Человек". Связь имеет смысловую окраску и тип.
Как это можно использовать? информационно-аналитическая система "АРИОН" позволяет эффективно решать следующие классы задач:
- выделение значимых материалов из больших информационныхт массивов;
- поиск, извлечение, анализ и обобщение информации по интересующим объектам, фактам и событиям;
- формирование онтологий предметных областей;
- мониторинг деятельности организации;
- расследование происшествий и инцидентов;
- сбор и ведение досье на объекты учета;
- оперативная обработка и мониторинг материалов СМИ;
- аналитическая обработка обращений граждан и организаций.
Присутствуют также бесплатные персональные системы автоматического анализа текста. Такие как TextAnalyst [2], он схож с "АРИОН", разработан в качестве инструмента для анализа содержания текстов, смыслового поиска информации, формирования электронных архивов, и предоставляет пользователю следующие основные возможности:
– анализа содержания текста с автоматическим формированием семантической сети с гиперссылками - получения смыслового портрета текста в терминах основных понятий и их смысловых связей;
– анализа содержания текста с автоматическим формированием тематического древа с гиперссылками - выявления семантической структуры текста в виде иерархии тем и подтем;
– смыслового поиска с учетом скрытых смысловых связей слов запроса со словами текста;
– автоматического реферирования текста - формирования его смыслового портрета в терминах наиболее информативных фраз;
– кластеризации информации - анализа распределения материала текстов по тематическим классам;
– автоматической индексации текста с преобразованием в гипертекст;
– ранжирования всех видов информации о семантике текста по «степени значимости» с возможностью варьирования детальности ее исследования;
– автоматического/автоматизированного формирования полнотекстовой базы знаний с гипертекстовой структурой и возможностями ассоциативного доступа к информации.
Встречаются системы, использующие семантический анализ естественно-языковых текстов в вопросно-ответном режиме. Пример такой системы описан в статье Ш. Сулейманова и М. Аюповой (Казанский государственный университет, Академия наук Татарстана) [3].
Система интерпретации ЕЯ-текстов в контексте, управляемом системой, включает лексический процессор, семантический интерпретатор и двухуровневую модель ответа, показанный на рисунке 1.3.
Размещено на http://www.allbest.ru/
Рисунок 1.3 - Крупноблочная схема вопросно-ответного лингвопроцессора
Интерпретация ответного текста происходит следующим образом. Ответ поступает в лексический процессор (ЛексПР) и на основе экземпляра фрейма (ЭКФ) модели ответа (МО) переводится в канонизированное представление ответа (КО) в виде последовательности концептул. Часть информации на лексическом уровне может представлять интерес для дальнейшего разбора (например, для проверки на непротиворечивость с ожидаемой частью ответа), поэтому накапливается в специальных файлах (СФ). Одновременно формируется частичный вектор ситуации (ЧВС), отражающий промежуточную диагностику ответа. Далее канонический текст интерпретируется с привлечением ИКГ. Результат формируется в виде некоторого полного вектора ситуации (ПВС), по которому в блоке управления (БУ) принимается управляющее действие системы на основе соответствующих опций, заполненных предварительно преподавателем и содержащихся в базе знаний предметной области (БЗ ПО). Разработана интерфейсная оболочка, обеспечивающая удобное взаимодействие при эксплуатации семантического анализатора для преподавателя (при подготовке базы вопросов, модели ответов и других опций) и обучаемого (притвете на вопросы системы). На рисунке 1.4 показан фрагмент автоматизированного рабочего места преподавателя. Программа реализована на языке Delphi и обеспечивает семантический анализ ответов и интерфейс на русском, татарском и английском языках.
Рисунок 1.4 - Фрагмент интерфейса АРМ преподавателя
В статье предложен подход к разработке семантического анализатора естественно-языковых текстов в диалоговых обучающих системах в условиях детерминированного контекста, определяемого заданным вопросом. На ряде иллюстрированных примеров изложены особенности и преимущества анализа вопросно-ответных текстов в ситуации "ожидаемого текста" и "детерминированного контекста". В настоящее время разрабатывается развитая версия семантического анализатора в условиях двуязычных вопросно-ответных текстов на татарском и русском языках [4, 5].
Очень важно упомянуть о рабочей группе AOT [6], которое разрабатывает программное обеспечение в области автоматической обработки текста. В круг их интересов в основном входит анализ русского языка. Начиная с 2002 года группа выкладываем разработки с лицензией LGPL. Теперь каждый может бесплатно использовать библиотеки в своих программах, в том числе и в коммерческих приложениях.
Здесь пойдет речь о Леонтьевой Нине Николаевне (русский лингвист, специалист по структурной и прикладной лингвистике, преподаватель). Леонтьева одна из первых заговорила о том, что нужно использовать семантическую информацию для машинной обработки текста. Ее основополагающие концепты семантического отношения, семантической категории и характеристики стали основой прикладной машинной семантики. Несмотря на всеобщее признание ее заслуг, которые могли бы привести к некоторой догматичности, Нина Николаевна по-прежнему интересуется прикладными системами и готова менять и улучшать свои подходы. В центре ее теории находится Русский общесемантический словарь (РОСС), в котором содержится семантическое описание полнозначных лексем русского языка.
В основу ее методологического подхода положено разделение анализа на разные уровни, где каждый уровень есть некоторое представление входного текста. На каждом уровне - свой язык представления, именно язык, а не просто какие-то атрибуты. Конечный результат анализа - построение семантического представления, которое состоит из текстовых фактов-ситуаций. Отношения между ситуациями и другими ситуациями и другими актантами называются семантическими отношениями [7].
Работы группы AOT используют:
- компания "Интеллектуальный Партнер" (русская морфология, Windows);
- компания "@Маil.ru" (русская морфология, FreeBSD);
- Лукойл-Информ (русская и английская морфология, система добавления, Linux);
- проект ВААЛ (синтаксис и тезаурусы, Windows);
- РосНИИ Искусственного интеллекта (русская и английская морфология, Windows);
- компания Megaputer Intelligence (русская и английская морфология, Windows);
- академический проект развития семантического словаря под руководством д.т.н. Н.Н.Леонтьевой в НИВЦ МГУ (синтаксис и поверхностная семантика, Windows).
В общем случае проектов, использующие семантический разбор естественно-языковых текстов, большое количество [6].
Например, такие как, OpenCyc [8]. Выпущенная в июле 2006 года, включает в себя полную онтологию Cyc содержащую сотни тысяч выражений, миллионы утверждений. База знаний содержит 47 000 концепций и 306 000 фактов и её можно просмотреть на сайте OpenCyc. Первая версия OpenCyc была выпущена в мае 2001 года и содержала только 6000 концепций и 60000 фактов. База знаний выпущена под лицензией Apache.
А также более мелкие системы, как КОНСПЕКТ [9]. Выполняет выделение и сжатое конспектирование исходных естественно-языковых текстов, относящихся к заданной теме, которая задается ключевым словом или словосочетанием.
SNePS - это система представлния знаний, рассуждения и действия, разрабатываемая под руководством Стюарта Шапиро в Государственном университете Буффало в Нью-Йорке [10]. SNePS реализована как платформенно-независимая система, написана на Common Lisp и полностью свободна. SNePS одновременно основана на логической, фреймовой и сетевой моделях представления знаний. Она использует пропозициональную модель знаний, то есть её база знаний состоит из набора утверждений о различных предметах и явлениях.
Система ФРАП (Система французско-русского автоматического перевода была разработана коллективом лаборатории машинного перевода Всесоюзного центра переводов совместно с коллективом лаборатории машинного перевода МГПИИЯ им М. Тореза. 1976-1986 гг.) содержала полную цепочку анализа текста, вплоть до семантического, который был реализован только частично [11, 12]. В системе ФРАП был разработан и опробован семантический аппарат, который представляется нам настолько законченным и совершенным, что его можно заимствовать фактически без изменений. В центре семантического апарата ФРАП находятся два перечня (вернее, две грамматики): семантических характеристик (СХ) и смысловых отношений (СО). Используется минимальное количество семантических характеристик: ВЕЩВО ("вещество"), ИЗМ ("изменение"), ИНТЕЛ ("интеллектуальность"), ИНФ ("информация") и т. д.; слова характеризуются по признаку принадлежности к одному или нескольким классам. СХ обеспечивают проверку семантического согласования при интерпретации связей в тексте. Вместе с тем ФРАП не содержала механизмов структурных оценок семантического представления, то есть методов взвешивания не просто одного вхождения текстового элемента, а всей структуры в целом.
Система ПОЛИТЕКСТ была направлена на анализ официальных документов на русском языке и содержала полную цепочку анализаторов текстa: графематический (первичный анализ), морфологический, синтаксический и частично семантический. Графематический анализ в данной диссертационной работе был частично заимствован, но адаптирован под новые стандарты программирования. Программа морфологического анализа была написана заново, поскольку скорость работы была низкой, но сам морфологический аппарат не изменился. Синтаксический анализ системы ПОЛИТЕКСТ обладал рядом инженерных недостатков, поэтому его не удалось перенять [13].
В итоге, цепочка процессоров (графематический, морфологический и синтаксический) была собрана на базе OOO Диалинг. После этого стала актуальной разработка семантического анализа внутри системы ДИАЛИНГ как логического завершения цепочки анализаторов [14-17].
2. ПОСТАНОВКА ЗАДАЧИ
В настоящее время ведутся активные исследования в области разработки алгоритмов анализа текстов. Результатом этих исследований являются десятки моделей и готовых алгоритмов, которым необходима проверка. При этом до сих пор не существует инструмента, предоставляющего удобные средства для разработки в данной области. Это вынуждает разработчика-лингвиста сосредотачивать внимание не только на написании алгоритмов, но и на создании системы, способной запустить этоти алгоритмы, обеспечить их взаимодействие с друг другом и предоставить необходимую информацию о работе системы.
Главной задачей данной работы ставится, изучить технологии, базирующие на многоуровневом представлении естестевенного языка, и создать систему для анализа текстов на естественном языке. Важно отметить, что результатом работы является законченный продукт, подходящий для применения его в качестве анализатора текстов, предоставляющий на выходе семантическую сеть.
Система должна обеспечивать:
- загрузку и редактирования анализируемых текстов;
- анализ текста посредством программируемого конвейера, составленного из разрабатываемых независимо компонентов;
- функции работы со словарями, возможность создания и подключения новых словарей и тезаурусами;
- построение семантической сети;
- приемлемое время работы.
Следовательно, для поставленной задачи, а именно, создания системы для анализа текстов на естественном языке, на входе должен поступать текст на естественном языке, а на выходе строится семантическая сеть виде ориентированного графа. В результате, вершины графа соответствуют объектам текстовой семантики, а дуги задают отношения между ними. Часто, вершинами графа называют семантическими узлами, а дуги - семантическими отношениями.
Обобщенную структуру системы можно рассмотреть на рисунке 2.1.
Размещено на http://www.allbest.ru/
Рисунок 2.1 - Обобщенная структура системы семантического разбора
3. АНАЛИЗ АЛГОРИТМОВ ДЛЯ СИСТЕМЫ ОБРАБОТКИ ЕСТЕСТВЕННО-ЯЗЫКОВЫХ ТЕКСТОВ
Общие принципы систем обработки текстов представляют собой компоненты, составляющие структуру систем анализа текстов - лингвистические процессоры, которые последовательно обрабатывают входной текст. Вход одного процессора является выходом другого.
Выделяются следующие компоненты:
- графематический анализ - выделение слов, цифровых комплексов, формул и т.д.;
- морфологический анализ - построение морфологической интерпретации слов входного текста;
- синтаксический анализ - построение дерева зависимостей всего предложения;
- семантический анализ - построение семантического графа текста.
Для каждого уровня разрабатывается свой язык представления. Язык представления, как полагается, состоит из констант и правила их комбинирования. На графематическом уровне константами являются графематические дескрипторы (ЛЕ - лексема, ЦК - цифровой комплекс и т.д.) На морфологическом уровне - граммемы (рд - родительный падеж, мн - множественное число). На синтаксическом - названия отношений (subj -отношение между подлежащим и сказуемым, circ - обстоятельство).
Основой для построения уровней служат результаты работы предыдущих компонентов, но, что важно, последующие компоненты также могут улучшить представление предыдущих. Например, если для какого-то предложения синтаксический анализатор не смог построить полного дерева зависимостей, тогда, возможно, семантический анализатор сможет спроектировать построенный им семантический граф на синтаксис.
3.1 Графематический анализ
Графематический анализ - достаточно простой компонент, выполняющий первые предварительные анализа над текстом, представленного в виде цепочки ASCII символов, вырабатывающая информацию, необходимую для дальнейшей обработки морфологическим и синтаксическим процесорами.
В задачу графематического анализа входят:
- разделение входного текста на слова, разделители и т.д.;
- сборка слов, написанных в разрядку;
- выделение устойчивых оборотов, не имеющих словоизменительных вариантов;
- выделение ФИО (фамилия, имя, отчество), когда имя и отчество написаны инициалами;
- выделение электронных адресов и имен файлов;
- выделение предложений из входного текста;
- выделение абзацев, заголовков, примечаний.
3.1.1 Входные и выходные данные
На вход графематике подается файл плайн-текста в Windows-кодировке. На выходе графематика строит таблицу, состоящую из двух столбцов. В первом столбце стоит некоторый кусок входного текста (выделенный по правилам, о которых мы скажем ниже), во втором столбце стоят графематические дескрипторы, характеризующие этот кусок текста. Например, из текста "Иван спал" будет построена таблица 3.1.
В первый столбец всегда помещается часть входного текста. Если входные символы являются последовательностью из мягких разделителей (пробел, табуляция, возврат каретки), тогда используются другие символы, номера которых включены в описание на языке дискрипторов.
Таблица 3.1
Графематические дескрипторы
Кусок входного текста |
Графематические дескрипторы |
|
Иван |
RLE Aa NAM? |
|
спал |
RLE aa SENT_END |
3.1.2 Графематические дескрипторы
Сначала приведем перечень главных дескрипторов, один из которых обязательно должен присутствовать на каждой строке графематической таблицы. Графематические дескрипторы описаны в таблице 3.2.
Таблица 3.2
Перечень главных дескрипторов
Название |
Русское название |
Объяснение |
Примеры |
|
RLE |
ЛЕ |
русская лексема, присваивается последовательностям, состоящим из кириллицы |
Иван |
|
LLE |
ИЛЕ |
иностранная лексема, присваивается последовательностям из латиницы |
John |
|
DEL |
РЗД |
разделитель. |
"*", "=", "_" |
|
PUN |
ЗПР |
знак препинания, присваивается последовательностям, состоящим из одинаковых знаков препинания |
".", " [","]"," (", ") ", "-", ":", ";" |
|
DC |
ЦК |
цифровой комплекс, присваивается последовательностям, состоящим из цифр |
1234 |
|
DSC |
ЦБК |
цифро-буквенный комплекс, присваивается последовательностям, состоящим из цифр и букв |
34h |
|
GRAUNK |
сложный узел, присваивается последовательностям, не обладающим вышеперечисленными признаками |
Таблица 3.3
Разновидности дескриптора DEL
SPC |
ПРБ |
строка пробелов или табуляций |
|
EOLN |
КСТ |
признак конца строки |
|
PAR_SYM |
символ параграфа |
||
EMSYM |
нулевой символ |
Разновидности дескриптора PUN описаны в таблице 3.4.
Таблица 3.4
Разновидности дескриптора PUN
OPN |
открывающая скобка |
"{", "[", "(" |
|
CLS |
закрывающая скобка |
"}", "]", ")" |
|
HYP |
дефис |
- |
Разновидности дескриптора ЗПР и РЗД описаны в таблице 3.5.
Таблица 3.5
Разновидности дескриптора ЗПР и РЗД
DPUN |
последовательность одинаковых символов, длина которой больше 20 |
|
PLP |
последовательность одинаковых символов, длина которой больше 1 |
|
DPUN |
последовательность одинаковых символов, длина которой больше 20 |
Разновидности дескриптора ЛЕ и ИЛЕ описаны в таблице 3.6.
Таблица 3.6
Разновидности дескриптора ЛЕ и ИЛЕ
aa |
признак того, что все символы лексемы - малые |
мама |
|
Aa |
признак того, что первый символ лексемы - большой |
Мама |
|
AA |
признак того, что все символы лексемы - большие |
МАМА |
Теперь опишем дескрипторы, которые появляются на строке в зависимости от контекста, т.е. они вычисляются не только из текущей строки, но и из номера текущей строки и строк, которые находятся выше и ниже вычисляемой. Контекстные дескрипторы описаны в таблице 3.7.
Кроме этого, используются дескрипторы, относящиеся к макросинтаксическому анализу (анализу расположения абзацев, заголовков). В макросинтакксическом анализе абзацы, заголовки и т.д. называются условно предложениями (УП). Макросинтаксические дескрипторы ставятся на конце УП в зависимости от типа УП, они описаны в таблице 3.8.
Таблица 3.7
Контекстные дескрипторы
BEG |
ставится на начале текста (входного файла), т.е. всегда стоит на нулевой строке таблице. Причем, важно сказать, что нулевая строка таблицы используется как служебная ( содержимое первого столбца нулевой строки не входит во входной текст) |
||
EOP |
ставится на конце фразы.Концом фразы считается только ";" |
||
SENT_END |
конец предложения |
||
NAM? |
признак того, что лексема, возможно, является частьюимени собственного. Присваивается лексеме, начинающейся с большой буквы и не имеющей перед собой символа конца предложения |
||
BUL |
ставится на начале пункта перечисления |
||
Продолжение таблицы 3.7. |
|||
INDENT |
ставится на начале абзаца |
||
EXPR1 |
ставится на начале оборота |
типа "во взаимодействии с" |
|
EXPR2 |
ставится на конце оборота |
||
FAM1 |
ставится на начале ФИО |
типа "Иванов И.И." |
|
FAM2 |
ставится на конце ФИО |
||
FILE1 |
начало имени файла |
c:\test.txt |
|
FILE1 |
конец имени файла |
||
ABB1 |
начало сокращения |
и т.п. |
|
ABB2 |
конец сокращение |
||
KEY1 |
начало последовательности обозначений клавиш |
Ctrl-F |
|
KEY2 |
начало последовательности обозначений клавиш |
||
EA |
электронный адрес |
www.aot.ru sokirko@yandex.ru |
Таблица 3.8
Макросинтаксические дескрипторы
CS? |
ставится на конце УП, тип которого не определен |
|
CS |
ставится на конце простого УП |
|
HDNG |
ставится на конце заголовка |
|
CS_AUX |
ставится на конце УП, заключенного в скобки |
|
CS_PRNT |
ставится на конце УП, заканчивающегося на двоеточие |
|
DOC |
ставится на нулевой строке графематической таблицы |
3.1.3 Деление на предложения
Этот алгоритм включен в модуль графематики, поскольку на результаты его работы опирается макросинтаксический анализ. На вход алгоритма подаются два числа StartPos и EndPos, которые обозначают первую и последнюю строки входного текста.
Программа ищет конец предложения, а потом после него ищет начало предложения. Алгоритм основывается на постулатах, приведенных далее.
1. Начало текста совпадает с началом первого предложения, конец текста - с концом последнего.
2. Предложение всегда начинается с большой буквы.
3. Предложение не бывает больше одного абзаца.
4. Предложение не может состоять только из знаков препинания.
Определим вспомогательный примитив IsSentenceEndMark. На вход подается номер строки. На выходе примитив возвращает истину, если эта строка содержит символ "?", "!", "." или многоточие.
Определим вспомогательный примитив IsSentenceEndSeq. На вход подается номер строки. Примитив возвращает истину в двух следующих случаях описанных ниже.
1. Если для этой строки верна функция IsSentenceEndMark и если контактно справа нет закрывающей кавычки (если предложение закавычено, закрывающая кавычка входит в это предложение).
2. Если строка является закрывающей кавычкой, а контактно слева стоит строка, для которой верно IsSentenceEndMark.
Используя эти примитивы, программу поиска предложений можно грубо описать пятью этапами.
1. Пусть i - текущая строка между StartPos и EndPos.
2. Если на строке i стоит помета начала абзаца, тогда нужно пройти назад все пробелы и длинные разделители (PLP) и дойти до конца предыдущего абзаца. Если в конце абзаца (до первого слова) стоит строка, которая удовлетворяет IsSentenceEndSeq, тогда нужно поставить SENT_END этой строке, иначе нужно поставить SENT_END на конец предыдущего абзаца.
3. Если на строке i стоит помета макросинтаксическая помета УП, тогда нужно сделать то же самое, что и в пункте 2, только надо учесть, что помета УП ставится на конце абзаца, а не начале (как в пункте 2).
4. Если до начала текущего предложений стояла открывающая скобка (кавычка), и текущая строка указывает на слово до соотв. закрывающей скобки(кавычки), тогда нужно поставить SENT_END на закрывающую скобку(кавычку), а i сместить на ближайшее после закрывающей кавычки(скобки) слово.
5. Если текущая строка удовлетворяет функции IsSentenceEndSeq и не стоит внутри графематических групп (FIO1-FIO2 и т.д.), тогда проходим все знаки препинания от текущей строки. Проверяем, что знак препинания, который заканчивает предложения, не должен стоять в самом начале строки. Далее ищем первое слово от текущей строки и считаем его началом нового предложения.
3.2 Морфологический анализ
Морфологический компонент осуществляет морфоанализ и лемматизацию русских словоформ. Морфоанализ - приписывание словоформам морфологической информации, лемматизация - приведение текстовых форм слов к словарным. При лемматизации для каждого слова входного текста морфологический процессор выдает множество морфологических интерпретаций следующего вида:
- лемма;
- морфологическая часть речи;
- набор общих граммем (которые относятся ко всем словоформам парадигмы слова);
- множество наборов граммем.
Полный перечень русских частей речи описаны в таблице 3.9.
Таблица 3.9
Перечень русских частей речи
Часть речи в системе Диалинг |
Пример |
Расшифровка |
|
C |
мама |
существительное |
|
П |
красный |
прилагательное |
|
МС |
он |
местоимение-существительное |
|
Г |
идет |
глагол в личной форме |
|
ПРИЧАСТИЕ |
идущий |
причастие |
|
ДЕЕПРИЧАСТИЕ |
идя |
деепричастие |
|
ИНФИНИТИВ |
идти |
инфинитив |
|
МС-ПРЕДК |
нечего |
местоимение-предикатив |
|
МС-П |
всякий |
местоименное прилагательное |
|
ЧИСЛ |
восемь |
числительное (количественное) |
|
ЧИСЛ-П |
восьмой |
порядковое числительное |
|
Н |
круто |
наречие |
|
ПРЕДК |
интересно |
предикатив |
|
ПРЕДЛ |
под |
предлог |
|
СОЮЗ |
и |
союз |
|
МЕЖД |
ой |
междометие |
|
ЧАСТ |
же, бы |
частица |
|
ВВОДН |
конечно |
вводное слово |
|
КР_ПРИЛ |
красива |
краткое прилагательное |
|
КР_ПРИЧАСТИЕ |
построена |
краткое причастие |
Граммема - это элементарный морфологический описатель, относящий словоформу к какому-то морфологическому классу, например, словоформе "стол" с леммой "СТОЛ" будут приписаны следующие наборы граммем: "мр, ед, им, но", "мр, ед, вн, но". Таким образом, морфологический анализ выдает два варианта анализа словоформы "стол" с леммой "СТОЛ" внутри одной морфологической интерпретации: с винительным (вн) и именительным падежами (им).
Ниже перечислены все используемые граммемы:
- мр, жр, ср - мужской, женский, средний род;
- од, но - одушевленность, неодушевленность;
- ед, мн - единственное, множественное число;
- им, рд, дт, вн, тв, пр, зв - падежи: именительный, родительный, дательный, винительный, творительный, предложный, звательный;
- 2 - обозначает второй родительный или второй предложный падежи;
- св, нс - совершенный, несовершенный вид;
- пе, нп - переходный, непереходный глагол;
- дст, стр - действительный, страдательный залог;
- нст, прш, буд - настоящее, прошедшее, будущее время;
- пвл - повелительная форма глагола;
- 1л, 2л, 3л - первое, второе, третье лицо;
- 0 - неизменяемое;
- кр - краткость (для прилагательных и причастий);
- сравн - сравнительная форма (для прилагательных);
- имя, фам, отч - имя, фамилия, отчество;
- лок, орг - локативность, организация;
- кач - качественное прилагательное;
- вопр,относ - вопросительность и относительность (для наречий);
- дфст - слово обычно не имеет множественного числа;
- опч - частая опечатка или ошибка;
- жарг, арх, жаргонизм, архаизм, профессионализм;
- аббр - аббревиатура;
- безл - безличный глагол.
Как уже было сказано, одной словоформе может соответствовать много морфологических интерпретаций. Например, у словоформы стали две интерпретации:
- {СТАЛЬ, C, "но", ("жр,ед,рд", "жр,ед,дт", "жр,мн,им", "жр,мн,вн") };
- {СТАТЬ, Г, "нп,св", ("мн,дст,прш")}.
В данном случае разрабатывать данный компонент не обязательно, так как это является очень трудоемкой и длительной работой. Тем более в открытом доступе присутствуют многочисленное количество готовых библиотек. Одна из многих присутствует на сайте www.aot.ru - это COM-интерфейс морфологического анализатора системы Диалинг. Для Unix-разработчиков, к сожалению нет специального документа, но в целом Unix-версия повторяет структуру всех представленных интерфейсов, достаточно только переименовать основные типы (BSTR в string, BOOL в bool и т.д.).
Пакет содержит COM-объект морфологии, бинарники русского словаря и пример использования COM-объекта на С++. Все готово для проведения морфологического анализа. Так же присутствует описания всех интерфейсов.
3.3 Синтаксический анализ
Цель синтаксического анализа - построение групп на предложении. Синтаксическая группа - это отрезок (первое слово группы - последнее слово группы) в предложении, для которого указан подотрезок - его главная группа. В частном случае группа - одно слово. Как видно из определения, синтаксические группы неразрывны, а из того, что две группы пересекаются, следует, что одна лежит в другой (т.е. является ее подотрезком).
Синтаксическую структуру предложения можно представить в виде дерева: корень (нулевой уровень) - само предложение; узлы -синтаксические группы (далее просто группы); листья - элементарные группы (слова); ребра - отношение "лежать непосредственно в" (А->В значит, что В лежит в А и при этом нет такой группы С, что В лежит в С и С лежит в А).
До начала работы анализатора каждое слово - группа первого уровня (группы первого уровня не входят ни в какие группы кроме предложения) и кроме корня других групп нет. Результатом работы является "дерево" предложения, описывающее лингвистические отношения подчинения. По сути это и есть математическая модель предложения на естественном языке.
3.4 Семантический анализ
Последним этапом является построения семантической сети в виде ориентированного графа. В результате, вершины графа соответствуют объектам текстовой семантики, а дуги задают отношения между ними. Часто, вершинами графа называют семантическими узлами, а дуги - семантическими отношениями.
На входе семантического анализа подается синтаксическое представление текста и все семантические словари, тезаурусы, привлеченные к реализации в системе.
На выходе построенная семантическая сеть. Пример такой семантической сети можно увидеть на рисунке 3.1 по информации заключенной в следующем тексте: "Петух Петя является птицей и он умеет кукарекать. Попугай Кеша живет у моего одноклассника Васи. Попугай - птица. Птицы являются животными. Медведь - это животное, имеющее темный цвет".
Размещено на http://www.allbest.ru/
Рисунок 3.1 - Пример семантической сети
Традиционный школьный синтаксис, который строится на понятии согласования, управления и примыкания, позволяет очертить круг синтаксических отношений. Все алгоритмы, которые ищут эти отношения и их композиции, можно назвать синтаксисом. Семантикой мы называем те алгоритмы, которые, используя смысл слов и выражений, устанавливают отношения, которые не вычисляются напрямую из синтаксических отношений. Конечно, нельзя преувеличивать значение семантического анализа для систем автоматической обработки текста. Если попытаться просчитать актуальность семантического анализа как довеска к традиционному синтаксическому хотя бы на примере системы ДИАЛИНГ, то его помощь составляет не более десяти-двадцати процентов.
Теперь мы кратко опишем теоретическую базу, на основе которой был разработан первично семантический процессор - т.е., семантическая система доктора технических наук Н.Н. Леонтьевой.
В центре этой теории находится Русский общесемантический словар (РОСС), который включает семантическое описание по следующему шаблону описанному ниже.
1. Семантический класс лексемы (набор семантических характеристик).
2. Грамматический класс лексемы.
3. Валентная структура лексемы (в терминах семантических тношений).
4. Семантические и грамматические ограничения на выражение каждого актанта из валентной структуры.
Ниже приведен пример словарной статьи глагола "винить":
ЗГЛ = винить 1
КАТ = 1 ЭТК.СИТ
ГХ = 1 ГЛ:ГГ
СХ = 1 ИНТЕЛ
2 КОММУНИК
ВАЛ = АГЕНТ , А1 , С
ОБ , А2 , С
СОДЕРЖ , А3 , С
ГХ1 = 1 подл : И
СХ1 = 1 ОДУШ
ГХ2 = 1 п_доп : В
СХ2 = 1 ОДУШ
2 АБСТР
ГХ3 = 1 к_доп : в+П
2 к_доп : за+В
АНГ = blame 1
ИЛЛ = Я сам себя винил во всех неудачах.
Винить за это некого.
Опишем кратко понятие семантической характеристики и отношения. Семантическое отношение - это некая универсальная связь, усматриваемая носителем языка в тексте.
Формат записи семантического отношения следующий: R(А,B), где R - название семантического отношения, А - зависимый член отношения, B - управляющий член отношения.
Для конкретных А,B и отношения R направление выбирается таким образом, чтобы формула R(А,B) была эквивалентна утверждению, что "А является R для B". Например, для фразы роман Толстого будет построена формула АВТОР(Толстой, роман), а не наоборот, потому что верно утверждение " Толстой является АВТОРом романа".
Соответственно, эта проверка и является базисной оценкой правильности проведения одного отношения от узла А к узлу B. Если все базисные проверки пройдены, то и весь граф признается правильным, т.е. отражающим смысл входного текста.
Семантическое отношение R (A, B) <=> "А является R для B". Перечень отношений описаны в таблице 3.10.
Таблица 3.10
Семантическое отношение R (A, B)
Название(R) |
Примеры |
|
АВТОР |
Роман Толстого |
|
АГЕНТ |
Мы сократили отставание |
|
АДР |
Я отдал стул отцу. |
|
ВРЕМЯ |
Это произошло вчера. |
|
ИДЕНТ |
Дом N 20 |
|
ИМЯ |
Дворник Степанов |
|
ИНСТР |
резать ножом |
|
ИСХ-Т |
яблоки из Молдавии |
|
КОЛИЧ |
два яблока |
|
КОН-Т |
уехать в Москву |
|
ЛОК |
жить в глуши |
|
ОБ |
уничтожить мост |
|
ОЦЕНКА |
хорошо относиться |
|
ПАЦИЕН |
арест преступника |
|
ПРИЗН |
красивый шар |
|
ПРИНАДЛ |
дом отца |
|
ПРИЧ |
деревья повалены ураганом |
|
РЕЗЛТ |
испечь пирог |
|
СОДЕРЖ |
рассказать о весне |
|
СПОСОБ |
идти босиком |
|
СРЕДСТВО |
красить белилами |
|
СУБ |
любовь отца |
|
ЦЕЛЬ |
забастовка в целях повышения зарплаты |
|
ЧАСТЬ |
ножка стула |
Семантические характеристики (СХ) в словаре РОСС играют важнейшую роль.
В словаре РОСС семантических характеристик около 40. Из этих меток строятся формулы (с логическими связками и, или). Каждому слову приписана некоторая формула, составленная из СХ.
СХ используются для сборки валентной структуры. Для каждого i-го актанта в поле СХi записывается формула, которой он должен удовлетворять.
Хотя изначально СХ вводились как простые селективные ограничения, отбраковывающие некоторые связи, проведенные синтаксическим анализом, теперь за каждой из них закреплено определенное значение. Вообще говоря, считается, что если СХ(А) = СХ (B) <=> "А и В имеют общее семантическое свойство".
Семантическая характеристика СХ (A) = СХ(B) <=> "А имеет смысловое сходство с B".
Пример:
1) (говорить) = СХ(орать) = КОММУНИК;
2) (повар) = СХ(генерал) = ДОЛЖ.
Перечень семантических характеристик описаны в таблице 3.11.
Таблица 3.11
Перечень семантических характеристик
Название |
Примеры |
|
АБСТР |
модель, план, |
|
АРТ |
хлеб,памятник |
|
ВЕЩВО |
бензин,ядохимикат |
|
ВМЕСТЛ |
мешок, амбар |
|
ВОСПР |
слушать, видеть |
|
ДВИЖ |
идти, ронять |
|
ДОЛЖ |
повар,партработник |
|
Д-УСТР |
карбюратор,валик |
|
ИЗМ |
наращивать,реформировать, |
|
ИНТЕЛ |
надеяться,изучать, |
|
ИНФ |
знание,команда, |
|
КОММУНИК |
выражать,выступать |
|
НОСИНФ |
книга,газета, |
|
Н-ТРЕБ |
закон,инструкция |
|
ОДЕЯТ |
физика,балет |
|
ОДУШ |
папа,президент |
|
ОРГ |
колхоз,школа |
|
ПРЕДМ |
марка, бинокль |
|
ПРОТЯЖ |
дорога,граница |
|
СОБИР |
библиотека,молодежь |
|
УСТР |
компьютер,лифт |
|
ЭМОЦ |
мизерный,могучий |
|
ЯВЛЕН |
смерч,терроризм |
Мы описали основные досемантические компоненты системы ДИАЛИНГ и аппарат семантического анализа, который был взят нами за основу. Теперь перейдем к описанию первично семантического процессора.
На вход семантического процессора подается синтаксическое дерево, а в большинстве случаев множество несвязных синтаксических деревьев, т.е. лес. Задача состоит в том, чтобы по возможности разрешить морфологическую, лексическую и древесную неоднозначность, описание в таблице 3.12.
Таблица 3.12
Описание семантического процессора
Вход: синтаксическое дерево |
Выход: семантический граф |
||
R(a, b) |
=> |
R(A, B) |
|
генит,иг(дом, отца) |
=> |
ПРИНАДЛ(дом, отца) |
|
генит_иг(чашка, чая) |
=> |
КОЛИЧ(чашка, чай) |
Примеры семантической структуры для предложений преведены на рисунке 3.2.
Но в системе ДИАЛИНГ используют граф с центром в глаголе. То есть, глаголы соединяются с группой существительного с использованием падежных отношений. Для данной задачи граф должен быть с центром в существительном, как изображено на рисунке 3.2.
Дом Пашкова стоял на пригорке. |
Он купил картошку, лук. |
||
Ему не хватило духа сказать об этом. |
Он считал этого человека великим ученым. |
||
Рисунок 3.2 - Примеры семантической структуры
4. СТРУКТУРА СИСТЕМЫ ПОСТРОЕНИЯ СЕМАНТИЧЕСКОГО РАЗБОРА ДЛЯ ЕСТЕСТВЕННО-ЯЗЫКОВЫХ ТЕКСТОВ
Планируемая система будет иметь схожий на систему ДИАЛИНГ структуру. Следовательно, в обязательном порядке, присутствуют такой компонент как графематический анализ. Который производит разбор на слова, цифровые комплексы, электронный адресов, названия файлов, аббревиатуры и деления на абзацы, предложения.
Далее следует морфологический разбор, предназначенный для построения морфологической информации слов входного текста, и после следует синтаксический анализ. Помимо этого будет добавлен статистический анализатор, в данном компоненте будет реализовываться подсчет повторно встречаемых слов, какой части речи они относятся, форма слов и т.п. Данный анализатор более упростит и повысит качество семантического анализа, даст больше данных для построения семантической сети. Структуру системы построения семантического разбора для естественно-языковых текстов можно увидеть на рисунке 4.1.
Размещено на http://www.allbest.ru/
Рисунок 4.1 - Структура системы семантического разбора для естественно-языковых текстов
4.1 Графематический анализ
Графематический анализ - достаточно простая программа, выполняющая первые предварительные действия над текстом. На вход графематике подается текст в кодировке Windows, на выходе строится графематическая таблица, в которой на каждой строке стоит слово или разделитель из входного текста. Кроме деления текста на слова, графематика разбивает текст на предложения (макросинтаксический анализ). Данный анализ немного отличатся от ранее описанного графематического анализа из системы ДИАЛИНГ.
Практическая задача анализа построить графематическую таблицу. В первом столбце стоит некоторый кусок входного текста, во втором столбце стоят графематические дескрипторы, характеризующие этот кусок текста. Примером такой таблице является таблица 4.1.
Таблица 4.1
Графематическая таблица
Кусок входного текста |
Графематические дескрипторы |
|
Иван |
ЛЕ Бб НПРД |
|
_ |
РЗД |
|
спал |
ЛЕ бб |
|
. |
ЗПР КПРД |
Перечисление графематических дескрипторов описаны в таблице 4.2.
Таблица 4.2
Графематические дескрипторы
Кир.Назв. |
Объяснение |
Пример |
|
ЛЕ |
русская лексема, присваивается последовательностям, состоящим из кириллицы |
Иван |
|
ИЛЕ |
иностранная лексема, присваивается последовательностям из латиницы |
John |
|
РЗД |
разделитель, но не знак препинания. |
"*", "=", "+", "-", "_" и т.п. |
|
ЗПР |
знак препинания, присваивается последовательностям, состоящим из одинаковых знаков препинания |
" . ", "[","]", "(", ")", " : ", " ; " и т.п. |
|
ЦК |
цифровой комплекс, присваивается последовательностям, состоящим из цифр |
1234 |
|
ЦБК |
цифро-буквенный комплекс, присваивается последовательностям, состоящим из цифр и букв |
34h |
Разновидности дескриптора ЛЕ и ИЛЕ описаны в таблице 4.3.
Таблица 4.3
Разновидности дескриптора ЛЕ и ИЛЕ
бб |
признак того, что все символы лексемы - малые |
мама |
|
Бб |
признак того, что первый символ лексемы - большой; |
Мама |
|
ББ |
признак того, что все символы лексемы - большие |
МАМА |
Теперь опишем дескрипторы, которые появляются вычисляють начало и конец предложения. Они описаны в таблице 4.4.
Таблица 4.4
Контекстные дескрипторы
НПРД |
начало предложения |
|
КПРД |
конец предложения |
Деление предложений будет производиться по определенным правилам.
1. Начало текста совпадает с началом предложения.
2. Предложения начинается с заглавной буквы, а если предложения в середине текста, перед ним должен быть знак препинания ".", "?" или "!".
3. Предложение не может состоять из знаков препинания, цифр или символа.
4. Конец предложения заканчивается знаком препинания ".", "?" или "!", а следующая лемма начинатся с заглавной буквы, если это не конец текста
5. Конец текста всегда будет концом последнего предложения.
Для полного понимания на рисунке 4.2 изображены блоки графемотического анализа.
Размещено на http://www.allbest.ru/
Рисунок 4.2 - Блоки графемотического анализа
Анализ состоит всего и двух модулей.
В первом определяются дискрипторы, которые были описаны в таблице 4.2 и 4.3.
Во втором определяются начало и конец предложения, и соответственно добавляются дискрипторы контекста из таблицы 4.4.
4.2 Морфологический анализ
Морфологический компонент осуществляет морфоанализ и лемматизацию русских словоформ (лемматизация - приведение текстовых форм слова к словарным; морфоанализ - приписывание словоформам морфологической информации).
Блоки изображены на рисунке 4.3.
При лемматизации для каждого слова входного текста морфологический процессор выдает множество морфологических интерпретаций следующего вида:
- лемма (всегда пишется большими буквами);
- морфологическая часть речи;
- множество наборов граммем.
-
Размещено на http://www.allbest.ru/
Рисунок 4.3 - Блоки морфологического анализа
Так как программная разработка морфологичекого анализа является сложной задачей, данная система будет спользовать библиотеку mcr.dll позволяющюю подключать, создавать и сохранять словари в формате mcr, выполнять поиск слов в этих словарях, морфоанализ, лемматизацию, орфокоррекцию, стемминг и еще некоторые другие функции.
Морфоанализ данной библеотеки построен на основе словаря А. А. Зализняка содержащий порядка 100 тысяч слов общеупотребительной лексики языка (в формате mcr), который прилагается к программным модулям.
4.3 Статистический анализ
Статистический анализ - позволяет получить статистику, т.е. какие слова и сколько раз встретились в тексте. Предусмотрена возможность совместного подсчета словоформ - то есть слов в разном роде, падеже и пр. (объединяются похожие слова, которые имеют разное окончание). Есть возможность не учитывать слова, которые встретились только один раз. Данный анализ даст больше информации о тексте и упростит задачу семантического анализа.
Данный статистический анализ можно разбить на блоки, которые изображены на рисунке 4.4.
Размещено на http://www.allbest.ru/
Рисунок 4.4 - Блоки статистический анализа
Первый блок, данного анализа, осуществляет простой подсчет количества лемм и предложений в анализируемом тексте.
Во втором блоке осуществляет поиск и количественный подсчет служебных частей речи, а именно, такие как: предлоги, союзы, частицы, междометия и т.п.
Третий блок позволит выделить группу слов-объектов и определить количество, встречаемых по каждому из слов. К данной группе относятся частей речи, как существительные, прилагательные и числительные.
Четвертый блок аналогичен предыдущему, за исключением, что анализируемые слова относятся к группе слов-отношений. К данной группе относятся такие частей речи, как глаголы.
И завершающий блок, из группы слов-объектов выделит, и определить их количество, по форме слова. Имеется виду, слова схожие по своему лексическому значению (дом - дому, домом, дома).
4.4 Синтаксический анализ
На сегодня создание синтаксического анализа является одной из самых актуальных задач в компьютерной лингвистике, решение которой позволило бы достичь высокого уровня формализации языковых структур в разнообразных прикладных целях: от создания систем автоматического распознавания речи до поисковых систем в Интернете.
Под целью синтаксического анализа понимается вычленение базовых синтаксических структур и установление синтаксических связей между ними.
На выход поступает цепочка слов, разбитая на группы, причем каждая группа имеет связь с другими группами. Кроме того, модуль синтаксического анализа идентифицирует такие синтаксические категории, как подлежащее и сказуемое.
Однако создание синтаксического анализа для русского языка упирается в большое количество сложностей, связанных с недостаточно разработанной теоретической базой, в общем, и прикладном языкознании.
Структуры человеческого языка отличаются разнообразием и часто высоким уровнем сложности, предусмотреть который чрезвычайно тяжело.
Синтаксический анализ был разбит на три блока изображенных на рисунке 4.5.
Из модуля морфологического анализа, в котором для слоаоформы есть все возможные варианты основ и соответствующие грамматические показатели. Если данной словоформе соответствует только одна основа, она поступает в процедуру построения гипотез. В зависимости от части речи и грамматических показателей выделяется соответствующая синтаксическая группа. В том случае, когда одной словоформе соответствует несколько основ, построение гипотез осуществляется для всех вариантов основ. Если словоформа не найдена в словаре, то результатом будет неразобранное предложение.
Размещено на http://www.allbest.ru/
Рисунок 4.5 - Блоки синтаксического анализа
После предварительной обработки словоформа поступает в блок генерирования гипотез. Этот блок является основным. На его вход поступает словоформа. Если это первое слово в предложении, то в соответствии с частью речи определяется синтаксическая группа. На основании исходного текста был составлен список частей речи, которые в нем встречаются. Список включает в себя: имя существительное, финитный глагол, прилагательное, краткое прилагательное, инфинитив, наречие, предлог, сочинительный союз "и", вспомогательный глагол "быть" и другие части речи.
Подобные документы
Морфологические анализаторы (морфологизаторы) на различных языках программирования. Анализ методов и технологий автоматической обработки ЕЯ-текстов. Разработка модуля графематического анализа и создания таблицы лексем. Программная реализация классов.
дипломная работа [3,0 M], добавлен 06.03.2012Место компилятора в программном обеспечении. Принципы работы и автоматизация построения синтаксического анализатора. Дерево разбора и его преобразование в дерево операций. Назначение и этапы семантического анализа. Идентификация языков программирования.
реферат [265,1 K], добавлен 20.12.2007Структура компилятора PascalABC.NET. Структура дерева и примеры узлов. Упрощенный синтаксис записи модулей. Объявление имен, совпадающих с ключевыми словами. Генерация узла семантического дерева. Сериализация и десериализация узлов семантического дерева.
курсовая работа [1,8 M], добавлен 18.12.2011Рассмотрение и анализ моделей и алгоритмов семантического поиска в мультиагентной системе поддержки пользователей. Ознакомление с интерфейсом чата с ботом. Изучение и характеристика экспериментальных оценок релевантности и пертинентности запросов.
дипломная работа [3,0 M], добавлен 13.10.2017Методы грамматического разбора. Разработка структуры учебного транслятора на базовом языке программирования Object Pascal в среде объектно-ориентированного визуального программирования Borland DELPHI 6.0 с использованием операционной системы Windows XP.
курсовая работа [493,8 K], добавлен 12.05.2013Базовые принципы объектно-ориентированного программирования, его реализация в Тurbo Рascal. Разработка информационно-поисковой системы "Записная книжка врача-педиатра" на языке программирования Рascal. Описание алгоритма решения задачи и интерфейса.
курсовая работа [2,8 M], добавлен 14.11.2013Состав и принцип работы аппаратуры. Выбор параметров корреляционного анализа и Фурье-анализа. Разработка и применение алгоритма корреляционного анализа. Реализация алгоритма Фурье-анализа на языке С++ и алгоритма корреляционного анализа на языке С#.
дипломная работа [4,6 M], добавлен 30.11.2016Понятие электронных курсов. Описание программных и языковых средств разработки. Технология создания компьютерной обучающей системы, пакета вопросов в редакторе Excel. Разработка интерфейса ЭС. Организация диалога пользователя с экспертной системой.
дипломная работа [10,8 M], добавлен 20.06.2014Разработка приложения для проверки использования времен глаголов в английском языке. Создание базы данных. Анализ используемых средств для реализации автоматического разбора текста. Проектирование мобильного приложения с помощью диаграмм деятельности.
дипломная работа [2,6 M], добавлен 13.09.2017Разработка алгоритма автоматического создания отзывов на русском языке с использованием лексико-синтаксических шаблонов. Процесс создания текста при помощи цепей Маркова. Принцип работы Томита-парсера. Применение автоматических генераторов текстов.
курсовая работа [150,6 K], добавлен 27.09.2016