Обробка природної мови (NLP) у Python з кодом (Частина 7. Машинний переклад)

Oleh Dubetcky
2 min readOct 21, 2023

--

Розглянемо екосистему OPUS з акцентом на розробку відкритих моделей і інструментів машинного перекладу.

Photo by Immo Wegmann on Unsplash

Попередні статті з обробки природної мови (NLP):

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

Helsinki-NLP робить важливу роботу, надаючи безкоштовно доступні моделі машинного перекладу на платформі Hugging Face. Це важливий ресурс для розвитку машинного перекладу та роботи з мовами, які можуть бути менш популярними або менш вивченими, оскільки вони навчені на різних мовних комбінаціях і даних OPUS.

OPUS-MT — це односпрямовані або двомовні моделі машинного перекладу (Machine Translate, MT), розроблені групою Helsinki-NLP. На даний момент існує більше 1000 моделей OPUS-MT. Кожна модель базується на трансформаторі з шістьма рівнями кодера та декодера. Кожна модель навчається з нуля за допомогою паралельних даних OPUS. Наприклад, модель Helsinki-NLP/opus-mt-en-uk навчається з використанням корпусу з паралельними реченнями з англійської та української мов. Тут en у назві моделі означає англійську мову (вихідна мова), а uk — українську мову (цільову мову).

EasyNMT — це бібліотека для нейронного машинного перекладу, яка спрощує використання передових моделей машинного перекладу. Вона дозволяє легко використовувати глибокі нейронні мережі для автоматичного перекладу текстів між різними мовами.

Ось переваги бібліотеки EasyNMT:

  • Бібліотека EasyNMT підтримує автоматичне визначення мови, завдяки чому нам не потрібно вказувати вхідну мову.
  • Немає необхідності явно завантажувати токенізатор і налаштовані моделі. Бібліотека EasyNMT автоматично завантажує токенізер і модель для вказаного model_name.
  • EasyNMT підтримує переклад документів. Якщо довжина вихідної послідовності перевищує максимальну довжину послідовності моделі, вихідна послідовність розбивається на речення, а потім кожне речення перекладається.

Ось кілька кроків, які можна виконати для використання EasyNMT:

#First install EasyNMT 
!pip install easynmt
# Import the library
from easynmt import EasyNMT
#Load the model
model = EasyNMT('opus-mt')

#Translate source sentence to English
print(model.translate('Можна практикувати де завгодно, тільки він не працює і сенсу жодного не має.', target_lang='en'))
#output: You can practice anywhere, except it doesn't work and it doesn't make any sense.

#Translate source sentence to Ukrainian
print(model.translate("You can practice anywhere, except it doesn't work and it doesn't make any sense.", target_lang='uk'))
#output: Ви можете тренуватися будь-де, але це не працює і це не має ніякого сенсу.

Повний приклад у Colab

Якщо вам сподобалася стаття, внизу можна підтримати автора плесканням 👏🏻 Дякую за прочитання!

Олег Дубецький|Linkedin

--

--

Oleh Dubetcky
Oleh Dubetcky

Written by Oleh Dubetcky

I am an management consultant with a unique focus on delivering comprehensive solutions in both human resources (HR) and information technology (IT).

No responses yet