Пример #1
0
 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)
Пример #2
0
 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)
Пример #3
0
 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)
Пример #4
0
 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)
Пример #5
0
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
Пример #6
0
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
Пример #7
0
 def test_8(self):
     r1 = separar_silabas("transgredir")
     r2 = separar_silabas("instrucción")
     self.assertEqual(len(r1), 3)
     self.assertEqual(len(r2), 3)
Пример #8
0
 def test_7(self):
     r1 = separar_silabas("entrega")
     r2 = separar_silabas("espronceda")
     self.assertEqual(len(r1), 3)
     self.assertEqual(len(r2), 4)
Пример #9
0
 def test_6(self):
     r1 = separar_silabas("institución")
     r2 = separar_silabas("constitución")
     self.assertEqual(len(r1), 4)
     self.assertEqual(len(r2), 4)
Пример #10
0
 def test_3(self):
     r1 = separar_silabas("seca")
     r2 = separar_silabas("salón")
     self.assertEqual(len(r1), 2)
     self.assertEqual(len(r2), 2)
Пример #11
0
 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)
Пример #12
0
 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)
Пример #13
0
 def test_11(self):
     r1 = separar_silabas("querida")
     r2 = separar_silabas("alquimista")
     self.assertEqual(len(r1), 3)
     self.assertEqual(len(r2), 4)