История Летописи/Процедура превращения журнала в карту

Материал из Letopisi.Ru — «Время вернуться домой»
Перейти к: навигация, поиск

Что у нас есть и что нам понадобиться?

Вся история изменений Летописи в текстовом формате csv на 143 мгб История за каждый год с 2006 по 2015 доступна на сайте открытых данных https://hubofdata.ru/dataset?q=letopisi - для дальнейшего анализа. Каждый желающий может взять эти данные

Содержание

Разделение по годам

  1. lhist <- read.csv(file.choose(),sep=";", as.is=T, header=T, encoding ="UTF-8") # считали всю историю Летописи
  2. lhist <- na.omit(lhist ) # Убрали строки с неопределенными NA значениями
  3. sort1.let <- lhist[order(lhist$rev_timestamp), ] # Отсортировали записи по дате
  4. lhist.sub2006 <- subset(lhist2,as.numeric(rev_timestamp) < 20070000000000 & as.numeric(rev_timestamp) > 20060000000000 ) ; Действия 2006 года
  5. lhist.sub2007 <- subset(lhist2,as.numeric(rev_timestamp) < 20080000000000 & as.numeric(rev_timestamp) > 20070000000000 ) ; 2007
  6. lhist.sub2008 <- subset(lhist2,as.numeric(rev_timestamp) < 20090000000000 & as.numeric(rev_timestamp) > 20080000000000 ) ; 2008

Сохранили все данные по годам - https://hubofdata.ru/dataset?q=letopisi - для дальнейшего анализа

Данные для каждого года

Для каждого года мы можем посмотреть

  1. E - общее число действий legth(lhist.sub2007[,2])
  2. U - users2007 <- unique(lhist.sub2007[,2]) = length(unique(lhist.sub2009[,2]))  ;
  3. P - pages2007 <- unique(lhist.sub2007[,5])  ;
  • users <- unique(lhist[,2])  ; выделить участников
    • length(unique(lhist[,2])) - посчитать участников
  • pages <- unique(lhist[,5])  ; - выделить страницы
    • length(pages) = length(unique(lhist[,5])) - посчитать страницы



Превращение данных в сеть

В конкретном примере на данных 2006 года

  1. lt06 <- data.frame(Source = paste("U",lhist.sub2006[,2],sep=":" ) , Target = paste("P",lhist.sub2006[,5],sep=":") )
  2. lt06.network <- graph.data.frame(lt06,directed=F) ;
  3. V(lt06.network)$type <- bipartite.mapping(lt06.network)$type
    • всегда используем этот тип
    • как получить вершины одного типа?


  1. lt06.network <- simplify(lt06.network , remove.multiple = T, remove.loops = T, edge.attr.comb=c(weight="sum") ) ; # Объединение связей

Данные о биграфе 2006 год

  1. graph.density(lt06.network)
  2. clusters(lt06.network)$no
  3. diameter(lt06.network)
  4. transitivity(lt06.network, type="global") ; # понятно, что 0
  5. centralization.betweenness (lt06.network) ;


Распределение узлов сети по различным параметрам

Здесь мы просто рассматриваем распределение узлов по их сетевым характеристикам

Распределение всех узлов по degree

  1. sorted_by_degrees <- sort(degree(lt06.network), decreasing=TRUE)
  2. write.csv(sorted_by_degrees, file="lt06_soterdby_degrees.csv", row.names=TRUE) ;

Распределение по центральности

  1. sorted_by_betw <- sort(betweenness(lt06.network), decreasing=TRUE)
  1. write.csv(sorted_by_betw, file="lt06_soterdby_betw.csv", row.names=TRUE) ;

Распределение по PageRank

  1. sorted_by_rank <- sort(page.rank(lt06.network)$vector, decreasing=TRUE)
  2. sorted_by_rank[1:50]
  3. write.csv(sorted_by_rank, file="lt06_soterdby_rank.csv", row.names=TRUE) ;

Распределение по коэффициенту кластеризации

  1. transitivity(g, type="local")
  2. order(transitivity(g, type="local")) - отранжировали узлы по кластеризации (имеет смысл только для одномодального графа) - Коэффициент кластеризации

Выделение кластеров для биграфа (?)

Превращение двумодального графа в одномодальный

  1. ltr06.network_users <- bipartite.projection(ltr06.network)$proj2

Посчитали характеристики одномодального графа участников

  1. graph.density(ltr06.network_users)
  2. clusters(ltr06.network_users)$no
  3. diameter(ltr06.network_users)
  4. transitivity(ltr06.network_users, type="global") ;
  5. centralization.betweenness (ltr06.network_users) ;

Выделили сообщества

Представили сообщества Летописи в VOSview - см. История Летописи




См.

  1. История Летописи/Иллюстрации
  2. История образовательной Галактики

Сравнение отдельных проектов Летописи в R - ВикиграммаR



Персональные инструменты
Инструменты