DevGang
Авторизоваться

Перевод текста с помощью 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.

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

{'af': 'afrikaans', 'sq': 'albanian', 'am': 'amharic', 'ar': 'arabic', 'hy': 'armenian', 'az': 'azerbaijani', 'eu': 'basque', 'be': 'belarusian', 'bn': 'bengali', 'bs': 'bosnian', 'bg': 'bulgarian', 'ca': 'catalan', 'ceb': 'cebuano', 'ny': 'chichewa', 'zh-cn': 'chinese (simplified)', 'zh-tw': 'chinese (traditional)', 'co': 'corsican', 'hr': 'croatian', 'cs': 'czech', 'da': 'danish', 'nl': 'dutch', 'en': 'english', 'eo': 'esperanto', 'et': 'estonian', 'tl': 'filipino', 'fi': 'finnish', 'fr': 'french', 'fy': 'frisian', 'gl': 'galician', 'ka': 'georgian', 'de': 'german', 'el': 'greek', 'gu': 'gujarati', 'ht': 'haitian creole', 'ha': 'hausa', 'haw': 'hawaiian', 'iw': 'hebrew', 'hi': 'hindi', 'hmn': 'hmong', 'hu': 'hungarian', 'is': 'icelandic', 'ig': 'igbo', 'id': 'indonesian', 'ga': 'irish', 'it': 'italian', 'ja': 'japanese', 'jw': 'javanese', 'kn': 'kannada', 'kk': 'kazakh', 'km': 'khmer', 'ko': 'korean', 'ku': 'kurdish (kurmanji)', 'ky': 'kyrgyz', 'lo': 'lao', 'la': 'latin', 'lv': 'latvian', 'lt': 'lithuanian', 'lb': 'luxembourgish', 'mk': 'macedonian', 'mg': 'malagasy', 'ms': 'malay', 'ml': 'malayalam', 'mt': 'maltese', 'mi': 'maori', 'mr': 'marathi', 'mn': 'mongolian', 'my': 'myanmar (burmese)', 'ne': 'nepali', 'no': 'norwegian', 'ps': 'pashto', 'fa': 'persian', 'pl': 'polish', 'pt': 'portuguese', 'pa': 'punjabi', 'ro': 'romanian', 'ru': 'russian', 'sm': 'samoan', 'gd': 'scots gaelic', 'sr': 'serbian', 'st': 'sesotho', 'sn': 'shona', 'sd': 'sindhi', 'si': 'sinhala', 'sk': 'slovak', 'sl': 'slovenian', 'so': 'somali', 'es': 'spanish', 'su': 'sundanese', 'sw': 'swahili', 'sv': 'swedish', 'tg': 'tajik', 'ta': 'tamil', 'te': 'telugu', 'th': 'thai', 'tr': 'turkish', 'uk': 'ukrainian', 'ur': 'urdu', 'uz': 'uzbek', 'vi': 'vietnamese', 'cy': 'welsh', 'xh': 'xhosa', 'yi': 'yiddish', 'yo': 'yoruba', 'zu': 'zulu', 'fil': 'Filipino', 'he': 'Hebrew'}

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

Основное использование 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(), соответствует каждой фразе в списке ввода, который должен быть переведен. Лучший способ найти перевод каждой входной фразы в списке - это перебрать список выходных объектов. Затем вы можете использовать textoriginsrc и другие атрибуты отдельных объектов, чтобы увидеть перевод отдельных фраз в списке ввода.

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

for trans in result:
    print(f'{trans.origin} -> {trans.text}')

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

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

Источник:

#Python
Комментарии 1
Spirit412 14.07.2021 в 12:59

Библиотека удобная. Но с некоторых пор, требуется таймоут т.к. при переводе определённого количества символов, пользователь получает бан. Ну или прокси использовать (

Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу