¿Cuáles son algunos métodos útiles de traducción de idiomas en Python?
1 importar re
2 importar urllib.parse, urllib.request
3 importar hashlib
4 importar urllib
5 importación aleatoria
6 importación json
7 tiempo de importación
8 desde traducir traductor de importación
No incluido con las bibliotecas de Python , como Python Google Translate, deben instalarse manualmente, comando pip install module_name.
1. Traductor de Baidu
1 appid = 'tu_appid'
2 clavesecreta = 'tu_clavesecreta'
3 url_baidu = ''
2 reg_text = re.compile(r'(?<=TRANSLATED_TEXT=).*?;')
3 user_agent = r'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, como Gecko) ' \
4 r'Chrome/44.0.2403.157 Safari/537.36'
5
6 def traducirGoogle(texto , f='ja', t='zh-cn'):
7 valores = {'hl': 'zh-cn', 'ie': 'utf-8', ' text' : text, 'langpair': '%s|%s' % (f, t)}
8 valor = urllib.parse.urlencode(values)
9 req = urllib .request.Request(url_google + '?' + valor)
10 req.add_header('User-Agent', user_agent)
11 respuesta = urllib.request.urlopen (req )
12 contenido = respuesta.read().decode('utf-8')
13 datos = reg_text.search(contenido)
14 resultado = data.group(0).strip(';').strip('\'')
15 print(resultado)
Igual que los dos métodos anteriores, usarlo es en forma de visitar una página web para traducirla.
Otro método es utilizar el módulo de traducción de Google en Python Traductor:
1 def traducirGoogle2(texto):
2 resultado = traductor.translate(texto)
p>3 imprimir(resultado)
4. Código de prueba
Proceso de prueba:
Traducir 5 cadenas en una unidad pequeña y generar Consume tiempo;
Hacer bucles 10 veces es una unidad grande y la salida consume tiempo;
He realizado muchas pruebas en cadenas de diferentes idiomas y el número de bucles, y descubrí que las situaciones son básicamente similares, así que aquí se selecciona 10 veces.
1 text_list = ['こんにちは', 'こんばんは', 'おはようございます', 'お久(やす)みなさい', 'お元気(げんき)ですか']
2
3 time_baidu = 0
4 time_youdao = 0
5 time_google = 0
6 time_google2 = 0
7
8 para i en lista(rango(1, 11)):
9 tiempo1 = time.time()
10 para texto en text_list:
11 traducirBaidu(texto)
12 tiempo2 = time.time()
13 imprimir('Tiempo de traducción de Baidu %s: %s ' % (i, tiempo2 - tiempo1))
14 time_baidu += (tiempo2 - tiempo1)
15
16 tiempo1 = tiempo.tiempo()
17 para texto en text_list:
18 traducirYoudao(texto)
19 tiempo2 = time.time()
20 imprimir (' Tiempo de traducción de Youdao %s: %s' % (i, tiempo2 - tiempo1))
21 time_youdao += (tiempo2 - tiempo1)
22
23 time1 = time.time()
24 para texto en text_list:
25 traducirGoogle(texto)
26 time2 = time.time ()
27 print('Google Translate %s tiempo: %s' % (i, tiempo2 - tiempo1))
28 time_google += (tiempo2 - tiempo1)
29
30 tiempo1 = time.time()
31 para texto en text_list:
32 traducirGoogle2(texto)
33 tiempo2 = time.time()
34 print('Traducción de Google 2 %s tiempo: %s' % (i, tiempo2 - tiempo1))
35 time_google2 += (tiempo2 - tiempo1 )
36
37
38 print('Tiempo de traducción de Baidu: %s' % (time_baidu / 10) )
39 print('Tiempo de traducción de Youdao: %s' % (time_youdao / 10))
40 print('Tiempo de traducción de Google: %s' % (time_google / 10 ))
41 print('Tiempo de traducción de Google 2: %s' % (time_google2 / 10))