Перевод текста с помощью 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()
, имеет следующие атрибуты:
src
: Исходный языкdest
: Язык назначения, установленный на английский (en)origin
: Оригинальный текст, в нашем примере это Mitä sinä teettext
: Переведенный текст, в нашем случае это будет «what are you doing?»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'{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, а также изучать и понимать, как использовать его в реальных приложениях.