Как посчитать частоту конкретных слов из моего CSV-файла в R? - PullRequest
0 голосов
/ 28 июня 2018

В моем csv-документе есть только отзывы (только строки без столбцов). Я хочу посчитать частоту слов, например love, например, best из моего csv-файла. Я не хочу частоту каждого слова. Я только хочу, сколько раз эти три слова появляются в моем документе CSV. Я пробовал этот код, но он дает мне частоту каждого слова, которое я не хочу. Может кто-нибудь помочь мне, как посчитать частоту конкретных слов или список конкретных слов?

texts <- read.csv("./Data/fast food/Domino's/Domino's veg pizza.csv",stringsAsFactors = FALSE)
    docs <- Corpus(VectorSource(texts))
    toSpace <- content_transformer(function (x , pattern ) gsub(pattern, " ", x))
    docs <- tm_map(docs, toSpace, "/")
    docs <- tm_map(docs, toSpace, "@")
    docs <- tm_map(docs, toSpace, "\\|")
    docs <- tm_map(docs, content_transformer(tolower))
    docs <- tm_map(docs, removeNumbers)
    docs <- tm_map(docs, removeWords, stopwords("english"))
    docs <- tm_map(docs, removeWords, c("blabla1", "blabla2")) 
    docs <- tm_map(docs, removePunctuation)
    docs <- tm_map(docs, stripWhitespace)

cor<-Corpus(VectorSource(texts$Reviews))
    dtm <- TermDocumentMatrix(docs)
    m <- as.matrix(dtm)
    v <- sort(rowSums(m),decreasing=TRUE)
    d <- data.frame(word = names(v),freq=v)
    head(d, 20)
    findFreqTerms(dtm, 10)

1 Ответ

0 голосов
/ 28 июня 2018

Если вы хотите посчитать частоту определенных слов, вы можете использовать опцию словаря в управляющей части DocumentTermMatrix.

в вашем случае:

my_words <- c("love", "like" , "best")
dtm <- TermDocumentMatrix(docs, control = list(dictionary = my_words))

Вот воспроизводимый пример:

library(tm)

data("crude")
crude <- as.VCorpus(crude)
crude <- tm_map(crude, stripWhitespace)
crude <- tm_map(crude, removePunctuation)
crude <- tm_map(crude, content_transformer(tolower))
crude <- tm_map(crude, removeWords, stopwords("english"))

my_words <- c("oil", "contract")

my_dtm <- DocumentTermMatrix(crude, control = list(dictionary = my_words))

inspect(my_dtm)
<<DocumentTermMatrix (documents: 20, terms: 2)>>
Non-/sparse entries: 24/16
Sparsity           : 40%
Maximal term length: 8
Weighting          : term frequency (tf)
Sample             :
     Terms
Docs  contract oil
  127        2   5
  144        0  12
  236        0   7
  246        0   5
  248        0   9
  273        0   5
  349        0   4
  352        0   5
  353        0   4
  502        0   5
...