Машинный перевод текста на Python

Машинный перевод текста на Python

Автор: Рамис | Статьи 08 декабря 2022

Это краткое руководство, в котором я покажу как легко сделать запустить переводчик текста en-ru с помощью Python библиотеки Transformers (Hugging Face), и предварительно обученной модели Helsinki-NLP/opus-mt-en-ru.

Быстрый старт

Создадим каталог с виртуальным окружением и установим необходимые библиотеки через PyPI.

mkdir HF && cd HF
python -m venv env
env\scripts\activate

pip install transformers[torch]
pip install sentencepiece
pip install sacremoses

Сохраним модель и файл конфигурации в каталог с проектом, что бы использовать ее в автономном режиме (размер ~300 Мбайт).

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

mname = "Helsinki-NLP/opus-mt-en-ru"

tokenizer = AutoTokenizer.from_pretrained(mname)
model = AutoModelForSeq2SeqLM.from_pretrained(mname)

tokenizer.save_pretrained('./model/en-ru-local')
model.save_pretrained('./model/en-ru-local')

Готово, запустим переводчик и проверим его работу.

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

# mname = "Helsinki-NLP/opus-mt-en-ru"

tokenizer = AutoTokenizer.from_pretrained('./model/en-ru-local')
model = AutoModelForSeq2SeqLM.from_pretrained('./model/en-ru-local')

# tokenizer.save_pretrained('./model/en-ru-local')
# model.save_pretrained('./model/en-ru-local')

while True:
    inputs = tokenizer(input('text: '), return_tensors="pt")
    output = model.generate(**inputs, max_new_tokens=100)
    out_text = tokenizer.batch_decode(output, skip_special_tokens=True)
    print(out_text[0])

Результат

>text: Hello, my name is Ramis
Привет, меня зовут Рамис.
>text: Welcome to your personal dashboard, where you can find an introduction to how GitHub works, tools to help you build software, and help merging your first lines of code.
Добро пожаловать в вашу персональную панель, где вы можете найти вводные данные о том, как работает GitHub, инструменты, которые помогут вам создать программное обеспечение, и помочь объединить ваши первые строки кода.

Дополнительно

Дополнительную информацию можете найти на Hugging Face

Комментарии

Markdown
Войти