rm(list = ls())
date()
## [1] "Tue May 5 18:14:46 2020"
sessionInfo()
## R version 3.6.1 (2019-07-05)
## Platform: x86_64-apple-darwin15.6.0 (64-bit)
## Running under: macOS Catalina 10.15.4
##
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/3.6/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.6.1 magrittr_1.5 tools_3.6.1 htmltools_0.4.0
## [5] yaml_2.2.0 Rcpp_1.0.2 stringi_1.4.3 rmarkdown_1.16
## [9] knitr_1.25 stringr_1.4.0 xfun_0.10 digest_0.6.21
## [13] rlang_0.4.2 evaluate_0.14
##Библиотеки
library(quanteda)
## Package version: 1.5.1
## 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(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(stringr)
# library(ggplot2)
library(magrittr)
# library(tibble)
load(file = "Tokens_S2.RData")
load(file = "Tokens_S.RData")
# load(file = "Corpus_S2.RData")
aTime <- Sys.time()
FreqAll <- Tokens_S %>%
dfm() %>%
textstat_frequency() %>%
select(-group) %>%
mutate(POS = str_extract(feature, "_[a-z]+")) %>%
filter(POS %in% c( "_s", "_v", "_a")) %>%
arrange(desc(docfreq))
bTime <- Sys.time()
bTime - aTime
## Time difference of 0.121376 secs
head(FreqAll, 100)
## feature frequency rank docfreq POS
## 1 природа_s 4337 3 225 _s
## 2 человек_s 4145 5 225 _s
## 3 мочь_v 1097 16 220 _v
## 4 быть_v 1398 12 216 _v
## 5 отношение_s 1062 20 212 _s
## 6 жизнь_s 626 35 196 _s
## 7 мир_s 565 39 188 _s
## 8 становиться_v 446 51 185 _v
## 9 земля_s 417 56 183 _s
## 10 животное_s 579 37 182 _s
## 11 лес_s 481 47 179 _s
## 12 должный_a 559 40 178 _a
## 13 природный_a 487 46 177 _a
## 14 позволять_v 511 43 176 _v
## 15 ресурс_s 476 48 166 _s
## 16 среда_s 475 49 166 _s
## 17 окружающий_a 419 55 163 _a
## 18 время_s 338 70 163 _s
## 19 планета_s 398 58 160 _s
## 20 давать_v 326 74 157 _v
## 21 вид_s 365 63 156 _s
## 22 человечество_s 381 61 154 _s
## 23 год_s 278 84 151 _s
## 24 являться_v 346 68 149 _v
## 25 жить_v 312 77 149 _v
## 26 проблема_s 356 65 147 _s
## 27 относиться_v 273 86 144 _v
## 28 вода_s 389 59 142 _s
## 29 мусор_s 335 71 141 _s
## 30 использовать_v 296 80 139 _v
## 31 часть_s 238 100 137 _s
## 32 понимать_v 261 90 136 _v
## 33 новый_a 271 88 134 _a
## 34 делать_v 252 94 133 _v
## 35 существовать_v 227 106 133 _v
## 36 растение_s 246 96 132 _s
## 37 воздух_s 239 99 128 _s
## 38 место_s 216 113 128 _s
## 39 большой_a 200 117 126 _a
## 40 создавать_v 220 111 124 _v
## 41 начинать_v 217 112 124 _v
## 42 задумываться_v 235 102 120 _v
## 43 живой_a 227 106 118 _a
## 44 вопрос_s 222 109 118 _s
## 45 считать_v 169 134 118 _v
## 46 приводить_v 230 104 117 _v
## 47 дерево_s 221 110 117 _s
## 48 отходы_s 207 114 113 _s
## 49 огромный_a 174 129 111 _a
## 50 действие_s 186 123 110 _s
## 51 количество_s 204 115 108 _s
## 52 экологический_a 257 91 106 _a
## 53 иметь_v 191 120 106 _v
## 54 сделать_v 160 142 105 _v
## 55 образ_s 154 147 105 _s
## 56 помогать_v 173 131 104 _v
## 57 вред_s 162 138 104 _s
## 58 ребенок_s 257 91 103 _s
## 59 последствие_s 159 143 103 _s
## 60 зависеть_v 155 146 103 _v
## 61 общество_s 223 108 102 _s
## 62 сохранять_v 156 145 101 _v
## 63 деятельность_s 154 147 99 _s
## 64 завод_s 133 177 99 _s
## 65 происходить_v 148 155 98 _v
## 66 брать_v 144 158 98 _v
## 67 сила_s 154 147 97 _s
## 68 человеческий_a 153 150 97 _a
## 69 город_s 162 138 96 _s
## 70 дом_s 159 143 96 _s
## 71 развитие_s 186 123 95 _s
## 72 почва_s 153 150 94 _s
## 73 атмосфера_s 139 164 93 _s
## 74 думать_v 185 125 92 _v
## 75 существо_s 177 128 92 _s
## 76 день_s 153 150 92 _s
## 77 использование_s 141 163 92 _s
## 78 хотеть_v 136 169 92 _v
## 79 вырубать_v 129 183 92 _v
## 80 загрязнять_v 124 188 92 _v
## 81 оставаться_v 134 173 91 _v
## 82 процесс_s 124 188 91 _s
## 83 окружать_v 118 199 91 _v
## 84 наносить_v 121 193 90 _v
## 85 потребность_s 170 132 89 _s
## 86 стоить_v 143 160 89 _v
## 87 источник_s 127 186 89 _s
## 88 данный_a 170 132 88 _a
## 89 загрязнение_s 138 166 88 _s
## 90 возможность_s 114 206 88 _s
## 91 современный_a 142 161 87 _a
## 92 находиться_v 120 195 87 _v
## 93 говорить_v 144 158 86 _v
## 94 река_s 134 173 85 _s
## 95 смочь_v 128 185 85 _v
## 96 целое_s 110 214 85 _s
## 97 уничтожать_v 129 183 84 _v
## 98 дар_s 109 220 84 _s
## 99 условие_s 138 166 83 _s
## 100 сохранение_s 131 179 82 _s
word <- function(n = Inf) {head(FreqAll$feature, n)}
sword <- function(n = Inf) {head(filter(
FreqAll, POS == "_s")[["feature"]], n)}
aword <- function(n = Inf) {head(filter(
FreqAll, POS == "_a")[["feature"]], n)}
vword <- function(n = Inf) {head(filter(
FreqAll, POS == "_v")[["feature"]], n)}
#aTime <- Sys.time()
Dist_t2 <- Tokens_S %>%
tokens_keep(pattern = c("*_S", "*_V", "*_A")) %>%
fcm(context = "window", count = "frequency"
, window = 2
, tri = FALSE) %>%
as.dfm() %>% # вроде и напрямую работает, но на всякий случай.
textstat_simil(margin = "features", method = "cosine"
#, min_simil = 0.80
) %>%
as.data.frame() %>%
arrange(desc(cosine)) %>%
mutate(POS1 = str_extract(feature1, "_[A-Z]+")) %>%
mutate(POS2 = str_extract(feature2, "_[A-Z]+")) %>%
filter(POS1 %in% c( "_S", "_V", "_A")) %>%
filter(POS2 %in% c( "_S", "_V", "_A")) %T>%
{
extract2(., 3) %>%
hist()
}
#Sys.time() - aTime
Dist_t2 %>%
filter(feature1 == "природа_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 природа_S должный_A 0.8622282 _S _A
## 2 природа_S считать_V 0.8533090 _S _V
## 3 природа_S задумываться_V 0.8480295 _S _V
## 4 природа_S позволять_V 0.8141524 _S _V
## 5 природа_S говорить_V 0.8119083 _S _V
## 6 природа_S разумный_A 0.8094962 _S _A
## 7 природа_S деятельность_S 0.8052102 _S _S
## 8 природа_S думать_V 0.8035259 _S _V
## 9 природа_S понимать_V 0.8016208 _S _V
## 10 природа_S сторона_S 0.7997393 _S _S
Dist_t2 %>%
filter(feature1 == "лес_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 лес_S дерево_S 0.5627782 _S _S
## 2 лес_S истреблять_V 0.4848537 _S _V
## 3 лес_S убивать_V 0.4660178 _S _V
## 4 лес_S место_S 0.4571452 _S _S
## 5 лес_S гореть_V 0.4339851 _S _V
## 6 лес_S посадить_V 0.4068942 _S _V
## 7 лес_S целый_A 0.3999526 _S _A
## 8 лес_S ограждаться_V 0.3961124 _S _V
## 9 лес_S нужда_S 0.3960453 _S _S
## 10 лес_S погибать_V 0.3951146 _S _V
Dist_t2 %>%
filter(feature1 == "вода_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 вода_S дышать_V 0.6419002 _S _V
## 2 вода_S чистый_A 0.5855766 _S _A
## 3 вода_S загрязнять_V 0.5401314 _S _V
## 4 вода_S свежий_A 0.5085142 _S _A
## 5 вода_S кислород_S 0.5022588 _S _S
## 6 вода_S свет_S 0.4942098 _S _S
## 7 вода_S пить_V 0.4830448 _S _V
## 8 вода_S воздух_S 0.4635674 _S _S
## 9 вода_S атмосферный_A 0.4516468 _S _A
## 10 вода_S родниковый_A 0.4311533 _S _A
Dist_t2 %>%
filter(feature1 == "мораль_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 мораль_S общепринятый_A 0.4389229 _S _A
## 2 мораль_S регулировать_V 0.4372246 _S _V
## 3 мораль_S упираться_V 0.4313311 _S _V
## 4 мораль_S обостренный_A 0.4193711 _S _A
## 5 мораль_S противоправность_S 0.3812464 _S _S
## 6 мораль_S фундаментальность_S 0.3735437 _S _S
## 7 мораль_S помысел_S 0.3735437 _S _S
## 8 мораль_S причислять_V 0.3616821 _S _V
## 9 мораль_S сущность_S 0.3586021 _S _S
## 10 мораль_S библейский_A 0.3521804 _S _A
# aTime <- Sys.time()
#
# Cosine_01 <- Tokens_S %>%
# tokens_keep(pattern = c("*_S", "*_V", "*_A")) %>%
# tokens_tolower() %>%
# fcm(context = "window", count = "frequency"
# , window = 2
# , tri = FALSE) %>%
# as.dfm() %>%
# textstat_simil(margin = "features", method = "cosine")
#
# Sys.time() - aTime
Кластерный анализ
# aTime <- Sys.time()
#
# Cosine_01[sword(50), sword(50)] %>%
# as.dist() %>%
# hclust(method = "single") %>%
# plot()
#
#
# Sys.time() - aTime
тепловая карта
# aTime <- Sys.time()
#
# Cosine_01[aword(50), sword(50)] %>%
# as.matrix() %>%
# heatmap(cexRow = 0.4, cexCol = 0.4, scale = "none")
#
# Sys.time() - aTime
Dist_t3 <- Tokens_S %>%
tokens_keep(pattern = c("*_S", "*_V", "*_A")) %>%
fcm(context = "window", count = "frequency"
, window = 3
, tri = FALSE) %>%
as.dfm() %>% # вроде и напрямую работает, но на всякий случай.
textstat_simil(margin = "features", method = "cosine"
#, min_simil = 0.80
) %>%
as.data.frame() %>%
arrange(desc(cosine)) %>%
mutate(POS1 = str_extract(feature1, "_[A-Z]+")) %>%
mutate(POS2 = str_extract(feature2, "_[A-Z]+")) %>%
filter(POS1 %in% c( "_S", "_V", "_A")) %>%
filter(POS2 %in% c( "_S", "_V", "_A")) %T>%
{
extract2(., 3) %>%
hist()
}
Dist_t3 %>%
filter(feature1 == "природа_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 природа_S задумываться_V 0.8796489 _S _V
## 2 природа_S считать_V 0.8781257 _S _V
## 3 природа_S должный_A 0.8588592 _S _A
## 4 природа_S говорить_V 0.8559787 _S _V
## 5 природа_S думать_V 0.8542796 _S _V
## 6 природа_S понимать_V 0.8489152 _S _V
## 7 природа_S деятельность_S 0.8375026 _S _S
## 8 природа_S разумный_A 0.8271905 _S _A
## 9 природа_S позволять_V 0.8262454 _S _V
## 10 природа_S сказать_V 0.8257623 _S _V
Dist_t3 %>%
filter(feature1 == "лес_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 лес_S дерево_S 0.6438098 _S _S
## 2 лес_S место_S 0.6045160 _S _S
## 3 лес_S истреблять_V 0.5906036 _S _V
## 4 лес_S убивать_V 0.5902883 _S _V
## 5 лес_S задумываться_V 0.5569708 _S _V
## 6 лес_S большой_A 0.5454352 _S _A
## 7 лес_S видеть_V 0.5448605 _S _V
## 8 лес_S думать_V 0.5394332 _S _V
## 9 лес_S оставаться_V 0.5332246 _S _V
## 10 лес_S начинать_V 0.5303945 _S _V
Dist_t3 %>%
filter(feature1 == "вода_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 вода_S чистый_A 0.6963104 _S _A
## 2 вода_S загрязнять_V 0.6794466 _S _V
## 3 вода_S дышать_V 0.6716682 _S _V
## 4 вода_S воздух_S 0.5998623 _S _S
## 5 вода_S свет_S 0.5789821 _S _S
## 6 вода_S кислород_S 0.5777663 _S _S
## 7 вода_S пища_S 0.5440588 _S _S
## 8 вода_S необходимый_A 0.5382466 _S _A
## 9 вода_S большой_A 0.5175852 _S _A
## 10 вода_S количество_S 0.5041539 _S _S
Dist_t3 %>%
filter(feature1 == "мораль_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 мораль_S регулировать_V 0.4831766 _S _V
## 2 мораль_S общепринятый_A 0.4433103 _S _A
## 3 мораль_S симбиоз_S 0.4338351 _S _S
## 4 мораль_S упираться_V 0.4276686 _S _V
## 5 мораль_S девство_S 0.4264014 _S _S
## 6 мораль_S неразделимый_A 0.4178554 _S _A
## 7 мораль_S возвышать_V 0.4128614 _S _V
## 8 мораль_S обратный_A 0.4121490 _S _A
## 9 мораль_S присутствие_S 0.4090825 _S _S
## 10 мораль_S близкий_A 0.4066159 _S _A
Dist_t3 %>%
filter(feature1 == "моральный_A") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 моральный_A нравственный_A 0.5398651 _A _A
## 2 моральный_A стадий_S 0.4749803 _A _S
## 3 моральный_A духовный_A 0.4709026 _A _A
## 4 моральный_A поведение_S 0.4633620 _A _S
## 5 моральный_A обращаться_V 0.4578708 _A _V
## 6 моральный_A отвечать_V 0.4501535 _A _V
## 7 моральный_A корректироваться_V 0.4393568 _A _V
## 8 моральный_A ценность_S 0.4371716 _A _S
## 9 моральный_A личный_A 0.4342982 _A _A
## 10 моральный_A обязанный_A 0.4332825 _A _A
Dist_t3 %>%
filter(feature1 == "нравственный_A") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 нравственный_A неравноценный_A 0.6392420 _A _A
## 2 нравственный_A концепция_S 0.6109427 _A _S
## 3 нравственный_A общаться_V 0.6052248 _A _V
## 4 нравственный_A трепетный_A 0.6005001 _A _A
## 5 нравственный_A корректироваться_V 0.6001876 _A _V
## 6 нравственный_A субъективность_S 0.5847499 _A _S
## 7 нравственный_A обращаться_V 0.5785679 _A _V
## 8 нравственный_A позволение_S 0.5758219 _A _S
## 9 нравственный_A стадий_S 0.5751798 _A _S
## 10 нравственный_A сходный_A 0.5739212 _A _A
Dist_t3 %>%
filter(feature1 == "экологический_A") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 экологический_A экология_S 0.6806231 _A _S
## 2 экологический_A важный_A 0.6652430 _A _A
## 3 экологический_A говорить_V 0.6441965 _A _V
## 4 экологический_A культура_S 0.6389730 _A _S
## 5 экологический_A главный_A 0.6362798 _A _A
## 6 экологический_A взаимодействие_S 0.6322689 _A _S
## 7 экологический_A понимать_V 0.6253035 _A _V
## 8 экологический_A думать_V 0.6227021 _A _V
## 9 экологический_A большой_A 0.6226332 _A _A
## 10 экологический_A казаться_V 0.6219229 _A _V
aTime <- Sys.time()
Dist_t5 <- Tokens_S %>%
tokens_keep(pattern = c("*_S", "*_V", "*_A")) %>%
fcm(context = "window", count = "frequency"
, window = 5
, tri = FALSE) %>%
as.dfm() %>% # вроде и напрямую работает, но на всякий случай.
textstat_simil(margin = "features", method = "cosine"
#, min_simil = 0.80
) %>%
as.data.frame() %>%
arrange(desc(cosine)) %>%
mutate(POS1 = str_extract(feature1, "_[A-Z]+")) %>%
mutate(POS2 = str_extract(feature2, "_[A-Z]+")) %>%
filter(POS1 %in% c( "_S", "_V", "_A")) %>%
filter(POS2 %in% c( "_S", "_V", "_A")) %T>%
{
extract2(., 3) %>%
hist()
}
bTime <- Sys.time()
bTime - aTime
## Time difference of 49.69907 secs
Dist_t5 %>%
filter(feature1 == "природа_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 природа_S задумываться_V 0.9144827 _S _V
## 2 природа_S думать_V 0.9142806 _S _V
## 3 природа_S понимать_V 0.9098620 _S _V
## 4 природа_S говорить_V 0.9094155 _S _V
## 5 природа_S должный_A 0.9052055 _S _A
## 6 природа_S хороший_A 0.9002354 _S _A
## 7 природа_S считать_V 0.8991900 _S _V
## 8 природа_S сказать_V 0.8978736 _S _V
## 9 природа_S отвечать_V 0.8955859 _S _V
## 10 природа_S позволять_V 0.8954563 _S _V
Dist_t5 %>%
filter(feature1 == "лес_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 лес_S дерево_S 0.7675050 _S _S
## 2 лес_S место_S 0.7510936 _S _S
## 3 лес_S убивать_V 0.7338716 _S _V
## 4 лес_S целый_A 0.6837567 _S _A
## 5 лес_S уничтожать_V 0.6829482 _S _V
## 6 лес_S большой_A 0.6807415 _S _A
## 7 лес_S животное_S 0.6799639 _S _S
## 8 лес_S задумываться_V 0.6799237 _S _V
## 9 лес_S загрязнять_V 0.6734360 _S _V
## 10 лес_S оставаться_V 0.6675393 _S _V
Dist_t5 %>%
filter(feature1 == "вода_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 вода_S воздух_S 0.7777478 _S _S
## 2 вода_S загрязнять_V 0.7644626 _S _V
## 3 вода_S чистый_A 0.7545947 _S _A
## 4 вода_S дышать_V 0.7162163 _S _V
## 5 вода_S количество_S 0.7098456 _S _S
## 6 вода_S свет_S 0.6886751 _S _S
## 7 вода_S пища_S 0.6846797 _S _S
## 8 вода_S огромный_A 0.6842483 _S _A
## 9 вода_S необходимый_A 0.6711045 _S _A
## 10 вода_S большой_A 0.6583031 _S _A
Dist_t5 %>%
filter(feature1 == "мораль_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 мораль_S регулировать_V 0.5551974 _S _V
## 2 мораль_S нравственный_A 0.5311808 _S _A
## 3 мораль_S факт_S 0.5224203 _S _S
## 4 мораль_S обращаться_V 0.5140901 _S _V
## 5 мораль_S изменяться_V 0.5120152 _S _V
## 6 мораль_S объективный_A 0.4901917 _S _A
## 7 мораль_S упираться_V 0.4861906 _S _V
## 8 мораль_S власть_S 0.4860337 _S _S
## 9 мораль_S воспитание_S 0.4855717 _S _S
## 10 мораль_S закладывать_V 0.4848451 _S _V
aTime <- Sys.time()
Dist_t2All <- Tokens_S %>%
#tokens_keep(pattern = c("*_S", "*_V", "*_A")) %>%
fcm(context = "window", count = "frequency"
, window = 2
, tri = FALSE) %>%
as.dfm() %>% # вроде и напрямую работает, но на всякий случай.
textstat_simil(margin = "features", method = "cosine"
#, min_simil = 0.80
) %>%
as.data.frame() %>%
arrange(desc(cosine)) %>%
mutate(POS1 = str_extract(feature1, "_[A-Z]+")) %>%
mutate(POS2 = str_extract(feature2, "_[A-Z]+")) %>%
filter(POS1 %in% c( "_S", "_V", "_A")) %>%
filter(POS2 %in% c( "_S", "_V", "_A")) %T>%
{
extract2(., 3) %>%
hist()
}
Sys.time() - aTime
## Time difference of 56.04026 secs
Dist_t2All %>%
filter(feature1 == "природа_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 природа_S начинать_V 0.8201205 _S _V
## 2 природа_S другдруг?_S 0.8089336 _S _S
## 3 природа_S взаимодействие_S 0.8072842 _S _S
## 4 природа_S деятельность_S 0.8052257 _S _S
## 5 природа_S хороший_A 0.7967455 _S _A
## 6 природа_S счастие_S 0.7887677 _S _S
## 7 природа_S взаимоотношение_S 0.7887076 _S _S
## 8 природа_S ребенок_S 0.7847839 _S _S
## 9 природа_S развитие_S 0.7807006 _S _S
## 10 природа_S добрый_A 0.7744588 _S _A
Dist_t2All %>%
filter(feature1 == "лес_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 лес_S дерево_S 0.7134538 _S _S
## 2 лес_S мусор_S 0.6922855 _S _S
## 3 лес_S век_S 0.6732133 _S _S
## 4 лес_S результат_S 0.6698309 _S _S
## 5 лес_S будущее_S 0.6694841 _S _S
## 6 лес_S хороший_A 0.6634085 _S _A
## 7 лес_S качество_S 0.6607852 _S _S
## 8 лес_S город_S 0.6559324 _S _S
## 9 лес_S школа_S 0.6523666 _S _S
## 10 лес_S большой_A 0.6354393 _S _A
Dist_t2All %>%
filter(feature1 == "вода_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 вода_S воздух_S 0.7449434 _S _S
## 2 вода_S пища_S 0.7401301 _S _S
## 3 вода_S чистый_A 0.7121388 _S _A
## 4 вода_S здоровье_S 0.7099942 _S _S
## 5 вода_S свет_S 0.7064633 _S _S
## 6 вода_S хороший_A 0.7059273 _S _A
## 7 вода_S пластик_S 0.7047846 _S _S
## 8 вода_S многообразный_A 0.7026325 _S _A
## 9 вода_S промышленность_S 0.7002262 _S _S
## 10 вода_S качество_S 0.6969358 _S _S
Dist_t2All %>%
filter(feature1 == "мораль_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 мораль_S психологический_A 0.6478984 _S _A
## 2 мораль_S симбиоз_S 0.6439886 _S _S
## 3 мораль_S другдруг?_S 0.6274950 _S _S
## 4 мораль_S многообразный_A 0.6214286 _S _A
## 5 мораль_S практический_A 0.6036281 _S _A
## 6 мораль_S тишина_S 0.6022113 _S _S
## 7 мораль_S религия_S 0.5993903 _S _S
## 8 мораль_S обоняние_S 0.5976143 _S _S
## 9 мораль_S устремление_S 0.5976143 _S _S
## 10 мораль_S кочевать_V 0.5976143 _S _V
aTime <- Sys.time()
Dist_t3All <- Tokens_S %>%
#tokens_keep(pattern = c("*_S", "*_V", "*_A")) %>%
fcm(context = "window", count = "frequency"
, window = 3
, tri = FALSE) %>%
as.dfm() %>% # вроде и напрямую работает, но на всякий случай.
textstat_simil(margin = "features", method = "cosine"
#, min_simil = 0.80
) %>%
as.data.frame() %>%
arrange(desc(cosine)) %>%
mutate(POS1 = str_extract(feature1, "_[A-Z]+")) %>%
mutate(POS2 = str_extract(feature2, "_[A-Z]+")) %>%
filter(POS1 %in% c( "_S", "_V", "_A")) %>%
filter(POS2 %in% c( "_S", "_V", "_A")) %T>%
{
extract2(., 3) %>%
hist()
}
Sys.time() - aTime
## Time difference of 1.174005 mins
Dist_t3All %>%
filter(feature1 == "природа_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 природа_S начинать_V 0.8568415 _S _V
## 2 природа_S деятельность_S 0.8455749 _S _S
## 3 природа_S жить_V 0.8431235 _S _V
## 4 природа_S хороший_A 0.8427646 _S _A
## 5 природа_S близкий_A 0.8380283 _S _A
## 6 природа_S должный_A 0.8369188 _S _A
## 7 природа_S развитие_S 0.8360722 _S _S
## 8 природа_S плохой_A 0.8206761 _S _A
## 9 природа_S ребенок_S 0.8206501 _S _S
## 10 природа_S поступок_S 0.8200686 _S _S
Dist_t3All %>%
filter(feature1 == "лес_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 лес_S дерево_S 0.7994557 _S _S
## 2 лес_S мусор_S 0.7635988 _S _S
## 3 лес_S идти_V 0.7599822 _S _V
## 4 лес_S хороший_A 0.7553299 _S _A
## 5 лес_S результат_S 0.7533523 _S _S
## 6 лес_S большой_A 0.7478424 _S _A
## 7 лес_S будущее_S 0.7460514 _S _S
## 8 лес_S пример_S 0.7301522 _S _S
## 9 лес_S век_S 0.7300041 _S _S
## 10 лес_S свалка_S 0.7295299 _S _S
Dist_t3All %>%
filter(feature1 == "вода_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 вода_S воздух_S 0.8031321 _S _S
## 2 вода_S чистый_A 0.7933677 _S _A
## 3 вода_S пища_S 0.7885994 _S _S
## 4 вода_S дерево_S 0.7800474 _S _S
## 5 вода_S лес_S 0.7717877 _S _S
## 6 вода_S хороший_A 0.7684221 _S _A
## 7 вода_S качество_S 0.7632629 _S _S
## 8 вода_S переработка_S 0.7616387 _S _S
## 9 вода_S животное_S 0.7577079 _S _S
## 10 вода_S идти_V 0.7553670 _S _V
Dist_t3All %>%
filter(feature1 == "мораль_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 мораль_S психологический_A 0.6750906 _S _A
## 2 мораль_S нравственный_A 0.6722000 _S _A
## 3 мораль_S близкий_A 0.6440343 _S _A
## 4 мораль_S семья_S 0.6410604 _S _S
## 5 мораль_S личность_S 0.6408559 _S _S
## 6 мораль_S многообразный_A 0.6327961 _S _A
## 7 мораль_S задача_S 0.6299674 _S _S
## 8 мораль_S регулировать_V 0.6266996 _S _V
## 9 мораль_S практический_A 0.6215587 _S _A
## 10 мораль_S виноватый_A 0.6090972 _S _A
aTime <- Sys.time()
Dist_t5All <- Tokens_S %>%
#tokens_keep(pattern = c("*_S", "*_V", "*_A")) %>%
fcm(context = "window", count = "frequency"
, window = 5
, tri = FALSE) %>%
as.dfm() %>% # вроде и напрямую работает, но на всякий случай.
textstat_simil(margin = "features", method = "cosine"
#, min_simil = 0.80
) %>%
as.data.frame() %>%
arrange(desc(cosine)) %>%
mutate(POS1 = str_extract(feature1, "_[A-Z]+")) %>%
mutate(POS2 = str_extract(feature2, "_[A-Z]+")) %>%
filter(POS1 %in% c( "_S", "_V", "_A")) %>%
filter(POS2 %in% c( "_S", "_V", "_A")) %T>%
{
extract2(., 3) %>%
hist()
}
Sys.time() - aTime
## Time difference of 1.506528 mins
Dist_t5All %>%
filter(feature1 == "природа_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 природа_S должный_A 0.9173432 _S _A
## 2 природа_S начинать_V 0.9083307 _S _V
## 3 природа_S развитие_S 0.9070260 _S _S
## 4 природа_S хороший_A 0.8934876 _S _A
## 5 природа_S жить_V 0.8925539 _S _V
## 6 природа_S деятельность_S 0.8913590 _S _S
## 7 природа_S природный_A 0.8886803 _S _A
## 8 природа_S большой_A 0.8875958 _S _A
## 9 природа_S переставать_V 0.8842803 _S _V
## 10 природа_S возможность_S 0.8822596 _S _S
Dist_t5All %>%
filter(feature1 == "лес_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 лес_S дерево_S 0.8897558 _S _S
## 2 лес_S большой_A 0.8568717 _S _A
## 3 лес_S мусор_S 0.8536031 _S _S
## 4 лес_S животное_S 0.8514210 _S _S
## 5 лес_S идти_V 0.8477652 _S _V
## 6 лес_S место_S 0.8451003 _S _S
## 7 лес_S хороший_A 0.8293139 _S _A
## 8 лес_S множество_S 0.8290758 _S _S
## 9 лес_S видеть_V 0.8279120 _S _V
## 10 лес_S экология_S 0.8278032 _S _S
Dist_t5All %>%
filter(feature1 == "вода_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 вода_S воздух_S 0.8911487 _S _S
## 2 вода_S чистый_A 0.8660831 _S _A
## 3 вода_S лес_S 0.8617402 _S _S
## 4 вода_S пища_S 0.8489620 _S _S
## 5 вода_S большой_A 0.8445109 _S _A
## 6 вода_S загрязнять_V 0.8422749 _S _V
## 7 вода_S дерево_S 0.8331005 _S _S
## 8 вода_S животное_S 0.8316482 _S _S
## 9 вода_S завод_S 0.8304005 _S _S
## 10 вода_S энергия_S 0.8290185 _S _S
Dist_t5All %>%
filter(feature1 == "мораль_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 мораль_S близкий_A 0.7475647 _S _A
## 2 мораль_S воспитание_S 0.7416761 _S _S
## 3 мораль_S виноватый_A 0.7398621 _S _A
## 4 мораль_S стадия_S 0.7334055 _S _S
## 5 мораль_S задача_S 0.7328220 _S _S
## 6 мораль_S способность_S 0.7298065 _S _S
## 7 мораль_S регулировать_V 0.7262443 _S _V
## 8 мораль_S многообразный_A 0.7225409 _S _A
## 9 мораль_S нравственный_A 0.7192477 _S _A
## 10 мораль_S счастие_S 0.7190672 _S _S
aTime <- Sys.time()
Dist_s2 <- Tokens_S2 %>%
tokens_keep(pattern = c("*_S", "*_V", "*_A")) %>%
fcm(context = "window", count = "frequency"
, window = 2
, tri = FALSE) %>%
as.dfm() %>% # вроде и напрямую работает, но на всякий случай.
textstat_simil(margin = "features", method = "cosine"
#, min_simil = 0.80
) %>%
as.data.frame() %>%
arrange(desc(cosine)) %>%
mutate(POS1 = str_extract(feature1, "_[A-Z]+")) %>%
mutate(POS2 = str_extract(feature2, "_[A-Z]+")) %>%
filter(POS1 %in% c( "_S", "_V", "_A")) %>%
filter(POS2 %in% c( "_S", "_V", "_A")) %T>%
{
extract2(., 3) %>%
hist()
}
Sys.time() - aTime
## Time difference of 52.2559 secs
Dist_s2 %>%
filter(feature1 == "природа_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 природа_S субъективность_S 0.8723313 _S _S
## 2 природа_S должный_A 0.8066360 _S _A
## 3 природа_S задумываться_V 0.7984636 _S _V
## 4 природа_S мочь_V 0.7895969 _S _V
## 5 природа_S считать_V 0.7841199 _S _V
## 6 природа_S позволять_V 0.7752306 _S _V
## 7 природа_S первобытный_A 0.7748647 _S _A
## 8 природа_S проинформировать_V 0.7667465 _S _V
## 9 природа_S разумный_A 0.7651541 _S _A
## 10 природа_S потребительский_A 0.7604019 _S _A
Dist_s2 %>%
filter(feature1 == "лес_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 лес_S дерево_S 0.5044422 _S _S
## 2 лес_S распахать_V 0.4806051 _S _V
## 3 лес_S миг_S 0.4806051 _S _S
## 4 лес_S истреблять_V 0.4567522 _S _V
## 5 лес_S место_S 0.4133257 _S _S
## 6 лес_S убивать_V 0.4015392 _S _V
## 7 лес_S поставка_S 0.3959476 _S _S
## 8 лес_S загрязнуть_V 0.3888249 _S _V
## 9 лес_S посадить_V 0.3881179 _S _V
## 10 лес_S застройка_S 0.3775852 _S _S
Dist_s2 %>%
filter(feature1 == "вода_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 вода_S дышать_V 0.6065371 _S _V
## 2 вода_S чистый_A 0.5570756 _S _A
## 3 вода_S свежий_A 0.5213816 _S _A
## 4 вода_S шлак_S 0.5114115 _S _S
## 5 вода_S загрязнять_V 0.5043505 _S _V
## 6 вода_S кислород_S 0.5009721 _S _S
## 7 вода_S загрязнение_S 0.4757484 _S _S
## 8 вода_S атмосферный_A 0.4660319 _S _A
## 9 вода_S пить_V 0.4391468 _S _V
## 10 вода_S свет_S 0.4355315 _S _S
Dist_s2 %>%
filter(feature1 == "мораль_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 мораль_S упираться_V 0.4358010 _S _V
## 2 мораль_S общепринятый_A 0.4150485 _S _A
## 3 мораль_S стимуляция_S 0.3735437 _S _S
## 4 мораль_S регулировать_V 0.3659966 _S _V
## 5 мораль_S начало_S 0.3539950 _S _S
## 6 мораль_S библейский_A 0.3521804 _S _A
## 7 мораль_S мочь_V 0.3417137 _S _V
## 8 мораль_S допустимый_A 0.3262254 _S _A
## 9 мораль_S напряжение_S 0.3081578 _S _S
## 10 мораль_S умудряться_V 0.3049971 _S _V
aTime <- Sys.time()
Dist_s3 <- Tokens_S2 %>%
tokens_keep(pattern = c("*_S", "*_V", "*_A")) %>%
fcm(context = "window", count = "frequency"
, window = 3
, tri = FALSE) %>%
as.dfm() %>% # вроде и напрямую работает, но на всякий случай.
textstat_simil(margin = "features", method = "cosine"
#, min_simil = 0.80
) %>%
as.data.frame() %>%
arrange(desc(cosine)) %>%
mutate(POS1 = str_extract(feature1, "_[A-Z]+")) %>%
mutate(POS2 = str_extract(feature2, "_[A-Z]+")) %>%
filter(POS1 %in% c( "_S", "_V", "_A")) %>%
filter(POS2 %in% c( "_S", "_V", "_A")) %T>%
{
extract2(., 3) %>%
hist()
}
Sys.time() - aTime
## Time difference of 1.138796 mins
Dist_s3 %>%
filter(feature1 == "природа_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 природа_S мочь_V 0.8494638 _S _V
## 2 природа_S задумываться_V 0.8277253 _S _V
## 3 природа_S считать_V 0.8066954 _S _V
## 4 природа_S время_S 0.8057824 _S _S
## 5 природа_S первобытный_A 0.8054879 _S _A
## 6 природа_S проинформировать_V 0.8046147 _S _V
## 7 природа_S вопрос_S 0.7991033 _S _S
## 8 природа_S становиться_V 0.7975787 _S _V
## 9 природа_S говорить_V 0.7950855 _S _V
## 10 природа_S быть_V 0.7939896 _S _V
Dist_s3 %>%
filter(feature1 == "лес_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 лес_S дерево_S 0.5789278 _S _S
## 2 лес_S истреблять_V 0.5253727 _S _V
## 3 лес_S место_S 0.5209552 _S _S
## 4 лес_S убивать_V 0.5047028 _S _V
## 5 лес_S целый_A 0.4683970 _S _A
## 6 лес_S земля_S 0.4660325 _S _S
## 7 лес_S становиться_V 0.4451245 _S _V
## 8 лес_S новый_A 0.4422986 _S _A
## 9 лес_S планета_S 0.4356197 _S _S
## 10 лес_S погибать_V 0.4340388 _S _V
Dist_s3 %>%
filter(feature1 == "вода_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 вода_S чистый_A 0.6496001 _S _A
## 2 вода_S дышать_V 0.6287934 _S _V
## 3 вода_S загрязнять_V 0.6031032 _S _V
## 4 вода_S загрязнение_S 0.5506044 _S _S
## 5 вода_S кислород_S 0.5356878 _S _S
## 6 вода_S свет_S 0.4909871 _S _S
## 7 вода_S воздух_S 0.4856224 _S _S
## 8 вода_S земля_S 0.4811527 _S _S
## 9 вода_S свежий_A 0.4662614 _S _A
## 10 вода_S необходимый_A 0.4599605 _S _A
Dist_s3 %>%
filter(feature1 == "мораль_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 мораль_S регулировать_V 0.3995977 _S _V
## 2 мораль_S несогласие_S 0.3966808 _S _S
## 3 мораль_S упираться_V 0.3938723 _S _V
## 4 мораль_S общепринятый_A 0.3896275 _S _A
## 5 мораль_S мочь_V 0.3874849 _S _V
## 6 мораль_S рассматривать_V 0.3871206 _S _V
## 7 мораль_S стадный_A 0.3699615 _S _A
## 8 мораль_S поведение_S 0.3678221 _S _S
## 9 мораль_S поступок_S 0.3652249 _S _S
## 10 мораль_S начало_S 0.3615466 _S _S
aTime <- Sys.time()
Dist_s5 <- Tokens_S2 %>%
tokens_keep(pattern = c("*_S", "*_V", "*_A")) %>%
fcm(context = "window", count = "frequency"
, window = 5
, tri = FALSE) %>%
as.dfm() %>% # вроде и напрямую работает, но на всякий случай.
textstat_simil(margin = "features", method = "cosine"
#, min_simil = 0.80
) %>%
as.data.frame() %>%
arrange(desc(cosine)) %>%
mutate(POS1 = str_extract(feature1, "_[A-Z]+")) %>%
mutate(POS2 = str_extract(feature2, "_[A-Z]+")) %>%
filter(POS1 %in% c( "_S", "_V", "_A")) %>%
filter(POS2 %in% c( "_S", "_V", "_A")) %T>%
{
extract2(., 3) %>%
hist()
}
Sys.time() - aTime
## Time difference of 1.479839 mins
Dist_s5 %>%
filter(feature1 == "природа_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 природа_S задумываться_V 0.8438724 _S _V
## 2 природа_S мочь_V 0.8417180 _S _V
## 3 природа_S быть_V 0.8403032 _S _V
## 4 природа_S первобытный_A 0.8363353 _S _A
## 5 природа_S думать_V 0.8328854 _S _V
## 6 природа_S говорить_V 0.8324205 _S _V
## 7 природа_S добрый_A 0.8296014 _S _A
## 8 природа_S становиться_V 0.8283330 _S _V
## 9 природа_S вопрос_S 0.8275730 _S _S
## 10 природа_S считать_V 0.8255186 _S _V
Dist_s5 %>%
filter(feature1 == "лес_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 лес_S дерево_S 0.6925997 _S _S
## 2 лес_S место_S 0.6452753 _S _S
## 3 лес_S убивать_V 0.6205192 _S _V
## 4 лес_S земля_S 0.5991377 _S _S
## 5 лес_S истреблять_V 0.5916859 _S _V
## 6 лес_S целый_A 0.5790704 _S _A
## 7 лес_S мусор_S 0.5646560 _S _S
## 8 лес_S новый_A 0.5641967 _S _A
## 9 лес_S планета_S 0.5502661 _S _S
## 10 лес_S загрязнять_V 0.5501309 _S _V
Dist_s5 %>%
filter(feature1 == "вода_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 вода_S чистый_A 0.6830767 _S _A
## 2 вода_S загрязнять_V 0.6780243 _S _V
## 3 вода_S дышать_V 0.6439513 _S _V
## 4 вода_S воздух_S 0.6407648 _S _S
## 5 вода_S загрязнение_S 0.6272890 _S _S
## 6 вода_S земля_S 0.6109383 _S _S
## 7 вода_S количество_S 0.5825514 _S _S
## 8 вода_S свет_S 0.5766849 _S _S
## 9 вода_S кислород_S 0.5707529 _S _S
## 10 вода_S необходимый_A 0.5595386 _S _A
Dist_s5 %>%
filter(feature1 == "мораль_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 мораль_S упираться_V 0.4387268 _S _V
## 2 мораль_S рассматривать_V 0.4259387 _S _V
## 3 мораль_S регулировать_V 0.4217625 _S _V
## 4 мораль_S рамка_S 0.4118887 _S _S
## 5 мораль_S поведение_S 0.4089513 _S _S
## 6 мораль_S мочь_V 0.4066770 _S _V
## 7 мораль_S становиться_V 0.4045058 _S _V
## 8 мораль_S время_S 0.3980643 _S _S
## 9 мораль_S природа_S 0.3973647 _S _S
## 10 мораль_S должный_A 0.3962985 _S _A
aTime <- Sys.time()
Dist_s2All <- Tokens_S2 %>%
#tokens_keep(pattern = c("*_S", "*_V", "*_A")) %>%
fcm(context = "window", count = "frequency"
, window = 2
, tri = FALSE) %>%
as.dfm() %>% # вроде и напрямую работает, но на всякий случай.
textstat_simil(margin = "features", method = "cosine"
#, min_simil = 0.80
) %>%
as.data.frame() %>%
arrange(desc(cosine)) %>%
mutate(POS1 = str_extract(feature1, "_[A-Z]+")) %>%
mutate(POS2 = str_extract(feature2, "_[A-Z]+")) %>%
filter(POS1 %in% c( "_S", "_V", "_A")) %>%
filter(POS2 %in% c( "_S", "_V", "_A")) %T>%
{
extract2(., 3) %>%
hist()
}
Sys.time() - aTime
## Time difference of 1.706341 mins
Dist_s2All %>%
filter(feature1 == "природа_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 природа_S близкий_A 0.7632727 _S _A
## 2 природа_S начинать_V 0.7303035 _S _V
## 3 природа_S любовь_S 0.7155067 _S _S
## 4 природа_S взаимоотношение_S 0.7136506 _S _S
## 5 природа_S взаимодействие_S 0.7132018 _S _S
## 6 природа_S быть_V 0.7107313 _S _V
## 7 природа_S безразличный_A 0.7101026 _S _A
## 8 природа_S трепетный_A 0.7077484 _S _A
## 9 природа_S взаимосвязь_S 0.6971942 _S _S
## 10 природа_S человек_S 0.6915690 _S _S
Dist_s2All %>%
filter(feature1 == "лес_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 лес_S дерево_S 0.6067527 _S _S
## 2 лес_S жить_V 0.6000566 _S _V
## 3 лес_S город_S 0.5780660 _S _S
## 4 лес_S мусор_S 0.5777680 _S _S
## 5 лес_S школа_S 0.5758079 _S _S
## 6 лес_S сила_S 0.5612883 _S _S
## 7 лес_S мир_S 0.5587740 _S _S
## 8 лес_S место_S 0.5586239 _S _S
## 9 лес_S мичурина_S 0.5550108 _S _S
## 10 лес_S находиться_V 0.5498080 _S _V
Dist_s2All %>%
filter(feature1 == "вода_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 вода_S поощрение_S 0.6743214 _S _S
## 2 вода_S чистый_A 0.6605448 _S _A
## 3 вода_S воздух_S 0.6499613 _S _S
## 4 вода_S экватор_S 0.6455713 _S _S
## 5 вода_S пища_S 0.6425593 _S _S
## 6 вода_S производство_S 0.6414993 _S _S
## 7 вода_S вечный_A 0.6374675 _S _A
## 8 вода_S экосистема_S 0.6352368 _S _S
## 9 вода_S море_S 0.6331547 _S _S
## 10 вода_S различный_A 0.6287552 _S _A
Dist_s2All %>%
filter(feature1 == "мораль_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 мораль_S допустимый_A 0.5480243 _S _A
## 2 мораль_S школа_S 0.5191094 _S _S
## 3 мораль_S садик_S 0.5054959 _S _S
## 4 мораль_S город_S 0.5033784 _S _S
## 5 мораль_S семья_S 0.5031752 _S _S
## 6 мораль_S мир_S 0.5017831 _S _S
## 7 мораль_S место_S 0.4997931 _S _S
## 8 мораль_S жить_V 0.4966188 _S _V
## 9 мораль_S доспехи_S 0.4927637 _S _S
## 10 мораль_S общество_S 0.4899087 _S _S
aTime <- Sys.time()
Dist_s3All <- Tokens_S2 %>%
#tokens_keep(pattern = c("*_S", "*_V", "*_A")) %>%
fcm(context = "window", count = "frequency"
, window = 3
, tri = FALSE) %>%
as.dfm() %>% # вроде и напрямую работает, но на всякий случай.
textstat_simil(margin = "features", method = "cosine"
#, min_simil = 0.80
) %>%
as.data.frame() %>%
arrange(desc(cosine)) %>%
mutate(POS1 = str_extract(feature1, "_[A-Z]+")) %>%
mutate(POS2 = str_extract(feature2, "_[A-Z]+")) %>%
filter(POS1 %in% c( "_S", "_V", "_A")) %>%
filter(POS2 %in% c( "_S", "_V", "_A")) %T>%
{
extract2(., 3) %>%
hist()
}
Sys.time() - aTime
## Time difference of 2.165494 mins
Dist_s3All %>%
filter(feature1 == "природа_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 природа_S быть_V 0.8078732 _S _V
## 2 природа_S близкий_A 0.8045582 _S _A
## 3 природа_S начинать_V 0.7797663 _S _V
## 4 природа_S должный_A 0.7759651 _S _A
## 5 природа_S становиться_V 0.7754405 _S _V
## 6 природа_S жизнь_S 0.7687386 _S _S
## 7 природа_S жить_V 0.7624388 _S _V
## 8 природа_S человек_S 0.7569206 _S _S
## 9 природа_S проблема_S 0.7531214 _S _S
## 10 природа_S развитие_S 0.7408962 _S _S
Dist_s3All %>%
filter(feature1 == "лес_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 лес_S дерево_S 0.6903581 _S _S
## 2 лес_S мусор_S 0.6706465 _S _S
## 3 лес_S жить_V 0.6673127 _S _V
## 4 лес_S место_S 0.6590913 _S _S
## 5 лес_S отходы_S 0.6302538 _S _S
## 6 лес_S город_S 0.6285220 _S _S
## 7 лес_S различный_A 0.6235456 _S _A
## 8 лес_S жизнь_S 0.6199754 _S _S
## 9 лес_S сила_S 0.6196105 _S _S
## 10 лес_S мир_S 0.6187600 _S _S
Dist_s3All %>%
filter(feature1 == "вода_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 вода_S чистый_A 0.7259768 _S _A
## 2 вода_S различный_A 0.7190384 _S _A
## 3 вода_S производство_S 0.7078495 _S _S
## 4 вода_S воздух_S 0.7040235 _S _S
## 5 вода_S море_S 0.6854156 _S _S
## 6 вода_S загрязнение_S 0.6774438 _S _S
## 7 вода_S дерево_S 0.6762337 _S _S
## 8 вода_S жизнь_S 0.6760268 _S _S
## 9 вода_S свет_S 0.6755901 _S _S
## 10 вода_S отходы_S 0.6737888 _S _S
Dist_s3All %>%
filter(feature1 == "мораль_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 мораль_S природа_S 0.5767515 _S _S
## 2 мораль_S начинать_V 0.5701841 _S _V
## 3 мораль_S развитие_S 0.5574111 _S _S
## 4 мораль_S связь_S 0.5566547 _S _S
## 5 мораль_S жить_V 0.5421883 _S _V
## 6 мораль_S год_S 0.5353990 _S _S
## 7 мораль_S сторона_S 0.5353490 _S _S
## 8 мораль_S гармония_S 0.5345201 _S _S
## 9 мораль_S общество_S 0.5296089 _S _S
## 10 мораль_S семья_S 0.5287812 _S _S
aTime <- Sys.time()
Dist_s5All <- Tokens_S2 %>%
#tokens_keep(pattern = c("*_S", "*_V", "*_A")) %>%
fcm(context = "window", count = "frequency"
, window = 5
, tri = FALSE) %>%
as.dfm() %>% # вроде и напрямую работает, но на всякий случай.
textstat_simil(margin = "features", method = "cosine"
#, min_simil = 0.80
) %>%
as.data.frame() %>%
arrange(desc(cosine)) %>%
mutate(POS1 = str_extract(feature1, "_[A-Z]+")) %>%
mutate(POS2 = str_extract(feature2, "_[A-Z]+")) %>%
filter(POS1 %in% c( "_S", "_V", "_A")) %>%
filter(POS2 %in% c( "_S", "_V", "_A")) %T>%
{
extract2(., 3) %>%
hist()
}
Sys.time() - aTime
## Time difference of 2.811555 mins
Dist_s5All %>%
filter(feature1 == "природа_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 природа_S быть_V 0.8776845 _S _V
## 2 природа_S становиться_V 0.8604861 _S _V
## 3 природа_S мочь_V 0.8595488 _S _V
## 4 природа_S должный_A 0.8562625 _S _A
## 5 природа_S начинать_V 0.8348454 _S _V
## 6 природа_S жизнь_S 0.8313708 _S _S
## 7 природа_S жить_V 0.8152517 _S _V
## 8 природа_S переставать_V 0.8142476 _S _V
## 9 природа_S развитие_S 0.8132889 _S _S
## 10 природа_S мир_S 0.8132624 _S _S
Dist_s5All %>%
filter(feature1 == "лес_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 лес_S дерево_S 0.8075505 _S _S
## 2 лес_S место_S 0.7857271 _S _S
## 3 лес_S мусор_S 0.7825751 _S _S
## 4 лес_S различный_A 0.7652477 _S _A
## 5 лес_S отходы_S 0.7591852 _S _S
## 6 лес_S жить_V 0.7581253 _S _V
## 7 лес_S сила_S 0.7500588 _S _S
## 8 лес_S вода_S 0.7474851 _S _S
## 9 лес_S количество_S 0.7469052 _S _S
## 10 лес_S вид_S 0.7455549 _S _S
Dist_s5All %>%
filter(feature1 == "вода_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 вода_S различный_A 0.8038749 _S _A
## 2 вода_S воздух_S 0.7996098 _S _S
## 3 вода_S чистый_A 0.7887968 _S _A
## 4 вода_S загрязнение_S 0.7775606 _S _S
## 5 вода_S производство_S 0.7704254 _S _S
## 6 вода_S водоем_S 0.7643689 _S _S
## 7 вода_S отходы_S 0.7615221 _S _S
## 8 вода_S пища_S 0.7549560 _S _S
## 9 вода_S кислород_S 0.7523261 _S _S
## 10 вода_S природный_A 0.7504419 _S _A
Dist_s5All %>%
filter(feature1 == "мораль_S") %>%
head(10)
## feature1 feature2 cosine POS1 POS2
## 1 мораль_S земля_S 0.6563555 _S _S
## 2 мораль_S развитие_S 0.6417610 _S _S
## 3 мораль_S мир_S 0.6254397 _S _S
## 4 мораль_S работать_V 0.6232128 _S _V
## 5 мораль_S данный_A 0.6214013 _S _A
## 6 мораль_S человечество_S 0.6205773 _S _S
## 7 мораль_S жизнь_S 0.6193598 _S _S
## 8 мораль_S природа_S 0.6188475 _S _S
## 9 мораль_S место_S 0.6179921 _S _S
## 10 мораль_S общество_S 0.6164755 _S _S