solucionada discrepancia con algunas reglas recientes en disptongos/triptongos

This commit is contained in:
Sergio Álvarez 2014-01-08 15:40:17 +01:00
parent c89f1b753e
commit efa0a8abdb
2 changed files with 17 additions and 7 deletions

1
README
View File

@ -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/Di%C3%A9resis
http://es.wikipedia.org/wiki/Diptongo http://es.wikipedia.org/wiki/Diptongo
http://es.wikipedia.org/wiki/Triptongo 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: - Configuración de nginx:

View File

@ -10,6 +10,7 @@
http://es.wikipedia.org/wiki/Di%C3%A9resis http://es.wikipedia.org/wiki/Di%C3%A9resis
http://es.wikipedia.org/wiki/Diptongo http://es.wikipedia.org/wiki/Diptongo
http://es.wikipedia.org/wiki/Triptongo http://es.wikipedia.org/wiki/Triptongo
http://www.rae.es/consultas/palabras-como-guion-truhan-fie-liais-etc-se-escriben-sin-tilde
""" """
@ -28,19 +29,21 @@ def silabas(palabra):
salto = 0 salto = 0
if consonante(palabra[letra]): 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 salto += 2
else: else:
salto += 1 salto += 1
else: else:
salto += 0 # vocal 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 salto += 3
elif diptongo(palabra[letra+salto:]): elif diptongo(palabra[letra+salto:]):
salto += 2 salto += 2
elif triptongo(palabra[letra+salto:]):
salto += 3
elif dieresis(palabra[letra+salto:]): elif dieresis(palabra[letra+salto:]):
salto += 2 salto += 2
else: else:
@ -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 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): def diptongo(trozo):
if len(trozo) < 2: return False 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 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): def triptongo(trozo):
if len(trozo) < 3: return False 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): def coda(trozo):
@ -135,7 +143,8 @@ def minusculas(texto):
if __name__ == '__main__': if __name__ == '__main__':
palabras = "" palabras = ""
palabras += u"onomatopeya" palabras += u"guiais"
#palabras += u"onomatopeya"
#palabras += u"hipopotomonstrosesquipedaliofobia" #palabras += u"hipopotomonstrosesquipedaliofobia"
#palabras += u"aorta héroe almohada línea mediterráneo cohete alcohol " #palabras += u"aorta héroe almohada línea mediterráneo cohete alcohol "
#palabras += u"deshora deshielo " #palabras += u"deshora deshielo "