rm(list = ls())
date()
## [1] "Fri Aug 16 21:54:31 2019"
sessionInfo()
## R version 3.5.1 (2018-07-02)
## Platform: x86_64-apple-darwin15.6.0 (64-bit)
## Running under: macOS 10.14.6
##
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib
##
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## loaded via a namespace (and not attached):
## [1] compiler_3.5.1 magrittr_1.5 tools_3.5.1 htmltools_0.3.6
## [5] yaml_2.2.0 Rcpp_1.0.0 stringi_1.2.4 rmarkdown_1.11
## [9] knitr_1.21 stringr_1.3.1 xfun_0.4 digest_0.6.18
## [13] evaluate_0.12
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(quanteda)
## Warning: package 'quanteda' was built under R version 3.5.2
## Package version: 1.4.3
## Parallel computing: 2 of 4 threads used.
## See https://quanteda.io for tutorials and examples.
##
## Attaching package: 'quanteda'
## The following object is masked from 'package:utils':
##
## View
library(ggplot2)
#library(stringr)
#load(file = "Corpus.RData")
load(file = "Corpus_S.RData")
Corpus_S <- corpus_subset(Corpus_S, group == "IDOR")
summary(Corpus_S, n = 1000)[-1] %>%
summary()
## Types Tokens Sentences group
## Min. :194.0 Min. : 444.0 Min. : 1.000 Length:130
## 1st Qu.:328.2 1st Qu.: 696.0 1st Qu.: 1.000 Class :character
## Median :365.5 Median : 815.5 Median : 2.000 Mode :character
## Mean :377.7 Mean : 846.6 Mean : 2.638
## 3rd Qu.:411.8 3rd Qu.: 962.5 3rd Qu.: 3.000
## Max. :637.0 Max. :1647.0 Max. :13.000
Количество текстов
всего
по группам
ndoc(Corpus_S)
## [1] 130
table(Corpus_S$documents$group)
##
## IDOR
## 130
Tokens_S <- tokens(Corpus_S, what = "fastestword") %>% #what = "fastestword" токенезирует по пробелам
tokens_remove("\\s") #удаляю маркеры конца предложения из списка токенов
#Tokens_S[1]
50 наиболее часто встречающих слов
set.seed(100)
Tokens_S %>%
tokens_keep(pattern = "*_S") %>%
dfm() %>%
textplot_wordcloud(max_words = 50, min_size = 1, rotation = 0)
встречающихся более чем в половине текстов
Tokens_S %>%
tokens_keep(pattern = "*_S") %>%
dfm() %>%
textstat_frequency() %>%
filter(docfreq > ndoc(Tokens_S) / 2) %>%
ggplot(aes(x = reorder(feature, frequency), y = frequency)) +
geom_point() +
coord_flip() +
labs(x = NULL, y = "Frequency") +
theme_minimal()
Tokens_S %>%
tokens_keep(pattern = "*_S") %>%
dfm() %>%
textstat_frequency() %>%
filter(docfreq > ndoc(Tokens_S) / 2) %>%
ggplot(aes(x = reorder(feature, docfreq), y = docfreq)) +
geom_point() +
coord_flip() +
labs(x = NULL, y = "Документы") +
theme_minimal()
Список слов, которые встречаются более чем в четверти.
frequency - частота встречаемости слова rank - ранг частоты docfreq - количество текстов, где встречается это слов
Tokens_S %>%
tokens_keep(pattern = "*_S") %>%
dfm() %>%
textstat_frequency() %>%
filter(docfreq > ndoc(Tokens_S) / 4) %>%
arrange(desc(docfreq)) %>%
select(-5)
## feature frequency rank docfreq
## 1 природа_s 2769 1 130
## 2 человек_s 2583 2 130
## 3 отношение_s 701 3 123
## 4 жизнь_s 360 5 118
## 5 мир_s 373 4 117
## 6 животное_s 344 6 110
## 7 земля_s 245 10 107
## 8 среда_s 273 7 98
## 9 лес_s 272 8 98
## 10 ресурс_s 266 9 96
## 11 время_s 174 18 94
## 12 человечество_s 229 12 91
## 13 планета_s 216 13 88
## 14 проблема_s 213 14 87
## 15 вид_s 193 16 87
## 16 вода_s 233 11 86
## 17 часть_s 149 19 85
## 18 год_s 132 24 79
## 19 растение_s 145 20 77
## 20 ребенок_s 206 15 75
## 21 мусор_s 175 17 75
## 22 воздух_s 133 23 75
## 23 место_s 119 27 70
## 24 дерево_s 138 21 68
## 25 образ_s 100 33 66
## 26 общество_s 138 21 65
## 27 вопрос_s 119 27 64
## 28 потребность_s 120 25 63
## 29 действие_s 103 32 62
## 30 деятельность_s 93 39 62
## 31 вред_s 99 34 61
## 32 последствие_s 97 36 60
## 33 отходы_s 106 30 59
## 34 развитие_s 120 25 58
## 35 сила_s 96 37 58
## 36 возможность_s 72 58 57
## 37 существо_s 107 29 55
## 38 количество_s 98 35 55
## 39 использование_s 93 39 55
## 40 сохранение_s 86 43 55
## 41 процесс_s 74 53 54
## 42 завод_s 74 53 54
## 43 дар_s 73 55 54
## 44 цель_s 105 31 53
## 45 закон_s 96 37 53
## 46 город_s 85 44 53
## 47 целое_s 68 66 53
## 48 дом_s 89 41 52
## 49 день_s 87 42 52
## 50 почва_s 77 50 52
## 51 атмосфера_s 72 58 52
## 52 поколение_s 77 50 50
## 53 качество_s 72 58 49
## 54 загрязнение_s 70 63 49
## 55 существование_s 68 66 49
## 56 источник_s 68 66 49
## 57 влияние_s 81 46 48
## 58 состояние_s 70 63 48
## 59 пример_s 61 74 48
## 60 экология_s 82 45 46
## 61 красота_s 69 65 46
## 62 река_s 67 69 46
## 63 сторона_s 66 70 46
## 64 взаимодействие_s 81 46 45
## 65 система_s 77 50 45
## 66 т_s 73 55 44
## 67 птица_s 59 75 44
## 68 связь_s 58 80 44
## 69 любовь_s 79 49 43
## 70 правило_s 73 55 42
## 71 условие_s 72 58 42
## 72 мера_s 59 75 42
## 73 ответственность_s 52 90 42
## 74 будущее_s 57 82 41
## 75 момент_s 56 84 41
## 76 книга_s 55 85 41
## 77 друг_s 80 48 40
## 78 изменение_s 64 71 40
## 79 пища_s 63 72 40
## 80 обитание_s 51 92 40
## 81 множество_s 46 108 40
## 82 поступок_s 71 62 39
## 83 вещь_s 59 75 39
## 84 случай_s 55 85 39
## 85 гармония_s 62 73 38
## 86 богатство_s 59 75 38
## 87 рыба_s 51 92 38
## 88 взаимоотношение_s 59 75 37
## 89 уровень_s 58 80 37
## 90 продукт_s 50 97 37
## 91 основа_s 48 103 37
## 92 пора_s 47 104 37
## 93 дело_s 47 104 37
## 94 океан_s 57 82 36
## 95 страна_s 54 87 36
## 96 точка_s 52 90 36
## 97 поведение_s 51 92 36
## 98 воздействие_s 50 97 36
## 99 удовлетворение_s 50 97 36
## 100 результат_s 47 104 36
## 101 сожаление_s 44 113 36
## 102 роль_s 49 102 35
## 103 средство_s 44 113 35
## 104 ценность_s 53 88 34
## 105 интерес_s 53 88 34
## 106 организм_s 50 97 34
## 107 внимание_s 45 111 34
## 108 мнение_s 40 124 34
## 109 способ_s 39 129 34
## 110 ситуация_s 50 97 33
## 111 море_s 45 111 33
## 112 защита_s 44 113 33
set.seed(100)
Tokens_S %>%
tokens_keep(pattern = "*_V") %>%
dfm() %>%
textplot_wordcloud(max_words = 50, min_size = 1, rotation = 0)
встречающихся более чем в половине текстов
Tokens_S %>%
tokens_keep(pattern = "*_V") %>%
dfm() %>%
textstat_frequency() %>%
filter(docfreq > ndoc(Tokens_S) / 2) %>%
ggplot(aes(x = reorder(feature, frequency), y = frequency)) +
geom_point() +
coord_flip() +
labs(x = NULL, y = "Frequency") +
theme_minimal()
Tokens_S %>%
tokens_keep(pattern = "*_V") %>%
dfm() %>%
textstat_frequency() %>%
filter(docfreq > ndoc(Tokens_S) / 2) %>%
ggplot(aes(x = reorder(feature, docfreq), y = docfreq)) +
geom_point() +
coord_flip() +
labs(x = NULL, y = "Документы") +
theme_minimal()
Список слов, которые встречаются более чем в четверти.
frequency - частота встречаемости слова rank - ранг частоты docfreq - количество текстов, где встречается это слов
Tokens_S %>%
tokens_keep(pattern = "*_V") %>%
dfm() %>%
textstat_frequency() %>%
filter(docfreq > ndoc(Tokens_S) / 4) %>%
arrange(desc(docfreq)) %>%
select(-5)
## feature frequency rank docfreq
## 1 мочь_v 694 2 128
## 2 быть_v 847 1 126
## 3 становиться_v 272 4 110
## 4 позволять_v 309 3 103
## 5 являться_v 221 5 93
## 6 давать_v 204 6 91
## 7 относиться_v 182 8 88
## 8 жить_v 180 9 86
## 9 понимать_v 158 11 86
## 10 использовать_v 186 7 81
## 11 делать_v 160 10 78
## 12 существовать_v 134 14 75
## 13 считать_v 110 19 74
## 14 начинать_v 130 15 72
## 15 иметь_v 120 16 68
## 16 создавать_v 119 17 68
## 17 задумываться_v 142 12 66
## 18 зависеть_v 104 20 66
## 19 хотеть_v 95 22 65
## 20 приводить_v 136 13 64
## 21 сохранять_v 92 23 64
## 22 сделать_v 89 24 64
## 23 думать_v 115 18 60
## 24 помогать_v 100 21 60
## 25 окружать_v 73 34 57
## 26 брать_v 86 25 56
## 27 загрязнять_v 73 34 55
## 28 говорить_v 85 26 54
## 29 находиться_v 71 37 54
## 30 вырубать_v 76 31 53
## 31 происходить_v 74 33 53
## 32 наносить_v 72 36 53
## 33 смочь_v 78 28 51
## 34 стоить_v 77 29 51
## 35 уничтожать_v 76 31 50
## 36 убивать_v 82 27 49
## 37 оставаться_v 77 29 49
## 38 оставлять_v 71 37 49
## 39 казаться_v 66 43 49
## 40 получать_v 67 41 47
## 41 вести_v 70 40 45
## 42 заботиться_v 67 41 45
## 43 осознавать_v 58 47 45
## 44 следовать_v 71 37 44
## 45 решать_v 56 51 44
## 46 сказать_v 57 49 43
## 47 беречь_v 60 45 41
## 48 идти_v 58 47 41
## 49 появляться_v 48 57 40
## 50 забывать_v 64 44 39
## 51 приходить_v 46 61 39
## 52 строить_v 49 56 38
## 53 отдавать_v 42 68 38
## 54 выбрасывать_v 57 49 37
## 55 пользоваться_v 56 51 37
## 56 разрушать_v 50 55 37
## 57 вредить_v 45 62 37
## 58 влиять_v 51 54 36
## 59 оказываться_v 39 77 36
## 60 видеть_v 53 53 35
## 61 расти_v 47 59 35
## 62 возникать_v 44 63 35
## 63 знать_v 44 63 35
## 64 уважать_v 43 66 35
## 65 стоять_v 40 73 35
## 66 связывать_v 38 79 35
## 67 изменять_v 59 46 34
## 68 любить_v 42 68 34
## 69 стараться_v 48 57 33
## 70 представлять_v 47 59 33
## 71 продолжать_v 44 63 33
## 72 приносить_v 41 71 33
set.seed(100)
Tokens_S %>%
tokens_keep(pattern = "*_A") %>%
dfm() %>%
textplot_wordcloud(max_words = 50, min_size = 1, rotation = 0)
встречающихся более чем в половине текстов
Tokens_S %>%
tokens_keep(pattern = "*_A") %>%
dfm() %>%
textstat_frequency() %>%
filter(docfreq > ndoc(Tokens_S) / 2) %>%
ggplot(aes(x = reorder(feature, frequency), y = frequency)) +
geom_point() +
coord_flip() +
labs(x = NULL, y = "Frequency") +
theme_minimal()
Tokens_S %>%
tokens_keep(pattern = "*_A") %>%
dfm() %>%
textstat_frequency() %>%
filter(docfreq > ndoc(Tokens_S) / 2) %>%
ggplot(aes(x = reorder(feature, docfreq), y = docfreq)) +
geom_point() +
coord_flip() +
labs(x = NULL, y = "Документы") +
theme_minimal()
Список слов, которые встречаются более чем в четверти.
frequency - частота встречаемости слова rank - ранг частоты docfreq - количество текстов, где встречается это слов
Tokens_S %>%
tokens_keep(pattern = "*_A") %>%
dfm() %>%
textstat_frequency() %>%
filter(docfreq > ndoc(Tokens_S) / 4) %>%
arrange(desc(docfreq)) %>%
select(-5)
## feature frequency rank docfreq
## 1 природный_a 287 2 106
## 2 должный_a 332 1 102
## 3 окружающий_a 266 3 99
## 4 новый_a 155 5 71
## 5 большой_a 111 7 71
## 6 огромный_a 104 8 68
## 7 живой_a 134 6 67
## 8 экологический_a 167 4 65
## 9 человеческий_a 101 9 63
## 10 важный_a 79 12 53
## 11 современный_a 85 11 51
## 12 хороший_a 67 15 50
## 13 данный_a 93 10 49
## 14 различный_a 76 13 48
## 15 чистый_a 64 16 47
## 16 потребительский_a 56 20 47
## 17 собственный_a 68 14 46
## 18 необходимый_a 62 18 46
## 19 глобальный_a 58 19 42
## 20 главный_a 52 22 42
## 21 естественный_a 64 16 39
## 22 способный_a 53 21 36
## 23 плохой_a 43 30 35
## 24 настоящий_a 36 42 35
## 25 красный_a 47 23 34
## 26 последний_a 45 26 34
## 27 прекрасный_a 43 30 34
## 28 правильный_a 42 33 34
## 29 полезный_a 46 24 33
## 30 возможный_a 41 35 33
## 31 животный_a 36 42 33