• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Параллельный корпус В.В. Набокова

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

Создание параллельного корпуса включает в себя несколько этапов: выравнивание текстов, разметка текстов, проектирование поискового интерфейса.

 

ЧТО СДЕЛАНО

На данный момент было произведено выравнивание более чем 1500 текстов.

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

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

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

В нашем случае выравнивание производилось с помощью специально разработанной программы «Euclid», являющейся графическим интерфейсом пользователя к доступной в открытом режиме программе выравнивания текстов HunAlign.

На вход программа получает файл в текстовом формате с любым числом абзацев, разбиений строки, пробелов в начале строк и т. д. Далее загружаются два текста - оригинал и перевод, после чего они автоматически обрабатываются. Затем запускается программа HunAlign, при помощи статистического механизма автоматически выравнивающая два текста полностью, и выход её загружается в графический интерфейс программы «Евклид» для ручного постредактирования.

Программа HunAlign основывается на ряде статистических весов (длина предложения, совпадение символов, структура знаков препинания и т. п.) и приписывает каждой выровненной паре предложений определённый коэффициент вероятности выравнивания. Если он ниже нуля, значит, выравнивание данных отрезков текста маловероятно. Кроме того, она автоматически склеивает последовательности предложений на одном языке, соответствующие, с его точки зрения, друг другу.

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

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

  Во-первых, это почти постоянные проблемы с кодировками. Изначально не все текстовые файлы имели нужные кодировки. Их приходилось конвертировать в определенный формат (AINSI или UTF-8), и уже потом «отдавать» программе. Но даже после всех действий программа не читала файлы, а выдавала набор символов. Эта проблема была решена просто: в идеале, сначала в программу должен загружаться текст оригинала, а потом его перевод, но при возникновении проблем с кодировками делалось ровно наоборот: сначала - перевод, затем - оригинал. Практически для всех «проблемных» текстов такой трюк срабатывал, но, конечно же, не без исключений. После редакции тексты сохраняются в XML формате, где в выпадающем списке выбирается язык оригинала и перевода (именно поэтому нам неважно, что мы даем программе на первом месте - оригинал или перевод).

  Во-вторых, во многих текстах программа заменяла «тире» на непонятные знаки которые (при небольшом количестве) вычищались вручную.

  В-третьих, отсутствие больших кусков текста (иногда и целых глав) в переводах, а это означает, что программа на выходе выдавала «съехавшие» и неправильно выровненные тексты, которые очень долго и тщательно выравнивались вручную.

  В-четвертых, отсутствие текстов самих произведений (были частично добавлены).

  В-пятых, сложности с выравниванием стихов.

 

ЧТО НУЖНО СДЕЛАТЬ

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

1.  Малый круг:

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

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

-  добавить тексты произведений.

-  во время редактирования текстов часто приходилось какие-то куски склеивать друг с другом, из-за чего появлялись пустые строки. При сохранении таким строкам присваивался ID номер (как и остальным) в XML файлах, но текст в них отсутствовал. Такие пустые строки нужно убрать.

 

2.  Большой круг:

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

-  На этапе морфологической разметки могут возникнуть трудности: у Набокова очень специфичные тексты, которые требуют специальных действий по обработке и специальной разметке. В некоторых текстах присутствует много транслитерации, иноязычных вкраплений, которые не будут адекватно распознаваться морфологическим анализатором. С этим нужно что-то делать, а именно, выделять в тексте иноязычные куски . В случае с использованием русского текста необходима транслитерация. Сложность здесь заключается в том, что иноязычные вкрапления очень короткие. Также сложность представляют знаменитые набоковские каламбуры, которые очень часто межъязыковые («Ада»). Их большая часть не будет верно обработана морфологическим анализатором, и все эти авторские неологизмы попадут в длинный список «неизвестных слов». Получается, что надо придумать, каким образом следует находить такие слова, и размечать их как отдельный текстовый уровень.

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

-  создание поискового интерфейса.

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

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

Для этого нужно сначала создать некий словарь, со структурой «ключ» - «значение», где ключами будут являться слова из XML файлов, а их значениями - название XML файла, номер ID куска текста, где встречается слово, и сам текст.

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

Также должен быть и HTML файл, где будет описана разметка веб-страницы.