|
|
(не показаны 15 промежуточных версий 1 участника) |
Строка 1: |
Строка 1: |
− | На этой странице будет история создания и правок страниц [[Летописи]] будет представлена как [[граф]]. | + | На этой странице история создания и правок страниц [[Летописи]] будет представлена как [[карта]] или как [[граф]]. |
− | Что у нас есть и что нам понадобиться?
| + | В качестве макроскопов использованы [[R]], [[igraph]] и [[VOSviewer]] |
| | | |
− | Вся история изменений Летописи в текстовом формате csv на 143 мгб
| + | [[История Летописи/Процедура превращения журнала в карту]] |
| | | |
− | == Разделение по годам ==
| + | Не забыть извиниться - вклад и связи некоторых участников не показаны. Так, [[Участница:Тимохина Евгения]] не показана на картах, потому что вклад велик и связи ее слишком обширны. |
| | | |
− | ; rev_timestamp;rev_user_text;rev_page;rev_user;page_title;rev_len
| + | == История Летописи/2006 == |
− | :20090416061258;Наталия Ефимова;135741;27831;""Школа_№12,_города_Кунгура,_Пермского_края"";87
| + | |
− | :20070427072926;Анна Коровко;42443;190;"BOTANICUS"_Малышева_И.В.;102
| + | |
− | :20090320120452;Рината Рахимзянова;131370;27415;"Jack_London_and_his_creativity";3657
| + | |
− | :20090320120526;Рината Рахимзянова;131370;27415;"Jack_London_and_his_creativity";3656
| + | |
− | :20090320120558;Рината Рахимзянова;131370;27415;"Jack_London_and_his_creativity";3655
| + | |
| | | |
− | Возьмем [[R]] и попробуем выделить только правки 2006 года
| + | {{:История Летописи/2006}} |
| | | |
− | lhist <- read.csv(file.choose(),sep=";", as.is=T, header=T, encoding ="UTF-8") # считали всю историю Летописи
| + | == История Летописи/2007 == |
| | | |
− | lhist <- na.omit(lhist ) # Убрали строки с неопределенными NA значениями
| + | {{:История Летописи/2007}} |
| | | |
− | sort1.let <- lhist[order(lhist$rev_timestamp), ] # Отсортировали записи по дате
| + | == История Летописи/2008 == |
| | | |
− | Получили:
| + | {{:История Летописи/2008}} |
| | | |
− | rev_timestamp rev_user_text rev_page rev_user page_title rev_len
| + | == История Летописи/2009 == |
− | 759708 20051223042724 OckhamTheFox 96562 0 Мульт_Постер 48
| + | |
− | 100385 20060127110211 MediaWiki default 1 0 Главная_страница 253
| + | |
− | 100386 20060127134527 Admin 1 1 Главная_страница 699
| + | |
− | 100387 20060127134633 Admin 1 1 Главная_страница 703
| + | |
− | 100388 20060127135228 Admin 1 1 Главная_страница 718
| + | |
− | 100389 20060127140007 Евгений Патаракин 1 2 Главная_страница 747
| + | |
| | | |
| + | {{:История Летописи/2009}} |
| | | |
| + | == История Летописи/2010 == |
| | | |
| + | {{:История Летописи/2010}} |
| | | |
− | lhist.sub <- subset(lhist,as.numeric(rev_timestamp) < 20070000000000 & as.numeric(rev_len) > 200) # Оставили изменения, которые были сделаны ранее 2007 года и где вклад в страницу был больше 200 символов
| + | == История Летописи/2011 == |
− | lhist.sub <- na.omit(lhist.sub) # на всякий случай очистили данные
| + | |
| | | |
− | * users <- unique(lhist[,2]) ; выделить участников
| + | {{:История Летописи/2011}} |
− | ** length(unique(lhist[,2])) - посчитать участников
| + | |
− | * pages <- unique(lhist[,5]) ;
| + | |
− | ** length(pages) = length(unique(lhist[,5]))
| + | |
| | | |
− | # lhist.sub2006 <- subset(lhist2,as.numeric(rev_timestamp) < 20070000000000 & as.numeric(rev_timestamp) > 20060000000000 ) ; Действия 2006 года
| + | == История Летописи/2012 == |
− | # lhist.sub2007 <- subset(lhist2,as.numeric(rev_timestamp) < 20080000000000 & as.numeric(rev_timestamp) > 20070000000000 ) ; 2007
| + | |
− | # lhist.sub2008 <- subset(lhist2,as.numeric(rev_timestamp) < 20090000000000 & as.numeric(rev_timestamp) > 20080000000000 ) ; 2008
| + | |
| | | |
− | Сохранили все данные по годам - https://hubofdata.ru/dataset?q=letopisi - для дальнейшего анализа
| + | {{:История Летописи/2012}} |
| | | |
− | === Данные для каждого года === | + | == История Летописи/2013 == |
− | Для каждого года мы можем посмотреть
| + | |
− | # E - общее число действий legth(lhist.sub2007[,2])
| + | |
− | # U - users2007 <- unique(lhist.sub2007[,2]) = length(unique(lhist.sub2009[,2])) ;
| + | |
− | # P - pages2007 <- unique(lhist.sub2007[,5]) ;
| + | |
| | | |
− | === Ветераны - узлы, которые были активны в последующем ===
| + | {{:История Летописи/2013}} |
| | | |
− | ; Сколько в 2007 году было ветеранов? - тех, кто уже работал в 2006 году?
| + | == История Летописи/2014 == |
− | : length(intersect(users2007,users2006))
| + | |
| | | |
− | == Превращение данных в сеть ==
| + | {{:История Летописи/2014}} |
| | | |
− | lt2 <- data.frame(User = paste("U",lhist.sub[,2],sep=":" ) , Page = paste("P",lhist.sub[,5],sep=":") ) # Оставили только участников и страницы. На всякий случай добавили к цифрам буковки U - user и P
| + | == История Летописи/2015 == |
| | | |
− | lt2.network <- graph.data.frame(lt2,directed=T) # использовали пакет igraph и получили сеть
| + | {{:История Летописи/2015}} |
| | | |
− | lt2.network <- simplify(lt2.network) # упростили сеть - убрали множественные связи между участниками и страницами
| |
− |
| |
− | V(lt2.network)$color <-ifelse (substring(V(lt2.network)$name, 1, 1) == "U",'red','blue') # - участники выделены красным цветом - страницы - синим
| |
− |
| |
− | V(lt.network)$shape <-ifelse (substring(V(ubi2.network)$name, 1, 1) == "U",'circle','square') # участники - круг, страница - квадрат
| |
− |
| |
− | === Одноразовые узлы ===
| |
− |
| |
− | Это узлы, связанные с сетью только одной связью
| |
− | * poor.vs<-V(lt2.network)[degree(lt2.network)<2]
| |
− |
| |
− | ; Одноразовые участники - участники, которые совершили только одно действие
| |
− | : length(grep(pattern = "U:", as_ids(poor.vs), value = TRUE)) ;
| |
− | ; Одноразовые страницы - страницы, в отношении которых было совершено только одно действие (это страницы, которые были созданы, но больше они никогда не изменялись
| |
− | : length(grep(pattern = "P:", as_ids(poor.vs), value = TRUE)) ;
| |
− |
| |
− | ==== Отдельно получить перечень участников и страниц ====
| |
− |
| |
− | * usersg <- V(lt2.network)[V(lt2.network)$color == 'red']
| |
− | * pages <- V(lt2.network)[V(lt2.network)$color == 'blue']
| |
− |
| |
− | Отдельно посчитали авторов и страницы
| |
− |
| |
− | # Inspect the data:
| |
− |
| |
− | V(lt2.network) #prints the list of vertices (people) - перечень узлов
| |
− | E(lt2.network) # - перечень
| |
− | degree(bsk.network) #print the number of edges per vertex (relationships per people)
| |
− |
| |
− | === Полная история - структура отношений ===
| |
− |
| |
− | [[Файл:Lt2006.png]]
| |
− |
| |
− | === Без тех, у кого одна связь ===
| |
− | Теперь уберем узлы, у которых только одна связь:
| |
− |
| |
− | bd.vs<-V(lt2.network)[degree(lt2.network)<2]
| |
− |
| |
− | lt2.network<-delete.vertices(lt2.network, bad.vs) # удалили узлы
| |
− |
| |
− | [[Файл:Lt2006_2.png]]
| |
− |
| |
− |
| |
− | === Без тех, у кого только 2 связи ===
| |
− |
| |
− | [[Файл:Let2006 3.png]]
| |
− |
| |
− | Вполне уже читаемая карта, где можно выделить ключевых игроков. Теперь бы хотелось их назвать.
| |
− |
| |
− | === Ключевые игроки 2006 ===
| |
− |
| |
− | deg <- degree(lt2.network, mode="all")
| |
− |
| |
− | V(lt2.network)$label <-ifelse (substring(V(lt2.network)$name, 1, 1) == "U" & deg > 40, V(lt2.network)$name, NA) # подпишем тех, кто с числом связей > 40
| |
− |
| |
− | plot(lt2.network, edge.arrow.size=.1,vertex.size=deg/20, layout=layout.kamada.kawai) # Размер узла зависит от числа связей этого узла.
| |
− |
| |
− |
| |
− | [[Файл:Let2006 key.png]]
| |
− |
| |
− |
| |
− | * 2 - Евгений Патаракин
| |
− | * 3 - Ярослав Быховский
| |
− | * 9 - Ekulik
| |
− | * 77 - [[Участница:Юлия Н.|Юлия Н.]]
| |
− | * 190 - Анна Коровко
| |
− | * 437 - [[Участник:Alex|Alex]]
| |
− | * 458 - [[Участница:Тимохина_Евгения|Тимохина Евгения]]
| |
− |
| |
− |
| |
− | Продолжение следует.
| |
− |
| |
− | [[История образовательной Галактики]]
| |
− |
| |
− | ----
| |
− |
| |
− | Сравнение отдельных проектов Летописи в R - [[ВикиграммаR]]
| |
− |
| |
− |
| |
− | ----
| |
− |
| |
− | [[Категория:Социальная сеть]]
| |
| [[Категория:Учебная аналитика]] | | [[Категория:Учебная аналитика]] |
− | [[Категория:R]]
| |