ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ
ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»
(НИУ «БелГУ»)
ИНСТИТУТ МЕЖКУЛЬТУРНОЙ КОММУНИКАЦИИ И
МЕЖДУНАРОДНЫХ ОТНОШЕНИЙ
КАФЕДРА АНГЛИЙСКОЙ ФИЛОЛОГИИ И МЕЖКУЛЬТУРНОЙ
КОММУНИКАЦИИ
СОЗДАНИЕ ПРИЛОЖЕНИЯ-ПОМОЩНИКА ДЛЯ ИЗУЧЕНИЯ ЯЗЫКА
«ВСЕГДА И ВЕЗДЕ».
Выпускная квалификационная работа
обучающегося по направлению подготовки 45.03.04 Интеллектуальные
системы в гуманитарной сфере
очной формы обучения, группы 04001415
Цомаева Руслана Казбековича
Научный руководитель
д.ф.н., доцент
Пугач В.С.
БЕЛГОРОД 2018
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ .............................................................................................................. 3
ГЛАВА I. НЕЙРОННЫЙ МАШИННЫЙ ПЕРЕВОД. ТЕОРИЯ И ПРИМЕРЫ 5
1.1 Описание процессов машинного перевода основанного на базе правил
(Rule-Based), машинного перевода на базе фраз (Phrase-Based) и
нейронного перевода ........................................................................................... 5
1.2
Машинный перевод на базе правил .......................................................... 7
1.3
Машинный перевод на базе фраз ............................................................ 10
1.4
Нейронный машинный перевод .............................................................. 13
1.5
Диалектика нейронного машинного перевода ...................................... 22
1.6
Качество перевода: есть ли прорыв? ...................................................... 25
1.7
Задачи машинного перевода.................................................................... 27
1.8
Проблемы использования NMT для бизнеса ......................................... 30
Выводы по главе I ................................................................................................. 31
ГЛАВА II. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ПОМОЩНИКА ДЛЯ
ИЗУЧЕНИЯ ЯЗЫКА/ ПЕРЕВОДА...................................................................... 32
2.1
Знакомство с JavaScript ............................................................................ 32
2.2
Использование JavaScript в браузерах.................................................... 34
2.3
Фундамент приложения ........................................................................... 36
2.4
Процесс работы расширения ................................................................... 36
2.5
Функционал программы .......................................................................... 39
Выводы по II главе ................................................................................................ 40
ЗАКЛЮЧЕНИЕ ..................................................................................................... 41
СПИСОК ИСПОЛЬЗУЕМЫХ РЕСУРСОВ ........................................................ 42
ПРИЛОЖЕНИЕ ..................................................................................................... 44
3
ВВЕДЕНИЕ
Про нейронные сети говорят уже давно, и, казалось бы, что одна из
классических задач искусственного интеллекта – машинный перевод –
просто напрашивается на то, чтобы решаться на базе этой технологии.
Однако на радарах вплоть до недавнего времени отсутствует
информация о нейронном машинном переводе – и вот в конце 2016 года свои
новые технологии и системы машинного перевода, построенные на базе
нейронных сетей, продемонстрировали сразу несколько компаний, среди
которых Google, Microsoft и SYSTRAN. Они появились почти одновременно,
с разницей в несколько недель или даже дней. Почему так? Для того, чтобы
ответить на этот вопрос, необходимо понять, что такое машинный перевод на
базе нейронных сетей и в чем его ключевое отличие от классических
статистических систем или аналитических систем, которые используются
сегодня для машинного перевода.
Актуальность
исследования
состоит
в
том,
что
все
вышеперечисленные корпорации-гиганты не видят полного потенциала
своего детища, например, «Алиса» Яндекса, переводчики Google и
SYSTRAN. У каждого из них свои недостатки и преимущества. Объединив
свои усилия по данному направлению, эти компании могли бы вместе
достичь абсолютно новой эры в сфере искусственного интеллекта. Создать
единый «организм», способный уже на данном этапе моего исследования
переводить огромные объемы текста с минимальной долей брака, а также
учитывая сферу направленности текста. В недалеком будущем, арсенал
данной программы может расшириться до голосовой озвучки, встроенных
обучающих уроков, поддержки на практически любом устройстве, начиная
от телефона и заканчивая электронными часами.
4
Целью
данной
работы
является
проектирование
обучающей
программы-переводчика, способной многократно облегчить изучение языка
и непосредственно сам процесс перевода.
Объектом исследования выступает нейронный машинный перевод.
Предметом исследования являются нейронные системы в машинном
переводе, а также помощи в изучении языка.
Задачи исследования:
1.
Изучить общие теоретические положения понятия нейронных сетей и их
функционал в машинном переводе.
2.
Раскрыть сущность работы нейронного машинного перевода.
3.
Проанализировать уже существующие программы, их достоинства и
недостатки.
4.
Спроектировать и реализовать программу для помощи в повседневном
изучении языка и переводе.
Теоретические
основы
исследования
представлены
отечественных и зарубежных исследователей в сфере
работами
нейротехнологий,
JavaScript, лингвистики и программирования таких как: Бернард Вокуа,
Саймон Хайкин, Тойво Кохонен, Мартин Хавербек, Галушкин, А.И., Горбань
А.Н., Барский, А.Б., Круглов В.В., С. Влахов.
Материалами для исследования послужили различные интернетисточники, такие как поисковик научны х
статей
“Google Scholar”
или
“WikiWand” - более удобный и продуманный функциональный интерфейс
википедии.
Практическая
значимость
исследования
состоит
в
том,
что
разработанная обучающая программа призвана облегчить и ускорить процесс
изучения языка либо же улучшить качество перевода, в зависимости от нужд
пользователя.
Представленная выпускная квалификационная работа имеет типичную
для подобного рода работ структуру и состоит из введения, двух глав,
сопровождающихся выводами, заключения и списка используемой
литературы.
5
ГЛАВА I. НЕЙРОННЫЙ МАШИННЫЙ ПЕРЕВОД. ТЕОРИЯ И
ПРИМЕРЫ
1.1
Описание процессов машинного перевода основанного на базе
правил (Rule-Based), машинного перевода на базе фраз (Phrase-Based) и
нейронного перевода
Результаты исследования, полученные Neural Machine Translation,
удивительны в части того, что касается расшифровки нейросети. Создается
впечатление, что сеть на самом деле «понимает» предложение, когда
переводит его. В этой статье мы разберем вопрос семантического подхода,
который используют нейронные сети для перевода (blog.systransoft.com).
Начнем с того, что рассмотрим методы работы всех трех технологий
на различных этапах процесса перевода, а также методы, которые
используются в каждом из случаев. Далее мы познакомимся с некоторыми
примерами и сравним, что каждая из технологий делает для того, чтобы
выдать максимально правильный перевод.
Очень простой, но все же полезной информацией о процессе любого
типа автоматического перевода является следующий треугольник, который
был сформулирован французским исследователем Бернардом Вокуа (Bernard
Vauquois) в 1968 году:
6
Рис. 1.1 — Треугольник Вокуа, вер. 1
На этой схеме отображен процесс преобразования исходного
предложения в целевое тремя разными путями.
Левая часть треугольника характеризует исходный язык, когда как
правая — целевой. Разница в уровнях внутри треугольника представляет
глубину
процесса
анализа
исходного
предложения,
например,
синтаксического или семантического (Вокуа, 1968). Теперь мы знаем, что не
можем отдельно проводить синтаксический или семантический анализ, но
теория заключается в том, что мы можем углубиться на каждом из
направлений. Первая красная стрелка обозначает анализ предложения на
языке оригинала. Из данного нам предложения, которое является просто
последовательностью
слов,
мы
сможем
получить
представление
о
внутренней структуре и степени возможной глубины анализа.
Например, на одном уровне мы можем определить части речи
каждого слова (существительное, глагол и т.д.), а на другом —
взаимодействие между ними. Например, какое именно слово или фраза
является подлежащим.
Когда
анализ
завершен,
предложение
“переносится”
вторым
процессом с равной или меньшей глубиной анализа на целевой язык. Затем
третий процесс, называемый “генерацией”, формирует фактическое целевое
предложение из этой интерпретации, то есть создает последовательность
7
слов на целевом языке. Идея использования треугольника заключается в том,
что чем выше (глубже) вы анализируете исходное предложение, тем проще
проходит фаза переноса. В конечном итоге, если бы мы могли преобразовать
исходный язык в какой-то универсальный “интерлингвизм” во время этого
анализа, нам вообще не нужно было бы выполнять процедуру переноса.
Понадобился бы только анализатор и генератор для каждого переводимого
языка на любой другой язык.
Эта общая идея и объясняет промежуточные этапы, когда машина
переводит предложения пошагово. Что еще более важно, эта модель
описывает характер действий во время перевода. Проиллюстрируем, как эта
идея работает для трех разных технологий, используя в качестве примера
предложение “The smart
mouse plays violin” (Выбранное авторами
публикации предложение содержит небольшой подвох, так как слово “Smart”
в английском языке, кроме самого распространенного смысла “умный”,
имеет по словарю в качестве прилагательного еще 17 значений, например
“проворный” или “ловкий”.
1.2
Машинный перевод на базе правил
Машинный перевод на базе правил является самым старым подходом
и охватывает самые разные технологии. Однако, в основе всех их обычно
лежат следующие постулаты:
процесс строго следует треугольнику Вокуа, анализ очень часто
завышен, а процесс генерации сводится к минимальному;
все три этапа перевода используют базу данных правил и
лексических элементов, на которые распространяются эти правила;
правила и лексические элементы заданы однозначно, но могут
быть изменены лингвистом.
8
Например, внутреннее представление нашего предложения может
быть
следующим:
Рис. 1.2 — Внутреннее представление предложения
Отмечается несколько простых уровней анализа:
таргеритование частей речи. Каждому слову присваивается своя
«часть речи», которая является грамматической категорией;
морфологический
анализ:
слово
“Plays”
распознается
как
искажение от третьего лица и представляет форму глагола “Play”;
семантический
анализ:
некоторым
словам
присваивается
семантическая категория. Например, “Violin” — инструмент;
составной анализ: некоторые слова сгруппированы, например:
“Smart mouse” — это существительное;
анализ зависимостей: слова и фразы связаны с «ссылками», при
помощи которых происходит идентификация объекта и субъекта действия
основного глагола “Plays”.
Перенос такой структуры будет подчинен следующим правилам
лексического преобразования:
9
Рис. 1.3 — Правила лек. преобразования
Применение этих правил приведет к следующей интерпретации на
целевом языке перевода:
Рис. 1.4 — Интерпретация перевода
Тогда как правила генерации на французском будут иметь следующий
вид:
прилагательное,
выраженное
словосочетанием,
следует
за
существительным — с несколькими перечисленными исключениями;
определяющее
слово
согласованно
по
числу
и
роду
с
существительным, которое оно модифицирует;
прилагательное согласовано по числу и полу с существительным,
которое оно модифицирует;
глагол согласован с подлежащим.
10
В идеале этот анализ сгенерирует следующую версию перевода:
Рис. 1.5 — Версия перевода после анализа
1.3 Машинный перевод на базе фраз
Машинный перевод на базе фраз — это самая простая и популярная
версия статистического машинного перевода. Сегодня он по-прежнему
является основной “рабочей лошадкой” и используется в крупных онлайнсервисах по переводу.
Выражаясь технически, машинный перевод на базе фраз не следует
процессу, сформулированному Вокуа. Мало того, в процессе этого типа
машинного перевода не проводится никакого анализа или генерации, но, что
более важно, придаточная часть не является детерминированной. Это
означает, что технология может генерировать несколько разных переводов
одного и того же предложения из одного и того же источника, а суть подхода
11
заключается
в
выборе
наилучшего
вариант
Рис. 1.6 — Треугольник Вокуа, вер. 2
Эта модель перевода основана на трех базовых методах:
использование фразы-таблицы, которая дает варианты перевода и
вероятность их употребления в этой последовательности на исходном языке;
таблица изменения порядка, которая указывает, как могут быть
переставлены слова при переносе с исходного на целевой язык;
языковая модель, которая показывает вероятность для каждой
возможной последовательности слов на целевом языке (Вокуа, 1968).
Следовательно, на базе исходного предложения будет построена
следующая таблица (это упрощенная форма, в реальности было бы еще
множество вариантов, связанных с каждым словом):
12
Табл. 1.1 — Упрощенная табл. вариантов перевода
Далее из этой таблицы генерируются тысячи возможных вариантов
перевода предложения, например:
Табл. 1.2 — Генерируемые варианты перевода
Однако благодаря интеллектуальным вычислениям вероятности и
использованию более совершенных алгоритмов поиска, будут рассмотрены
только наиболее вероятные варианты перевода, а лучший сохранится в
качестве итогового (blog.systransoft.com).
13
В этом подходе целевая языковая модель крайне важна и мы можем
получить представление о качестве результата, просто поискав в Интернете:
Рис. 1.7 — Результаты поиска
Поисковые
алгоритмы
последовательности
слов,
интуитивно
которые
предпочитают
являются
наиболее
использовать
вероятными
переводами исходных с учетом таблицы изменения порядка. Это позволяет с
высокой точностью генерировать правильную последовательность слов на
целевом языке.
В этом подходе нет явного или неявного лингвистического или
семантического анализа. Нам было предложено множество вариантов.
Некоторые из них лучше, другие — хуже, но, насколько нам известно,
основные онлайн-сервисы перевода используют именно эту технологию.
1.4 Нейронный машинный перевод
Подход к организации нейронного машинного перевода кардинально
отличается от предыдущего и, опираясь на треугольник Вокуа, его можно
описать следующим образом:
14
Рис. 1.8 — Треугольник Вокуа вер. 3
Нейронный машинный перевод имеет следующие особенности:
“анализ” называется кодированием, а его результатом является
загадочная последовательность векторов;
“перенос”
называется
декодированием
и
непосредственно
генерирует целевую форму без какой-либо фазы генерации. Это не строгое
ограничение и, возможно, имеются вариации, но базовая технология работает
именно так.
Сам процесс разбит на две фазы. В первой каждое слово исходного
предложения проходит через “кодер”, который генерирует то, что мы
называем “исходным контекстом”, опираясь при этом на текущее слово и
предыдущий контекст, например:
15
Рис. 1.9 — Принцип работы НМП
Последовательность исходных контекстов (ContextS 1,… ContextS 5)
являет внутренней интерпретацией исходного предложения по треугольнику
Вокуа и, как упоминалось выше, представляет из себя последовательность
чисел с плавающей запятой (обычно 1000 чисел с плавающей запятой,
связанных с каждым исходным словом). Пока мы не будем обсуждать, как
кодировщик выполняет это преобразование, но хотелось бы отметить, что
особенно любопытным является первоначальное преобразование слов в
векторе “float”.
На самом деле это технический блок, как и в случае с основанной на
правилах системой перевода, где каждое слово сначала сравнивается со
словарем, первым шагом кодера является поиск каждого исходного слова
внутри таблицы.
Предположим, что нужно вообразить разные объекты с вариациями
по форме и цвету в двумерном пространстве. При этом объекты,
находящиеся ближе всего друг к другу должны быть похожи. Ниже приведен
пример:
16
Рис. 1.10 — Пример воображаемых объектов
На оси абсцисс представлены фигуры, и там мы стараемся поместить
наиболее близкие по этому параметру объекты другой формы (нам нужно
будет указать, что делает фигуры похожими, но в случае этого примера это
кажется интуитивным). По оси ординат располагается цвет — зеленый
между желтым и синим (расположено так, потому что зеленый является
результатом смешения желтого и синего цветов).
Если бы у наших фигур были разные размеры, мы бы могли добавить
этот третий параметр следующим образом:
Рис. 1.11 — Измененный пример после добавления нового параметра
17
Если мы добавим больше цветов или фигур, мы также сможем
увеличить и число измерений, чтобы любая точка могла представлять разные
объекты и расстояние между ними, которое отражает степень их сходства.
Основная идея в том, что это работает и в случае размещения слов.
Вместо фигур есть слова, пространство намного больше — например, мы
используем 800 измерений, но идея заключается в том, что слова могут быть
представлены в этих пространствах с теми же свойствами, что и фигуры.
Следовательно,
слова,
обладающие
общими
свойствами
и
признаками, будут расположены близко друг к другу. Например, можно
представить, что слова определенной части речи — это одно измерение,
слова по признаку пола (если таковой имеется) — другое, может быть
признак положительности или отрицательности значения и так далее.
Вернемся к процессу перевода. Второй шаг имеет следующий вид:
Рис. 1.12 — Второй шаг перевода
На этом этапе формируется полная последовательность с упором на
“исходный
контекст”,
после
чего
один
генерируются с использованием следующего:
за
другим
целевые
слова
18
“целевого контекста”, сформированного в связке с предыдущим
словом и предоставляющего некоторую информацию о состоянии процесса
перевода;
значимости “контекстного источника”, который представляет
собой смесь различных “исходных контекстов” опираясь на конкретную
модель под названием “Модель внимания” (Attention Model). Что это такое
мы разберем в другой статье. Если кратко, то “Модели внимания” выбирают
исходное слово для использования в переводе на любом этапе процесса;
ранее приведенного слова с использованием вложения слов для
преобразования его в вектор, который будет обрабатываться декодером.
Перевод завершается, когда декодер доходит до этапа генерации
фактически последнего слова в предложении.
Весь процесс, несомненно, весьма загадочен и потребует большего
количества времени, чтобы рассмотреть работу его отдельных частей.
Главное, о чем следует помнить — это то, что операции процесса нейронного
машинного перевода выстроены в той же последовательности, что и в случае
машинного перевода на базе правил, однако характер операций и обработка
объектов полностью отличается. Начинаются эти отличия с преобразования
слов в векторы через их вложение в таблицы. Понимания этого момента
достаточно для того, чтобы осознать, что происходит в следующих
примерах.
Примеры перевода для сравнения
Давайте разберем некоторые примеры перевода и обсудим, как и почему
некоторые из предложенных вариантов не работают в случае разных
технологий. Мы выбрали несколько полисемических (т.е. многозначных)
19
глаголов английского языка и изучим их перевод на французский.
Рис. 1.13 — Пример 1 со словом “render”
Рис. 1.14 — Пример 2 со словом “render”
Машинный перевод на базе фраз, интерпретирует “render” как смысл
— за исключением очень идиоматического варианта «оказание помощи».
Это можно легко объяснить. Выбор значения зависит либо от проверки
синтаксического значения структуре предложения, либо от семантической
категории объекта.
20
Для нейронного машинного перевода видно, что слова “help” и
“assistance”
обрабатываются
правильно,
что
показывает
некоторое
превосходство, а также очевидную способность этого метода получать
синтаксические данные на большом расстоянии между словами, что мы
более детально рассмотрим в дальнейших исследованиях.
Рис. 1.15 — Пример со словом “fire”
Рис. 1.16 — Пример со словом “rounds”
На этом примере опять видно, что нейронный машинный перевод
имеет семантические различия с двумя другими способами (в основном они
касаются одушевленности, обозначает слово человека или нет).
Однако отметим, что было неправильно переведено слово “rounds”,
которое в данном контексте имеет значение слова “bullet”. Мы объясним этот
тип интерпретации позже. Что касается перевода на базе правил, то он
распознал только третий смысл слова “rounds”, который применяется в
отношении ракет, а не пуль.
21
Рис. 1.17 — Пример со словом “to drive”
Рис. 1.18 — Пример со словом “crime”
Выше еще один интересный пример того, как смысловые вариации
глагола в ходе нейронного перевода взаимодействуют с объектом в случае
однозначного употребления предлагаемого к переводу слова (crime или
destination).
Другие варианты со словом “crime” показали тот же результат.
Переводчики, работающие на базе слов и фраз так же не ошиблись,
так как использовали те же глаголы, приемлемые в обоих контекстах.
22
Диалектика нейронного машинного перевода
1.5
В основе нейронного переводчика — механизм двунаправленных
рекуррентных нейронных сетей (Bidirectional Recurrent Neural Networks),
построенный на матричных вычислениях, который позволяет строить
существенно более сложные вероятностные модели, чем статистические
машинные переводчики.
Рис. 1.19 — Усложненные модели переводчика
Как и статистический перевод, нейронный перевод требует для
обучения параллельные корпуса, позволяющие сравнить автоматический
перевод с эталонным “человеческим”, только в процессе обучения оперирует
не отдельными фразами и словосочетаниями, а целыми предложениями.
Основная проблема в том, что для тренировки такой системы требуется
существенно больше вычислительных мощностей.
Для ускорения процесса разработчики используют GPU от NVIDIA, а
Google также и Tensor Processing Unit (TPU) – чипы собственной разработки,
адаптированные
специально
для
технологий
машинного
обучения.
23
Графические чипы изначально оптимизированы под алгоритмы матричных
вычислений, и поэтому выигрыш в производительности составляет 7-15 раз в
сравнении с CPU.
Даже при всем этом тренировка одной нейронной модели требует от 1
до 3 недель, тогда как статистическая модель примерно того же размера
настраивается за 1-3 дня, и с увеличением размера эта разница
увеличивается.
Однако не только технологические проблемы были тормозом для
развития нейронных сетей в контексте задачи машинного перевода. В конце
концов, обучать языковые модели можно было и раньше, пусть и медленнее,
но принципиальных препятствий не было.
Свою роль сыграла в том числе и мода на нейронные сети. Разработки
внутри себя вели многие, но заявлять об этом не спешили, опасаясь,
возможно, что не получат того прироста качества, которое общество ожидает
от словосочетания Neural Networks. Этим можно объяснить тот факт, что
сразу несколько нейронных переводчиков были анонсированы один за
другим.
Качество перевода: чей BLEU score толще?
Попробуем понять, соответствует ли рост качества перевода
накопленным ожиданиям и тому росту затрат, которые сопровождают
разработку и поддержку нейронных сетей для перевода. Google в своем
исследования демонстрирует, что нейронный машинный перевод дает
Relative Improvement от 58% до 87%, в зависимости от языковой пары, по
сравнению с классическим статистическим подходом (или Phrase Based
Machine Translation, PBMT, как его еще называют).
24
Табл. 1.3 — Рост качества перевода
SYSTRAN проводит исследование, в котором качество перевода
оценивается путем выбора из нескольких представленных вариантов,
сделанных различными системами, а также “человеческого” перевода. И
заявляет, что его нейронный перевод предпочитают в 46% случаев переводу,
сделанному человеком.
Табл. 1.4 — Результаты исследования SYSTRAN
25
1.6
Качество перевода: есть ли прорыв?
Несмотря на то, что Google заявляет об улучшении на 60% и даже
выше, в этом показателе есть небольшой подвох. Представители компании
говорят о “Relative Improvement”, то есть насколько им удалось с нейронным
подходом приблизится к качеству Human Translation по отношению к тому,
что было в классическом статистическом переводчике.
Эксперты отрасли, анализирующие результаты, представленные
Google в статье “Google's Neural Machine Translation System: Bridging the Gap
between Human and Machine Translation”, достаточно скептически относятся к
представленным результатам и говорят, что фактически BLEU score удалось
улучшить только на 10%, а существенный прогресс заметен именно на
достаточно простых тестах из Wikipedia, которые, скорее всего, были
использованы и в процессе обучения сети (cossa.ru).
Внутри PROMT мы регулярно проводим сравнение перевода на
различных текстах наших систем с конкурентами, и поэтому под рукой
всегда есть примеры, на которых мы можем проверить, действительно ли
нейронный перевод так превосходит предыдущее поколение, как заявляют
производители.
Исходный текст (EN): Worrying never did anyone any good. Перевод
Google PBMT: Не беспокоясь не делал никому ничего хорошего. Перевод
Google NMT: Беспокойство никогда никому не помогало.
Кстати, перевод той же фразы на Translate.Ru— “Волнение никогда не
приносило никому пользы”; можно заметить, что он был и остался таким же
и без использования нейронных сетей.
Microsoft Translator в этом вопросе тоже не отстает. В отличие от
коллег из Google, они даже сделали сайт, на котором можно сделать перевод
26
и сравнить два результата: нейронный и донейронный, чтобы убедиться, что
утверждения о росте в качестве не голословны.
Рис. 1.20 — Прогресс качества перевода
На этом примере мы видим, что прогресс есть, и он действительно
заметный. На первый взгляд, похоже, что заявление разработчиков о том, что
машинный перевод практически догнал “человеческий” — правда. Но так ли
это на самом деле, и что это значит с точки зрения практического
применения технологии для бизнеса?
В
общем
случае
перевод
с
применением
нейронных
сетей
превосходит перевод статистический, и у этой технологии есть огромный
потенциал для развития. Но если внимательно подойти к вопросу, то мы
сможем убедиться, что прогресс не во всем, и не для всех задач можно
применять нейронные сети без оглядки на саму задачу.
27
1.7 Задачи машинного перевода
От автоматического переводчика всю историю его существования – а
это уже более 60 лет! – ждали некой магии, представляя его как машинку из
фантастических фильмов, которая мгновенно переводит любую речь в
инопланетный свист и обратно.
На самом деле, задачи бывают разного уровня, один из которых
подразумевает “универсальный” или, если можно так выразится, “бытовой”
перевод для повседневных задач и облегчения понимания. С задачами этого
уровня прекрасно справляются онлайн-сервисы по переводу и множество
мобильных продуктов.
К таким задачам можно отнести:
быстрый перевод слов и коротких текстов для различных целей;
автоматический перевод в процессе общения на форумах, в
социальных сетях, мессенджерах;
автоматический перевод при чтении новостей, статей Wikipedia;
переводчик в путешествиях (mobile).
Все те примеры роста качества перевода с использованием нейронных
сетей, которые мы рассматривали выше, как раз и относятся к этим задачам.
Однако с целями и задачами бизнеса в отношении машинного
перевода все обстоит несколько
иначе. Вот, например, некоторые
требования, которые предъявляются к корпоративным системам машинного
перевода:
перевод
деловой
переписки
с
клиентами,
партнерами,
инвесторами, иностранными сотрудниками;
локализация сайтов, интернет-магазинов, описаний продуктов,
инструкций;
28
перевод пользовательского контента (отзывы, форумы, блоги);
возможность
интеграции
перевода
в
бизнес-процессы
и
программные продукты и сервисы;
точность
перевода
с
соблюдением
терминологии,
конфиденциальность и безопасность.
Попробуем понять на примерах, решаемы ли любые задачи бизнеса по
переводу с помощью нейронных сетей и как именно.
Кейс: Amadeus
Amadeus – одна из крупнейших в мире глобальных систем
дистрибуции
авиабилетов.
С
одной
стороны,
к
ней
подключены
авиаперевозчики, с другой – агентства, которые должны получать всю
информацию об изменениях в режиме реального времени и доносить до
своих клиентов.
Задача – локализация условий применения тарифов (Fare Rules),
формирующихся в системе бронирования автоматически из разных
источников. Эти правила формируются всегда на английском языке. Ручной
перевод здесь практически невозможен, ввиду того, что информации много и
она часто меняется. Агент по продаже авиабилета хотел бы читать Fare Rules
на русском языке, чтобы оперативно и квалифицированно консультировать
своих клиентов (blog.systransoft.com).
Требуется понятный перевод, передающий смысл тарифных правил, с
учетом типичных терминов и аббревиатур. Также требуется, чтобы
автоматический перевод был интегрирован непосредственно в систему
бронирования Amadeus.
Попробуем сравнить перевод, сделанный через PROMT Cloud API,
интегрированный в Amadeus Fare Rules Translator, и “нейронный” перевод от
Google.
Оригинал:
ROUND TRIP INSTANT PURCHASE FARES
29
PROMT
(Аналитический
подход):
ТАРИФЫ
МГНОВЕННОЙ
ПОКУПКИ РЕЙСА ТУДА И ОБРАТНО
GNMT: КРУГЛЫЕ ПОКУПКИ
Очевидно, что тут нейронный переводчик не справляется, и чуть
дальше станет понятно, почему.
Кейс: TripAdvisor
TripAdvisor один из крупнейших в мире туристических сервисов,
который не нуждается в представлении. По данным статьи, опубликованной
The Telegraph, ежедневно на сайте появляется 165600 новых отзывов о
различных туристических объектах на разных языках.
Задача перевод отзывов туристов с английского на русский язык с
качеством перевода, достаточным для того, чтобы понять смысл этого
отзыва. Основная сложность: типичные особенности user generated content
(тексты с ошибками, опечатками, пропусками слов).
Также частью задачи была автоматическая оценка качества перевода
перед публикацией на сайте TripAdvisor. Так как ручная оценка всего
переводимого контента невозможна, решение по машинному переводу
должно
предоставить
автоматический
механизм
оценки
качества
переведенных текстов — confidence score, чтобы дать возможность
TripAdvisor публиковать переведенные отзывы только высокого качества.
Для решения была использована технология PROMT DeepHybrid,
позволяющая получить более качественный и понятный конечному читателю
перевод в том числе и за счет статистического постредактирования
результатов перевода.
Посмотрим на примеры:
Оригинал: We ate there last night on a whim and it was a lovely meal. The
service was attentive without being over bearing.
PROMT (Гибридный перевод): Мы ели там в последний вечер
случайно, и это была прекрасная еда. Персонал был внимательным, но не
властным.
30
GNMT: Мы ели там прошлой ночью по прихоти, и это была
прекрасная еда. Обслуживание было внимательным, не будучи более
подшипников.
Здесь все не так удручающе с точки зрения качества, как в
предыдущем
примере.
Вообще,
по
своим
параметрам
эта
задача
потенциально может быть решена с применением нейронных сетей, и это
может еще повысить качество перевода.
1.8 Проблемы использования NMT для бизнеса
Как уже говорилось ранее, “универсальный” переводчик не всегда
дает приемлемое качество и не может поддерживать специфическую
терминологию. Чтобы интегрировать в свои процессы и применять
нейронные сети для перевода, нужно выполнить основные требования:
наличие достаточных объемов параллельных текстов для того,
чтобы иметь возможность обучать нейронную сеть. Часто у заказчика их
просто мало или вообще текстов по данной тематике не существует в
природе. Они могут быть засекречены или находится в состоянии не очень
пригодном для автоматической обработки;
для создания модели нужна база, где содержится минимум 100
млн. токенов (словоупотреблений), а чтобы получить перевод более-менее
приемлемого качества, – 500 млн. токенов. Далеко не каждая компания
обладает таким объемом материалов;
наличие механизма или алгоритмов автоматической оценки
качества получаемого результата;
достаточные вычислительные мощности;
“универсальный” нейронный переводчик чаще всего не подходит
по качеству, а чтобы развернуть свою частную нейронную сеть, способную
31
обеспечить приемлемое качество и скорость работы, требуется “маленькое
облако”;
непонятно, что делать с конфиденциальностью. Не каждый
заказчик готов отдавать свой контент для перевода в облако по
соображениям безопасности, а NMT – это история в первую очередь
облачная (blog.systransoft.com).
Выводы по главе I
В общем случае нейронный автоматический перевод дает результат
более
высокого
качества,
чем
“чисто”
статистический
подход;
Автоматический перевод через нейронную сеть – лучше подходит для
решения задачи “универсального перевода”;
Ни один из подходов к МП сам по себе не является идеальным
универсальным инструментом для решения любой задачи перевода;
Для решения задач по переводу в бизнесе только специализированные
решения могут гарантировать соответствие всем требованиям.
Мы приходим к абсолютно очевидному и логичному решению, что
для своих задач по переводу нужно использовать тот переводчик, который
максимально для этого подходит. Либо – создать свой, более продвинутый и
комплексный.
32
ГЛАВА II. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ПОМОЩНИКА ДЛЯ
ИЗУЧЕНИЯ ЯЗЫКА/ ПЕРЕВОДА
2.1 Знакомство с JavaScript
Что такое JavaScript?
JavaScript изначально создавался для того, чтобы сделать webстранички “живыми”. Программы на этом языке называются скриптами. В
браузере они подключаются напрямую к HTML и, как только загружается
страничка – тут же выполняются.
Программы на JavaScript – обычный текст. Они не требуют какой-то
специальной подготовки.
В этом плане JavaScript сильно отличается от другого языка, который
называется Java.
Почему JavaScript?
Когда создавался язык JavaScript, у него изначально было другое
название: “LiveScript”. Но тогда был очень популярен язык Java, и
маркетологи решили, что схожее название сделает новый язык более
популярным.
Планировалось, что JavaScript будет своеобразным
«младшим
братом» Java. Однако, история распорядилась по-своему, JavaScript сильно
вырос, и сейчас это совершенно независимый язык, со своей спецификацией,
которая называется ECMAScript, и к Java не имеет никакого отношения.
У него много особенностей, которые усложняют освоение, но в
процессе исследования мы с ними разберёмся.
JavaScript может выполняться не только в браузере, а где угодно,
нужна лишь специальная программа – интерпретатор. Процесс выполнения
скрипта называют “интерпретацией”.
Компиляция и интерпретация, для программистов
33
Для выполнения программ, неважно на каком языке, существуют два
способа: “компиляция” и “интерпретация”.
Компиляция – это когда исходный код программы, при помощи
специального
инструмента,
другой
программы,
которая
называется
“компилятор”, преобразуется в другой язык, как правило – в машинный код.
Этот машинный код затем распространяется и запускается. При этом
исходный код программы остаётся у разработчика.
Интерпретация – это когда исходный код программы получает другой
инструмент, который называют “интерпретатор”, и выполняет его “как есть”.
При этом распространяется именно сам исходный код (скрипт). Этот подход
применяется в браузерах для JavaScript.
Современные интерпретаторы перед выполнением преобразуют
JavaScript в машинный код или близко к нему, оптимизируют, а уже затем
выполняют. И даже во время выполнения стараются оптимизировать.
Поэтому JavaScript работает очень быстро.
Во все основные браузеры встроен интерпретатор JavaScript, именно
поэтому они могут выполнять скрипты на странице. Но, разумеется,
JavaScript можно использовать не только в браузере. Это полноценный язык,
программы на котором можно запускать и на сервере, и даже в стиральной
машинке, если в ней установлен соответствующий интерпретатор.
34
2.2 Использование JavaScript в браузерах
Что умеет JavaScript?
Современный JavaScript – это “безопасный” язык программирования
общего назначения. Он не предоставляет низкоуровневых средств работы с
памятью, процессором, так как изначально был ориентирован на браузеры, в
которых это не требуется (Хавербек, 2014).
Что же касается остальных возможностей – они зависят от
окружения, в котором запущен JavaScript. В браузере JavaScript умеет делать
всё, что относится к манипуляции со страницей, взаимодействию с
посетителем и, в какой-то мере, с сервером, например:
создавать новые HTML-теги, удалять существующие, менять
стили элементов, прятать, показывать элементы и т.п;
реагировать на действия посетителя, обрабатывать клики мыши,
перемещения курсора, нажатия на клавиатуру и т.п;
посылать запросы на сервер и загружать данные без перезагрузки
страницы (эта технология называется "AJAX");
получать и устанавливать cookie, запрашивать данные, выводить
сообщения и многое, многое другое!
Что НЕ умеет JavaScript?
JavaScript – быстрый и мощный язык, но браузер накладывает на его
исполнение некоторые ограничения.
Это сделано для безопасности пользователей, чтобы злоумышленник
не мог с помощью JavaScript получить личные данные или как-то навредить
компьютеру пользователя.
Этих ограничений нет там, где JavaScript используется вне браузера,
например на сервере. Кроме того, современные браузеры предоставляют
свои механизмы по установке плагинов и расширений, которые обладают
35
расширенными возможностями, но требуют специальных действий по
установке от пользователя.
Большинство
возможностей
JavaScript
в
браузере
ограничено
текущим окном и страницей.
JavaScript не может читать/записывать произвольные файлы на
жесткий диск, копировать их или вызывать программы. Он не имеет прямого
доступа к операционной системе.
Современные браузеры могут работать с файлами, но эта возможность
ограничена специально выделенной директорией – «sandbox». Возможности
по доступу к устройствам также прорабатываются в современных стандартах
и частично доступны в некоторых браузерах.
JavaScript, работающий в одной вкладке, не может общаться с
другими вкладками и окнами, за исключением случая, когда он сам открыл
это окно или несколько вкладок из одного источника (одинаковый домен,
порт, протокол).
Есть способы это обойти, но они требуют специального кода на оба
документа, которые находятся в разных вкладках или окнах. Без него, из
соображений безопасности, залезть из одной вкладки в другую при помощи
JavaScript нельзя.
Из JavaScript можно легко посылать запросы на сервер, с которого
пришла страница. Запрос на другой домен тоже возможен, но менее удобен,
т. к. и здесь есть ограничения безопасности.
В чём уникальность JavaScript?
Есть как минимум три замечательных особенности JavaScript:
Полная интеграция с HTML/CSS.
Простые вещи делаются просто.
Поддерживается всеми распространёнными браузерами и включён по
умолчанию.
Этих трёх вещей одновременно нет больше ни в одной браузерной
технологии.
36
Поэтому JavaScript и является самым распространённым средством
создания браузерных интерфейсов.
2.3
Фундамент приложения
Данный прототип представляет собой расширение для браузера
Mozilla Firefox. Почему именно он? Это второй по популярности браузер,
первый же Google chrome – уже имеет свой встроенный переводчик.
Сама программа написана на языке JavaScript и Framework vue.
Сборщиком проекта послужил node.js. Так оно выглядит в настройках
расширений:
Рис. 2.1 — Вид приложения во вкладке расширения
2.4 Процесс работы расширения
Представим ситуацию: юзер, заходя на англоязычный сайт, видит
незнакомое ему слово. Что делают в такой ситуации абсолютное
большинство? Верно – открывают google translate. Здесь данное расширение
и показывает себя с лучшей стороны. Вы делаете два щелчка левой кнопкой
мыши по нужному слову, javascript ищет это слово в огромной базе данных
сайта lingualeo.com, и вот перед вами сразу несколько вариантов перевода,
транскрипция и озвучка.
37
Рис. 2.2 — Расширение в работе
Программа переводит как
словосочетания, например:
простые слова,
так
и
небольшие
38
Рис. 2.3 — Пример перевода словосочетаний
Немного по-другому обстоит дело с переводом больших предложений
и текстов:
Рис. 2.4 — Пример перевода предложений
Как
видно
на
экспериментальный вид.
скриншоте
выше,
функция
пока
имеет
39
2.5
Функционал программы
Программа была написана на скорую руку, она обладает огромным
потенциалом , но уже на данном этапе может похвастаться:
правильностью перевода;
возможностью перевода словосочетаний;
транскрипция;
голосовая озвучка.
Выбор внешнего вида программы осуществляется в настройках
расширения, там же можно переназначить клавиши и т.д.:
Рис. 2.5 — Настройки программы
40
Выводы по II главе
Во второй исследовательской главе квалификационной работы мы
вначале изучили теоретические принципы работы необходимых нам
инструментов, а затем успешно применил их на практике.
Данная глава также повествует о сути, принципе, достоинствах и
недочетах самой программы.
Можно сделать вывод, что до конечного результата, эта программа
должна пройти еще не малый путь. В дальнейшем представляется
необходимым:
улучшить перевод предложений и больших объемов текста;
доносить правильный смысл перевода в текущем контексте;
улучшить/расширить возможности озвучки;
добавить возможность использования программы на других
устройствах.
Именно такие цели стоят в данный момент для следующих
обновлений приложения.
41
ЗАКЛЮЧЕНИЕ
Было проведено исследование на тему, посвященную нейронным
сетям в машинном переводе. Была поставлена и выполнена задача изучить
суть строения нейронных сетей в переводе, их виды и структуру, их
недостатки и преимущества на основе уже существующих экземпляров. Как
не грустно признавать, но теоретическая часть показала, что идеальный
вариант программы по переводу или изучению языка до сих пор не найден.
Нашей же дальнейшей целью стоит апгрейд представленной в
практической части исследования версии программы, до той, что достойна
увидеть свет, выйти на рынок и конкурировать с уже имеющимися.
Будущее, бесспорно, стоит за искусственным интеллектом. Только
представьте, через какие-то 10-15 лет будет создана программа настолько
мощная и полноценная, что она сможет сравниться с той, что существует в
комиксной вселенной Marvel, а именно Джарвисом из Железного человека.
Да, пока что мы бесспорно очень далеки от этого, но начало уже положено.
Системы с нейронным машинным переводом станут фундаментом для своих
последователей, функционал которых уже не будет ограничиваться одним
лишь переводом. Мы говорим об изучении языка во время прогулки по
улицам Лондона, Шанхая или Стокгольма. Искусственный интеллект будет
не просто роботизированно отвечать на ваши вопросы, а беседовать с вами,
давать советы, исправлять произношение, возможно даже делать заказ в
ресторане вместо вас на другом языке. Все это – будущее. М надеемся лишь
на то, чтобы человек не потерял в этом будущем самого себя.
42
СПИСОК ИСПОЛЬЗУЕМЫХ РЕСУРСОВ
1.
Барский, А. Б. Логические нейронные сети / А.Б. Барский. – М.:
Интернет-университет информационных технологий, Бином. Лаборатория
знаний, 2007. – 352 c.
2.
Позин, Н. В. Моделирование нейронных структур / Н.В. Позин. –
М.: Наука, 1970. – 264 c.
3.
Круглов, В.В. Искусственные нейронные сети. Теория и
практика: монография. / В.В. Круглов, В.В. Борисов. – М.: Горячая линия –
Телеком; Издание 2-е, стер., 2002. – 382 c
4.
Толкачев, С. Нейронное программирование диалоговых систем /
С. Толкачев. – Москва: РГГУ, 2016. – 192 c.
5.
Галушкин, А.И. Нейронные сети: основы теории / А.И.
Галушкин. – М.: ГЛТ, 2012. – 496 c.
6.
Галушкин, А.И. Нейронные сети: история развития теории:
учебное пособие для вузов. / А.И. Галушкин, Я.З. Цыпкин. – М.: Альянс,
2015. - 840 c.
7.
Усков,
А.А.
Интеллектуальные
технологии
управления.
Искусственные нейронные сети и нечеткая логика. / А.А. Усков, А.В.
Кузьмин. - М.: Горячая линия –Телеком , 2004. – 143 c.
8.
Редько, В.Г. Эволюция, нейронные сети, интеллект: Модели и
концепции эволюционной кибернетики / В.Г. Редько. – М.: Ленанд, 2015. –
224 c.
9.
Влахов, С., Непереводимое в переводе / С. Влахов, С. Флорин. –
2-е изд. – М.: Высш. школа, 1986. – 416 с.
10. Винокуров, А.А. Новый метод оценки машинного перевода //
Информационные технологии и системы / А.А. Винокуров, В.О. Чуканов //
43
Hardware Software Security. Тенденции и перспективы: Сборник статей. – М.:
Международная академия информатизации, 1997. – с. 20–41.
11. Трутнев, А.Ю. Оптимизация процесса перевода при помощи
электронных средств // Социокультурные проблемы перевода: сборник
научных трудов / под ред. Н.А. Фененко. – 2012. – Вып. 10. – С. 222–227.
12. Вокуа, Бернард The approach of GETA to automatic translation.
Comparison with some other methods , International Symposium on Mechanical
Translation, Эр-Рияд, 1985. – 67 с.
13. Вокуа, Бернард Automated Translation at Grenoble University ,
Вычислительная лингвистика, том 11, 1985. – с. 28-36.
14. Вокуа, Бернард A survey of formal grammars and algorithms for
recognition and transformation in mechanical translation , IFIP Congress, 1968. –
с. 1114-1122.
15. Хавербек, Мартин Eloquent JavaScript: A Modern Introduction to
Programming , 2014. – 619 с.
16. Кохонен, Тойво The self-organizing map, Proceedings of the Institute
of Electrical and Electronics, том 78, 1990. – с. 1464 – 1480.
17. Хайкин, Саймон Нейронные сети. Полный курс / Саймон Хайкин.
- М.: Вильямс, 2016. - 605 c.
18. Горбань А. Н. Нейронные сети на персональном компьютере. —
Новосибирск: Наука, 1996. — 276 с.
19. Горбань А. Н. Обучение нейронных сетей. М.: СССР-США СП
“ПараГраф”, 1990. — 160 с.
20. http://blog.systransoft.com
21. https://www.cossa.ru
22. https://translator.microsoft.com
44
ПРИЛОЖЕНИЕ
Manifest.json
{
"manifest_version": 2,
"name": "Fire Translate",
"version": "1.1.1",
"description": "Дипломный проект студента 4-го курса Белгородского
государственного национального исследовательского университета, группы
04001415 Руслана Фури",
"applications": {
"gecko": {
"id": "ruslanfury@diploma",
"strict_min_version": "55.0"
}
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["dist/vendor.js", "dist/content-render.js"],
"run_at": "document_end"
},
{
"matches": ["<all_urls>"],
"js": ["dist/vendor.js", "dist/content-capture.js"],
"run_at": "document_end",
"all_frames": true
45
}
],
"background": {
"scripts": [
"dist/vendor.js",
"dist/background.js"
]
},
"browser_action": {
"browser_style": true,
"default_icon": "icons/icon128.png",
"theme_icons": [
{
"light": "icons/light-icon.svg",
"dark": "icons/icon.svg",
"size": 16
},
{
"light": "icons/light-icon.svg",
"dark": "icons/icon.svg",
"size": 32
}
],
"default_title": "FireTranslate",
"default_popup": "templates/browser-action.html"
},
"icons": {
46
"16": "icons/icon16.png",
"48": "icons/icon48.png",
"128": "icons/icon128.png"
},
"options_ui": {
"page": "templates/options-page.html",
"browser_style": true
},
"commands": {
"_execute_browser_action": {
"suggested_key": {
"default": "Ctrl+Shift+L"
}
}
},
"permissions": [
"contextMenus",
"activeTab",
"notifications",
"storage",
"*://api.lingualeo.com/*"
],
"web_accessible_resources": ["templates/popup-iframe.html"]
}
47
Browser-action
<!DOCTYPE html>
<html class="theme-leo-translate browser-action">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {
margin: 0 auto;
padding: 0;
max-width: 300px;
}
</style>
</head>
<body>
<div id="the-browser-action"></div>
<script src="../dist/vendor.js"></script>
<script src="../dist/apply-theme.js"></script>
<script src="../dist/browser-action.js"></script>
</body>
</html>
Options-page
<!DOCTYPE html>
<html>
<head>
48
<meta charset="utf-8">
<title>LeoTranslate Settings</title>
</head>
<body>
<div id="the-options-page"></div>
<script src="../dist/vendor.js"></script>
<script src="../dist/options-page.js"></script>
</body>
</html>
Popup-frame
<!DOCTYPE html>
<html class="theme-leo-translate">
<head>
<meta charset="utf-8">
<style>
html, body {
margin: 0;
padding: 0;
border: none;
width: 250px;
overflow-x: hidden;
}
</style>
</head>
<body>
<div id="the-popup-iframe"></div>
49
<script src="../dist/vendor.js"></script>
<script src="../dist/apply-theme.js"></script>
<script src="../dist/popup-iframe.js"></script>
</body>
</html>
Отзывы:
Авторизуйтесь, чтобы оставить отзыв