Как сделать переводчик на python
Перейти к содержимому

Как сделать переводчик на python

  • автор:

Автоматический переводчик на Python+GTK3. Альтернатива Яндексу

Ну вот и пришел долгожданный конец халяве(статья).

Честно говоря, было немного обидно. Вот чего им не хватает!

Я, разумеется, начал искать выход для себя и друзей. И нашел.

Этим выходом стала библиотека translators(Яндекс она тоже умеет).

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

Убрано было все, что касается Яндекс, добавлены библиотеки langdetect и translators. Первая для определения языка, ибо без доступа к API пришлось бы делать это вручную. Вторая, соответственно, модуль доступа к гугло-переводчику посредством urllib и requests.

Вот, собственно, все новшества:

. from langdetect import detect import translators as ts . indetect = detect(clip()) def definition(): if indetect == 'ru': langout = 'en' else: langout = 'ru' return langout def translate(): output = [] output = ts.google(clip(), to_language=definition(), if_use_cn_host=True) return output . 

Так же был изменен файл ~/.local/lib/python3.8/site-packages/translators/apis.py

53 #logger.add(sys.stdout, format='[] ', level='INFO') 120 #sys.stderr.write(f'Using server backend.\n') 144 self.cn_host_url = 'https://translate.google.ru' 151 self.output_zh = 'ru-RU'

Ну вот совсем мне не нужен вывод отладочной информации, строки 53 и 120, а так же умолчальный сервер и вывод в 144 и 151 изменен с китайского на русский.

Проект на github.

P.S: Переводчик от Google, как оказалось, справляется со своим предназначением лучше яндексовского.

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

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

Это краткое руководство, в котором я покажу как легко сделать запустить переводчик текста 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

Перевод текста в реальном времени

Можно ли реализовать автоматический перевод текста после печатания? Суть заключается в том, что в любое поле, где можно печатать, переводить текст в реальном времени (можно и комбинациями клавиш переводить). Код не имеет ничего общего с переводом текста в реальном времени, но суть примерно такая.

from googletrans import Translator while True: word = str(input()) translator = Translator() result = translator.translate(word, dest = 'en') print(result.text) 

Отслеживать

73.1k 107 107 золотых знаков 38 38 серебряных знаков 55 55 бронзовых знаков

задан 2 дек 2021 в 19:19

ByteBlunder ByteBlunder

133 8 8 бронзовых знаков

Python – перевод текста

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

Этот пакет можно установить следующим образом. Он обеспечивает перевод для основных языков.

pip install translate

Ниже приведен пример перевода простого предложения с английского на немецкий. По умолчанию из языка используется английский.

from translate import Translator translator= Translator(to_lang="German") translation = translator.translate("Good Morning!") print translation

Когда мы запускаем вышеуказанную программу, мы получаем следующий вывод:

Guten Morgen!

Между любыми двумя языками

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

from translate import Translator translator= Translator(from_lang="german",to_lang="spanish") translation = translator.translate("Guten Morgen") print translation

Когда мы запускаем вышеуказанную программу, мы получаем следующий вывод:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *