Научная статья на тему 'К проблеме математического описания многоязыковой машинной транскрипции'

К проблеме математического описания многоязыковой машинной транскрипции Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
66
20
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «К проблеме математического описания многоязыковой машинной транскрипции»

К проблеме математического описания многоязыковой машинной

транскрипции

Клышинский Э.С., МГИЭМ klyshinsky@mail. ru Слезкниа О.Ю., РГГУ alienta(a yandex. ru

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

Самый простой способ передачи имен собственных с одного языка на другой - это просто заимствование слова без его видоизменения. Так сейчас и происходит во многих странах Европы. То есть, французское имя Francois -Франсуа и в английском и в турецком языках будет иметь вид Francois, хотя читаться уже будет в первом случае - Френкойс, а во втором - Франджойс. Правильное прочтение такого заимствованного имени требует от читающего знания соответствующего иностранного языка, если же он им не владеет, то подобным образом заимствованное имя будет читаться по правилам уже другого языка, что неизбежно приведет к искажениям его звукового облика и, как следствие, потери идентификации объекта по его имени, то есть нарушению основной функции имени. Но непосредственно заимствование возможно лишь когда и исходный язык и язык «перевода» используют одну и ту же графическую систему (например, латиницу). Если же нужно передать слово с латиницы на кириллицу, необходимо уже ставить в соответствие буквы одной графической системы1 буквам другой (например, а ® а, b ® б и т. д.). Такая побуквенная передача слов, записанных с помощью одной графической

1 Здесь имеется в виду именно графическая система (например, латиница или кириллица), но не конкретный язык.

системы, средствами другой графической системы, называется

транслитерацией. При помощи этого метода передается тоже лишь графический образ слова, но не его звучание. Например, имя François будет транслитерировано на кириллицу как Франкоис. Недостатки транслитерации очевидны - как и в случае с заимствованием нарушается функция имени. Достаточно того, что если Франсуа назвать Франкоисом, то человек даже не догадается, что обращаются именно к нему.

Второй теоретически возможный метод передачи имен собственных с одного языка на другой - это перевод, при котором фактически используется «словарь имен», состоящий из словарных статей вида: Arthur - Артур, Shakespear - Шекспир и др. (с английского на русский); Hilda - Ильда, Rodriguez - Родригес и др. (с испанского на русский) и тому подобные базы «перевода» имен с одного языка на другой. Однако количество имен собственных в языке не ограничено - каждый день возникают все новые названия, поэтому для их перевода невозможно составить конечную базу имен собственных (или базы, хотя бы охватывающей около 90% имен собственных).

И последний, на наш взгляд наиболее приемлемый метод передачи имен собственных с одного языка на другой - это метод транскрипции (точнее говоря, практической транскрипции),

когда имени собственному одного языка ставится в соответствие слово другого языка, наиболее точно отражающее его звучание в родном языке. Этот метод (как и метод перевода) ориентируется на конкретные языки, но опирается не на «словарь имен», а на правила передачи отдельных букв и буквосочетаний с одного языка на другой. Так, например, в базе правил транскрипции с английского языка на русский должны быть правила вида: c перед гласными заднего ряда ® к, о ® о, р ® п, r ® р, ation на конце слова переходит в ейшен. Вышеперечисленные правила позволяют передать английское слово corporation на русский язык как «корпорейшен» (а не «корпоратион», как получилось бы, если бы использовался метод транслитерации).

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

СЛОВО X ИСХОДНОГО ЯЗЫКА Ь1 1. каждому элементу слова исходного языка подбирается соответствующий элемент общей фонетической таблицы (@ звук);

ПРОМЕЖУТОЧНОЕ ФОНЕТИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ ^ЯЗЫК-

ПОСРЕДНИК) СЛОВАX 2. каждому элементу промежуточного фонетического представления подбирается соответствующие буква или буквосочетание, выражающие

этот звук в языке Ь2; СЛОВО Х ЯЗЫКА ТРАНСКРИПЦИИ Ь2

Плюсом такого подхода является сокращение количества наборов правил транскрипции в случае работы со многими языками. При отсутствии языка-посредника приходилось бы создавать базы для транскрипции с каждого языка на все остальные, что составило бы Кь*(Кь-1) баз, где N - количество языков, с которыми производится работа. При транскрипции через язык-посредник это количество составит лишь 2* Кь, так как потребуются базы лишь для транскрипции на язык-посредник и с него.

С лингвистической точки зрения основные сложности при создании системы машинной транскрипции, использующей промежуточное фонетическое представление, заключается:

