PortGlosa.py
1.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/usr/bin/python
# -*- coding: utf-8 -*-
#Autor: Erickson Silva
#Email: <erickson.silva@lavid.ufpb.br> <ericksonsilva@live.com>
#LAViD - Laboratório de Aplicações de Vídeo Digital
import sys
from ThreadTradutor import *
from TraduzSentencas import *
from LerDicionarios import *
tradutor = TraduzSentencas()
dicionario = LerDicionarios()
def traduzir(texto, threads=False):
if texto.isspace() or texto == "":
return "ESCOLHER TEXTO CERTO"
elif threads:
return iniciar_com_threads(texto)
else:
return iniciar_sem_threads(texto)
def iniciar_com_threads(texto):
texto_quebrado = quebrar_texto(texto)
num_threads = len(texto_quebrado)
texto_traduzido = []
threads = []
for i in range(num_threads):
if texto_quebrado[i] > 0 and texto_quebrado[i] != " ":
threads.insert(i, ThreadTradutor(texto_quebrado[i]))
threads[i].start()
for i in range(num_threads):
threads[i].join()
texto_traduzido.append(threads[i].obter_glosa())
try:
return " ".join(texto_traduzido)
except:
return None
def iniciar_sem_threads(texto):
texto_quebrado = quebrar_texto(texto)
texto_traduzido = []
for texto in texto_quebrado:
glosa = tradutor.iniciar_traducao(texto)
texto_traduzido.append(glosa)
return " ".join(texto_traduzido)
def quebrar_texto(texto):
if '.' not in texto:
return [texto]
texto_quebrado = texto.split()
tamanho_texto_quebrado = len(texto_quebrado)
sentencas = []
lista_texto = []
for i in range(tamanho_texto_quebrado):
lista_texto.append(texto_quebrado[i])
if '.' in texto_quebrado[i]:
if not dicionario.has_pron_tratam(texto_quebrado[i].lower()) and i < tamanho_texto_quebrado-1 and texto_quebrado[i+1][0].isupper():
sentenca = " ".join(lista_texto)[:-1]
sentencas.append(sentenca)
lista_texto = []
continue
if lista_texto:
sentencas.append( " ".join(lista_texto))
return sentencas
def ajuda():
#TODO: Adicionar um pequeno tuto aqui
print "Help"
if __name__ == '__main__':
texto = sys.argv[1]
glosa = traduzir(texto)
sys.exit(glosa)