Материал: Разработка программного обеспечения системы синтеза парадигм слов английского языка

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Для русского языка, как и для большинства синтетических языков, задача лексико-грамматического разбора решается довольно просто и почти стопроцентной точностью, благодаря их развитой морфологии. В аналитических языках, например английском, где широко представлена лексическая многозначность, простой алгоритм, сопоставляющий каждому слову в тексте наиболее вероятный для данного слова морфологический класс, дает лишь около 90% точности.

Анализ показал, что наиболее распространенным методом морфологического анализа-синтеза является декларативный, что объясняется простотой его алгоритма и удобством кодирования. Поэтому в рамках данной работы будем использовать именно этот подход.

.3 Способы представления морфологической информации

Один из вопросов, требующих особого рассмотрения, - способ представления МИ. Задание МИ должно быть компактно, позволять быстро и просто извлекать отдельные морфологические характеристики слова (например, только род или только часть речи).

Обычно постоянная и переменная МИ хранятся в виде строк текста. Иногда ее представляют в виде фрейма, в котором для хранения каждой из характеристик отведено отдельное поле. Для конкретной словоформы заполняются не все поля, а только те которые для нее характерны. В первом и во втором случае сталкиваемся с резервированием лишнего места и необходимостью использования сложных процедур интерпретации.

Третий способ хранения МИ - в виде битовых полей. Он сочетает в себе удобства обработки и экономное хранение МИ, поэтому более предпочтителен. Рассмотрим способ задания МИ с помощью битовых полей, реализованный в модуле декларативного морфологического анализа слов русского языка РДМА_ИПИИ, разработанного в Институте проблем искусственного интеллекта (ИПИИ).

Данная система использует алгоритмы быстрого поиска строк в большом массиве строк и рассчитана на количество словоформ словаря, содержащего 100 тыс. начальных форм, что приближенно равно 2 млн. Для реализации проекта были разработаны средства быстрого поиска строковых величин [4].

Ряд систем морфологического анализа позволяют пользователю пополнять словарь. В данной системе предполагается, что пользователь не должен пополнять словарь, т.к. он может являться источником ошибок. Словарь заполняется единожды (процесс может быть растянут во времени) разработчиком, и многократно используется конечным пользователем.

Модуль в явном виде хранит все данные в древовидной структуре, извлечение отдельных морфологических характеристик слова производится единообразно, невозможна неверная интерпретация МИ. Перечень обозначений морфологических характеристик приведен в приложении А (таблица А.1). Для извлечения МИ используются маски категорий МИ (приложение А, таблица А.2). Определение значения одной из категорий, например рода, происходит путём применения операции побитового «и» значения морфологической информации и маски категорий. Если словоформе категория не присуща, то результат операции побитового «и» её морфологической информации и маски этой категории будет равен 0. Например, для определения значения категории «род» словоформы с морфологической информацией MI необходимо выполнить операцию MI & rod_mask, в результате получим одно из значений: _Masculine, _Feminine, _Neuter или 0.

Для решения поставленной задачи были адаптированы функции быстрого поиска и эффективного хранения строковых величин этого модуля для слов английского языка, поэтому остановимся на описании библиотеки РДМА_ИПИИ более подробно. В комплект ее поставки входят следующие файлы:.h- заголовочный файл с описанием экспортируемых функций и используемых типов;

UkrDeclareLemma.dll, UkrDeclareLemma.lib - файлы библиотеки;

tab.dat, tree.dat, connect.dat - файлы, содержащие данные словарной базы.

Интерфейс библиотеки позволяет выполнять действия по следующим направлениям:

модификация словарной базы;

получение информации о словоформах;

получение информации о словарной базе;

служебные функции.

2. Обоснование выбора программных и технических средств реализации

.1 Выбор языка программирования

Выбор языка программирования определяет разнообразие возможностей, которые программист может реализовать в приложении, а также то, насколько быстро он это сделает.

Си++ (англ. C++) - компилируемый строго типизированный язык программирования общего назначения. Поддерживает разные парадигмы программирования: процедурную, обобщённую, функциональную; наибольшее внимание уделено поддержке объектно-ориентированного программирования (ООП).

Концепция ООП вносит в арсенал разработчика новое средство - классы. Классы наряду с объектами составляют краеугольный камень многих современных языков высокого уровня. Под классом подразумевается некая сущность, которая задает некоторое общее поведение для объектов. Таким образом, любой объект может принадлежать или не принадлежать определенному классу, то есть обладать или не обладать поведением, которое данный класс подразумевает. Помимо этого ООП дает подход к следующим важным свойствам классов.

Абстракция данных <#"809154.files/image001.gif">

Рисунок 3.1 - Функциональная схема взаимодействия модулей системы синтеза парадигм слов английского языка

