Лес рук: консенсусные деревья встали на сторону автора

Серия визуализаций по следам громкого дела о тайне авторства “Тихого Дона”

Author

Дарья Галкина (автор сайта)

«Тихий Дон» С. Герасимов, 1957 год

Опыт исследование авторства “Тихого Дона” методом дельты Бёрроуза

В статье Н.П. Великановой и Б.В. Орехова “Цифровая текстология: атрибуция текста на примере романа М.А. Шолохова «Тихий Дон»” (2019) исследователи применили метод дельты Бёрроуза для определения автора “Тихого Дона”. Они собрали несколько произведений ключевых претендентов на авторство романа, а также некоторые другие тексты современников Шолохова (в общей сложности 32 произведения). Был создан датасет из 5000 наиболее употребимых в коллекции произведений слов, каждому из которых присвоен вес на основе его частоты в конкретном тексте, средней частоты в выборке и стандартного отклонения последнего (дельта Бёрроуза). Дендрограмма, построенная на основе таблицы частотностей, наглядно продемонстрировала разницу между текстами и степень их близости. Авторы пришли к выводу: “…если признавать «Донские рассказы» за Шолоховым, то именно он написал и все части «Тихого Дона»” (Великанова 2019).

Визуализации для этого этюда, вдохновлённого работой Н.П. Великановой и Б.В. Орехова, будут созданы на материале датасета «Стилеметрические данные “Тихого Дона” и современной ему прозы», подготовленного Б.В. Ореховым.

Что такое консенсусные деревья?

Дендрограмма, которую построили авторы описанного выше исследования - один из наиболее наглядных способов представления результатов иерархические кластеризации. Однако на внешний вид дерева влияет множество факторов, так то число предикторов, расстояние, которое используется для попарных сравнений, а также метод связи. Консенсусные деревья позволяют обобщить результаты, полученные на основе нескольких возможных дендрограмм, и оценить степень их согласованности.

Создадим три визуализации, отражающие степень согласованности дендрограмм, построенных на основе нашего датасета.

freq <- read.table(file = "table_with_frequencies.txt", sep = " ") |>
  t() |>
  data.frame()

Консенсусное дерево со stylo

png(filename = "stylo_cons_tree.png", width = 3000, height = 3000, res = 300)
bct_result <- stylo(gui = FALSE, 
                    frequencies = freq,
                    analysis.type = "BCT",
                    mfw.min = 100,
                    mfw.max = 500,
                    mfw.incr = 100,
                    distance.measure = "wurzburg",
                    write.png.file = FALSE,
                    consensus.strength = 0.5,
                    plot.custom.width = 100, 
                    plot.custom.height = 20
)
dev.off()
png 
  2 

На графике видно, что первые три части “Тихого Дона” и “Донские рассказы” образуют одну ветвь, причем первый том наиболее близок к рассказам. В том же поддереве, но немного поодаль, расположены тексты Серафимовича и Иванова. Остальные произведения Шолохова и четвертый том “Тихого Дона” формируют другое, как ни странно, не связанное с первым, поддерево. Примечательно, что несмотря на сомнения в авторстве “Тихого Дона” в целом, критики чаще всего признавали Шолохова автором именно заключительного тома романа.

10 деревьев и метод простого большинства

Используя библиотеку purrr, сгенерируем 10 филогенетических деревьев. Для определения консенсусного дерева, отражающего наиболее устойчивые кластеры, применим метод простого большинства.

get_tree <- function(df) {
  X <- df[ , sample(1000, replace = F, size = 100)]
  distmx <- dist(scale(X))
  tr <- as.phylo(hclust(distmx))
  tr
}

set.seed(1602)
trees_result <- map(1:10, ~get_tree(freq))

cons <- consensus(trees_result, p = 0.5, rooted = TRUE)

