Как я могу построить подсчет слов из всех специально выделенных предложений трех текстов PDF? - PullRequest
0 голосов
/ 25 января 2020

ОК, поэтому я извлек все предложения с «маслом» в трех связанных версиях отчетов конгресса, и мне удалось извлечь слово облако из него после очистки данных.

Код ниже

library(readtext)
library(stringr)
library(textclean)
library(mgsub)
library(tm)


test1973 <- readtext("*.pdf")

full.data1973 <- as.data.frame(test1973)

full.data1973$text <- replace_non_ascii(full.data1973$text, replacement = "")
full.data1973$text <- replace_contraction(full.data1973$text, replacement = "")
full.data1973$text <- replace_white(full.data1973$text, replacement = "")
full.data1973$text <- replace_html(full.data1973$text, replacement = "")
full.data1973$text <- replace_hash(full.data1973$text, replacement = "")
full.data1973$text <- replace_incomplete(full.data1973$text, replacement = "")


######wordcloud oil sentences
library(wordcloud)
library(RColorBrewer)

#exttract oil sentences
oil.sentences.1973 <- str_extract_all(full.data1973$text, "([^.]+).\\boil\\b([^.]+).", simplify = T)

#corpus
oil.wordcloud.corpus <- Corpus(VectorSource(oil.sentences.1973))
#termdocumentmatrix
oil.term.doc.matrix <- TermDocumentMatrix(oil.wordcloud.corpus,
                                          control = list(removePunctuation = T,
                                                        stopwords = c("oil", stopwords("english")),
                                                                   removeNumbers = T, tolower = T))
oil.matrix <- as.matrix(oil.term.doc.matrix)

#wordcount
word.freq.oil <- sort(rowSums(oil.term.doc.matrix), decreasing = T)
word.count.dm <- data.frame(word = names(word.freq.oil), freq = word.freq.oil)

Что я хотел бы сейчас сделать, так это нанести на график частоту слов (вычеркнуть, сколько раз каждое слово появляется) из 20 наиболее часто используемых слов, используя график. но когда я кодирую барплот с помощью ggplot2, он выглядит так:

ggplot(head(word.count.dm,20), aes(word)) + geom_bar()

неудачный график

Я заметил, что в моем фрейме данных "word.count.dm «слова появляются в порядке убывания (что здорово), но с тремя столбцами; один безымянный столбец со словами, один с именем «word» со словами (так же, как первый, за исключением того, что заголовка нет), а третий называется «freq», что является частотой слова. Я подозреваю, что все мои столбцы независимы друг от друга, так как на графике слова, отображаемые на оси x, ранжируются в алфавитном порядке, что не имеет место в кадре данных.

...