Подробнее о работе

В этом миниисследовании я попробую построить консенсусное дерево на основании файла с частотностями их датасета «Стилеметрические данные “Тихого Дона” и современной ему прозы» и интерпретировать полученный результат.

Готовимся к построению красоты (деревьев)

Загружаем необходимые библиотеки, загружаем файл и транспонируем его, чтобы в названиях столбцов были слова, а в названиях рядов — авторы и произведения в формате автор_произведение.

library(tidyverse)
library(stylo)
library(DT)

data_raw <- read.table("table_with_frequencies.txt", header = TRUE, sep = " ")
data_transposed <- t(data_raw)
data <- as.data.frame(data_transposed)

datatable(data, options = list(pageLength = 10))

Строим красоту (деревья)

Построим консенсусное дерево со следующими параметрами: минимальное количество наиболее частотных слов — 100, максимальное количество слов, которые могут быть выбраны для анализа, — 500, шаг для выбора наиболее частотных слов — 100.

bct_result <- stylo(gui = FALSE, 
                    frequencies = data,
                    analysis.type = "BCT",
                    mfw.min = 100,
                    mfw.max = 500,
                    mfw.incr = 100,
                    distance.measure = "wurzburg",
                    write.png.file = TRUE,
                    consensus.strength = 0.5,
                    plot.custom.width = 8, 
                    plot.custom.height = 8,
                    custom.graph.title = "Консенсусное дерево: Шолохов и его современники")

Интересно, что на визуализации между произведениями Шолохова есть и другие авторы с их произведениями. Попробуем повлиять на это с помощью изменения упомянутых выше показателей, чтобы произведения Шолохова были ближе друг к другу: увеличим максимальное количество наиболее частотных слов и уменьшим шаг для выбора наиболее частотных слов.

bct_result <- stylo(gui = FALSE, 
                    frequencies = data,
                    analysis.type = "BCT",
                    mfw.min = 100,
                    mfw.max = 1000,
                    mfw.incr = 20,
                    distance.measure = "wurzburg",
                    write.png.file = TRUE,
                    consensus.strength = 0.5,
                    plot.custom.width = 8, 
                    plot.custom.height = 8,
                    custom.graph.title = "Консенсусное дерево: Шолохов и его современники")

Видим, что с показателями максимумом в 1000 слов, которые могут быть выбраны для анализа, и шагом 20 для выбора наиболее частотных слов произведения Шолохова кластеризовались в более явном виде и теперь они еще ближе друг к другу, причем между ними нет произведений других авторов.

А что, если мы оставим максимум в 500 слов и шаг 20?

bct_result <- stylo(gui = FALSE, 
                    frequencies = data,
                    analysis.type = "BCT",
                    mfw.min = 100,
                    mfw.max = 500,
                    mfw.incr = 20,
                    distance.measure = "wurzburg",
                    write.png.file = TRUE,
                    consensus.strength = 0.5,
                    plot.custom.width = 8, 
                    plot.custom.height = 8,
                    custom.graph.title = "Консенсусное дерево: Шолохов и его современники")

Видим, что в таком случае произведения Шолохова все равно кластеризуются ближе :)

А если только увеличить показатель максимального количества частотных слов, а шаг оставить прежним (100)?

bct_result <- stylo(gui = FALSE, 
                    frequencies = data,
                    analysis.type = "BCT",
                    mfw.min = 100,
                    mfw.max = 1000,
                    mfw.incr = 100,
                    distance.measure = "wurzburg",
                    write.png.file = TRUE,
                    consensus.strength = 0.5,
                    plot.custom.width = 8, 
                    plot.custom.height = 8,
                    custom.graph.title = "Консенсусное дерево: Шолохов и его современники")

В таком случае произведения Шолохова не кластеризуются до конца.

Вывод

Консенсусное дерево — очень удобный инструмент, который помогает выявить устойчивые кластеры произведений, основываясь на частотностях слов. Оно показывает схожесть текстов разных авторов и возможное влияние стиля.

Изначально я предположила, что лучшую кластеризацию может обеспечить только увеличение показателя максимального количества частотных слов, однако только такое решение может не помочь — обеспечить более качественную кластеризацию помогло уменьшение шага (с 100 до 20).