Funciones de las métricas¶
Náusea clásica¶
ests.style_stats.calc_classic_nausea()
La náusea clásica de Advego: la raíz cuadrada del número de apariciones de la palabra más frecuente. Mide la insistencia en una palabra sin tener en cuenta la longitud del texto, así que crece con el texto. La norma de Advego es como máximo 7, en la práctica 1-5.
Fórmula:
donde \(n_k\) es el número de apariciones de la palabra \(k\).
| Parámetro | Tipo | Valor por defecto | Descripción |
|---|---|---|---|
text |
list[str] | - |
Lista de palabras |
Náusea académica¶
ests.style_stats.calc_academic_nausea()
La náusea académica de Advego: la proporción de las apariciones de las palabras más frecuentes del texto en porcentaje. La fórmula exacta de Advego no se ha publicado: la frecuencia sumada de las top_n palabras más frecuentes se divide entre el número de palabras. La norma de Advego es 5-15%.
Fórmula:
| Parámetro | Tipo | Valor por defecto | Descripción |
|---|---|---|---|
text |
list[str] | - |
Lista de palabras |
top_n |
int | 10 |
Número de las palabras más frecuentes |
Contenido de agua¶
ests.style_stats.calc_water()
El contenido de agua de Text.ru: la proporción de las palabras sin contenido en porcentaje, es decir, las palabras vacías de is_stopword o de la lista pasada, sin distinguir mayúsculas. Las normas de Text.ru - hasta 15% natural, 15-30% excesivo, más de 30% alto - están pensadas para el ruso, que no tiene artículos; un texto en español tiene más agua solo por su gramática.
Fórmula:
| Parámetro | Tipo | Valor por defecto | Descripción |
|---|---|---|---|
text |
list[str] | - |
Lista de palabras |
stopwords |
list[str]/set[str] | None |
Lista o conjunto de palabras vacías; si no se da, se usa is_stopword |
Palabra vacía¶
ests.style_stats.is_stopword()
Comprueba si una palabra es una palabra vacía, sin distinguir mayúsculas. Las palabras vacías son las 265 formas de ests.constants.STOPWORDS - las clases cerradas de la gramática: artículos y demás determinantes (este, cada, mucho), pronombres (él, cuyo, nadie), preposiciones, conjunciones e interjecciones, con los adverbios que señalan, relacionan o preguntan (aquí, así, dónde) y los que niegan, afirman o focalizan (no, solo, también) - y las expresiones parentéticas de una palabra de PARENTHETICALS (finalmente, naturalmente). Se incluyen las formas de la ortografía antigua (á, ó, tí).
| Parámetro | Tipo | Valor por defecto | Descripción |
|---|---|---|---|
word |
str | - |
Palabra |
Índice de spam¶
ests.style_stats.calc_spam()
El índice de spam de Text.ru: la proporción de las palabras repetidas del texto en porcentaje; cada aparición de una palabra salvo la primera es una repetición, así que el índice es \(100 \times (1 - TTR)\). Para calcularlo por lemas, extraiga las palabras lematizadas. Las normas de Text.ru: hasta 30% natural, 30-60% optimizado para SEO, más de 60% saturado.
Fórmula:
donde \(N\) es el número de palabras y \(V\) el número de palabras distintas.
| Parámetro | Tipo | Valor por defecto | Descripción |
|---|---|---|---|
text |
list[str] | - |
Lista de palabras |
Naturalidad según la ley de Zipf¶
ests.style_stats.calc_zipf_naturalness()
La concordancia de las frecuencias de las palabras más frecuentes con la distribución ideal \(f_r = f_1 / r\) de la ley de Zipf, donde \(f_1\) es la frecuencia de la palabra más frecuente y \(r\) el rango de una palabra (pr-cy, megaindex). Es 100 por uno menos la desviación relativa media de las frecuencias respecto de las ideales en los rangos de 2 a \(R = \min(top\_n, V, f_1)\). Los valores negativos se recortan a 0; la norma de los servicios es al menos 50%. Es nan cuando no hay rangos que comparar: todas las palabras son hápax, el texto tiene un solo tipo de palabra o top_n es menor que 2.
Fórmula:
| Parámetro | Tipo | Valor por defecto | Descripción |
|---|---|---|---|
text |
list[str] | - |
Lista de palabras |
top_n |
int | 10 |
Número de las palabras más frecuentes |
Densidad de palabras clave¶
ests.style_stats.calc_keyword_density()
La frecuencia de cada palabra clave por cada 100 palabras del texto (Text.ru). Una palabra clave de varias palabras separadas por espacios se busca como una secuencia de palabras, y sus apariciones pueden solaparse. Las palabras se comparan sin distinguir mayúsculas; para comparar por lemas, extraiga las palabras lematizadas y pase lemas.
| Parámetro | Tipo | Valor por defecto | Descripción |
|---|---|---|---|
text |
list[str] | - |
Lista de palabras |
keywords |
list[str]/set[str] | - |
Palabras o frases clave |
Sustantivos deverbales¶
ests.style_stats.calc_verbal_nouns()
La proporción de los sustantivos derivados de un verbo entre los lemas de los sustantivos de un texto en porcentaje, nan para un texto sin sustantivos. Un sustantivo es deverbal por su sufijo - -ción, -sión, -miento, -anza, -encia, -ancia, -aje, -dura, -azgo (revisión, nombramiento, aprendizaje) - o es uno de los sustantivos cuya derivación no deja sufijo (uso, pago, envío), como en los predicados escindidos de SyntaxStats. La regla atrapa también sustantivos de otro origen con las mismas terminaciones (ciencia, distancia). La función recibe los lemas de los tokens etiquetados NOUN, no las palabras.
Ejemplo
from ests.style_stats import calc_verbal_nouns
calc_verbal_nouns(["revisión", "proyecto", "nombramiento", "casa"])
# 50.0
| Parámetro | Tipo | Valor por defecto | Descripción |
|---|---|---|---|
nouns |
list[str] | - |
Lemas de los sustantivos |
Densidad de expresiones¶
ests.style_stats.calc_phrase_density(), ests.style_stats.expand_phrases()
El número de apariciones de las expresiones de una lista por cada 100 palabras: las locuciones prepositivas (COMPOUND_PREPOSITIONS), las expresiones parentéticas (PARENTHETICALS) y los clichés (OFFICIALESE_CLICHES). En cada posición se toma la expresión más larga, y las expresiones encontradas no se solapan. expand_phrases escribe las expresiones en las formas del texto: una expresión que termina en a o de también recibe la contracción con el artículo (a efectos del, conforme al), y una expresión cuya primera palabra es un infinitivo recibe las formas del texto con ese lema (proceder a - procedió a, ser de aplicación - es de aplicación). El lema es el de simplemma, y un lema pronominal vale por su verbo (llévese - llevar); las formas que simplemma no lematiza - los participios irregulares (ha dado, ha hecho) y el imperativo dese - las da IRREGULAR_VERB_FORMS. Las palabras que siguen al verbo descartan la lectura como sustantivo (el hecho, el puesto). Cuando dos expresiones dan las mismas palabras, una expresión escrita así gana a las formas de otra (a efectos del sigue siendo ella misma junto a a efectos de), y después la primera expresión de una lista, o de un conjunto en orden alfabético.
Las locuciones prepositivas (42) y los clichés (74) son los que señalan las guías españolas de lenguaje claro y los manuales de estilo de las administraciones:
Quedan fuera las formas que las guías recomiendan (sobre la base de) o aceptan (de acuerdo a) y las expresiones con usos neutros frecuentes (en este sentido), salvo proceder a y llevar a cabo. Algunas locuciones prepositivas también tienen usos neutros (a través de, en caso de, con respecto a), así que la densidad de un texto neutro no es cero: compare los textos entre sí.
| Parámetro | Tipo | Valor por defecto | Descripción |
|---|---|---|---|
text |
list[str] | - |
Lista de palabras |
phrases |
list[str]/set[str] | - |
Expresiones, palabras separadas por espacios |
Expresiones parentéticas¶
ests.style_stats.calc_parentheticals(), ests.style_stats.is_parenthetical()
Las expresiones parentéticas de PARENTHETICALS (sin embargo, es decir, por ejemplo, finalmente) por cada 100 palabras; is_parenthetical comprueba una palabra con las expresiones de una palabra de la lista. La puntuación no se mira, así que la lista contiene las expresiones que van entre comas o en el borde de una oración en la mayoría de sus apariciones en el corpus de literatura, con las series de orden (en primer lugar, en segundo lugar). Los adverbios de duda (tal vez, quizá), sobre todo, sin duda y además no están en la lista.
| Parámetro | Tipo | Valor por defecto | Descripción |
|---|---|---|---|
text |
list[str] | - |
Lista de palabras |