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