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

Если вы не прятались под камнем, вы, вероятно, использовали Google Translate [https://translate.google.com/] во многих случаях в своей жизни. Всякий раз, когда вы пытаетесь перевести слово или предложение с одного языка на другой, именно API Google Translate дает вам желаемые результаты в фоновом режиме. Хотя вы можете перевести что угодно, просто перейдя на веб-страницу Google Translate, вы также можете интегрировать Google Translate API [https://pypi.org/project/googletrans/] в свой

Если вы не прятались под камнем, вы, вероятно, использовали 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,]{.kbd} и модуль 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ä teet"
  • text : переведенный текст, это будет «что ты делаешь?» в нашем случае
  • 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, а также изучить и понять, как его использовать в реальных приложениях.

comments powered by Disqus