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')