date()
## [1] "Fri Jun 21 17:08:49 2019"
sessionInfo()
## R version 3.5.1 (2018-07-02)
## Platform: x86_64-apple-darwin15.6.0 (64-bit)
## Running under: macOS 10.14.5
##
## 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
Исходные файлы с текстами в формате MS Word были переведены в формат TXT (редактор Sublime Text2, кодировка UTF-8) Файлы сложены в папку AllTexts
Требуемые библиотеки:
library(tm)
## Loading required package: NLP
library(wordcloud)
## Loading required package: RColorBrewer
library(magrittr) #provides a new “pipe”-like operator, %>%, with which you may pipe a value forward into an expression or function call; something along the lines of x %>% f,
library(stringr)
Txt <- VCorpus(DirSource("../AllTexts", encoding = "UTF-8"), readerControl = list(language = "ru"))
#inspect(Txt)
Очищаю фамилии из имен файлов
for (i in 1:length(Txt)) {
names(Txt)[i] <- paste0("text_", i)
}
names(Txt)
## [1] "text_1" "text_2" "text_3" "text_4" "text_5" "text_6" "text_7"
## [8] "text_8" "text_9" "text_10" "text_11" "text_12" "text_13" "text_14"
## [15] "text_15" "text_16" "text_17" "text_18" "text_19" "text_20" "text_21"
## [22] "text_22"
Сохраняю объект корпус для дальнейшей работы на диск
save(Txt, file = "Txt.RData")
В рабочей папке лижит файл mystem (программа Mystem Версия 3.1) Создаю функцию для стеминга (Аргументы для mystem передаю из своей функции “текстом”)
mystem <- function(doc, arg) {
sdoc <- system2("./mystem"
, args = paste0("-", arg)
, stdout = TRUE
# TRUE (capture the output
# in a character vector)
, input = doc)
sdoc
}
mystem3 <- content_transformer(mystem)
# Create content transformers, i.e., functions
# which modify the content of an R object.
# Важно переопределить название обертки функции -
# иначе ошибка "рекурсии"
Провожу стемминг с аргументами “ld” l - без исходных словоформ d - контекстное снятие омонимии.
# StemTxt <- tm_map(Txt, mystem3, "ld")
Создаю функцию очиcтки от скобок (метод из хелпа библиотеки tm, см. ??content_transformer)
# cleanStemCorpus <- function(text) {
# text <- tm_map(text, content_transformer(
# function(x) gsub("\\}\\{", " ", x)
# )
# )
# text <- tm_map(text, content_transformer(
# function(x) gsub("[}{]", "", x)
# )
# )
# }
#
# StemTxt <- cleanStemCorpus(StemTxt)
по частям речи (Part of Speach) l - без исходных словоформ d - контекстное снятие омонимии. Создание корпуса с грамматической информацией i - печатать грамматическую информацию g - Склеивать информацию словоформ при одной лемме (только при включенной опции -i).
POSTxt <- tm_map(Txt, mystem3, "ldig")
очистка корпуса POS от служебной информации
cleanPOSCorpus <- function(text) {
text <- tm_map(text, content_transformer(
function(x) gsub("\\}\\{", "} {", x) # добавил пробел между скобками
)
)
text <- tm_map(text, content_transformer(
function(x) gsub(
"([{])([а-я?-]+)([=])([[:alpha:]]+)([=,])([[:graph:]]*)([}])"
, "\\2/\\4", x) # убрал всю информацию, кроме части речи после слеша
)
)
text <- tm_map(text, content_transformer(
function(x) gsub(
"([{])([[:graph:]]*)([}])", "\\2", x)
# убираю квадратные скобки со слов латиницей
)
)
}
POSTxt <- cleanPOSCorpus(POSTxt)
#cleanPOSTxt <-
(текст-документной матрицы)
# TDM <- TermDocumentMatrix(StemTxt)
POS_TDM <- TermDocumentMatrix(POSTxt)
!!! Внимание - если брать текст из корпуса без частей речи (StemTDM) - то текст более корткий? Может ошибка в очистке. Какие-то слова удаляются.
Общая длина
textLength <- colSums(as.matrix(POS_TDM))
summary(textLength)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 347.0 445.5 612.5 639.0 727.0 1320.0
Лемма/часть речи/частота-леммы/частота-тексты
frameWords <- function(tdm) {
words <- data.frame(tdm$dimnames$Terms, stringsAsFactors = FALSE)
names(words)[1] <- "Terms"
pos <- gsub("([а-я?-]*)([/])([[:alpha:]]*)", "\\3", words$Terms)
# берем часть после слеша
pos <- gsub("([[:alpha:]]*)(\\?\\?)", "NA", pos)
# Заменяем нераспознанное часть речи на NA
# Вопросительный знак надо экранировать двумя слешами
words$POS <- as.factor(pos)
words$Unclear <- grepl("\\?", words$Terms)
# добавляю фактор нераспознанных слов
words$Words <- rowSums(as.matrix(tdm))
# Количество слов
words$Texts <- apply(as.matrix(tdm), MARGIN = 1
, FUN = function(x) sum(x > 0))
# Количество текстов
words
}
Words <- frameWords(POS_TDM)
Есть еще функция Terms(x) - выведет список лемм.
Части речи A прилагательное ADV наречие ADVPRO местоименное наречие ANUM числительное-прилагательное APRO местоимение-прилагательное COM часть композита - сложного слова CONJ союз INTJ междометие NUM числительное PART частица PR предлог S существительное SPRO местоимение-существительное V глагол
table(Words$POS)
##
## a adv advpro anum apro conj NA num part pr
## 510 210 25 5 27 28 12 12 32 41
## s spro v
## 1178 22 679
table(Words$Unclear)
##
## FALSE TRUE
## 2736 45
sum(Words$Words)
## [1] 14058
sum(Words$Texts)
## [1] 7217
вывод всех нераспознанных слов
Words[Words$Unclear == TRUE, ]
## Terms POS Unclear Words Texts
## 1 homo?? NA TRUE 1 1
## 2 med?? NA TRUE 1 1
## 3 natura?? NA TRUE 1 1
## 4 sapiens?? NA TRUE 1 1
## 5 waste?? NA TRUE 1 1
## 6 xx?? NA TRUE 1 1
## 7 zero?? NA TRUE 1 1
## 8 φύομαι?? NA TRUE 1 1
## 9 φύσις?? NA TRUE 2 1
## 10 φύω?? NA TRUE 1 1
## 45 атмасфера?/s s TRUE 1 1
## 59 балмфорд?/s s TRUE 1 1
## 92 био?/s s TRUE 2 1
## 188 вживый?/a a TRUE 1 1
## 412 гидро?/s s TRUE 1 1
## 524 диазометать?/v v TRUE 1 1
## 609 етей?/s s TRUE 1 1
## 662 заизменение?/s s TRUE 1 1
## 810 искапать?/v v TRUE 1 1
## 848 йчас?/s s TRUE 1 1
## 932 котороенести?/v v TRUE 1 1
## 985 лесовлюди?/s s TRUE 1 1
## 1023 малочислять?/v v TRUE 1 1
## 1092 млн?? NA TRUE 1 1
## 1102 многоэтажка?/s s TRUE 1 1
## 1191 насилять?/v v TRUE 1 1
## 1223 негативноевлияние?/s s TRUE 1 1
## 1473 отособенность?/s s TRUE 1 1
## 1569 пехман?/s s TRUE 1 1
## 1713 поражаетсвоя?/s s TRUE 1 1
## 1767 практикоориентированный?/a a TRUE 1 1
## 1845 природекак?/adv adv TRUE 1 1
## 1896 промышленость?/s s TRUE 1 1
## 2094 самопровозглашение?/s s TRUE 1 1
## 2196 сметность?/s s TRUE 1 1
## 2318 стемиться?/v v TRUE 1 1
## 2367 существутый?/a a TRUE 1 1
## 2393 тд?? NA TRUE 2 2
## 2453 третия?/s s TRUE 1 1
## 2604 флешмоб?/s s TRUE 1 1
## 2648 целофановый?/a a TRUE 1 1
## 2715 шоппер?/s s TRUE 1 1
## 2732 экологичный?/a a TRUE 2 2
## 2777 янино?/s s TRUE 2 2
## 2778 янинопокупать?/v v TRUE 1 1
пока не добавлено
Стандартный список стоп-слов
# stopwords("ru")
тут есть интересные глаголы и существительные. Поэтому не будем использовать стандартный список, а удалим из текста все местоимения, числительные и т.д. и слова с неопределенной частью речи.
removeWords() - Remove Words from a Text Document
стоп слов (оставляем существительные, наречия, прилагательные, глаголы, части композита - сложного слова и нерпспознные слова.)
removeStop <- function(text) {
tm_map(text, content_transformer(
function(x){
x <- gsub("([а-я?-]+)/CONJ\\>", "", x)
x <- gsub("([а-я?-]+)/PR\\>", "", x)
x <- gsub("([а-я?-]+)/PART\\>", "", x)
x <- gsub("([а-я?-]+)/APRO\\>", "", x)
x <- gsub("([а-я?-]+)/SPRO\\>", "", x)
x <- gsub("([а-я?-]+)/ADVPRO\\>", "", x)
x <- gsub("([а-я?-]+)/ANUM\\>", "", x)
x <- gsub("([а-я?-]+)/NUM\\>", "", x)
x <- gsub("([а-я?-]+)/INTJ\\>", "", x)
x
}
)
)
}
StopPOSTxt <- removeStop(POSTxt)
StopPOS_TDM <- TermDocumentMatrix(StopPOSTxt)
StopWords <- frameWords(StopPOS_TDM)
head(StopWords)
## Terms POS Unclear Words Texts
## 1 homo?? NA TRUE 1 1
## 2 med?? NA TRUE 1 1
## 3 natura?? NA TRUE 1 1
## 4 sapiens?? NA TRUE 1 1
## 5 waste?? NA TRUE 1 1
## 6 xx?? NA TRUE 1 1
textStopLength <- colSums(as.matrix(StopPOS_TDM))
summary(textStopLength)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 194.0 271.0 361.0 391.4 486.0 803.0
проверка количества слов по частям речи
table(StopWords$POS)
##
## a adv NA s v
## 510 210 12 1178 679
table(StopWords$Unclear)
##
## FALSE TRUE
## 2544 45
sum(StopWords$Words)
## [1] 8610
sum(StopWords$Texts)
## [1] 5752
Сумма по частям речи. И частота по частям речи
cbind(
aggregate(Words$Words, by = list(Words$POS), length)
, aggregate(Words$Words, by = list(Words$POS), sum)[2]
)
## Group.1 x x
## 1 a 510 1236
## 2 adv 210 674
## 3 advpro 25 233
## 4 anum 5 23
## 5 apro 27 802
## 6 conj 28 1254
## 7 NA 12 14
## 8 num 12 25
## 9 part 32 603
## 10 pr 41 1534
## 11 s 1178 4442
## 12 spro 22 974
## 13 v 679 2244
функция вывода частот и облака слов
cloud_p <- function(data, min.text = 0, partOS = "all"){
if (partOS == "all") {
t <- subset(data[order(data$Words
, decreasing = TRUE), ]
, Texts > min.text
, select = c(Terms, Words, Texts))
}else{
t <- subset(data[order(data$Words
, decreasing = TRUE), ]
, Texts > min.text & POS == partOS
, select = c(Terms, Words, Texts))
}
return(
wordcloud(t$Terms, t$Words, random.order = FALSE, rot.per=0)
)
}
cloud_t <- function(data, min.text = 0, partOS = "all"){
if (partOS == "all") {
t <- subset(data[order(data$Words
, decreasing = TRUE), ]
, Texts > min.text
, select = c(Terms, Words, Texts))
}else{
t <- subset(data[order(data$Words
, decreasing = TRUE), ]
, Texts > min.text & POS == partOS
, select = c(Terms, Words, Texts))
}
return(t)
}
Слова, которые встречаются более чем в половине текстов (больше 33)
subset(StopWords[order(StopWords$Words, decreasing = TRUE), ] , Texts > 33 , select = c(Terms, Words, Texts)) wordcloud()
!!! Зашитая по умаолчанию переменная- хотя нужно было бы вычислять её из количества текстов
cloud_p(StopWords, min.text = length(Txt)/2)
cloud_t(StopWords, min.text = length(Txt)/2)
## Terms Words Texts
## 2493 человек/s 363 22
## 1715 природа/s 336 22
## 140 быть/v 121 21
## 1042 мочь/v 108 21
## 1359 отношение/s 77 20
## 1531 позволять/v 56 16
## 589 жизнь/s 55 19
## 1734 проблема/s 55 17
## 913 лес/s 50 20
## 1029 можно/adv 50 17
## 684 земля/s 45 17
## 518 должный/a 43 17
## 1050 мусор/s 43 14
## 230 вода/s 41 15
## 1018 много/adv 38 14
## 2149 среда/s 38 16
## 190 вид/s 37 16
## 447 давать/v 37 16
## 1284 окружающий/a 37 15
## 1717 природный/a 37 17
## 299 время/s 35 15
## 244 воздух/s 34 13
## 1467 планета/s 34 16
## 406 год/s 33 16
## 1691 приводить/v 31 14
## 1200 новый/a 29 18
## 1358 относиться/v 29 12
## 583 животное/s 28 13
## 1905 ресурс/s 28 14
## 2158 становиться/v 28 16
## 832 количество/s 27 13
## 1372 отходы/s 27 13
## 2229 также/adv 27 12
## 1008 мир/s 26 14
## 267 вопрос/s 25 14
## 593 жить/v 24 15
## 1125 начинать/v 24 14
## 571 еще/adv 23 15
## 619 задумываться/v 23 13
## 768 использовать/v 23 12
## 2211 существовать/v 23 15
## 2579 являться/v 23 13
## 1832 различный/a 22 12
## 1880 растение/s 22 14
## 2084 создавать/v 22 15
## 601 забывать/v 20 12
## 44 атмосфера/s 19 12
## 472 делать/v 19 13
## 482 дерево/s 19 12
## 781 источник/s 19 13
## 324 выброс/s 17 12
## 468 действие/s 16 12
## 2491 часть/s 16 12
cloud_p(StopWords, min.text = length(Txt)/2, partOS = "s")
cloud_t(StopWords, min.text = length(Txt)/2, partOS = "s")
## Terms Words Texts
## 2493 человек/s 363 22
## 1715 природа/s 336 22
## 1359 отношение/s 77 20
## 589 жизнь/s 55 19
## 1734 проблема/s 55 17
## 913 лес/s 50 20
## 684 земля/s 45 17
## 1050 мусор/s 43 14
## 230 вода/s 41 15
## 2149 среда/s 38 16
## 190 вид/s 37 16
## 299 время/s 35 15
## 244 воздух/s 34 13
## 1467 планета/s 34 16
## 406 год/s 33 16
## 583 животное/s 28 13
## 1905 ресурс/s 28 14
## 832 количество/s 27 13
## 1372 отходы/s 27 13
## 1008 мир/s 26 14
## 267 вопрос/s 25 14
## 1880 растение/s 22 14
## 44 атмосфера/s 19 12
## 482 дерево/s 19 12
## 781 источник/s 19 13
## 324 выброс/s 17 12
## 468 действие/s 16 12
## 2491 часть/s 16 12
cloud_p(StopWords, min.text = length(Txt)/2, partOS = "a")
cloud_t(StopWords, min.text = length(Txt)/2, partOS = "a")
## Terms Words Texts
## 518 должный/a 43 17
## 1284 окружающий/a 37 15
## 1717 природный/a 37 17
## 1200 новый/a 29 18
## 1832 различный/a 22 12
cloud_p(StopWords, min.text = length(Txt)/4, partOS = "a")
cloud_t(StopWords, min.text = length(Txt)/4, partOS = "a")
## Terms Words Texts
## 518 должный/a 43 17
## 1284 окружающий/a 37 15
## 1717 природный/a 37 17
## 1200 новый/a 29 18
## 582 живой/a 24 11
## 1832 различный/a 22 12
## 2544 экологический/a 18 11
## 397 глобальный/a 16 8
## 2077 современный/a 15 8
## 119 большой/a 14 9
## 1162 необходимый/a 14 8
## 2507 чистый/a 12 9
## 457 данный/a 11 6
## 1266 огромный/a 11 9
## 2065 собственный/a 11 6
## 19 актуальный/a 10 7
## 297 вредный/a 10 8
## 394 главный/a 10 9
## 1975 связанный/a 9 6
## 139 бытовой/a 8 6
## 568 естественный/a 8 6
## 2092 солнечный/a 8 6
## 2494 человеческий/a 8 7
## 1473 пластиковый/a 7 6
## 1771 простой/a 7 7
## 2137 способный/a 6 6
cloud_p(StopWords, min.text = length(Txt)/2, partOS = "adv")
cloud_t(StopWords, min.text = length(Txt)/2, partOS = "adv")
## Terms Words Texts
## 1029 можно/adv 50 17
## 1018 много/adv 38 14
## 2229 также/adv 27 12
## 571 еще/adv 23 15
cloud_p(StopWords, min.text = length(Txt)/2, partOS = "v")
cloud_t(StopWords, min.text = length(Txt)/2, partOS = "v")
## Terms Words Texts
## 140 быть/v 121 21
## 1042 мочь/v 108 21
## 1531 позволять/v 56 16
## 447 давать/v 37 16
## 1691 приводить/v 31 14
## 1358 относиться/v 29 12
## 2158 становиться/v 28 16
## 593 жить/v 24 15
## 1125 начинать/v 24 14
## 619 задумываться/v 23 13
## 768 использовать/v 23 12
## 2211 существовать/v 23 15
## 2579 являться/v 23 13
## 2084 создавать/v 22 15
## 601 забывать/v 20 12
## 472 делать/v 19 13
создадим матрицу TfIdf (по умолчанию, с нормализацией)
TfIdf <- weightTfIdf(StopPOS_TDM)
Создаю таблицу с коэфицинентами по всем словам и всем тексам.
tfidfWords <- function(tfidf = TfIdf, tf = StopPOS_TDM) {
Terms <- tf$dimnames$Terms
Texts <- tf$dimnames$Docs
nTexts <- apply(as.matrix(tf), MARGIN = 1
, FUN = function(x) sum(x > 0))
nWords <- rowSums(as.matrix(tf))
df <- data.frame()
for (i in 1:length(Texts)) {
df <- rbind(df, data.frame(Terms
, rep(Texts[i], length(Terms))
, as.matrix(TfIdf)[ ,i]
, as.matrix(StopPOS_TDM)[ ,i]
, nTexts
, nWords
)
)
df <- df[df[4] != 0, ]
}
names(df) <- c("Term", "Text", "TfIdf", "Tf", "nTexts", "nWords")
return(df)
}
df <- tfidfWords()
head(df[order(df$TfIdf, decreasing = TRUE),], 150)[-1]
## Text TfIdf Tf nTexts nWords
## речка/s text_1 0.07132849 4 2 5
## ограничение/s1 text_10 0.06454163 5 2 6
## зверь/s text_17 0.06177556 5 2 6
## содружество/s text_19 0.05539667 6 1 6
## слишком/adv text_4 0.05274255 6 3 11
## недра/s text_11 0.04834072 4 1 4
## подарить/v text_17 0.04777962 3 1 3
## сообщество/s text_19 0.04616389 5 1 5
## купаться/v text_1 0.04597352 2 1 2
## россия/s text_1 0.04597352 2 1 2
## финляндия/s text_1 0.04597352 2 1 2
## население/s1 text_10 0.04290252 4 3 6
## забирать/v1 text_13 0.04253400 3 2 4
## вмешательство/s text_4 0.04091222 3 1 3
## сожаление/s text_1 0.03803245 3 4 6
## показывать/v text_22 0.03789885 3 1 3
## производство/s3 text_10 0.03698679 6 7 17
## настоящий/a2 text_10 0.03670793 4 4 9
## вновь/adv text_13 0.03655272 2 1 2
## объяснять/v text_13 0.03655272 2 1 2
## железо/s text_11 0.03625554 3 1 3
## мама/s text_20 0.03619669 5 1 5
## видно/adv text_1 0.03566424 2 2 3
## волновать/v text_1 0.03566424 2 2 3
## нуждаться/v text_1 0.03566424 2 2 3
## труба/s text_1 0.03566424 2 2 3
## наблюдение/s text_12 0.03456924 2 1 2
## неделимый/a text_18 0.03430332 2 1 2
## уважительный/a text_18 0.03430332 2 1 2
## управлять/v text_18 0.03430332 2 1 2
## неблагоприятный/a text_10 0.03327934 2 1 2
## рост/s1 text_10 0.03217689 3 3 5
## дно/s text_17 0.03185308 2 1 2
## атомный/a text_9 0.03116605 2 2 3
## нефтяной/a1 text_9 0.03116605 2 2 3
## сточный/a1 text_9 0.03116605 2 2 3
## современный/a4 text_8 0.03113454 8 8 15
## общество/s4 text_8 0.03083877 7 7 14
## многочисленный/a text_14 0.03070501 3 2 4
## оружие/s1 text_14 0.03070501 3 2 4
## путь/s1 text_8 0.03066100 4 3 10
## возможность/s2 text_13 0.03023891 3 4 8
## рыба/s text_1 0.03009137 4 8 16
## мегаполис/s text_5 0.02979576 3 1 3
## подпункт/s text_5 0.02979576 3 1 3
## весьма/adv text_1 0.02963370 2 3 4
## защита/s text_1 0.02963370 2 3 4
## букашка/s text_15 0.02943519 2 1 2
## необычный/a text_15 0.02943519 2 1 2
## сосуд/s text_15 0.02943519 2 1 2
## травинка/s text_15 0.02943519 2 1 2
## пользоваться/v1 text_11 0.02896346 5 5 10
## подход/s1 text_19 0.02864954 4 2 5
## спасать/v text_2 0.02835600 4 2 5
## роль/s1 text_13 0.02835600 2 2 3
## исследование/s text_19 0.02769833 3 1 3
## обязательный/a text_2 0.02741454 3 1 3
## бездумный/a text_4 0.02727481 2 1 2
## заканчиваться/v text_4 0.02727481 2 1 2
## потоп/s text_4 0.02727481 2 1 2
## ураган/s text_4 0.02727481 2 1 2
## чрезмерный/a text_4 0.02727481 2 1 2
## помогать/v6 text_15 0.02726199 5 7 18
## называть/v1 text_21 0.02667942 3 2 5
## погубить/v1 text_21 0.02667942 3 2 4
## погода/s1 text_18 0.02661101 2 2 3
## улучшать/v1 text_18 0.02661101 2 2 3
## думать/v5 text_22 0.02655055 5 6 16
## сохранение/s5 text_22 0.02655055 5 6 12
## температура/s3 text_17 0.02635105 3 4 6
## восстанавливаться/v text_9 0.02589612 2 3 4
## охрана/s1 text_9 0.02589612 2 3 4
## очистка/s1 text_9 0.02589612 2 3 4
## полигон/s1 text_9 0.02589612 2 3 4
## болезнь/s1 text_10 0.02581665 2 2 3
## рождаемость/s1 text_10 0.02581665 2 2 3
## спирогира/s text_16 0.02553110 3 1 3
## здоровье/s1 text_19 0.02545995 5 4 10
## водный/a text_6 0.02544240 6 4 9
## мера/s text_1 0.02535497 2 4 5
## нужда/s3 text_21 0.02528979 4 4 7
## участок/s text_22 0.02526590 2 1 2
## явление/s2 text_12 0.02485469 3 5 8
## дорога/s text_6 0.02477991 5 3 8
## путь/s text_6 0.02477991 5 3 10
## охота/s1 text_17 0.02471023 2 2 3
## загрязнение/s2 text_10 0.02465786 4 7 12
## алюминий/s text_11 0.02417036 2 1 2
## избегать/v text_11 0.02417036 2 1 2
## пить/v text_11 0.02417036 2 1 2
## стекло/s text_11 0.02417036 2 1 2
## чугун/s text_11 0.02417036 2 1 2
## добывать/v2 text_11 0.02336967 3 3 5
## состоять/v2 text_11 0.02336967 3 3 5
## мать/s2 text_20 0.02333173 5 3 8
## концепция/s text_5 0.02311424 3 2 5
## сегодняшний/a text_5 0.02311424 3 2 4
## биоресурсы/s text_6 0.02306603 3 1 3
## причинять/v text_6 0.02306603 3 1 3
## часто/adv text_13 0.02304675 3 6 9
## ведро/s text_1 0.02298676 1 1 1
## внезапно/adv text_1 0.02298676 1 1 1
## втекать/v text_1 0.02298676 1 1 1
## дача/s text_1 0.02298676 1 1 1
## домой/adv text_1 0.02298676 1 1 1
## закинуть/v text_1 0.02298676 1 1 1
## запрещать/v text_1 0.02298676 1 1 1
## зарастать/v text_1 0.02298676 1 1 1
## коричневый/a text_1 0.02298676 1 1 1
## кристальный/a text_1 0.02298676 1 1 1
## ловить/v text_1 0.02298676 1 1 1
## минимальный/a text_1 0.02298676 1 1 1
## мутно/adv text_1 0.02298676 1 1 1
## набираться/v text_1 0.02298676 1 1 1
## наткнуться/v text_1 0.02298676 1 1 1
## невооруженный/a text_1 0.02298676 1 1 1
## неподалеку/adv text_1 0.02298676 1 1 1
## одумываться/v text_1 0.02298676 1 1 1
## особенно/adv text_1 0.02298676 1 1 1
## папа/s text_1 0.02298676 1 1 1
## пары/s text_1 0.02298676 1 1 1
## подозревать/v text_1 0.02298676 1 1 1
## прогревать/v text_1 0.02298676 1 1 1
## прокатиться/v text_1 0.02298676 1 1 1
## разница/s text_1 0.02298676 1 1 1
## разрабатываться/v text_1 0.02298676 1 1 1
## рыбачить/v text_1 0.02298676 1 1 1
## сливание/s text_1 0.02298676 1 1 1
## сравнивать/v text_1 0.02298676 1 1 1
## удочка/s text_1 0.02298676 1 1 1
## ходить/v text_1 0.02298676 1 1 1
## частый/a text_1 0.02298676 1 1 1
## щас/adv text_1 0.02298676 1 1 1
## экономичный/a text_1 0.02298676 1 1 1
## влечение/s text_21 0.02292767 2 1 2
## вместилище/s text_21 0.02292767 2 1 2
## голубой/a text_21 0.02292767 2 1 2
## забота/s text_21 0.02292767 2 1 2
## инстинкт/s text_21 0.02292767 2 1 2
## ступень/s text_21 0.02292767 2 1 2
## формирование/s text_21 0.02292767 2 1 2
## вдохновение/s1 text_15 0.02283453 2 2 4
## казаться/v text_15 0.02283453 2 2 3
## меняться/v1 text_15 0.02283453 2 2 3
## удивительный/a1 text_15 0.02283453 2 2 3
## царь/s1 text_20 0.02246384 4 2 5
## энергия/s text_4 0.02231547 5 8 16
## любовь/s2 text_12 0.02228271 2 3 4
## ущерб/s text_12 0.02228271 2 3 4
## загрязненный/a text_1 0.02203612 2 5 6
mostTfIdf <- findMostFreqTerms(TfIdf, 10)
lapply(mostTfIdf, FUN = function(x) Words[Words$Terms %in% names(x), ])
## $text_1
## Terms POS Unclear Words Texts
## 205 видно/adv adv FALSE 3 2
## 273 волновать/v v FALSE 3 2
## 963 купаться/v v FALSE 2 1
## 1307 нуждаться/v v FALSE 3 2
## 2048 речка/s s FALSE 5 2
## 2063 россия/s s FALSE 2 1
## 2074 рыба/s s FALSE 16 8
## 2234 сожаление/s s FALSE 6 4
## 2460 труба/s s FALSE 3 2
## 2603 финляндия/s s FALSE 2 1
##
## $text_2
## Terms POS Unclear Words Texts
## 19 активность/s s FALSE 2 1
## 126 борьба/s s FALSE 4 2
## 476 давно/adv adv FALSE 6 4
## 527 динозавр/s s FALSE 2 1
## 916 контроль/s s FALSE 3 2
## 980 ледниковый/a a FALSE 2 1
## 1329 обновляться/v v FALSE 2 1
## 1358 обязательный/a a FALSE 3 1
## 2271 спасать/v v FALSE 5 2
## 2443 транспорт/s s FALSE 4 2
##
## $text_3
## Terms POS Unclear Words Texts
## 136 бумажный/a a FALSE 2 1
## 158 вдохновлять/v v FALSE 2 1
## 235 внимание/s s FALSE 4 2
## 645 зависимость/s s FALSE 4 2
## 815 искусство/s s FALSE 2 1
## 902 композитор/s s FALSE 2 1
## 912 контейнер/s s FALSE 2 1
## 1047 медикамент/s s FALSE 2 1
## 1883 произведение/s s FALSE 4 2
## 1927 психолог/s s FALSE 2 1
##
## $text_4
## Terms POS Unclear Words Texts
## 73 бездумный/a a FALSE 2 1
## 228 вмешательство/s s FALSE 3 1
## 546 дозволять/v v FALSE 3 2
## 665 заканчиваться/v v FALSE 2 1
## 909 конец/s s FALSE 3 2
## 1745 потоп/s s FALSE 2 1
## 2181 слишком/adv adv FALSE 11 3
## 2543 ураган/s s FALSE 2 1
## 2692 чрезмерный/a a FALSE 2 1
## 2753 энергия/s s FALSE 16 8
##
## $text_5
## Terms POS Unclear Words Texts
## 303 впервые/adv adv FALSE 2 1
## 397 выход/s s FALSE 2 1
## 695 зарождаться/v v FALSE 2 1
## 919 концепция/s s FALSE 5 2
## 1039 материал/s s FALSE 7 4
## 1045 мегаполис/s s FALSE 3 1
## 1520 пара/s s FALSE 2 1
## 1632 подпункт/s s FALSE 3 1
## 2110 свет/s s FALSE 13 6
## 2129 сегодняшний/a a FALSE 4 2
##
## $text_6
## Terms POS Unclear Words Texts
## 97 биоресурсы/s s FALSE 3 1
## 245 водный/a a FALSE 9 4
## 335 всячески/adv adv FALSE 2 1
## 367 вылавливать/v v FALSE 2 1
## 560 дорога/s s FALSE 8 3
## 1224 негативный/a a FALSE 4 2
## 1332 обработка/s s FALSE 2 1
## 1858 причинять/v v FALSE 3 1
## 1934 путь/s s FALSE 10 3
## 2381 т/s s FALSE 7 3
##
## $text_7
## Terms POS Unclear Words Texts
## 9 φύσις?? NA TRUE 2 1
## 58 баллон/s s FALSE 2 1
## 78 безумно/adv adv FALSE 2 1
## 92 био?/s s TRUE 2 1
## 452 греча/s s FALSE 2 1
## 913 континент/s s FALSE 2 1
## 923 корень/s s FALSE 2 1
## 1404 определение/s s FALSE 9 4
## 1782 предполагать/v v FALSE 6 2
## 2122 связь/s s FALSE 8 4
##
## $text_8
## Terms POS Unclear Words Texts
## 194 взамен/adv adv FALSE 7 5
## 261 возможность/s s FALSE 8 4
## 782 изучение/s s FALSE 3 2
## 1219 невозможно/adv adv FALSE 3 2
## 1318 обеспечивать/v v FALSE 3 2
## 1345 общество/s s FALSE 14 7
## 1934 путь/s s FALSE 10 3
## 2228 современный/a a FALSE 15 8
## 2371 сфера/s s FALSE 3 2
## 2480 уважение/s s FALSE 7 4
##
## $text_9
## Terms POS Unclear Words Texts
## 47 атомный/a a FALSE 3 2
## 147 в-третьих/adv adv FALSE 1 1
## 148 в-четвертых/adv adv FALSE 1 1
## 240 во-вторых/adv adv FALSE 1 1
## 293 восстанавливаться/v v FALSE 4 3
## 1284 нефтяной/a a FALSE 3 2
## 1494 охрана/s s FALSE 4 3
## 1501 очистка/s s FALSE 4 3
## 1675 полигон/s s FALSE 4 3
## 2333 сточный/a a FALSE 3 2
##
## $text_10
## Terms POS Unclear Words Texts
## 115 болезнь/s s FALSE 3 2
## 639 заболевание/s s FALSE 4 3
## 651 загрязнение/s s FALSE 12 7
## 1189 население/s s FALSE 6 3
## 1198 настоящий/a a FALSE 9 4
## 1214 неблагоприятный/a a FALSE 2 1
## 1365 ограничение/s s FALSE 6 2
## 1886 производство/s s FALSE 17 7
## 2058 рождаемость/s s FALSE 3 2
## 2064 рост/s s FALSE 5 3
##
## $text_11
## Terms POS Unclear Words Texts
## 25 алюминий/s s FALSE 2 1
## 540 добывать/v v FALSE 5 3
## 616 железо/s s FALSE 3 1
## 762 избегать/v v FALSE 2 1
## 1230 недра/s s FALSE 4 1
## 1576 пить/v v FALSE 2 1
## 1692 пользоваться/v v FALSE 10 5
## 2259 состоять/v v FALSE 5 3
## 2317 стекло/s s FALSE 2 1
## 2703 чугун/s s FALSE 2 1
##
## $text_12
## Terms POS Unclear Words Texts
## 86 берет/s s FALSE 1 1
## 159 вдохновляться/v v FALSE 1 1
## 1009 любовь/s s FALSE 4 3
## 1097 много/adv adv FALSE 38 14
## 1149 наблюдение/s s FALSE 2 1
## 1685 положительный/a a FALSE 6 4
## 1696 помогать/v v FALSE 18 7
## 1972 различный/a a FALSE 22 12
## 2587 ущерб/s s FALSE 4 3
## 2769 явление/s s FALSE 8 5
##
## $text_13
## Terms POS Unclear Words Texts
## 77 безотходный/a a FALSE 1 1
## 113 божий/a a FALSE 1 1
## 237 вновь/adv adv FALSE 2 1
## 254 возвышенный/a a FALSE 1 1
## 259 возлагать/v v FALSE 1 1
## 261 возможность/s s FALSE 8 4
## 636 забирать/v v FALSE 4 2
## 1354 объяснять/v v FALSE 2 1
## 2062 роль/s s FALSE 3 2
## 2666 часто/adv adv FALSE 9 6
##
## $text_14
## Terms POS Unclear Words Texts
## 20 активный/a a FALSE 1 1
## 42 асфальт/s s FALSE 1 1
## 186 вещество/s s FALSE 8 5
## 187 вещь/s s FALSE 4 3
## 1033 массив/s s FALSE 3 2
## 1101 многочисленный/a a FALSE 4 2
## 1421 оружие/s s FALSE 4 2
## 1604 поверхность/s s FALSE 4 3
## 1841 приносить/v v FALSE 13 7
## 1913 протяжение/s s FALSE 5 4
##
## $text_15
## Terms POS Unclear Words Texts
## 134 букашка/s s FALSE 2 1
## 157 вдохновение/s s FALSE 4 2
## 225 вместе/adv adv FALSE 4 3
## 852 казаться/v v FALSE 3 2
## 1058 меняться/v v FALSE 3 2
## 1251 необычный/a a FALSE 2 1
## 1696 помогать/v v FALSE 18 7
## 2261 сосуд/s s FALSE 2 1
## 2440 травинка/s s FALSE 2 1
## 2500 удивительный/a a FALSE 3 2
##
## $text_16
## Terms POS Unclear Words Texts
## 29 антарктида/s s FALSE 2 1
## 53 байкал/s s FALSE 4 2
## 232 внедрять/v v FALSE 2 1
## 354 выгода/s s FALSE 2 1
## 643 завершаться/v v FALSE 2 1
## 671 законодательство/s s FALSE 2 1
## 1781 предотвращать/v v FALSE 2 1
## 2280 спирогира/s s FALSE 3 1
## 2326 сток/s s FALSE 2 1
## 2560 установка/s s FALSE 2 1
##
## $text_17
## Terms POS Unclear Words Texts
## 428 говорить/v v FALSE 16 8
## 481 далеко/adv adv FALSE 6 4
## 533 дно/s s FALSE 2 1
## 717 зверь/s s FALSE 6 2
## 742 значить/v v FALSE 5 4
## 1043 мать/s s FALSE 8 3
## 1492 охота/s s FALSE 3 2
## 1621 подарить/v v FALSE 3 1
## 2400 температура/s s FALSE 6 4
## 2765 эффект/s s FALSE 4 3
##
## $text_18
## Terms POS Unclear Words Texts
## 150 важно/adv adv FALSE 5 4
## 1201 научаться/v v FALSE 5 4
## 1226 неделимый/a a FALSE 2 1
## 1388 окружать/v v FALSE 10 7
## 1471 относиться/v v FALSE 29 12
## 1616 погода/s s FALSE 3 2
## 1685 положительный/a a FALSE 6 4
## 2481 уважительный/a a FALSE 2 1
## 2522 улучшать/v v FALSE 3 2
## 2541 управлять/v v FALSE 2 1
##
## $text_19
## Terms POS Unclear Words Texts
## 190 взаимозависимость/s s FALSE 2 1
## 615 желе/s s FALSE 2 1
## 721 здоровье/s s FALSE 10 4
## 758 идея/s s FALSE 4 2
## 824 исследование/s s FALSE 3 1
## 1636 подход/s s FALSE 5 2
## 2232 содружество/s s FALSE 6 1
## 2246 сообщество/s s FALSE 5 1
## 2269 социальный/a a FALSE 4 2
## 2402 теперь/adv adv FALSE 4 2
##
## $text_20
## Terms POS Unclear Words Texts
## 173 вернуть/v v FALSE 2 1
## 284 воспитывать/v v FALSE 3 1
## 464 грязь/s s FALSE 2 1
## 860 каменный/a a FALSE 2 1
## 935 край/s s FALSE 2 1
## 1025 мама/s s FALSE 5 1
## 1043 мать/s s FALSE 8 3
## 1596 плодородие/s s FALSE 2 1
## 2031 ребенок/s s FALSE 14 6
## 2641 царь/s s FALSE 5 2
##
## $text_21
## Terms POS Unclear Words Texts
## 221 влечение/s s FALSE 2 1
## 226 вместилище/s s FALSE 2 1
## 434 голубой/a a FALSE 2 1
## 640 забота/s s FALSE 2 1
## 798 инстинкт/s s FALSE 2 1
## 1160 называть/v v FALSE 5 2
## 1306 нужда/s s FALSE 7 4
## 1619 погубить/v v FALSE 4 2
## 2353 ступень/s s FALSE 2 1
## 2609 формирование/s s FALSE 2 1
##
## $text_22
## Terms POS Unclear Words Texts
## 278 вообще/adv adv FALSE 3 2
## 508 дело/s s FALSE 3 2
## 581 думать/v v FALSE 16 6
## 721 здоровье/s s FALSE 10 4
## 1661 показывать/v v FALSE 3 1
## 1736 построить/v v FALSE 3 2
## 1879 проект/s s FALSE 3 2
## 2039 результат/s s FALSE 7 5
## 2265 сохранение/s s FALSE 12 6
## 2579 участок/s s FALSE 2 1