Как мы создали первый в мире классификатор LSTM для языка Йемба.

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

Мы создаем первый в истории классификатор слов африканского языка на основе LSTM, Йемба. Никакие границы не могут остановить LSTM. Трансформеры, может быть.

Йемба язык

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

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

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

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

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

Мы не стремимся реализовать полное тегирование части речи. Скорее, мы научим сеть изучать группы букв и тонов, которые обычно встречаются в существительных Yemba, по сравнению с теми, которые характерны для глаголов Yemba.

Для этого мы используем предварительно обработанный англо-йембский набор данных, загруженный из онлайн-словаря Yemba.net. Мы рекомендуем вам посетить страницу и найти несколько переводов с английского, французского, немецкого, чешского, китайского, испанского, итальянского языков на Йемба. Это весело.

Выше мы видим несколько слов из словаря. Вы можете попробовать их прочитать, если хотите иметь хорошее настроение. Собственно, письмо йемба основано на международном фонетическом языке. Любой, кто разбирается в фонетике, действительно может читать и говорить на йемба! Теоретически.

Хотя мы ограничили наш набор данных существительными и глаголами, Yemba также включает прилагательные, наречия, союзы, местоимения и т. Д., Но в ограниченном количестве по сравнению с существительными и глаголами. Распределение типов слов показано ниже.

Ниже мы показываем немного статистики о нашем наборе данных.

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

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

Наша LSTM научится сопоставлять эти векторы с правильным типом слова: 0 для существительного и 1 для глагола. Поэтому мы также создаем вектор меток Y для хранения правильных классов.

Затем мы разбиваем наши векторы на обучающий набор из 2166 слов и проверочный набор из 542 слов.

Мы строим однослойный LSTM со 100 ячейками. Мы не передаем вектор слов напрямую в LSTM. Вместо этого мы сначала изучаем представление их вложений в 8-мерном пространстве.

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

Мы обучаем сеть, используя двоичную кроссентропию как функцию потерь и Адама как оптимизатора. Точность классификации используется в качестве метрики для оценки эффективности классификации, поскольку наши два класса довольно хорошо сбалансированы.

Как показано выше, сеть достигает конвергенции очень быстро. LSTM отлично справляется со своей задачей, прогнозируя с точностью классификации 93,91% на тестовом наборе данных.

Мы также попробовали GRU для нашей проблемы классификации Yemba, заменив уровень LSTM слоем GRU с тем же количеством единиц (100). Обучение было немного быстрее, а точность была немного лучше, 94,19% на проверочном наборе, вместо 93,91%, как в LSTM.

Теперь давайте оценим обученную сеть LSTM на 100 случайных существительных и 100 случайных глаголах и проверим матрицу путаницы.

Матрица путаницы показывает несколько ложноположительных и ложноотрицательных результатов: 1 глагол был предсказан как существительное, а 2 существительных были предсказаны как глаголы из 100. Слова с ошибочной классификацией показаны ниже.

Дело в том, что глаголы в Yemba обычно имеют заметный префикс «e», «le» или «li», который соответствует «to» в английском языке. Похоже, что эта семантическая или грамматическая конструкция была правильно уловлена ​​нашей символьной LSTM. Слово «ekubli», что в переводе с английского означает «скупость», начинается с «е». Следовательно, LSTM предсказал это как глагол, хотя это существительное. То же самое для «lefɔ», что означает «династия». Из-за префикса «le» оно считалось глаголом.

Заключение

Этот практический пример демонстрирует магию LSTM в улавливании семантических значений даже на удаленно недоступных языках со странной лексикой и фонетическими нюансами, такими как Yemba.

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