Пояснения к рисунку 3.1._lem.txt - файл в формате txt, содержащий начальные формы слов и грамматическую информацию в виде последовательности символов, необходимую для порождения парадигм (создается пользователем);_par.dat - файл, созданный консольным приложением и содержащий парадигмы лемм из файла Engl_lem.txt с МИ каждой словофомы;- строковая величина, лемма, введенная пользователем, для которой необходимо получить парадигму;_F - строковая величина, словоформа, входящая в парадигму Lemma;- битовое число, задающее МИ словоформы W_F;- логическая переменная, принимающая значение 1, если W_F является леммой, 0 - иначе;- парадигма слова Lemma в виде списка словоформ с МИ для каждой словоформы.

Для обеспечения требуемых функциональных возможностей была разработана архитектура системы синтеза парадигм слов английского языка, содержащая 3 взаимосвязанных модуля.

Консольное приложение необходимо для обеспечения работы системы в режиме наполнения словарной базы. Оно отвечает за загрузку файла «Engl_lem» в формате txt со словарем начальных форм английских слов, а также по алгоритмам словоизменения генерирует парадигмы всех лемм из словаря с сохранением результата в текстовый файл «Engl_par». При этом каждой словоформе приписывается ее МИ, пользователь может редактировать оба файла, не нарушая формат входных и выходных данных.

Полученный в результате работы консольного приложения файл с парадигмами в режиме наполнения поступает на вход приложения TABLE, которое предназначено для приведения этого файла в формат, требуемый библиотекой РДМА_ИПИИ. Из приложения TABLE в режиме наполнения вызываются функции библиотеки РДМА_ИПИИ, обеспечивающие очистку, загрузку и сохранение словарной базы, а также и ее модификацию (добавление/удаление словоформы).

В результате наполнения базы словоформ с помощью библиотеки РДМА_ИПИИ формируются файлы tab.dat, tree.dat, connect.dat, содержащие данные словарной базы. В базе данных словоформ, построенной таким образом, в режиме поиска парадигмы по лемме, введенной пользователем в поле ввода приложения TABLE, ищется ее парадигма и выводится пользователю в виде списка словоформ с их МИ в специальное поле.

.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.

По сути, идентификаторы, принадлежащие каждой словарной единице, определяют алгоритм изменения слова.

Ко входным данным также можно отнести строку символов, вводимую пользователем в качестве леммы, для которой необходимо получить парадигму.

Выходными данными системы морфологического синтеза парадигм английских слов является:

. Массив строк, представляющий собой полную словоизменительную парадигму слова, введенного пользователем, с указанием соответствующий МИ. Парадигма выводится на экран в диалоговое окно приложения TABLE в специальное поле. Например, выходная информация для леммы «round» («круг» - существительное, «круглый» - прилагательное, «округлять» - глагол, «кругом» - наречие и «вокруг» - предлог) имеет вид:НаречиеПрилагательноеСрав. с. ПрилагательноеПрев. с. ПрилагательноеСуществительное ’s Притяж. пад. Ед. ч. Существительное Мн. ч. Существительное’ Притяж. пад. Мн. ч.СуществительноеГлагол ИнфинитивГлагол Прош. неопр. действ. залога Глагол прич. прош. вр.Глагол прич. наст. вр.Глагол наст. вр. 3 л. Ед. ч.Предлог

. Массив строк в тестовом файле «Engl_par.txt», полученном в результате работы консольного приложения и содержащего список парадигм. Каждая строка содержит следующую информацию (разделенную табуляцией): _F - словоформа, входящая в парадигму;- принимающая значение 1, если W_F является леммой, 0 - иначе;- битовое число, задающее МИ словоформы W_F

. База данных словоформ английского языка, полученная для лемм, которые содержатся в словаре начальных форм. Эта база состоит из трех файлов: tab.dat, tree.dat, connect.dat, полученных в результате работы библиотеки РДМА_ИПИИ, описание формата которых разработчики библиотеки не предоставляют.

4. Разработка программного обеспечения синтеза парадигм слов английского языка

.1 Формализация правил словообразования английского языка

Способ представления МИ английских словоформ в рамках данной работы был выбран в виде битовых полей. Перечень обозначений морфологических характеристик приведен в приложении А (таблица А.3). По аналогии с процедурами, реализованными в библиотеке РДМА_ИПИИ для извлечения МИ используются маски категорий МИ (приложение А, таблица А.4).

Для существительных нам необходимо сгенерировать словоформы множественного числа, а также притяжательного падежа.

Образование множественного числа английских существительных описывается следующей системой правил.

Правило 1 (основное).. В общем случае английское существительное можно поставить во множественное число, прибавив к нему окончание -s. Например, shoe - shoes; hen - hens; bat - bats.

Правило 2. Если существительное оканчивается на свистящий или шипящий звук, то есть на буквы -s, -ss, -x, -sh, -ch, то для него форма множественного числа образуется при помощи окончания -es. Например, bass - basses; match - matches; leash - leashes; box - boxes.

Правило 3. Если существительное оканчивается на букву -y, перед которой стоит согласная, то во множественном числе -y меняется на -i и к слову прибавляется окончание -es. Например, lobby - lobbies; sky - skies.

