Saltar a contenido

Sílabas y acento

El módulo ests.syllables divide una palabra española en sílabas y localiza su sílaba tónica a partir de la escritura, sin diccionario ni modelo entrenado. Sobre estas funciones se construyen las estadísticas básicas, las fórmulas de legibilidad, la fonoestadística y las estadísticas del verso.

Las reglas siguen la Ortografía de la lengua española (RAE, 2010): dos vocales débiles forman siempre diptongo (huir, je-sui-ta, guion), y tl se separa como en España (at-las).

Silabificación

syllabify(word)

División de una palabra en sílabas. Cada sílaba se construye alrededor de un núcleo vocálico: una vocal, un diptongo o un triptongo.

Regla Ejemplo
una vocal débil (i, u, ü sin tilde) junto a otra vocal forma diptongo ai-re, puen-te, rui-do, ciu-dad
dos vocales fuertes forman hiato, igual que dos vocales cerradas de la misma letra, con tilde o sin ella po-e-ta, le-er, a-é-re-o, chi-i-ta, chi-í-es
una vocal débil con tilde es fuerte dí-a, pa-ís, ba-úl
una vocal débil entre otras dos da un triptongo a-ve-ri-guáis, buey
una vocal débil ante una fuerte se une a esa vocal chi-hua-hua, ca-ca-hue-te
una h entre vocales no rompe el diptongo ahu-ma-do, prohi-bir, de-sahu-cio
la u de qu, y la de gu ante e e i, es muda; ü es vocal que-so, gue-rra, pin-güi-no
y es vocal a final de palabra y consonante ante vocal rey, U-ru-guay, ma-yo
una consonante o dígrafo aislado pasa a la sílaba siguiente ca-sa, mu-cho, pe-rro
una obstruyente con l o r pasa a la sílaba siguiente ha-blar, o-tro
los demás pares de consonantes se separan ac-to, is-la, at-las, rit-mo
de tres o más consonantes, las dos últimas pasan a la sílaba siguiente cuando forman uno de esos grupos; si no, solo pasa la última com-pra, cons-truir, ins-ti-tu-to, obs-tá-cu-lo, tungs-te-no

La palabra se normaliza a NFC y se pasa a minúsculas. Se divide en partes por cifras, guiones y otros caracteres que no son letras, cada parte se silabifica por separado (te-ó-ri-co-prác-ti-co), y una parte sin vocales (una abreviatura como sh) no produce sílabas. Las vocales con diacríticos extranjeros cuentan como vocales fuertes con tilde (Björk). La diéresis marca hiato: la ü del verso fuera de gü y qü y la ï (sü-a-ve, glo-rï-o-sa), que dejan el acento a las reglas de la palabra, y la ë del francés (Ci-tro-ën), que lo lleva; los portugueses ão y õe son diptongos (São, Ca-mões).

Parámetro Tipo Por defecto Descripción
word str - Palabra

Excepciones:

  • SourceTypeError - una palabra que no es una cadena.
from ests.syllables import syllabify

syllabify("murciélago")
syllabify("averiguáis")
['mur', 'cié', 'la', 'go']
['a', 've', 'ri', 'guáis']

Recuento de sílabas

count_syllables(word)

El número de sílabas de una palabra según syllabify.

Parámetro Tipo Por defecto Descripción
word str - Palabra

Excepciones:

  • SourceTypeError - una palabra que no es una cadena.
from ests.syllables import count_syllables

count_syllables("Uruguay")
3

Acento de la palabra

word_stress(word)

El índice de la sílaba tónica de una palabra, contado desde cero como en syllabify.

Regla Ejemplo
la tilde marca la sílaba tónica ca-mión, ár-bol, mur-cié-la-go
una palabra terminada en vocal, en n o s tras vocal, o en y tras consonante lleva el acento en la penúltima sílaba ca-sa, jo-ven, lu-nes, whis-ky
cualquier otra palabra lleva el acento en la última sílaba pa-pel, re-loj, ro-bots, U-ru-guay
un monosílabo lleva el acento en su única sílaba rey, y

Las formas con pronombres enclíticos llevan la tilde según las mismas reglas (dí-ga-me-lo). En un adverbio en -mente y en un compuesto con guion el acento principal es el último de word_stresses (fá-cil-men-te - 2).

Parámetro Tipo Por defecto Descripción
word str - Palabra

Devuelve None para una palabra sin vocales.

Excepciones:

  • SourceTypeError - una palabra que no es una cadena.
from ests.syllables import word_stress

word_stress("camión"), word_stress("casa"), word_stress("murciélago")
(1, 0, 1)

Todos los acentos

word_stresses(word)

Todas las sílabas tónicas de una palabra en orden ascendente. Un solo índice para la mayoría de las palabras. Dos índices para un adverbio en -mente, que conserva el acento de su adjetivo (fá-cil-men-te - 0 y 2, fe-liz-men-te - 1 y 2), y un índice por cada parte de un compuesto con guion (te-ó-ri-co-prác-ti-co - 1 y 4).

El adverbio se reconoce por su forma: una base de al menos una sílaba antes de -mente que termina como un adjetivo (en a, e, l, r, z, n o s) o lleva tilde, así que cruel-men-te también cuenta. Las palabras con la misma forma que no son adverbios están en NON_ADVERBS_MENTE de ests.constants: adjetivos y sustantivos (demente, vehemente) y subjuntivos de verbos en -mentar (fundamente, complemente); un subjuntivo de ese tipo que no esté en la lista recibe un segundo acento.

Parámetro Tipo Por defecto Descripción
word str - Palabra

Devuelve una lista vacía para una palabra sin vocales.

Excepciones:

  • SourceTypeError - una palabra que no es una cadena.
from ests.syllables import word_stresses

word_stresses("fácilmente"), word_stresses("teórico-práctico"), word_stresses("demente")
([0, 2], [1, 4], [1])

Tipo de acentuación

stress_type(word)

La clase de una palabra según la posición de su acento principal, el de word_stress, con los nombres de las terminaciones de los versos:

Tipo Acento Ejemplo
aguda en la última sílaba ca-mión
llana en la penúltima sílaba ca-sa
esdrújula en la antepenúltima sílaba mur-cié-la-go
sobresdrújula antes dí-ga-me-lo
Parámetro Tipo Por defecto Descripción
word str - Palabra

Devuelve None para una palabra sin vocales.

Excepciones:

  • SourceTypeError - una palabra que no es una cadena.
from ests.syllables import stress_type

tuple(stress_type(word) for word in ("camión", "casa", "murciélago", "dígamelo"))
('aguda', 'llana', 'esdrújula', 'sobresdrújula')