From efa0a8abdb2d375d00d13bc53a93092bbfee250d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20=C3=81lvarez?= Date: Wed, 8 Jan 2014 15:40:17 +0100 Subject: [PATCH] solucionada discrepancia con algunas reglas recientes en disptongos/triptongos --- README | 1 + home/silabea.py | 23 ++++++++++++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/README b/README index ac48ac6..6992498 100644 --- a/README +++ b/README @@ -18,6 +18,7 @@ http://www.galeon.com/la-poesia/ortograf.pdf http://es.wikipedia.org/wiki/Di%C3%A9resis http://es.wikipedia.org/wiki/Diptongo http://es.wikipedia.org/wiki/Triptongo +http://www.rae.es/consultas/palabras-como-guion-truhan-fie-liais-etc-se-escriben-sin-tilde (gracias a Marta Lamela) - Configuración de nginx: diff --git a/home/silabea.py b/home/silabea.py index c14eca5..c7bbd79 100644 --- a/home/silabea.py +++ b/home/silabea.py @@ -10,6 +10,7 @@ http://es.wikipedia.org/wiki/Di%C3%A9resis http://es.wikipedia.org/wiki/Diptongo http://es.wikipedia.org/wiki/Triptongo + http://www.rae.es/consultas/palabras-como-guion-truhan-fie-liais-etc-se-escriben-sin-tilde """ @@ -28,24 +29,26 @@ def silabas(palabra): salto = 0 if consonante(palabra[letra]): - if ataque_complejo(palabra[letra:letra+2]): + if guegui(palabra[letra+salto:]): # esto es una chapu, pero no tengo otra forma por ahora :( + salto += 2 + elif ataque_complejo(palabra[letra:letra+2]): salto += 2 else: salto += 1 else: salto += 0 # vocal - if diptongo_con_h(palabra[letra+salto:]): + if triptongo(palabra[letra+salto:]): + salto += 3 + elif diptongo_con_h(palabra[letra+salto:]): salto += 3 elif diptongo(palabra[letra+salto:]): salto += 2 - elif triptongo(palabra[letra+salto:]): - salto += 3 elif dieresis(palabra[letra+salto:]): salto += 2 else: salto += 1 - + #if coda_compleja(palabra[letra+salto:]): # salto += 2 #elif coda_simple(palabra[letra+salto:]): @@ -77,6 +80,11 @@ def ataque_complejo(c): return True if (c[0] in [u'b', u'c', u'f', u'g', u'p', u't'] and c[1] in [u'l', u'r'] and c != u"dl") or c in [u'dr', u'kr', u'll', u'rr'] else False +def guegui(c): + if len(c) < 3: return False + return True if (c[0:1] == u'g' and c[1] == u'u' and c[2] in [u'e', u'i']) else False + + def diptongo(trozo): if len(trozo) < 2: return False if trozo[0:2] in [u'ai', u'au', u'ei', u'eu', u'io', u'ou', u'ia', u'ua', u'ie', u'ue', u'oi', u'uo', u'ui', u'iu']: return True @@ -106,7 +114,7 @@ def diptongo_con_h(trozo): def triptongo(trozo): if len(trozo) < 3: return False - return True if trozo[0:3] in [u'iai', u'iei', u'uai', u'uei', u'uau', u'iau', u'uay', u'uey'] else False + return True if trozo[0:3] in [u'iai', u'iei', u'uai', u'uei', u'uau', u'iau', u'iái', u'iéi', u'uái', u'uéi', u'uáu', u'iáu', u'uay', u'uey'] else False def coda(trozo): @@ -135,7 +143,8 @@ def minusculas(texto): if __name__ == '__main__': palabras = "" - palabras += u"onomatopeya" + palabras += u"guiais" + #palabras += u"onomatopeya" #palabras += u"hipopotomonstrosesquipedaliofobia" #palabras += u"aorta héroe almohada línea mediterráneo cohete alcohol " #palabras += u"deshora deshielo "