为什么我的双子座还在考虑停用词?

时间:2017-03-31 03:39:18

标签: r text-mining tm word-cloud

结果仍然考虑停用词...... 我的txt几行:

Sensacional,uma das melhores remakesdeanimaçãoSaido cinema emocionado,absurdamente lindo,insensibilidade de quem reclama do musical,lindo demais。 (...)o filme depende muito da nostalgiadaanimaçãoparafuncionar。 E apesar de ser eficaz,somente esse sentimentogi sustenta o longa sozinho para dizer que esta obra tenha qualidade erefinamentocinematográficos。(...)A Bela ea Fera acerta em tornar asuahistóriaaindaextremamente 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"))

制作语料库

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 个答案:

答案 0 :(得分:0)

假设你想要删除包含停用词的双字母组,使用tidytext包,你就可以

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')) }

颜色不在这里工作,因为每个颜色只有一次,但应该在规模上正常工作。