PortGlosa.py 1.4 KB
#!/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

from ThreadTradutor import *
from TraduzSentencas import *


tradutor = TraduzSentencas()

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):
	return tradutor.iniciar_traducao(texto)

def quebrar_texto(texto):
	quantidade_pontos = texto.count('. ')
	sentencas = []
	for i in range(quantidade_pontos):
		posicao_ponto = texto.find('.')
		if texto[posicao_ponto+2].isupper():
			sentencas.append(texto[:posicao_ponto])
			texto = texto[posicao_ponto+2:]
	if len(texto) > 0:
		sentencas.append(texto)
	return sentencas

def ajuda():
	#TODO: Adicionar um pequeno tuto aqui
	print "Help"