Примечание. Если перед буквой -y стоит гласная, то множественное число образуется по общему правилу при помощи окончания -s, а буква -y остается без изменений. Например, bay - bays; day - days; way - ways.

Правило 4. К существительным, заканчивающимся на -o прибавляется окончание -es. Например, potato - potatoes; tomato - tomatoes; hero - heroes.

Исключения из правила 4: bamboos, embryos, folios, kangaroos, radios, studios, zoos, Eskimos, Filipines, kilos, photos, pros, pianos, concertos, dynamos, solos, tangos, tobaccos.

Правило 5. Если существительное оканчивается на буквы -f или -fe, то во множественном числе они меняются на -v- и прибавляется окончание -es. Например, thief -thieves; wolf - wolves; half - halves; wife - wives.

Исключения из правила 5: proofs, chiefs, safes, cliffs, gulfs, reefs.

У некоторых существительных при образовании множественного числа происходит изменение в основе. Все такие случаи сведены в таблицу 4.1.

Таблица 4.1 - Исключения при образовании множественного числа английских существительных

Единственное число

Множественное число

foot (нога, ступня)

feet

tooth (зуб)

teeth

man (мужчина, человек)

men

woman (женщина)

women

mouse (мышь)

mice

goose (гусь)

geese

louse (вошь)

lice

child (ребенок)

children

ox (бык, вол)

oxen

basis

bases

crisis

crises

phenomenon

phenomena

stimulus

formula

formulas/formulae

datum

data

index

indices

bureau

bureaux

focus

focuses/foci


Исходя из перечисленных правил, приведем алгоритм образования множественного числа английских существительных.

Алгоритм образования множественного числа английских существительных

Входные данные- строка (лемма существительного)

Выходные данные- строка (словоформа - существительное str во множественном числе)

Промежуточные переменные- целое, длина строки str= {b, c, d, f, g, h, j, r, l, m, n, p, q, r, s, t, v, w, x, z} множество элементов символьного типа (множество согласных английского алфавита);_Rule4 = {bamboo, embryo, folio, kangaroo, radio, studio, zoo, Eskimo, Filipine, kilo, photo, pro, piano, concerto, dynamo, solo, tango, tobacco} множество элементов строкового типа (множество слов-исключений из правила 4)_Rule5 = {proof, chief, safe, cliff, gulf, reef} множество элементов строкового типа (множество слов-исключений из правила 5)

начало

Инициализация= str;

если (str[l]==’s’) или (str[l]==’x’) или

((str[l]==’h’) и ((str[l-1]==’s’) или (str[l-1]==’c’)))

то

.1 res = res + ‘es’

.2 выход из алгоритма

если (str[l]==’y’) и (str[l-1] принадлежит множеству Consonant)

то

.1 res [l] =’i’

.2 res = res + ‘es’

3.3 выход из алгоритма

если (str[l]==’o’) и (str не принадлежит множеству Exeption_Rule4)

то

.1 res = res + ‘es’

.2 выход из алгоритма

если (str[l]==’f’) и (str не принадлежит множеству Exeption_Rule5)

то

.1 res [l] =’v’

.2 res = res + ‘es’

5.3 выход из алгоритма

если (str[l-1]==’f’) и (str[l]==’e’) и (str не принадлежит множеству Exeption_Rule5)

то

.1 res [l-1] =’v’

.2 res = res + ‘s’

6.3 выход из алгоритма

res = res + ‘s’

Результат res

конец

Правило образования притяжательного падежа. Если существительное не оканчивается на -s, то для него форма притяжательного падежа образуется при помощи окончания -'s. В ином случае - добавлением апострофа в конец слова. Например, today’s newspaper; mile’s distance; pupils’ work; cars’ color.

Алгоритм образования множественного числа английских существительных

Входные данные- строка (лемма существительного)

Выходные данные- строка (словоформа - существительное str в притяжательном падеже)

Промежуточные переменные- целое, длина строки str

начало

Инициализация= str;

если (str[l]==’s’)

то res = res + ‘’s’

иначе res = res + ‘’’

3 Результат res

конец

В отличие от русского языка, в английском прилагательные не изменяются по числам, родам и падежам, не имеют кратких форм. Прилагательные могут изменяться лишь по степеням сравнения. В английском языке, как и в русском, прилагательные (качественные) образуют две степени сравнения: сравнительную и превосходную. Положительной степенью прилагательных называется их основная форма, не выражающая степени сравнения.

Так же, как и в русском языке, прилагательные образуют степени сравнения либо аналитически (сложные формы) - с помощью дополнительных слов more (более), less (менее) и most (наиболее, самый), least (наименее); либо синтетически - посредством изменения самого прилагательного с помощью суффиксов -er и -est (простые формы). И так же, как и в русском языке, аналитическая форма сравнительной степени может быть образована от любого прилагательного, а синтетическая - от одних прилагательных может быть образована, а от других - нет.