Google Translate Python API
Images by Christina Morillo from pexels.com |
There are many translation services, and Google's is one of the most commonly used services. Let's try out its Python API.
The package is googletrans
. The documentation can be found at py-googletrans.pdf.
Supported Languages
import googletrans
print(googletrans.LANGUAGES)
print(len(googletrans.LANGUAGES))
lists 107 supported languages.
Language Detection
from googletrans import Translator
translator = Translator()
english_text = "Tyson Fury got up twice from the canvas to win it."
dt_en = translator.detect(english_text)
print(dt_en)
gives us Detected(lang=en, confidence=1)
translator = Translator()
japanese_text = "タイソンフューリーはそれを獲得するためにキャンバスから2回起きました."
dt_ja = translator.detect(japanese_text)
print(dt_ja)
gives us Detected(lang=ja, confidence=1)
These are too easy for googletrans :-) Let's try more complicated things.
translator = Translator()
mixed_text = (
"タイソンフューリーはそれを獲得するためにキャンバスから2回起きました. Tyson Fury got up twice from the canvas to win it."
)
dt = translator.detect(mixed_text)
print(dt)
We provide Japanese and English statements and we get Detected(lang=ja, confidence=1)
. The Japanese language is detected with a full confidence score!
Let's reduce the Japanese statement to a few words.
translator = Translator()
mixed_text = "きました. Tyson Fury got up twice from the canvas to win it."
dt = translator.detect(mixed_text)
print(dt)
and we get Detected(lang=en, confidence=0.7228199)
. This is more logical.
Language Translation
Next, we look at this translation service.
translator = Translator()
japanese_text = "タイソンフューリーはそれを獲得するためにキャンバスから2回起きました."
tlr_ja = translator.translate(japanese_text)
print(tlr_ja)
By default, the destination translated language is en
. And, we get good results.
Translated(src=ja, dest=en, text=Tyson Fury woke up twice from the canvas to win it., pronunciation=None, extra_data="{'translat...")
Let's test English to Japanese translation.
translator = Translator()
english_text = "Tyson Fury got up twice from the canvas to win it."
tlr_en = translator.translate(english_text, dest="ja")
print(tlr_en)
Once again, the result is good.
Translated(src=en, dest=ja, text=タイソンフューリーはそれを獲得するためにキャンバスから2回起きました。, pronunciation=Taisonfu~yūrī wa sore o kakutoku suru tame ni kyanbasu kara 2-kai okimashita., extra_data="{'translat...")
Let's use the list of words for translation.
translator = Translator()
list_words = ["こんにちは", "すみません"]
tlr_ja = translator.translate(list_words)
for tlr in tlr_ja:
print(tlr)
And, we get a list of good results.
Translated(src=ja, dest=en, text=Hello, pronunciation=None, extra_data="{'translat...")
Translated(src=ja, dest=en, text=excuse me, pronunciation=None, extra_data="{'translat...")
Conclusion
Using these API is almost effortless. And the results are good.
I was using googletrans version 3.0.0, and it is not good as I ran into a bug. Please avoid this version.
Traceback (most recent call last):
File "main.py", line 9, in <module>
tlr_en = translator.translate(english_text, dest="ja")
File "/Users/veseah/experiments/googletrans/.venv/lib/python3.8/site-packages/googletrans/client.py", line 182, in translate
data = self._translate(text, dest, src, kwargs)
File "/Users/veseah/experiments/googletrans/.venv/lib/python3.8/site-packages/googletrans/client.py", line 78, in _translate
token = self.token_acquirer.do(text)
File "/Users/veseah/experiments/googletrans/.venv/lib/python3.8/site-packages/googletrans/gtoken.py", line 194, in do
self._update()
File "/Users/veseah/experiments/googletrans/.venv/lib/python3.8/site-packages/googletrans/gtoken.py", line 62, in _update
code = self.RE_TKK.search(r.text).group(1).replace('var ', '')
AttributeError: 'NoneType' object has no attribute 'group'
Comments
Post a Comment