Add a new chunk by clicking the Insert Chunk button on the toolbar or by pressing Cmd+Option+I.
Исходные файлы с текстами в формате MS Word были переведены в формат TXT. Использовал редактор Sublime Text2 и сохранил в кодировке UTF-8. Файлы сложены в папку AllTexts
Для работы загружаем библиотеку TM и меняем рабочую папку (не требуется, так как настроил Project)
library(tm)
## Loading required package: NLP
# setwd("~/Documents/Документы/Научные проекты/ЭКОинструмент/R_script")
# не требуется, так как настроил Project)
Файлы лежат в поддиректории AllTexts.
ecoTxt <- VCorpus(DirSource("AllTexts", encoding = "UTF-8"), readerControl = list(language = "rus"))
В рабочую папку положил файл программы Mystem Создаю функцию для стеминга (Аргументы вписаны сразу в функцию)
mystem2 <- function(doc, arg) {
sdoc <- system2("mystem/mystem"
, args = paste0("-", arg)
, stdout = TRUE # TRUE (capture the output
# in a character vector)
, input = doc)
sdoc <- gsub("[{}]", "", sdoc) #убираю фигурные скобки из вывода
sdoc
}
# Если обернуть в оболочку, то функция начинает работать # content_transformer()
mystem3 <- content_transformer(mystem2)
Провожу стемминг с аргументами c - копировать ввод на вывод (пробелы, знаки препинания и пр.) l - без исходных словоформ d - контекстное снятие омонимии.
StemEcoTxt <- tm_map(ecoTxt, mystem3, "cld")
Убираем знаки препинания и цифры
StemEcoTxt <- tm_map(StemEcoTxt, removeNumbers)
StemEcoTxt <- tm_map(StemEcoTxt, removePunctuation)
# Если не удалить знаки препинания, то они присоединяются к словам
tdm <- TermDocumentMatrix(StemEcoTxt)
inspect(tdm[1:20, 1:2])
## <<TermDocumentMatrix (terms: 20, documents: 2)>>
## Non-/sparse entries: 2/38
## Sparsity : 95%
## Maximal term length: 14
## Weighting : term frequency (tf)
## Sample :
## Docs
## Terms aleksandrova1340.txt andryushenkova1410.txt
## абсолют 0 0
## абсолютно 0 1
## авария 0 0
## авиационный 0 0
## австралия 0 0
## австрийский 0 0
## автобус 0 0
## автоматически 0 0
## автомобиль 0 0
## адаптироваться 1 0
Вывод самых частотных слов
findFreqTerms(tdm, 100) # частота больше 100
## [1] "быть" "весь" "взаимодействие" "для"
## [5] "другой" "его" "жизнь" "или"
## [9] "как" "который" "личность" "мир"
## [13] "мочь" "окружающий" "она" "они"
## [17] "отношение" "поведение" "природа" "проблема"
## [21] "процесс" "психология" "развитие" "сам"
## [25] "самопознание" "свой" "себя" "сознание"
## [29] "социальный" "среда" "так" "такой"
## [33] "тот" "человек" "что" "экологический"
## [37] "это" "этот" "являться"
Наиболее частотные слова по каждому отдельному тексту
findMostFreqTerms(tdm, 5) # пять самых частотных слова в каждом тексте
## $aleksandrova1340.txt
## человек среда что или как
## 22 14 11 8 8
##
## $andryushenkova1410.txt
## человек экологический психология себя среда
## 30 24 22 18 13
##
## $bludov1340.txt
## экологический как человек самосознание деятельность
## 17 13 12 10 8
##
## $buankova1340.txt
## человек экологический как природа среда
## 41 34 27 22 20
##
## $bushueva1340.txt
## экологический человек отношение психология себя
## 14 13 12 11 10
##
## $chramcova1340.txt
## человек психология экологический среда как
## 12 11 9 8 7
##
## $denisenko1340.txt
## экологический человек природа который среда
## 30 25 20 12 12
##
## $doronin1410.txt
## человек что себя как наш
## 19 8 7 6 6
##
## $guseva1340.txt
## экологический человек психология самопознание что
## 19 17 12 8 8
##
## $ishhanova1340.txt
## человек себя среда этот что
## 19 15 13 11 9
##
## $ivanova1340.txt
## человек свой что его среда
## 33 23 14 13 9
##
## $kovtun1340.txt
## экологический человек свой природа сознание
## 35 28 17 15 14
##
## $kozlov1340.txt
## человек себя самопознание свой что
## 28 20 17 17 14
##
## $kozlova1240.txt
## психология экологический среда мир как
## 8 8 6 5 4
##
## $kuznecova1340.txt
## человек что природа дэвид экология
## 11 11 8 7 7
##
## $kuzubova1340.txt
## человек адаптация среда различный условие
## 19 10 10 7 7
##
## $lebedeva1340.txt
## самопознание экологический человек жизнь
## 10 9 8 5
## психологический
## 5
##
## $legostaev1340.txt
## человек экологический для природа что
## 12 10 8 8 8
##
## $leshina1340.txt
## человек свой себя что который
## 38 27 25 24 17
##
## $lukoshkova1410.txt
## экологический человек среда окружающий сознание
## 24 14 10 9 9
##
## $lysyakova1340.txt
## человек отношение природа окружающий среда
## 38 16 16 13 13
##
## $marchuk1340.txt
## экологический человек природа сознание психология
## 32 20 17 14 11
##
## $menshenin1410.txt
## человек среда что природа быть
## 26 21 21 18 16
##
## $mitrofanyuk1410.txt
## самопознание себя личность свой человек
## 41 22 21 18 15
##
## $moroshan1340.txt
## потребность как природа мышление самопознание
## 16 15 9 8 8
##
## $novitskaya1340.txt
## экологический человек сознание среда психология
## 25 20 18 14 11
##
## $otyan1410.txt
## человек себя как свой мир
## 28 25 21 16 13
##
## $petrova1410.txt
## человек среда себя экологический что
## 26 17 14 14 9
##
## $peunkova1410.txt
## среда человек как что жизнь
## 20 19 11 11 10
##
## $privalov1340.txt
## самопознание себя психология человек как
## 17 16 15 15 13
##
## $pronkina1410.txt
## человек как экологический природа психология
## 47 40 31 29 25
##
## $sannikova1410.txt
## среда что психология наш человек
## 8 8 6 5 5
##
## $shelechova1410.txt
## что это среда помогать человек
## 24 17 15 14 13
##
## $shherbakov1410.txt
## экологический психология человек влияние понятие
## 14 13 13 6 6
##
## $shkarupina1340.txt
## человек что среда для окружающий
## 19 9 8 6 6
##
## $skorkina1410.txt
## человек экологический природа культура кризис
## 25 13 11 9 8
##
## $starodubova1340.txt
## человек природа среда как что
## 44 34 32 31 29
##
## $stepanov1340.txt
## себя человек свой что как
## 9 9 8 7 6
##
## $turlakova1410.txt
## экологический сознание человек как мир
## 37 22 14 11 11
##
## $vachapova1340.txt
## экологический человек что весь жизнь
## 21 20 11 10 10
##
## $volosovich1340.txt
## человек среда экологический который окружающий
## 24 19 14 11 11
##
## $zacharova1410.txt
## свой человек для жизнь наш
## 24 23 16 14 14
##
## $zhivtyak1340.txt
## как что это психология человек
## 21 17 12 10 10
в порядке убывания 100 самых частых слов
a <- rowSums(as.matrix(tdm))
a <- sort(a, decreasing = TRUE)
head(a, 100)
## человек экологический как среда
## 886 579 425 412
## что себя свой природа
## 405 329 317 305
## который психология это самопознание
## 281 281 226 217
## быть этот сознание для
## 215 213 212 192
## окружающий мир отношение жизнь
## 187 177 176 148
## такой его другой мочь
## 148 144 141 141
## или являться весь проблема
## 139 130 128 126
## личность она тот развитие
## 124 123 114 113
## сам так взаимодействие они
## 113 111 108 106
## процесс социальный поведение природный
## 104 104 103 99
## наш также только становиться
## 98 94 91 86
## деятельность психологический знание все
## 83 83 81 77
## образ можно один условие
## 77 73 72 72
## система уровень влияние формирование
## 71 71 69 66
## психический различный время общество
## 65 65 64 63
## данный представление понимать новый
## 62 62 60 59
## экология каждый внешний качество
## 59 58 57 57
## внутренний изучение самый наука
## 56 56 56 54
## возможность вопрос если познавать
## 53 53 53 53
## собственный сторона чтобы важный
## 53 52 52 51
## взаимоотношение происходить человечество изменение
## 51 51 50 49
## объект иметь общественный цель
## 49 48 48 48
## например начинать познание фактор
## 47 47 47 47
## место определенный потребность город
## 46 46 46 45
## иной уже восприятие жить
## 45 45 44 44
library(wordcloud)
## Loading required package: RColorBrewer
wordcloud(StemEcoTxt, random.order = F, min.freq = 75)
# POS обработка по частям речи (Part of Speach)
Создание корпуса с грамматической информацией i - печатать грамматическую информацию
POSEcoTxt <- tm_map(ecoTxt, mystem3, "cldi")
POStdm <- TermDocumentMatrix(POSEcoTxt)
inspect(POStdm[1:20, 1:2])
## <<TermDocumentMatrix (terms: 20, documents: 2)>>
## Non-/sparse entries: 4/36
## Sparsity : 90%
## Maximal term length: 134
## Weighting : term frequency (tf)
## Sample :
## Docs
## Terms aleksandrova1340.txt
## -это=part= 0
## .и=conj=, 0
## "внедряться=v,нп=непрош,ед,изъяв,3-л,несов". 0
## "знать=v,несов,пе=непрош,пр,мн,прич,полн,страд|=v,несов,пе=непрош,вин,мн,прич,полн,страд,од|=v,несов,пе=непрош,род,мн,прич,полн,страд" 0
## "значить=v,несов,пе=непрош,им,мн,прич,полн,действ|=v,несов,пе=непрош,вин,мн,прич,полн,действ,неод 0
## "нащупывать=v,пе=инф,сов" 0
## "путешествие=s,сред,неод=вин,ед|=s,сред,неод=им,ед 0
## “воспитывать=v,пе=непрош,ед,изъяв,3-л,несов” 1
## “муравейник=s,муж,неод=вин,мн|=s,муж,неод=им,мн” 1
## “скотозаговор?=s,муж,неод=вин,ед|?=s,муж,неод=им,ед” 1
## Docs
## Terms andryushenkova1410.txt
## -это=part= 1
## .и=conj=, 0
## "внедряться=v,нп=непрош,ед,изъяв,3-л,несов". 0
## "знать=v,несов,пе=непрош,пр,мн,прич,полн,страд|=v,несов,пе=непрош,вин,мн,прич,полн,страд,од|=v,несов,пе=непрош,род,мн,прич,полн,страд" 0
## "значить=v,несов,пе=непрош,им,мн,прич,полн,действ|=v,несов,пе=непрош,вин,мн,прич,полн,действ,неод 0
## "нащупывать=v,пе=инф,сов" 0
## "путешествие=s,сред,неод=вин,ед|=s,сред,неод=им,ед 0
## “воспитывать=v,пе=непрош,ед,изъяв,3-л,несов” 0
## “муравейник=s,муж,неод=вин,мн|=s,муж,неод=им,мн” 0
## “скотозаговор?=s,муж,неод=вин,ед|?=s,муж,неод=им,ед” 0