Python: funzione per traduzione testi





imgresQualche tempo fa scrissi un articolo per utilizzare il sistema di traduzione di google in php.
In questo articolo invece utilizzo il servizio di traduzione MyMemory e come linguaggio ho scelto python.
La funzione accetta come input il testo da tradurre, la lingua sorgente (it/en/ecc..) e la lingua destinazione (en/it/ecc..) restituendo il testo tradotto.
Ecco un esempio di chiamata della funzione :

myMemory_translate ("La vita è meravigliosa",'it','en')

che restituirà in questo caso : “Life is a wonderful thing”

 def myMemory_translate(text,ln_from='it',ln_to='en'): 
	import json,urllib,urllib2
	url="http://mymemory.translated.net/api/get?" 
	params = urllib.urlencode({'langpair' : ln_from+"|"+ln_to,  'q' : text  })
	opener = urllib2.build_opener()
	opener.addheaders = [('User-agent', 'Mozilla/5.0')]
	raw= opener.open(url,params).read()
	data = json.loads(raw)
	return data['responseData']['translatedText']

Limiti:
Con questo metodo possiamo effettuare 100 richieste al giorno, ma è possibile estendere a 1000 richieste effettuando l’autenticazione con una email valida.
Per farlo basta aggiungere il parametro ‘de’.

  params = urllib.urlencode({'langpair' : ln_from+"|"+ln_to,  'q' : text  ,'de':"EMAIL VALIDA"})

Seguimi su twitter : @ironico

Leave a Reply

  

  

  

Login with:
Powered by Sociable!

Per essere informato sui miei contenuti - Email: