Дерево слов¶
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")

Параметры¶
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
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.