def test_10(self): r1 = separar_silabas("adherir") r2 = separar_silabas("hembra") r3 = separar_silabas("mucho") self.assertEqual(len(r1), 3) self.assertEqual(len(r2), 2) self.assertEqual(len(r3), 2)
def test_9(self): r1 = separar_silabas("llevar") r2 = separar_silabas("carretera") r3 = separar_silabas("perro") r4 = separar_silabas("chicharron") self.assertEqual(len(r1), 2) self.assertEqual(len(r2), 4) self.assertEqual(len(r3), 2) self.assertEqual(len(r4), 3)
def test_5(self): r1 = separar_silabas("playa") r2 = separar_silabas("premiación") r3 = separar_silabas("padres") r4 = separar_silabas("transgresión") self.assertEqual(len(r1), 2) self.assertEqual(len(r2), 3) self.assertEqual(len(r3), 2) self.assertEqual(len(r4), 3)
def test_4(self): r1 = separar_silabas("gimnasio") r2 = separar_silabas("acróstico") r3 = separar_silabas("calcificación") r4 = separar_silabas("atrae") self.assertEqual(len(r1), 3) self.assertEqual(len(r2), 4) self.assertEqual(len(r3), 5) self.assertEqual(len(r4), 3)
def silaba_tonica(palabra): # separar la palabra en silabas silabas = separar_silabas(palabra) if len(silabas) == 1: # monosilaba return silabas, 1 # buscar silaba con tilde for i in range(len(silabas)): silaba = silabas[i] if re.findall("[áéíóú]", silaba): # la silaba tiene tilde return silabas, i+1 # la palabra no tiene tilde if re.findall("[nsaeiou]$", palabra): # palabra termina en n,s o vocal return silabas, len(silabas) - 1 # palabra llana else: return silabas, len(silabas) # palabra aguda
def medir_verso(verso): res = {} # medir verso verso = verso.translate( str.maketrans('', '', '¡!"#$%&\'()*+,-./:;<=>¿?@[\\]^_`{|}~')) if not verso: return None palabras = verso.split(" ") silabas_gramaticales = [] for palabra in palabras: silabas = silabeador.separar_silabas(palabra) silabas_gramaticales += silabas res["silabas_gramaticales"] = silabas_gramaticales # identificar licencias (sinalefa, sineresis) res["licencias"] = [] silabas_metricas = [silabas_gramaticales[0]] for i in range(1, len(silabas_gramaticales)): silaba1 = silabas_metricas[-1] silaba2 = silabas_gramaticales[i] if es_licencia(silaba1, silaba2): ns = f"{silaba1} {silaba2}" res["licencias"].append(ns) silabas_metricas[-1] = ns else: silabas_metricas.append(silaba2) res["silabas_metricas"] = silabas_metricas medida = len(silabas_metricas) # sumar o restar segun la clasificacion de la ultima palabra tipo = acentuacion.tipo_palabra(palabras[-1]) acento_ultima_palabra = 0 if tipo == acentuacion.TipoAcentuacion.AGUDA or tipo == acentuacion.TipoAcentuacion.MONOSILABA: acento_ultima_palabra = 1 elif tipo == acentuacion.TipoAcentuacion.ESDRUJULA: acento_ultima_palabra = -1 medida += acento_ultima_palabra res["medida"] = medida res["acento_ultima_palabra"] = acento_ultima_palabra logging.debug( f"{'/ '.join(silabas_metricas)} {medida} {acento_ultima_palabra}") return res
def test_8(self): r1 = separar_silabas("transgredir") r2 = separar_silabas("instrucción") self.assertEqual(len(r1), 3) self.assertEqual(len(r2), 3)
def test_7(self): r1 = separar_silabas("entrega") r2 = separar_silabas("espronceda") self.assertEqual(len(r1), 3) self.assertEqual(len(r2), 4)
def test_6(self): r1 = separar_silabas("institución") r2 = separar_silabas("constitución") self.assertEqual(len(r1), 4) self.assertEqual(len(r2), 4)
def test_3(self): r1 = separar_silabas("seca") r2 = separar_silabas("salón") self.assertEqual(len(r1), 2) self.assertEqual(len(r2), 2)
def test_2(self): r0 = separar_silabas("corría") r1 = separar_silabas("mano") r2 = separar_silabas("pena") self.assertEqual(len(r1), 2) self.assertEqual(len(r2), 2)
def test_12_hiatos(self): r = separar_silabas("Dúo") self.assertEqual(len(r), 2) r = separar_silabas("Encía") self.assertEqual(len(r), 3) r = separar_silabas("Insinúe") self.assertEqual(len(r), 4) r = separar_silabas("Sonríe") self.assertEqual(len(r), 3) r = separar_silabas("Bahía") self.assertEqual(len(r), 3) r = separar_silabas("Vehículo") self.assertEqual(len(r), 4) r = separar_silabas("Deseo") self.assertEqual(len(r), 3) r = separar_silabas("Aéreo") self.assertEqual(len(r), 4) r = separar_silabas("Canoa") self.assertEqual(len(r), 3) r = separar_silabas("Alcohol") self.assertEqual(len(r), 3) r = separar_silabas("Creer") self.assertEqual(len(r), 2) r = separar_silabas("Leer") self.assertEqual(len(r), 2) r = separar_silabas("Cooperar") self.assertEqual(len(r), 4) r = separar_silabas("Azahar") self.assertEqual(len(r), 3)
def test_11(self): r1 = separar_silabas("querida") r2 = separar_silabas("alquimista") self.assertEqual(len(r1), 3) self.assertEqual(len(r2), 4)