1. в определении того, как же слово читается в языке перевода (с которого осуществляется транскрипция);

2. в составлении таких базы правил (для каждого языка в случае многоязычной системы транскрипции), которые позволяли бы для каждого звука или звукосочетания языка Ь1 находить максимально похожий звук (звукосочетание) языка Ь2.

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

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

Определим параметр как пару Р=<К,У>, где N - имя параметра, а V - его значение. Параметр будет отображать некоторые характеристики буквы, важные для транскрипции, или позволяющие классифицировать буквы по группам. Например: <"ряд", "передний">,<"тип", "гласная">, <"ударение", "безударная">. Будем считать, что два параметра равны, если совпадают их имена и значения.

Букву определим как пару, состоящую из графемы, однозначно идентифицирующей данную букву, и набора параметров, либо изначально присущих данной букве, либо отражающих положение буквы в слове. Б=<С,(Р}>, где С - фиксированный символ (графема), обозначающий данную букву, а Р - набор ее параметров. При этом будем считать, что различные написания одной и той же буквы (например, строчное и прописное или

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

Примером буквы может служить пара <'А',{<"тип", "гласн">, <"написание", "прописн">, <"ряд", "задний">}>, где 'А' - графема, идентифицирующая данную букву, а множество, заключенное в фигурные скобки - множество параметров данной буквы. Здесь и в дальнейшем выделим с помощью апострофов графемы, относящиеся к символам некоторого языка. Служебные графемы, предназначенные для обеспечения процесса транскрипции, будут обозначаться несколькими символами и не будут заключаться в апострофы.

Введем следующие операторы сравнения букв.

Оператор = производит сравнение как графем букв, так и их наборов параметров. Две буквы и Б2 равны в смысле оператора = (81=Б2), если равны их графемы и множество параметров Б2 является подмножеством параметров 31.

Оператор » производит сравнение только наборов параметров букв. Две буквы и Б2 равны в смысле оператора » (81«Б2), если множество параметров Б2 является подмножеством параметров Б1.

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

36

которыми производится работа. При транскрипции через язык-посредник это количество составит лишь 2* NL, так как потребуются базы лишь для транскрипции на язык-посредник и с него.

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

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

В целом, процесс транскрипции разобъем на пять этапов:

1. преобразование написания слова на языке оригинала во внутреннее представление;

2. выделение слогов, расстановка переносов и ударений;

3. перевод внутреннего представления слова в промежуточное фонетическое написание;

4. перевод промежуточного фонетического написания слова во внутреннее представление слова на языке транскрипции;

5. преобразование внутреннего представления слова на языке транскрипции в написание слова на языке транскрипции.

Опишем каждый из этих этапов подробнее

1. Преобразование написания слова на языке оригинала во внутреннее представление состоит в преобразовании слова языка, записанного как множество символов W=<G>, во множество букв W'=<S>. Здесь G - символ (знак), а в случае машинной транскрипции - информационный код знака в одной из компьютерных кодировок (ASCII, ANSI или иной другой). Для такого

преобразования вводится множество правил, называемых правилами алфавита, сопоставляющих символу (информационному коду знака) G букву S. ^a={Ra}, где ^а - база правил алфавита, а Ra=<G,S> - правило.

Примерами правил алфавита могут служит следующие множества. <'A',<'А',{<"тип", "гласн">, <"написание", "прописн">, <"ряд", "задний">}>> <'а',<'А',{<"тип", "гласн">, <"написание", "строчн">, <"ряд", "задний">}>> <'B',< 'B',{<"тип", "согласн">,<"написание", "прописн">,<"звонкость", "звонкая">}>> <'b',< 'B ',{<"тип", "согласн">,<"написание", "строчн">,<"звонкость", "звонкая">}>>

Курсивом здесь выделена часть, относящаяся к букве (S), а полужирным шрифтом - параметры буквы.

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

N

Таким образом W^W'= * Sm, причем

m=1

a) Si=<BEG,{}>,

b) SN=<END,{}>, здесь BEG и END - графемы, обозначающие начало и конец слова,

c) Sm=S, если 3 Ra=<G,S>e^a : G=Gj, здесь j=1..M, где M - общее количество графем во входном слове,

d) Sm=<Gj,{}>, если не3 Ra=<G,S>e^a : G=Gj,

е) 8т=<БЕО,{}>, если 8т_1 получено по правилу ё), а 8т+1 получено по правилу с),

^ Sm=<END,{}>, если 8т_1 получено по правилу с), а 8т+1 получено по правилу ё),

Здесь me(1,N), где N - общее количество букв в выходном слове (во внутреннем формате).