pal <- c("#5F4690FF",
         "#1D6996FF",
         "#38A6A5FF",
         "#0F8554FF",
         "#73AF48FF",
         "#EDAD08FF",
         "#E17C05FF",
         "#CC503EFF",
         "#94346EFF",
         "#6F4070FF",
         "#994E95FF",
         "#666666FF")
cons$col <- str_remove_all(cons$tip.label, "_.+")

cons_col_tbl <- tibble(label = unique(cons$col),
                  col = pal)

cons_color_group <- tibble(label = cons$col) |> 
  left_join(cons_col_tbl)

cons$col <- cons_color_group$col
  

par(mfrow = c(1,1), mar = c(5,5,5,5))

plot.phylo(cons, 
           type = "phylogram", 
           use.edge.length = TRUE,
           edge.width = 1.5, 
           node.color = "grey30",
           font = 1, 
           no.margin = TRUE, 
           label.offset = 0.1,
           direction = "rightwards", 
           plot = TRUE, 
           tip.color = cons$col,
           lab4ut = "a",
           node.depth = 1)
nodelabels(text=sprintf("%.2f", cons$node.label),
           node=1:cons$Nnode+Ntip(cons),
           frame="circle",
           bg = "pink",
           cex = 0.5)

На консенсусном дереве чётко прослеживается кластер текстов Шолохова, включающий в себя все тома “Тихого Дона”. Как и на предыдущей визуализации, здесь первые три тома наиболее близки к “Донским рассказам”, в то время как четвёртый том оказывается наиболее обособленным. Отдельного внимания заслуживает рассказ “Судьба человека”, который формирует отдельный кластер, наиболее удалённый от основного кластера текстов Шолохова. Ранее проведённый BCT-анализ также показал, что «Судьба человека» занимает особое положение среди поздних текстов Шолохова, ответвляясь от самого основания их поддерева.

consensusNet для отражения конфликтующих сигналов

Консенсусные деревья учитывают степень согласованности построенных деревьев, но не отражают конфликтующие сигналы. От этого ограничения избавлены консенсусные сети - визуализации, которые отображают несовместимые в одном дереве расщепления в виде четырехугольников, давая представление о неоднозначности данных. Построим консенсусную сеть про помощи функции consensusNet.

mph <- as.multiPhylo(trees_result)
cons.nw <- consensusNet(mph, prob = 0.3, rooted = FALSE)

cons.nw$col <- cons_color_group$col

set.seed(01)
par(mar = c(0,0,0,0))
png(filename = "consensusNet.png", width = 9000, height = 8000, res = 1000)
plot(cons.nw, type = "2D", 
     direction = "axial",
     cex = 0.7,
     write.png.file = FALSE,
     tip.color = cons.nw$col,
     edge.color = "grey30",
     edge.width = 1)
dev.off()
png 
  2 

Консенсусная сеть демонстрирует, что все тексты Шолохова, за исключением “Судьбы человека”, образуют единый кластер, разделяясь на три отчетливые ветви. При этом, как и на предыдущих графиках, первые три тома “Тихого Дона” и “Донские рассказы” формируют одну ветвь, остальные романы автора – другую, а четвёртый том “Тихого Дона” занимает промежуточное положение, соединяя обе эти ветви.

Выводы

Полученные визуализации убедительно демонстрируют, что “Тихий Дон” и “Донские рассказы” написаны одним и тем же автором, что практически исключает сомнения в их авторстве. При этом четвёртый том романа, несмотря на принадлежность к общему кластеру “Тихого Дона”, демонстрирует близость к более поздним произведениям Шолохова: “Поднятая целина” и “Они сражались за Родину”. Во всех проведённых анализах рассказ “Судьба человека” обособляется от остального корпуса текстов, что, возможно, связано с его жанровой спецификой.

References

Великанова, Орехов, Н. П. 2019. “Цифровая Текстология: Атрибуция Текста На Примере Романа м.а. Шолохова «Тихий Дон».” Научнопросветительский Общенациональный Журнал "Мир Шолохова" 1 (11).