Рубрики
Без рубрики

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

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

Автор оригинала: Guest Contributor.

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

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

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

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

$ pip install googletrans

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

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

$ conda install googletrans

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

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

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

import googletrans

print(googletrans.LANGUAGES)

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

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

{'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'}

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

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

from googletrans import Translator

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

translator = Translator()

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

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

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

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

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

  • src : Исходный язык
  • dest : Язык назначения, который установлен на английский (en)
  • origin : Оригинальный текст, то есть “Mitä sinä teeth” в нашем примере
  • текст : Переведенный текст, который будет “что вы делаете?” в нашем случае
  • произношение : Произношение переведенного текста

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

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

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

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

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

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

Также можно перевести список текстовых фраз с помощью API Google Translate. Основной процесс такой же, как и описанный выше. Вам просто нужно передать список, содержащий фразы, в качестве параметра методу 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'{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)

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

Вывод

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