Перейти к содержанию

Дерево слов

wordtree(texts, keyword, max_n=5, max_per_n=8, **kwargs)

Построение дерева слов контекстов ключевого слова: в каждом списке слов, например в предложении, считаются N-граммы длиной до max_n слов, которые начинаются или заканчиваются ключевым словом. Каждый уровень сохраняет max_per_n самых частых N-грамм, продолжающих сохраненную более короткую, при равенстве - по алфавиту; они объединяются в два дерева, после ключевого слова и перед ним, с размером шрифта по частоте (Wattenberg и Viégas 2008). Для отрисовки нужны исполняемые файлы Graphviz.

Это функция ядра anyTS; знаки ударения снимаются с текстов и с keyword.

Дерево по предложениям 50 текстов набора данных StalinWorks:

from ruts import SentsExtractor, WordsExtractor
from ruts.datasets import StalinWorks
from ruts.visualizers import wordtree

se = SentsExtractor()
we = WordsExtractor(min_len=3)
texts = StalinWorks().get_texts(limit=50)
words = [we.extract(sent) for text in texts for sent in se.extract(text)]
tree = wordtree(words, "рабочий", max_n=6)
tree.render("wordtree", format="png")

ruts

Параметры

Параметр Тип По умолчанию Описание
texts list[list[str]] - Список списков слов
keyword str - Ключевое слово, контексты которого показываются
max_n int 5 Наибольший размер контекста
max_per_n int 8 Наибольшее число примеров для каждого размера контекста
**kwargs - - Параметры отрисовки: max_font_size (по умолчанию 30), min_font_size (12), font_interp - функция относительной частоты узла (его частоты к наибольшей, в интервале (0, 1]), которая дает долю диапазона от min_font_size до max_font_size, от 0 до 1; по умолчанию кубический корень

Функция возвращает Digraph библиотеки graphviz. Тексты, которые не список списков строк, и ключевое слово, которое не строка, дают SourceTypeError; отсутствие текстов или ключевое слово, рядом с которым ни в одном тексте нет слов, - SourceError; max_n, который не целое число не меньше 2, и max_per_n, который не целое число не меньше единицы, - ParameterError.