'Why my bigrams are still considering stopwords?
The result still consider stopwords... Few lines of my txt:
Sensacional, uma das melhores remakes de animação sai do cinema emocionado, absurdamente lindo, insensibilidade de quem reclama do musical, lindo demais. (...)o filme depende muito da nostalgia da animação para funcionar. E apesar de ser eficaz, somente esse sentimento não sustenta o longa sozinho para dizer que esta obra tenha qualidade e refinamento cinematográficos.(...)A Bela e a Fera acerta em tornar a sua história ainda extremamente relevante nos dias atuais, e se de um lado inova o seu contexto social, por outro lado a falta de originalidade compromete que a obra seja mais impactante.
Reding txt
data <- read_tsv("bela.txt", locale = locale(encoding = "latin1"))
Making a corpus
datacorpus <- VCorpus(VectorSource(data))
datacorpus <- tm_map(datacorpus, PlainTextDocument)
datacorpus <- tm_map(datacorpus, removePunctuation)
datacorpus <- tm_map(datacorpus, removeWords, stopwords('pt'))
BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 2, max = 2))
tdm <- TermDocumentMatrix(datacorpus,control=list(removePunctuation = TRUE,
stopwords = stopwords('pt'),
removeNumbers = TRUE,
tokenize = BigramTokenizer))
m <- as.matrix(tdm)
v <- sort(rowSums(m),decreasing=TRUE)
d <- data.frame(word = names(v),freq=v)
head(d, 10)
set.seed(1234)
wordcloud(words = d$word, freq = d$freq, min.freq = 1,
max.words=200, random.order=FALSE, rot.per=0.35,
colors=brewer.pal(8, "Dark2"))
![enter image description here][1] [1]: https://i.stack.imgur.com/Uu67O.jpg
Solution 1:[1]
Assuming you mean you want to drop bigrams that contain a stop word, using the tidytext package, you could do
library(dplyr)
library(tidytext)
set.seed(47)
data_frame(text = 'Sensacional, uma das melhores remakes de animação sai do cinema emocionado, absurdamente lindo, insensibilidade de quem reclama do musical, lindo demais. (...)o filme depende muito da nostalgia da animação para funcionar. E apesar de ser eficaz, somente esse sentimento não sustenta o longa sozinho para dizer que esta obra tenha qualidade e refinamento cinematográficos.(...)A Bela e a Fera acerta em tornar a sua história ainda extremamente relevante nos dias atuais, e se de um lado inova o seu contexto social, por outro lado a falta de originalidade compromete que a obra seja mais impactante.') %>%
unnest_tokens(bigram, text, 'ngrams', n = 2) %>% # tokenize bigrams
mutate(i = row_number()) %>% # add index for later grouping
unnest_tokens(word, bigram, drop = FALSE) %>% # tokenize bigrams into words
anti_join(data_frame(word = tm::stopwords('pt'))) %>% # drop rows with stop words
group_by(i) %>% # group by bigram index
filter(n() == 2) %>% # drop bigram instances where only one word left
summarise(bigram = unique(bigram)) %>% # collapse groups to single bigram each
count(bigram) %>%
{ wordcloud::wordcloud(.$bigram, .$n, min.freq = 1, scale = c(1, .2), rot.per = .35,
colors = RColorBrewer::brewer.pal(8, 'Dark2')) }

Colors don't work here because there's a single occurrence of each, but should work fine at scale.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | alistaire |