2. Выделение слогов и расстановка переносов производятся для того, чтобы определить закрытые/открытые слоги и ударные/безударные буквы. Любая буква, находящаяся в конце слога, приобретает дополнительный параметр «буква в слоге» со значением «открытая». Для остальных букв значение этого параметра - «закрытая».

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

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

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

Под строкой (словом) здесь будем понимать упорядоченное множество букв. Подстрокой слова будет являться подмножество последовательно идущих букв данного слова. Обозначим через Ж/ подстроку слова Ж длиной I, начинающуюся с буквы в позиции 1. В дальнейшем верхний индекс подстроки будет обозначать позицию, с которой начинается данная подстрока в слове, а нижний индекс будет обозначать длину подстроки. Символом * будем обозначать произвольное значение позиции.

Под правилом перевода будем понимать пару Я=<Жг*,Жг2>, где Жг* -

строка-образец, а Ж г 2 - строка-результат. Правило Я применимо к подстроке Ж1'1, если строка-образец сравнима с Жг[. Под сравнимостью понимается нахождение равенства букв из Ж* и Жг1 в одних и тех же позициях подстрок.

При этом здесь две буквы 81 и 82 равны, если 8:=82 или 8:»82. Подробный алгоритм определения применимости правила к строке приведен ниже.

Под переводом подстроки Жг\ будем понимать функцию Ж г 2 = ^ (Жг1), такую, что ЗКг=< Жг*,Жг2>е^ применимое к Ж1'1. Здесь ^={^4 - база правил перевода.

Задача перевода в промежуточное фонетическое написание в этом случае может быть представлена следующим образом.

Пусть имеем на входе на данный этап некоторое слово W=<S1, 82, ..., 8а> и набор правил перевода Перевод внутреннего представления в

промежуточное фонетическое написание в этом случае будет заключаться в нахождении и применении упорядоченного подмножества правил ^=< Ж1 *,Ж п>, таких что:

1) 1=<ц,12, ...,1И>, где п - число правил в подмножстве

2) г=< гьг2,-,гп>;

3) Ъз = а;

]=1

4) 11=1;

5) ik+1=ik+lk для k<n и in+ln=a+1;

6) "i,l 3Rt=<Wl*,Wl2> : 3 Wi2 = Ft(W).

Здесь множество i - это множество позиций с которых применимы правила, а множество l - множество длин подстрок.

Результатом перевода будет являться конкатенация результатов последовательного применения правил перевода.

W = * Ft (Wi)

а

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

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

Сохраняем текущую позицию. Далее пытаемся найти все правила, применимые для строки, начинающейся с текущей позиции. Если первые несколько последовательно идущих букв в правиле имеют графему, равную EMPTY, то уменьшаем текущую позицию на количество таких букв. Если текущая позиция меньше 1, то считаем, что правило не применимо, восстанавливаем текущую позицию и переходим к следующему правилу.

Начиная с полученной текущей позиции последовательно сравниваем буквы строки и правила. Если хотя бы одна буква строки не равна соответствующей букве правила, то считаем, что правило не применимо, восстанавливаем текущую позицию и переходим к следующему правилу. Если сравнение всех букв прошло успешно, то считаем, что правило применимо. В этом случае помещаем сохраненную текущую позицию в множество i. Во множество i помещаем количество букв в правиле за вычетом последовательно

идущих букв в начале и в конце правила, имеющих графему равную EMPTY. Далее восстанавливается сохраненная текущая позиция и алгоритм переходит к следующему правилу.

По окончании перебора всех правил текущая позиция увеличивается на величину, сохраненную в множестве l. В случае если к одной и той же позиции в слове применимо несколько правил, то для каждого правила заводятся свои множества i и l.

4. Этап перевода промежуточного фонетического написания слова во внутреннее представление слова на языке транскрипции аналогичен этапу 3, но имеет противоположные задачи. Он служит для того, чтобы сформировать последовательность букв, отражающих полученное звучание слова в языке транскрипции. Работа этапа осуществляется по тем же принципам, что и этапа 3. Здесь правила являются не столь многозначными, как на этапе 3, так как имеется возможность задать одно определенное правило для передачи данного набора звуков при наличии альтернативы.

5. Преобразование внутреннего представления слова на языке транскрипции в написание слова на языке транскрипции является обратным относительно этапа 1. Здесь могут использоваться те же самые правила, что и на этапе 1, так как в большинстве случаев должно существовать взаимнооднозначное соответствие между графемой и буквой с данным набором параметров. Буквы с графемами BEG и END удаляются, знаки препинания передаются соответствующими символами.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.