Декларативные методы машинной морфологии. Создание базы данных английских словоформ, содержащей полную морфологическую информацию каждой формы. Описание функциональных возможностей системы и взаимодействия ее модулей. Формат входных и выходных данных.
Аннотация к работе
В ходе морфологического анализа проводится соотнесение входной словоформы к одной из основ, хранящихся в словаре, т.е. решается задача распознавания, а также определение его грамматических параметров, т.е. выделение конкретной словоформы с данной основой. Работа морфологического синтеза состоит в считывании из словаря по основе и набору МИ соответствующей словоформы этой основы. Кроме значительного роста словаря возникает еще одна проблема: в случае отсутствия словоформы в словаре система не имеет возможности оперировать этим словом. В аналитических языках, например английском, где широко представлена лексическая многозначность, простой алгоритм, сопоставляющий каждому слову в тексте наиболее вероятный для данного слова морфологический класс, дает лишь около 90% точности. В базе данных словоформ, построенной таким образом, в режиме поиска парадигмы по лемме, введенной пользователем в поле ввода приложения TABLE, ищется ее парадигма и выводится пользователю в виде списка словоформ с их МИ в специальное поле.В результате выполнения курсовой работы был сделан достаточно полный обзор методов машинной морфологии и способов представления МИ, сформулирована постановка задачи, спроектирована и программно реализована система синтеза парадигм слов английского языка, проведено комплексное тестирование результатов ее работы, что необходимо для выявления ошибок в структуре алгоритмов программы, структуре входных и внутренних данных, а также для ликвидации конфликтных ситуаций с другим программным обеспечением. Морфологический анализ/синтез неосуществим без машинного грамматического словаря, его использование позволяет проводить полный анализ словоформы, оперируя большим числом грамматических признаков, и повысить его точность. Помимо библиотеки РДМА_ИПИИ в систему входят: консольное приложение, позволяющее загрузить словарь начальных форм английских слов, содержащий грамматическую информацию, необходимую для словоизменения, и выполняющее синтез парадигм лемм этого словаря; приложение TABLE, предназначенное для адаптации под английский язык функций хранения базы словоформ и быстрого поиска парадигм в ней, реализованных в библиотеке РДМА_ИПИИ. ПО, имеющее такую архитектуру, обеспечивает следующие возможности: чтение и загрузка файла начальных форм английских слов; очистка, загрузка, модификация и сохранение базы английских словоформ; получение парадигмы с указанием МИ каждой словоформы по введенной пользователем лемме. Тестирование ПО система синтеза парадигм английского языка не выявило несоответствие системы ее исходным целям, ошибок в структуре алгоритма программы, структуре входных и внутренних данных, а также конфликтных ситуаций с другим ПО.Значение Категория Значение 0x00000200 _FACEFIR Лицо 1-е 0x00000060 count_mask Число 0x00000600 face_mask Лицо 0x00078000 part_of_speech_mask Часть речиRelease() //очистить базу; sscanf(str,"%s\t%d\t%d",WRDBUD,&lemm,&MI);// слова без ударения if(lemm!=0) // получаем номер леммы следующей парадигмы в базе INSERTROWS(WRDBUD,"",LEMMNUMBER,MI,false)// добавляем в таблицу записи для всех словоформ этой словоформы; Добавление парадигм в базу отличается от приведенного выше фрагмента листинга отсутствием вызова функции Release(). // Объявляем указатели на массивы возвращаемых значений и присваиваем им значение NULL vector*Lemma=NULL vector *RESLEMMS=NULL;В каталоге, где хранится english_paradigm.exe (в дальнейшем будем называть этот каталог текущим), формируется размеченный словарь начальных форм в виде файла Engl_lem.txt, представляющий собой массив строк, каждая из которых содержит начальную форму английского слова, после чего следует метка, содержащая МИ: буквенный символ, соответствующий части речи, и дополнительная метка, которая может отсутствовать в записи (см. пункт 3.2.). После создания словаря начальных форм необходимо запустить исполняемый файл english_paradigm.exe, являющийся консольным приложением, которое для каждой леммы словаря формирует парадигму. Приложение Table, предназначенное для построения дерева словоформ, его модификации и поиска в нем парадигм, запускается с помощью исполняемого файла Table.exe. Для создания дерева словоформ на основе парадигм, сохраненных в файле Engl_par.dat, необходимо нажать кнопку «Создать/Добавить». Для модификации словаря словоформ (в случае изменения словаря начальных форм Engl_lem.txt путем добавления/удаления записей и перезапуска консольного приложения), необходимо загрузить существующее дерево с помощью кнопки «Загрузить», после чего нажатием на кнопку «Создать/Добавить» в загруженное дерево добавляются парадигмы из обновленного файла Engl_par.dat.
Введение
Выявление формальных структур естественного языка (ЕЯ), формализация языка в целом, построение конструктивной теории и компьютерной модели языка являются приоритетными направлениями информатики на протяжении последних десятилетий. Системы информационного поиска, диалоговые системы, инструментальные средства для машинного перевода и автореферирования, рубрикаторы и модули проверки правописания, так или иначе, проводят анализ ЕЯ-текстов. Таким образом, область применения систем автоматической обработки текстов (АОТ) достаточно разнообразна, а в виду большого роста объемов текстовой информации и сложной ее структурированности, анализ ЕЯ-текстов представляет собой очень актуальную проблему.
Достижения последних лет в области современной логики, искусственного интеллекта и компьютерной лингвистики создали новые предпосылки для исследований природы морфологических, синтаксических, семантических и словообразовательных связей в ЕЯ и построения его функциональной модели.
Компонента системы, реализующая формальную лингвистическую модель и способная осуществлять полный лингвистический анализ ЕЯ-текста, называется лингвистическим процессором (ЛП). Независимо от языка со стороны своего внутреннего устройства ЛП представляет собой многоуровневый преобразователь. В нем различаются три уровня представления текста - морфологический, синтаксический и семантический. Каждый из уровней обслуживается соответствующим компонентом модели - массивом правил и определенным словарем.
На современном этапе развития информационных технологий морфологический компонент стал неотъемлемой частью интеллектуальных АОТ-систем. Все экспериментальные исследования в области машинной морфологии невозможны без машинного грамматического словаря. Использование словаря позволяет осуществить более полный анализ словоформы (т.е. оперировать большим числом грамматических признаков) и повысить его точность. Основные трудности, с которыми сталкиваются разработчики АОТ-систем следующие.
1. Отсутствие единого общепринятого формата и структуры словаря. Это приводит к тому, что алгоритмы всех компонент ЛП автоматически становятся словарнозависимыми и каждый алгоритм разрабатывается под определенный формат словаря.
2. Отсутствие полных словарей. Объемы данных, с которыми имеет дело лингвистика, очень большие, кроме того лексика языка непрерывно. Для каждой предметной области существует своя терминология, включить которую в общий словарь невозможно.
3. Отсутствие средств автоматизированной лингвистической обработки словарей, она ведется в основном вручную, сопряжена с большими трудозатратами и появлением большого числа ошибок, которые трудно обнаруживаются. Поэтому создание больших по объему словарей - многолетний процесс.
Данная работа посвящена разработке программных средств синтеза парадигм слов английского языка для создания базы данных английских словоформ с полной морфологической информацией.
Актуальность данной задачи обусловлена необходимостью разработки средств АОТ, позволяющих быстро и эффективно обрабатывать неструктурированную текстовую информацию.
Объектом исследования являются лексемы английского языка.
Предмет исследования - модели словоизменения в английском языке.
Методы, использованные при написании работы - методы прикладного морфологического анализа.
Постановка задачи
Отдел распознавания речи Института проблем искусственного интеллекта (ИПИИ) уже более 15 лет ведет работы, связанные с обработкой ЕЯ-текстов. Данным отделом разработаны библиотеки словоизменения слов русского языка, библиотека лемматизации и декларативного морфологического анализа; создано несколько версий экспериментальных систем синтаксического анализа и синтаксического корректора предложений. Данные средства обработки естественно-языковых текстов широко используются как при разработке систем распознавания речи, так и при разработке систем понимания ЕЯ-текстов.
В настоящее время специалистами отдела ведутся работы в рамках международного проекта «Исследование и разработка программного обеспечения понимания неструктурированной текстовой информации на русском и английском языках на базе создания методов компьютерного полного лингвистического анализа». В связи с этим возникает необходимость адаптировать имеющиеся средства морфологической обработки, которые ориентированы на русский язык, для анализа англоязычных текстов.
Целью курсовой работы является разработка программного обеспечения (ПО) системы синтеза парадигм слов английского языка и создание с его помощью базы данных английских словоформ, содержащей полную морфологическую информацию каждой словоформы.
Разрабатываемый программный продукт (ПП) должен обладать следующими возможностями: создание, загрузка, редактирование и сохранение словаря начальных форм слов английского языка в файле формата txt;
очистка, загрузка и сохранение базы английских словоформ;
модификация базы английских словоформ;
получение парадигмы с указанием МИ каждой словоформы по введенной пользователем лемме, содержащейся в словаре начальных форм.
Для достижения указанной цели курсовой работы ставятся и решаются следующие задачи: 1) обзор методов машинной морфологии;
2) проектирование и разработка ПО синтеза парадигм слов английского языка;
3) создание базы данных начальных форм английских слов с грамматической информацией, необходимой для генерации базы данных словоформ;
4) формализация правил словоизменения английских слов и разработка соответствующих алгоритмов;
5) автоматическая генерация базы данных английских словоформ с полной морфологической информацией, на основе реализованных алгоритмов словоизменения, использующая базу данных начальных форм английских слов;
6) тестирование системы.
Проектирование системы синтеза парадигм слов английского языка должно содержать: описание функциональных возможностей разрабатываемого ПО;
описание формата входных-выходных данных.
Разработка ПО синтеза парадигм слов английского языка должна быть основана на результатах проектирования системы и включать обоснование выбора средств программной реализации и описание алгоритмов словообразования английского языка, структур данных, классов, функций программного комплекса.
Тестирование и анализ результатов необходимы для выявления ошибок в структуре алгоритма или его программной реализации, структуре входных и внутренних данных, а также для ликвидации конфликтных ситуаций с другим ПО.
1. Обзор методов машинной морфологии
Как уже было сказано выше, морфологическая компонента является важнейшей в современных интеллектуальных системах, где требуется распознавание и синтез речи, автоматизированный перевод с одного языка на другой, понимание и генерирование ЕЯ-текста.
Эта компонента включает в себя морфологический анализ и синтез словоформ. В ходе морфологического анализа проводится соотнесение входной словоформы к одной из основ, хранящихся в словаре, т.е. решается задача распознавания, а также определение его грамматических параметров, т.е. выделение конкретной словоформы с данной основой. Представление словоформы в виде совокупности основы и грамматических параметров требуется для проведения синтаксического анализа с целью распознавания словосочетаний и типа входной фразы. Морфологический синтез решает обратную задачу, а именно, преобразует совокупность кода основы и грамматических параметров в буквенную последовательность соответствующую синтезируемой словоформе. При этом из класса словоформ, определяемого данной основой, формируется словоформа, определяемая данными грамматическими параметрами. Эта процедура является конечным этапом при генерировании ЕЯ-фраз.
Методы машинной морфологии могут быть реализованы декларативными и процедурными способами.
1.1 Декларативные методы машинной морфологии
Для методов декларативной ориентации характерно наличие полного словаря всех возможных словоформ для каждого слова. При этом каждая словоформа снабжается полной и однозначной морфологической информацией (МИ), куда входят как постоянные, так и переменные морфологические параметры. Задача морфологического анализа в этом случае сводится к поиску нужной словоформы в словаре и копированию МИ, соответствующей найденной словоформе, в программу. Работа морфологического синтеза состоит в считывании из словаря по основе и набору МИ соответствующей словоформы этой основы.
Существует несколько классификаций основных видов алгоритмов морфологического анализа-синтеза: со словарем основ; методом логического умножения; без словарей; со словарем словоформ [1].
Морфологический анализ со словарем основ является наиболее распространенным способом анализа. Для его проведения требуется словарь основ слов и ряд вспомогательных таблиц. Основа - это неизменяемая часть слова, которая выражает его лексическое значение, то есть соотнесенность звуковой оболочки слова с соответствующими предметами или явлениями объективной действительности. Применительно к русскому языку основа - это часть слова без окончания. В английском языке основа слова, как правило, полностью совпадает с самим словом.
Если слово имеет несколько вариантов основ, то словарь, как правило, содержит все варианты. Обычно в этом случае один из вариантов основы помечается как основной, а другие варианты содержат ссылку на него. Это необходимо для дальнейшего семантического анализа, чтобы устранить различные смысловые трактовки для одного и того же слова. Дополнительные таблицы содержат, как правило, список возможных вариантов изменяемых частей слов (в русском языке - окончаний) с соответствующим им значением грамматических признаков.
В общем случае производится поиск всего слова в словаре словоформ, если слово не найдено, от него отделяется последняя буква и производится повторный поиск. Так продолжается до тех пор, пока основа не будет найдена либо пока не останется букв. В случае удачного поиска из словаря извлекаются варианты частей речи, соответствующих этой основе. Затем производится поиск в таблице изменяемых частей слова. При этом пропускаются варианты соответствующие частям речи, к которым данная основа не может относиться. Таким образом, определяются грамматические признаки разбираемой словоформы.
В основу метода морфологического анализа методом логического умножения положены положения формальной морфологии. Вводится понятие словарной функции - функции, определенной на словоформах, и сопоставляющей им некоторую информацию (последовательность нулей и единиц).
На предварительном этапе строится таблица, в которой каждой возможной букве изменяемой части (с учетом позиции в этой самой изменяемой части) ставится в соответствие вектор нулей и единиц. Каждая из позиций такого вектора соответствует определенной комбинации грамматических признаков. Единица означает, что данная буква в данной позиции может соответствовать этой комбинации грамматических признаков, ноль - что не может.
На первом этапе этот метод также предполагает членение словоформы на основу и изменяемую часть. Далее по предварительно созданной таблице векторов каждой букве изменяемой части подбирается вектор. Далее над векторами производится операция логического умножения. Таким образом определяется возможная (возможные) комбинация (-ии) грамматических признаков.
Морфологический анализ без словарей [2] проводится без использования словарей лишь с использованием таблицы аффиксов, списка слов-исключений и списка служебных неизменяемых слов (например, союзов, междометий, предлогов). Этот способ используется достаточно редко.
Также малооправданным, согласно работе Чесебиева И.А. [1], представляется морфологический анализ со словарем словоформ, подразумевающий наличие словаря, содержащего список все возможных словоформ с соответствующими им грамматическими признаками. Кроме значительного роста словаря возникает еще одна проблема: в случае отсутствия словоформы в словаре система не имеет возможности оперировать этим словом.
1.2 Процедурные методы машинной морфологии
При процедурном способе формирование словоформ осуществляется с помощью таблиц аффиксов, расклассифицированных по частям речи. Основными частями речи для синтеза являются существительное, прилагательное и глагол (глагольные формы). Наиболее сложно осуществляется синтез глагольных форм.
Процедурные методы в сравнении с декларативными требуют больших временных затрат на обработку одного слова, но объем используемых словарей позволяет загружать словари целиком в оперативную память. Кроме того, такие словари значительно легче создавать, поскольку постоянные параметры каждого слова вводятся однократно, вместе с его основой. Существенным недостатком процедурных методов является отсутствие универсальности. Другими словами, существует большое количество слов, которые нельзя представить в виде суммы неизменной основы и аффикса. Например, для английских лексем существительное «man», которое имеет во множественном числе форму «men», множество неправильных глаголов и т. д.
Существует два подхода к решению задачи процедурными методами.
Первый подход предполагает наличие словаря основ и словаря аффиксов. Для слова выполняется процедура поиска в словаре основ. При этом ищутся все основы, с которых может начинаться анализируемое слово. Если очередная основа удовлетворяет этому условию, то из словаря аффиксов извлекается строка, содержащая все возможные аффиксы для данной основы. Каждый аффикс из этой строки поочередно присоединяется к основе, и результат сравнивается с анализируемым словом. В случае их точного совпадения формируется очередная запись в список результатов поиска: по порядковому номеру аффикса в строке аффиксов определяется переменная МИ (например, для существительного - число и падеж), а по словарной информации данной основы - постоянная МИ.
Если в результате такого поиска не найдено ни одного успешного варианта, то проводится поиск среди исключений. Исключения присутствуют в словаре основ наряду с обычными основами. И те, и другие имеют в словаре информацию о постоянных морфологических признаках и о номере строки допустимых аффиксов.
Разница между исключениями и обычными основами состоит в том, что, во-первых, строка с неизменной частью слова у исключений пустая, и, во-вторых, номер строки аффиксов для исключений относится не к файлу аффиксов, а к отдельному файлу исключений. Структура этого файла точно такая же, но в него внесены целые словоформы, а не их окончания. Таким образом, при поиске среди исключений приходится просматривать все словоформы всех присутствующих в словаре исключений. Это занимает много времени, поэтому поиск среди исключений проводится только в том случае, когда не найдено ни одного варианта среди обычных основ. Сам анализ проводится точно так же. Если некоторая словоформа некоторого исключения точно совпадает с анализируемым словом, то по номеру словоформы определяются переменные морфологические параметры слова, а по словарной информации самого исключения - постоянные параметры слова. В случае, когда все этапы поиска дали отрицательный результат (не найдено ни одного варианта), пользователю выдается запрос на ввод новой основы в словарь.
Второй подход предполагает наличие словаря начальных форм и грамматической информации, необходимой для словоизменения (как-то, часть речи, род и т.д.), а также программной реализации правил словообразования. Для слов русского языка такой словарь давно разработан [3] и успешно используется при разработке морфологических парсеров. Подход состоит в том, что слово последовательно причисляется к каждой из частей речи. Последовательно выбираются окончания для этой части речи. В случае, если окончание одной из косвенных форм совпадает с концовкой слова, совпадающая часть отбрасывается, производятся чередования в основе, если слово соответствует шаблону чередования, и к полученной основе добавляется окончание леммы. При построении леммы запоминается промежуточная информация.
Для русского языка, как и для большинства синтетических языков, задача лексико-грамматического разбора решается довольно просто и почти стопроцентной точностью, благодаря их развитой морфологии. В аналитических языках, например английском, где широко представлена лексическая многозначность, простой алгоритм, сопоставляющий каждому слову в тексте наиболее вероятный для данного слова морфологический класс, дает лишь около 90% точности.
Анализ показал, что наиболее распространенным методом морфологического анализа-синтеза является декларативный, что объясняется простотой его алгоритма и удобством кодирования. Поэтому в рамках данной работы будем использовать именно этот подход.
1.3 Способы представления морфологической информации
Один из вопросов, требующих особого рассмотрения, - способ представления МИ. Задание МИ должно быть компактно, позволять быстро и просто извлекать отдельные морфологические характеристики слова (например, только род или только часть речи).
Обычно постоянная и переменная МИ хранятся в виде строк текста. Иногда ее представляют в виде фрейма, в котором для хранения каждой из характеристик отведено отдельное поле. Для конкретной словоформы заполняются не все поля, а только те которые для нее характерны. В первом и во втором случае сталкиваемся с резервированием лишнего места и необходимостью использования сложных процедур интерпретации.
Третий способ хранения МИ - в виде битовых полей. Он сочетает в себе удобства обработки и экономное хранение МИ, поэтому более предпочтителен. Рассмотрим способ задания МИ с помощью битовых полей, реализованный в модуле декларативного морфологического анализа слов русского языка РДМА_ИПИИ, разработанного в Институте проблем искусственного интеллекта (ИПИИ).
Данная система использует алгоритмы быстрого поиска строк в большом массиве строк и рассчитана на количество словоформ словаря, содержащего 100 тыс. начальных форм, что приближенно равно 2 млн. Для реализации проекта были разработаны средства быстрого поиска строковых величин [4].
Ряд систем морфологического анализа позволяют пользователю пополнять словарь. В данной системе предполагается, что пользователь не должен пополнять словарь, т.к. он может являться источником ошибок. Словарь заполняется единожды (процесс может быть растянут во времени) разработчиком, и многократно используется конечным пользователем.
Модуль в явном виде хранит все данные в древовидной структуре, извлечение отдельных морфологических характеристик слова производится единообразно, невозможна неверная интерпретация МИ. Перечень обозначений морфологических характеристик приведен в приложении А (таблица А.1). Для извлечения МИ используются маски категорий МИ (приложение А, таблица А.2). Определение значения одной из категорий, например рода, происходит путем применения операции побитового «и» значения морфологической информации и маски категорий. Если словоформе категория не присуща, то результат операции побитового «и» ее морфологической информации и маски этой категории будет равен 0. Например, для определения значения категории «род» словоформы с морфологической информацией MI необходимо выполнить операцию MI & rod_mask, в результате получим одно из значений: _Masculine, _Feminine, _Neuter или 0.
Для решения поставленной задачи были адаптированы функции быстрого поиска и эффективного хранения строковых величин этого модуля для слов английского языка, поэтому остановимся на описании библиотеки РДМА_ИПИИ более подробно. В комплект ее поставки входят следующие файлы: GLOBALFUNC.h- заголовочный файл с описанием экспортируемых функций и используемых типов;
tab.dat, tree.dat, connect.dat - файлы, содержащие данные словарной базы.
Интерфейс библиотеки позволяет выполнять действия по следующим направлениям: очистка, загрузка и сохранение словарной базы;
модификация словарной базы;
получение информации о словоформах;
получение информации о словарной базе;
служебные функции.
2. Обоснование выбора программных и технических средств реализации
2.1 Выбор языка программирования
Выбор языка программирования определяет разнообразие возможностей, которые программист может реализовать в приложении, а также то, насколько быстро он это сделает.
Си (англ. C ) - компилируемый строго типизированный язык программирования общего назначения. Поддерживает разные парадигмы программирования: процедурную, обобщенную, функциональную; наибольшее внимание уделено поддержке объектно-ориентированного программирования (ООП).
Концепция ООП вносит в арсенал разработчика новое средство - классы. Классы наряду с объектами составляют краеугольный камень многих современных языков высокого уровня. Под классом подразумевается некая сущность, которая задает некоторое общее поведение для объектов. Таким образом, любой объект может принадлежать или не принадлежать определенному классу, то есть обладать или не обладать поведением, которое данный класс подразумевает. Помимо этого ООП дает подход к следующим важным свойствам классов.
Абстракция данных . Объекты представляют собою упрощенное, идеализированное описание реальных сущностей предметной области. Если соответствующие модели адекватны решаемой задаче, то работать с ними оказывается намного удобнее, чем с низкоуровневым описанием всех возможных свойств и реакций объекта.
Инкапсуляция . Инкапсуляция - это принцип, согласно которому любой класс должен рассматриваться как черный ящик - пользователь класса должен видеть и использовать только интерфейсную часть класса (т. е. список декларируемых свойств и методов класса ) и не вникать в его внутреннюю реализацию. Поэтому данные принято инкапсулировать в классе таким образом, чтобы доступ к ним по чтению или записи осуществлялся не напрямую, а с помощью методов. Принцип инкапсуляции (теоретически) позволяет минимизировать число связей между классами и, соответственно, упростить независимую реализацию и модификацию классов. Сокрытие данных - неотделимая часть ООП, управляющая областями видимости. Является логическим продолжением инкапсуляции. Целью сокрытия является невозможность для пользователя узнать или испортить внутреннее состояние объекта.
Наследование . Наследованием называется возможность порождать один класс от другого с сохранением всех свойств и методов класса-предка (прародителя, иногда его называют суперклассом) и добавляя, при необходимости, новые свойства и методы. Набор классов, связанных отношением наследования, называют иерархией. Наследование призвано отобразить такое свойство реального мира, как иерархичность.
Полиморфизм . Полиморфизмом называют явление, при котором функции (методу) с одним и тем же именем соответствует разный программный код (полиморфный код) в зависимости от того, объект какого класса используется при вызове данного метода. Полиморфизм обеспечивается тем, что в классе-потомке изменяют реализацию метода класса-предка с обязательным сохранением сигнатуры метода. Это обеспечивает сохранение неизменным интерфейса класса-предка и позволяет осуществить связывание имени метода в коде с разными классами - из объекта какого класса осуществляется вызов, из того класса и берется метод с данным именем. Такой механизм называется динамическим (или поздним) связыванием - в отличие от статического (раннего) связывания, осуществляемого на этапе компиляции.
Помимо ООП, С предоставляет широкий спектр возможностей по работе со всеми доступными ресурсами ЭВМ, будь то динамическая память, порт ввода-вывода или API функция операционной системы.
Благодаря такой гибкости его можно использовать практически для любой на сегодняшний день задачи, будь то системное программирование, проектирование БД, написание математических пакетов.
2.2 Выбор программных средств реализации
В качестве платформы для разработки системы синтеза парадигм слов английского языка была выбрана операционная платформа WIN32, встречающаяся практически на всех современных настольных системах. Этот выбор обусловлен тем, что операционные системы Microsoft - семейство наиболее популярных систем, обладающее простым внешним оформлением, которое упрощает взаимодействие с конечным пользователем.
Microsoft Windows XP предоставляет доступ ко всем устройствам ЭВМ через интерфейс архитектурно-независимых API функций. Единственным условием для корректной работы необходимо наличие в системе установленных драйверов данного устройства.
Компилятор Visual C 2008 Express Edition фирмы Microsoft предоставляет собой мощный 32-разрядный компилятор, рассчитанный на разработку Win32-приложений (как исполнимых модулей, так и статических и динамических библиотек) на базе Microsoft Windows. Среду Microsoft Visual C 2008 можно использовать в качестве интегрированной системы разработки или в качестве набора отдельных средств. Visual C состоит из следующих компонентов.
Средства компилятора Visual C . Компилятор поддерживает как традиционную разработку с использованием машинного кода, так и разработку с использованием платформ виртуальных машин, таких как среда CLR. Visual C 2008 включает компиляторы для x64 и Itanium. Компилятор продолжает напрямую поддерживать архитектуру x86 и оптимизирует производительность кода для обеих платформ. Компилятор для х86 также поддерживает оптимизацию под определенную архитектуру (MMX, SSE1, SSE2, 3Dnow и т.д.).
Библиотеки Visual C . Компилятор содержит разнообразные библиотеки, инкапсулирующие множество типов данных и шаблонов программирования, включая полностью удовлетворяющую требованиям ISO реализацию библиотеки стандартных шаблонов (STL), общепризнанную библиотеку шаблонных классов (ATL), библиотеки Microsoft Foundation Class (MFC) и стандартные библиотеки, такие как стандартная библиотека C , которая состоит из библиотеки iostreams, и библиотеки времени выполнения языка C (CRT). Библиотека CRT включает альтернативные функции с улучшенной безопасностью для функций с известными проблемами безопасности. Библиотека STL/CLR позволяет разработчикам, использующим управляемый код, использовать также и возможности библиотеки STL. Библиотека поддержки C предоставляет новые возможности для маршалинга данных и упрощает написание программ, использующих среду CLR.
Среда разработки Visual C . Среда разработки предоставляет всестороннюю поддержку при управлении проектами и их настройке (включая улучшенную поддержку больших проектов), редактировании исходного кода, просмотре исходного кода, а также мощные средства отладки. Среда разработки также поддерживает технологию INTELLISENSE, которая предоставляет при написании кода подробные подсказки, учитывающие контекст. Благодаря этой технологии, можно получить список методов, классов, интерфейсов, возможность немедленного просмотра компонентов, параметров методов, автоматического завершения ввода ключевых слов. Хотя к средствам компилятора Visual C 2008 и библиотекам можно обращаться из командной строки, среда разработки предлагает мощную поддержку управления проектом и настройкой (включая усовершенствованную поддержку для больших проектов), средства правки исходного кода, средства обзора исходного кода и средства отладки.
Visual C реализует быстрое и экономное создание профилей приложений и отладку приложений за счет использования отладчика профессионального уровня, полностью интегрированного в среду Visual Studio .NET IDE. Отслеживание состояния программы с помощью удобных немодальных закрепляемых окон, установка контрольных отладочных точек в файлах, строках кода, адресах памяти, переменных и многое другое. Использование усовершенствованного режима Edit and Continue для изменения неуправляемых исходных текстов программ во время их отладки. Функция Edit and Continue debugging позволяет модифицировать отлаживаемый код непосредственно в отладчике. После модификации вы можете продолжать отладку без остановки и перекомпиляции.
Microsoft Visual C позволяет создавать точно настраиваемые приложения и компоненты, использующие технологию .NET, повышать производительность приложения и сокращать его объема с помощью средств оптимизации для целого ряда процессоров, включая средство оптимизации программы в целом и поддержку для наборов инструкций SSE (Streaming SIMD Extensions) и SSE2 (Streaming SIMD Extensions 2). Visual C поддерживает смешанный код (управляемый и неуправляемый) и смешанные данные, обеспечивая максимальную производительность и степень контроля.
В Visual C , начиная с версии Visual C 2003, выполняется компиляция современного кода C , в котором используются расширенные функции шаблонов, включая частичную специализацию шаблонов и частичное упорядочивание шаблонов функций.
Таким образом, среда Visual C представляет собой мощное профессиональное средство для создания приложений, которое обеспечивает разработчиков улучшенной функциональностью среды, оптимизирующим компилятором, множеством расширений и дополнений, поддержкой новейших платформ, технологий и стандартов.
2.3 Выбор технических средств реализации
Поскольку библиотека РДМА_ИПИИ и созданная система синтеза парадигм английского языка разрабатывались под Windows XP Home Edition, то на технические средства накладываются только те ограничения, которые обусловлены применением данной операционной среды.
Для нормальной работы программы требуется ПЭВМ со следующим минимальным набором характеристик: IBM совместимость;
процессор Pentium не менее 2 ГГЦ;
операционная система Windows XP/7;
оперативная память не менее 512 Мб;
видеопамять не менее 32 Мб.
Использование аппаратного обеспечения с учетом выше перечисленных характеристик позволяет выполнять поставленные задачи на должном уровне и использовать возможности предоставляемого ПП эффективно.
3 Проектирование программного обеспечения системы синтеза парадигм слов английского языка
3.1 Описание функциональных возможностей системы и взаимодействия ее модулей
Разрабатываемая система предназначена для генерации английских словоформ с указанием их полной МИ. При проектировании системы в нее необходимо заложить следующие функции: чтение и загрузка файла формата txt со словарем начальных форм английских слов с указанием грамматической информации, необходимой для словоизменения;
вывод парадигм для лемм из словаря начальных форм в файл формата dat с указанием МИ каждой словоформы без возможности;
очистка, загрузка, модификация и сохранение базы английских словоформ;
получение парадигмы с указанием МИ каждой словоформы по введенной пользователем лемме, если лемма найдена в базе данных.
Структура системы синтеза парадигм слов английского языка изображена на рисунке 3.1.
Рисунок 3.1 - Функциональная схема взаимодействия модулей системы синтеза парадигм слов английского языка
Пояснения к рисунку 3.1.
Engl_lem.txt - файл в формате txt, содержащий начальные формы слов и грамматическую информацию в виде последовательности символов, необходимую для порождения парадигм (создается пользователем);
Engl_par.dat - файл, созданный консольным приложением и содержащий парадигмы лемм из файла Engl_lem.txt с МИ каждой словофомы;
Lemma - строковая величина, лемма, введенная пользователем, для которой необходимо получить парадигму;
W_F - строковая величина, словоформа, входящая в парадигму Lemma;
MI - битовое число, задающее МИ словоформы W_F;
Lem - логическая переменная, принимающая значение 1, если W_F является леммой, 0 - иначе;
Paradigm - парадигма слова Lemma в виде списка словоформ с МИ для каждой словоформы.
Для обеспечения требуемых функциональных возможностей была разработана архитектура системы синтеза парадигм слов английского языка, содержащая 3 взаимосвязанных модуля.
Консольное приложение необходимо для обеспечения работы системы в режиме наполнения словарной базы. Оно отвечает за загрузку файла «Engl_lem» в формате txt со словарем начальных форм английских слов, а также по алгоритмам словоизменения генерирует парадигмы всех лемм из словаря с сохранением результата в текстовый файл «Engl_par». При этом каждой словоформе приписывается ее МИ, пользователь может редактировать оба файла, не нарушая формат входных и выходных данных.
Полученный в результате работы консольного приложения файл с парадигмами в режиме наполнения поступает на вход приложения TABLE, которое предназначено для приведения этого файла в формат, требуемый библиотекой РДМА_ИПИИ. Из приложения TABLE в режиме наполнения вызываются функции библиотеки РДМА_ИПИИ, обеспечивающие очистку, загрузку и сохранение словарной базы, а также и ее модификацию (добавление/удаление словоформы).
В результате наполнения базы словоформ с помощью библиотеки РДМА_ИПИИ формируются файлы tab.dat, tree.dat, connect.dat, содержащие данные словарной базы. В базе данных словоформ, построенной таким образом, в режиме поиска парадигмы по лемме, введенной пользователем в поле ввода приложения TABLE, ищется ее парадигма и выводится пользователю в виде списка словоформ с их МИ в специальное поле.
3.2 Формат входных и выходных данных
Входными данными для функционирования разработанного программного обеспечения автоматической генерации английских словоформ является словарь начальных форм, загружающийся из текстового файла «Engl_lem.txt», в котором к настоящему моменту содержится более 8 000 записей. Для его создания использовался словарь синонимов английского языка The Oxford Thesaurus Dictionary of Synonyms [5].
Словарь начальных форм заполнялся вручную. В словаре после исходной формы каждого слова следуют идентификаторы (основной и дополнительный), разделенные пробелами, которые задают МИ о данном слове. Основной состоит из буквенного символа, указывающего на принадлежность слова к определенной части речи (n - существительное, adj - прилагательное, adv - наречие, v - глагол, pron - местоимение, conj - союз, perp - предлог). Дополнительный (может отсутствовать в записи) содержит следующую информацию: // - означает наличие параллельной словоформы (сравнительной или превосходной степени для прилагательных) наряду с той, которая характерна для данного типа словоизменения. После этой метки следует цифра, указывающая на степень сравнения (0 - сравнительная степень, 1 - превосходная), которой соответствует параллельная словоформа. Сама параллельная форма следует сразу после числа. Например, old adj //0elder1eldest. машинный морфология словоформа база
* - указывает на наличие простой формы сравнительной и превосходной степени прилагательного. Если эта метка отсутствует, то от прилагательного можно построить степени сравнения только с помощью сложных форм.
! - означает неправильный глагол. После этой метки следует цифра, указывающая на простую форму глагола (1 - Past Indefinite, 2 - Participle II), соответствующая форма глагола следует сразу после числа. Например, begin v !1began2begun.
По сути, идентификаторы, принадлежащие каждой словарной единице, определяют алгоритм изменения слова.
Ко входным данным также можно отнести строку символов, вводимую пользователем в качестве леммы, для которой необходимо получить парадигму.
Выходными данными системы морфологического синтеза парадигм английских слов является: 1. Массив строк, представляющий собой полную словоизменительную парадигму слова, введенного пользователем, с указанием соответствующий МИ. Парадигма выводится на экран в диалоговое окно приложения TABLE в специальное поле. Например, выходная информация для леммы «round» («круг» - существительное, «круглый» - прилагательное, «округлять» - глагол, «кругом» - наречие и «вокруг» - предлог) имеет вид: round Наречие round Прилагательное rounder Срав. с. Прилагательное roundest Прев. с. Прилагательное round Существительное round’s Притяж. пад. Ед. ч. Существительное rounds Мн. ч. Существительное rounds’ Притяж. пад. Мн. ч.Существительное round Глагол Инфинитив rounded Глагол Прош. неопр. действ. залога rounded Глагол прич. прош. вр. rounding Глагол прич. наст. вр. rounds Глагол наст. вр. 3 л. Ед. ч. round Предлог
2. Массив строк в тестовом файле «Engl_par.txt», полученном в результате работы консольного приложения и содержащего список парадигм. Каждая строка содержит следующую информацию (разделенную табуляцией): W_F - словоформа, входящая в парадигму;
Lem - принимающая значение 1
Вывод
В результате выполнения курсовой работы был сделан достаточно полный обзор методов машинной морфологии и способов представления МИ, сформулирована постановка задачи, спроектирована и программно реализована система синтеза парадигм слов английского языка, проведено комплексное тестирование результатов ее работы, что необходимо для выявления ошибок в структуре алгоритмов программы, структуре входных и внутренних данных, а также для ликвидации конфликтных ситуаций с другим программным обеспечением. Это позволило сделать следующие выводы.
Морфологический компонент - неотъемлемая частью интеллектуальных АОТ-систем. Морфологический анализ/синтез неосуществим без машинного грамматического словаря, его использование позволяет проводить полный анализ словоформы, оперируя большим числом грамматических признаков, и повысить его точность. В связи с этим актуальность выбранной темы не вызывает сомнений.
Наиболее оптимальный способ представления МИ, сочетающий в себе удобства обработки и экономное хранение, - в виде битовых полей. Этот способ задания МИ реализован в модуле декларативного морфологического анализа слов русского языка РДМА_ИПИИ. Модуль снабжен средствами быстрого поиска строковых величин в большом массиве строк. В связи с этим для создания и хранения базы словоформ английского языка, а также быстрого поиска парадигм в созданной базе использовались функции библиотеки РДМА_ИПИИ.
Разработанное в результате выполнения курсовой работы ПО состоит из трех модулей. Помимо библиотеки РДМА_ИПИИ в систему входят: консольное приложение, позволяющее загрузить словарь начальных форм английских слов, содержащий грамматическую информацию, необходимую для словоизменения, и выполняющее синтез парадигм лемм этого словаря; приложение TABLE, предназначенное для адаптации под английский язык функций хранения базы словоформ и быстрого поиска парадигм в ней, реализованных в библиотеке РДМА_ИПИИ. ПО, имеющее такую архитектуру, обеспечивает следующие возможности: чтение и загрузка файла начальных форм английских слов; очистка, загрузка, модификация и сохранение базы английских словоформ; получение парадигмы с указанием МИ каждой словоформы по введенной пользователем лемме.
Тестирование ПО система синтеза парадигм английского языка не выявило несоответствие системы ее исходным целям, ошибок в структуре алгоритма программы, структуре входных и внутренних данных, а также конфликтных ситуаций с другим ПО.
Разработанный программный продукт может использоваться при создании средств морфологической обработки интеллектуальных систем понимания и автоматического анализа текстов на английском языке. Кроме того, созданную базу данных английских словоформ можно использовать для точной оценки морфологической информации словоформы в задачах поверхностного семантико-синтаксического анализа.
Список ссылок
1. Чесебиев И.А. Понимание и синтез текста компьютером. [Электронный ресурс]. URL : http//yabs. yandex.ru/ /resourse/bb/dif
2. Ножов И.М. Процессор автоматизированного морфологического анализа без словаря. Деревья и корреляция. //Диалог’2000. Труды конференции - Протвино, 2000. Т.2. С. 284-290.
3. А. А. Зализняк. Грамматический словарь русского языка. Словоизменение. -4-е изд., испр. и доп., М.: Русские словари, 2003. - 880 с.
4. Патент України № 78806 «Пристрій для збереження і пошуку рядкових величин та спосіб збереження і пошуку рядкових величин» Власник: Інститут проблем штучного інтелекту, винихідник Дорохіна Г.В. // Промислова власність. Бюл. № 5, 25.04.2007.
5. Английский язык - Словари. Электронный ресурс]. URL : http://babylonians.narod.ru/english/dict5.html
6. Английский язык. - Грамматика - Глагол. [Электронный ресурс]. URL : http://www.alleng.ru/mybook/3gram/6verb_01.htm
7. Английская грамматика с примерами бесплатно. Практическая грамматика английского языка/ Английский онлайн. [Электронный ресурс]. URL : http://www.en365.ru/irregular.htm