[R-br] [Wordcloud] Problema com Encoding

Leonard Assis assis.leonard em gmail.com
Sexta Setembro 29 06:33:11 -03 2017


Max,
Sem uma amostra dos dados que são fonte do erro fica muito dificil de te
ajudar.

Problema de encoding, eu já tive inclusive, ao compilar um .rmd via atalho
no rstudio e não por linha de comando.

Por isto é complicado te ajudar sem ter um exemplo dos dados problemáticos


Em 27 de set de 2017 11:39 PM, "Max via R-br" <r-br em listas.c3sl.ufpr.br>
escreveu:

Pessoal, boa noite!

Com base em um exemplo pego na internet, tentei fazer uma nuvem de palavras
de um arquivo notepad (peguei uma pequena matéria na internet e salvei, em
.txt, com o nome SaoBento).
O código tem funcionado quase corretamente. O problema é que eu não tenho
tido sucesso em corrigir o *encoding* do texto.

- Tentei usar encoding = "UTF-8" na linha do readlines, mas sem sucesso.
- Também tentei usar enc2native() na última linha do passo 7, mas ocorre
erro argument is not a character vector.
- Salvei o arquivo SaoBento.txt no Notepad++, usando UTF-8 e, também, a
nuvem final acusou problemas de *encoding*.
- Deixei o arquivo SaoBento.txt salvo sozinho em uma pasta e, também, não
tive sucesso em acertar o *encoding*.

Sendo assim, gostaria de saber se alguém poderia fornecer uma dica de como
posso driblar esse problema.

Agradeço pela atenção.

Saudações,
-Max Lara

PS: A variável "AQUI_ERRO" é onde leio o texto "distorcido".

#==============================================
#                             WORDCLOUD
#==============================================

*#1) INSTALL REQUIRED PACKAGES*
install.packages("tm")                         #for text mining
install.packages("SnowballC")             #for text stemming
install.packages("wordcloud")             #wordcloud generator
install.packages("RColorBrewer")        #color palletes

*#2) LOAD REQUIRED PACKAGES*
library("tm")
library("SnowballC")
library("wordcloud")
library("RColorBrewer")

*#3) TEXT MINING*
#LOAD THE TEXT (SAVED LOCALLY)
text <- readLines(file.choose())

*#4) LOAD THE DATA AS A CORPUS*
docs <- Corpus(VectorSource(text))          #VectorSource() function
creates a corpus of character vectors
docs <- tm_map(docs, PlainTextDocument)

*#5) TEXT TRANSFORMATION*
#tm_map() function (to replace, for instance, special characters from the
text).
#Replacing "/", "@" and "|" with space:

toSpace <- content_transformer(function (x , pattern ) gsub(pattern, " ",
x))
docs <- tm_map(docs, toSpace, "/")
docs <- tm_map(docs, toSpace, "@")
docs <- tm_map(docs, toSpace, "\\|")

*#6) TEXT CLEANING*
#tm_map() (remove unnecessary white space, to convert the text to lower
case)
#Removing common stopwords

docs <- tm_map(docs, content_transformer(tolower))                #Convert
the text to lower case
docs <- tm_map(docs, removeNumbers)
#Remove numbers
docs <- tm_map(docs, removeWords, stopwords("portuguese"))   #Remove
Portuguese common stopwords
docs <- tm_map(docs, removePunctuation)
#Remove punctuations
docs <- tm_map(docs, stripWhitespace)
#Eliminate extra white spaces
docs <- tm_map(docs, stemDocument)
#Text stemming

*#7) BUILD A TERM-DOCUMENT MATRIX (TDM)*
#TDM is a table containing the frequency of the words.
#Column names are words
#Rown names are documents

dtm <- TermDocumentMatrix(docs)
terms(dtm)
m <- as.matrix(dtm)
v <- sort(rowSums(m),decreasing=TRUE)
d <- data.frame(word = names(v),freq=v)
head(d, 10)
AQUI_ERRO <- d$word

*#8) GENERATE THE WORD CLOUD*
wordcloud(
  words = AQUI_ERRO,
  freq = d$freq,
  min.freq = 1,
  max.words=200,
  random.order=FALSE,
  rot.per=0.35,
  colors=brewer.pal(8, "Dark2"))

_______________________________________________
R-br mailing list
R-br em listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código
mínimo reproduzível.
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20170929/f813fd83/attachment.html>


Mais detalhes sobre a lista de discussão R-br