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")

Описательная статистика 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]

POS Существительные

Облако

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

POS Глаголы

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

POS Прилагательные

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