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

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

  • автор:

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

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

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

Отслеживать

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

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

ByteBlunder ByteBlunder

143 1 1 серебряный знак 8 8 бронзовых знаков

Автоматический перевод текста с помощью Selenium в Python

Доброго времени суток! В данной статье я покажу Вам как можно автоматизировать перевод (в примере — с английского на русский) небольших кусков текста с Selenium.

Проект создается в бесплатной среде разработки PyCharm Community Edition. Помимо этого вам еще нужен будет скачанный драйвер браузера Chromium — вот здесь Вы можете найти нужную версию: https://chromedriver.storage.googleapis.com/index.html.

Итак, для начала установим сам Selenium:

$ pip install selenium

Далее скачанный файл chromedriver положите в папку venv/bin (предполагается, что Вы работаете в виртуальной среде, автоматически созданной при генерировании проекта PyCharm)

А теперь непосредственно код:

from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By

# чтение английского содержимого
def get_file_content(filename):
with open(filename, ‘r’) as fd:
return fd.read()

# запись полученного ответа
def write_file(filename, content):
with open(filename, ‘w’) as fd:
fd.write(content)

# сам перевод
def get_translate():
driver = Chrome()
# размер окна
driver.set_window_size(1360, 860)
# ссылка на сервис перевода
driver.get(«https://translate-service-url/»)

# засыпаем на 5 секунд
time.sleep(5)

# читаем содержимое файла и отправляем его в форму перевода
fakeArea = driver.find_element(by=By.ID, value=»inputText»)
content = get_file_content(‘english.txt’)
fakeArea.send_keys(content)

# получаем перевод
translation = driver.find_element(by=By.ID, value=»outputText»)
value = translation.get_attribute(‘textContent’)

# записываем в файл
write_file(‘./output.txt’, value)
print(«Перевод текста завершен»)

if __name__ == ‘__main__’:
get_translate()

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

Создано 07.06.2022 13:55:26

  • Михаил Русаков
  • Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

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

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

    Комментарии ( 0 ):

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2024 Русаков Михаил Юрьевич. Все права защищены.

    API Google Translate перевод текста на Python

    API Google Translate перевод текста на Python

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

    Знакомство

    Googletrans — это бесплатная и неограниченная библиотека Python, в которой реализован API Google Translate. Он использует API Google Translate Ajax для вызова методов перевода и определение языка.

    • Максимальное количество символов в одном тексте — 15 КБ.
    • Из-за ограничений веб-версии Google Translate этот API не гарантирует, что библиотека будет работать должным образом.
    • Если вы хотите использовать стабильный API, я настоятельно рекомендую вам использовать официальный API перевода Google.
    • Если вы получаете ошибку HTTP 5xx или ошибки типа #6, вероятно это связано с тем, что Google заблокировал IP-адрес вашего клиента.

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

    Установим библиотеку через PyPI (Совместим с Python 3.6+).

    pip install googletrans 

    Пример кода, который переведет текст hello world на русский

    from googletrans import Translator translator = Translator() result = translator.translate('hello world', src='en', dest='ru') print(result.text) # Привет мир 
    • translate(text, dest=’en’, src=’auto’)
      • text — Исходный текст для перевода.
      • src — Язык исходного текста
      • dest — Язык для перевода исходного текста.

      Так же можно определить язык текста.

      from googletrans import Translator translator = Translator() r1 = translator.detect('你好') r2 = translator.detect('Привет') print(f'Язык: , достоверность: ') print(f'Язык: , достоверность: ') 
      • detected(lang, confidence)
        • lang — обнаруженный язык
        • confidence — достоверность результата обнаружения

        Языковые коды для перевода

        Так же можно использовать массив для перевода текста

        from googletrans import Translator translator = Translator() translations = translator.translate(['여보세요', 'Hello', 'Ahoj'], dest='ru') for translation in translations: print(translation.origin, ' -> ', translation.text) #여보세요 -> Привет #Hello -> Привет #Ahoj -> Здравствуй 

        Перевод текста с помощью Google Translate API в Python

        Если вы не прятались под скалой, вы, вероятно, много раз использовали Google Translate. Всякий раз, когда вы пытаетесь перевести слово или предложение с определенного языка на другой, именно API Google Translate предоставляет вам желаемые результаты в фоновом режиме. Хотя вы можете переводить что угодно, просто перейдя на веб-страницу Google Translate, вы также можете интегрировать Google Translate API в свои веб-приложения или программы для ПК. Самое лучшее в API — это то, что он чрезвычайно прост в настройке и использовании.

        На самом деле вы можете многое сделать с помощью Google Translate API, начиная от определения языков и заканчивая простым переводом текста, настройкой исходного и целевого языков и переводом целых списков текстовых фраз. В этой статье вы узнаете, как работать с Google Translate API на языке программирования Python.

        Установка Google Translate API

        Прежде чем вы сможете работать с Google Translate API в Python, вам нужно будет установить его. Существует два разных способа установки API. Первый способ прост. Просто зайдите в терминал и используйте pip для установки API, как и для любой другой библиотеки Python. Для этого введите в своем терминале следующую команду:

        pip install googletrans

        Нажмите Enter и модуль Python для Google Translate API будет установлен в вашей системе.

        Если вы установили дистрибутив Python для Anaconda, вы можете установить API с помощью Anaconda Prompt. В этом конкретном методе вы замените в приведенной выше команде pip на conda , как показано в следующем фрагменте кода:

        conda install googletrans

        Теперь, когда вы установили API, мы увидим его в действии с помощью нескольких примеров.

        Список поддерживаемых языков

        Google Translate API поддерживает множество языков. Чтобы вывести список всех поддерживаемых языков, запустите следующий скрипт:

        import googletrans print(googletrans.LANGUAGES) 

        В приведенном выше примере вы используете ключевое слово import для импорта модуля googletrans . Впоследствии вы можете перечислить все названия языков, напечатав атрибут LANGUAGES модуля googletrans .

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

        Основное использование

        Основное использование Google Translate API — это, конечно, перевод слов или предложений с одного языка на другой. Для этого мы должны импортировать класс Translator из модуля googletrans .

        from googletrans import Translator 

        Далее вы должны создать объект класса Translator .

        translator = Translator() 

        Как только объект класса Translator создан, вы передадите текст на исходном языке в качестве параметра методу translate() объекта класса Translator() , как показано ниже:

        result = translator.translate('Mitä sinä teet') 

        В приведенном выше сценарии мы передаем финский текст методу translate() .

        Метод translate() возвращает объект, содержащий информацию о переводе текста, источника и назначения языков и произношения текста. По умолчанию метод translate() возвращает английский перевод текста, переданного ему. В нашем случае объект, возвращаемый методом translate() , сохраняется в переменной result .

        Объект, возвращаемый методом translate() , имеет следующие атрибуты:

        1. src : Исходный язык
        2. dest : Язык назначения, установленный на английский (en)
        3. origin : Оригинальный текст, в нашем примере это Mitä sinä teet
        4. text : Переведенный текст, в нашем случае это будет «what are you doing?»
        5. pronunciation : Произношение переведенного текста

        Давайте напечатаем все вышеперечисленные атрибуты и посмотрим, что мы получим

        print(result.src) print(result.dest) print(result.origin) print(result.text) print(result.pronunciation) 
        fi en Mitä sinä teet What are you doing What are you doing 

        Выходные данные показывают, что исходный язык — финский (fi), а язык назначения — английский (en). Переведенное предложение можно распечатать через атрибут text .

        В приведенном выше примере мы не указали исходный язык. Поэтому Google Translate API пытается определить исходный язык. Аналогично, мы также не указали ни одного языка назначения, и поэтому API перевел исходный язык на язык по умолчанию, английский. Но что, если вы хотите указать исходный и целевой языки?

        Указание исходного и целевого языков

        На самом деле, очень легко указать язык назначения и исходный язык в Google Translate API. Вот код, который вы будете использовать для передачи только исходного языка:

        result = translator.translate('Mikä on nimesi', src='fi') 

        Чтобы добавить только целевой язык, вы должны добавить атрибут dest , за которым следует код языка:

        result = translator.translate('Mikä on nimesi', dest='fr') 

        Вы также можете передать исходный и целевой языки одновременно:

        result = translator.translate('Mikä on nimesi', src='fi', dest='fr') 

        Давайте теперь переведем финское предложение на французский, а затем напечатаем исходный и целевой языки, а также переведенный текст. На этот раз мы укажем исходный и целевой языки.

        from googletrans import Translator translator = Translator() result = translator.translate('Mikä on nimesi', src='fi', dest='fr') print(result.src) print(result.dest) print(result.text) 

        Приведенный выше фрагмент кода даст следующий результат.

        fi fr Quel est votre nom 

        Перевод списка фраз

        Также можно перевести список текстовых фраз с помощью Google Translate API. Основной процесс такой же, как описано выше. Вам просто нужно передать список, содержащий фразы, в качестве параметра метода translate() . Это полезно для того, чтобы пакет фраз переводился отдельно, но все в одном вызове API.

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

        sentences = ['Bienvenu', 'Comment allez-vous', 'je vais bien'] 

        Теперь пришло время вызвать метод translate() и передать в качестве параметров список, исходный язык и язык назначения.

        result = translator.translate(sentences, src='fr', dest='sw') 

        В приведенном выше сценарии исходный язык — французский, а язык назначения — суахили.

        Метод translate() возвращает список объектов, если вы передаете список фраз к нему. Каждый объект в списке, возвращаемый методом translate() , соответствует каждой фразе в списке ввода, который должен быть переведен. Лучший способ найти перевод каждой входной фразы в списке — это перебрать список выходных объектов. Затем вы можете использовать text , origin , src и другие атрибуты отдельных объектов, чтобы увидеть перевод отдельных фраз в списке ввода.

        В приведенном ниже сценарии мы перебираем список объектов, возвращаемых методом translate() , а затем печатаем источник и переведенный текст:

        for trans in result: print(f' -> ') 

        Следующий результат будет отображаться на экране.

        Bienvenu -> karibu Comment allez-vous -> Vipi wewe je vais bien -> Niko sawa 

        Перевод текстовых документов

        Вы также можете переводить текстовые документы через Google Translate API. Все, что вам нужно сделать, это прочитать текстовый файл в Python, используя метод open , прочитать текст и передать его в метод translate() .

        Первый шаг — открыть файл в режиме «чтения»:

        f = open('C:\\Users\\Khurram\\Desktop\\test.txt', 'r') 

        Вы также можете проверить, находится ли файл в режиме «чтения», используя свойство mode :

        if f.mode == 'r': 

        Далее вы можете использовать метод f.read() для чтения содержимого файла. Содержимое файла может быть сохранено в любой переменной. В нашем случае имя переменной будет contents .

        Мы также напечатаем переменную contents , чтобы проверить, правильно ли Python читает текстовый файл:

        contents = f.read() print(contents) 

        Вот вывод содержимого файла:

        We are going to translate this text file using Python. Subsequently, we will also translate it into French. 

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

        Мы убедились, что Python обращается к текстовому файлу и читает его. Теперь мы переведем результат, импортировав тот же старый класс Translate , что и раньше.

        from googletrans import Translator file_translate = Translator() 

        Следующим шагом является передача переменной contents , содержащей входной текст, в функцию translate() . Наконец, напечатайте атрибут text объекта, возвращенного методом translate() , и вы получите переведенную строку.

        result = translator.translate(contents, dest='fr') print(result.text) 

        Вывод должен выглядеть следующим образом:

        Nous allons traduire ce fichier texte en Python. Par la suite, nous le traduirons également en français.

        Чтобы записать переведенный текст в тот же файл или другой текстовый файл, вы просто откроете файл в режиме записи («w»). Затем вам нужно вызвать метод write() и передать ему переведенный текст, как показано ниже:

        with open('C:\\Users\\Khurram\\Desktop\\test_2.txt', 'w') as f: f.write(result.text) 

        В приведенном выше примере мы использовали менеджер контекста with для автоматического открытия и закрытия потока записи. Во-вторых, мы открыли файл в режиме записи. Наконец, мы использовали метод write() для записи переведенной строки в новый файл.

        Вывод

        Google Translate — это инструмент с API, который помогает вам выполнять множество различных функций, связанных с переводом. Мы только поцарапали поверхность с приведенными выше примерами. Вам предлагается практиковать API, а также изучать и понимать, как использовать его в реальных приложениях.

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

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