Переклад тексту за допомогою 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 буде встановлено у вашій системі.

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

Коментарі