Saltar a contenido

Árbol de palabras

ests.visualizers.wordtree()

Descripción

La construcción de un árbol de palabras que muestra los contextos de una palabra clave en un texto: en cada lista de palabras - una oración, por ejemplo - se cuentan los N-gramas de hasta max_n palabras que empiezan o terminan en la palabra clave. A cada lado los tamaños se recorren en orden ascendente, y entre los N-gramas que continúan uno más corto ya conservado se conservan los max_per_n más frecuentes, alfabéticamente si empatan, así que cada nivel del árbol tiene a lo sumo max_per_n palabras y cada rama continúa una conservada. Los N-gramas conservados se unen en dos árboles, las palabras tras la palabra clave y ante ella, con el tamaño de la letra según la frecuencia; las palabras son solo las etiquetas de los nodos, así que dos puntos o un guion en una palabra no dan problemas.

Nota

El árbol de palabras se describe en detalle en este artículo.

Parámetros

Parámetro Tipo Por defecto Descripción
texts list[list[str]] - Lista de listas de palabras
keyword str - Palabra clave cuyos contextos se muestran
max_n int 5 Mayor tamaño del contexto
max_per_n int 8 Mayor número de ejemplos para cada tamaño del contexto
**kwargs - - Parámetros de dibujo: max_font_size (por defecto 30), min_font_size (12), font_interp - una función que interpola el tamaño de la letra a partir de la frecuencia

La función devuelve un Digraph de graphviz.

Ejemplo de uso

Las oraciones de Marianela de Galdós de Project Gutenberg.

Ejemplo

Código:

from urllib.request import urlopen

from ests import SentsExtractor, WordsExtractor
from ests.visualizers import wordtree

url = "https://www.gutenberg.org/cache/epub/17340/pg17340.txt"
text = urlopen(url).read().decode("utf-8")
text = text[text.index("\n", text.index("*** START OF")) : text.index("*** END OF")]

we = WordsExtractor(lowercase=True)
sentences = [we.extract(sentence) for sentence in SentsExtractor().extract(text)]
graph = wordtree(sentences, "ojos", max_n=4)
graph.render("wordtree", format="png")

Resultado:

ests

Advertencia

Para dibujar el árbol hacen falta los ejecutables de Graphviz.