João Marcos
13 de junho de 2016
Mineração de textos (Text Mining) é um Processo de Descoberta de Conhecimento, que utiliza técnicas de análise e extração de dados a partir de textos, frases ou apenas palavras.
Os dados estruturados são organizados em linhas e colunas, geralmente são encontrados em banco de dados relacionais, são eficientes quanto à recuperação e processamento.
Os dados não estruturados referem-se a dados que não podem ser organizados em linhas e colunas, como vídeos, comentários em redes sociais e e-mails, entre outros.
É termo que descreve o imenso volume de dados – estruturados e não estruturados – que impactam os negócios no dia a dia. Mas o importante não é a quantidade de dados.
A ideia para se trabalhar com os dados em texto.
Pronunciamento dos deputados federais antes da votação.
library(NLP)
library(tm) #Text Mining
library(RColorBrewer) #Paleta de Cores
library(wordcloud) #Wordcloud
#Fala dos deputados
dados<-read.csv(file.choose(),head=T,encoding = "UTF-8")
#coloca cada observação em um vetor
vs <- VectorSource(dados$Fala)
#Armazena os vetores em documentos
temp<- Corpus(vs)
#Coloca tudo em minúsculo
wc_corpus <- tm_map(temp, tolower)
#Tira a pountuação e palavras ruído
wc_corpus <- tm_map(wc_corpus, removePunctuation)
wc_corpus <- tm_map(wc_corpus, removeWords, stopwords('portuguese'))
wc_corpus <- tm_map(wc_corpus, removeWords, c("voto","presidente"))
#Cria a frequência de palavras
wc_corpus <- tm_map(wc_corpus, PlainTextDocument)
td_mtx <- TermDocumentMatrix(wc_corpus, control = list())
v <- sort(rowSums(as.matrix(td_mtx)), decreasing=TRUE) #ordena as palavras
df <- data.frame(word=names(v), freq=v) #organiza um novo banco
#Paleta de Cores
pal1 <- brewer.pal(12,"Paired")
pal3 <- brewer.pal(12,"Set3")
WC<- wordcloud(df$word, df$freq, min.freq=40,
max.words=Inf, random.order=FALSE,
rot.per=.15,colors=pal1)
Sistema de Métricas declara empate técnico no uso de #naovaitergolpe e #vemprarua.
library(ROAuth)
library(bitops)
library(RCurl)
library(twitteR)
accessSecret="mGacZSmVt9nDzmptEwwXt4QcKtqPDSo85uRkZIgDokhUH"
setup_twitter_oauth(consumerKey,consumerSecret,accessToken,accessSecret)
## [1] "Using direct authentication"
vpr_twiiter <- searchTwitter("vemprarua", n = 1500,lang="pt") #vemprarua
#converte de lista para vetor
vpr_twiiter_text<-sapply(vpr_twiiter, function(x) x$getText())
#coloca cada observação em um vetor
vs <- VectorSource(vpr_twiiter_text)
#Armazena os vetores em documentos
temp<- Corpus(vs)
#Remove Numeros
wc_corpus <- tm_map(temp, removeNumbers)
#Remove Pontuação
wc_corpus <- tm_map(wc_corpus, removePunctuation)
#Remove Palavras Ruido
wc_corpus <- tm_map(wc_corpus, removeWords, stopwords('portuguese'))
#Coloca tudo em minúsculo
wc_corpus <- tm_map(wc_corpus, tolower)
#remove os twitters
removeURL <- function(x) gsub("http[[:alnum:]]*", "", x)
wc_corpus <- tm_map(wc_corpus, removeURL)
#Cria a frequência de palavras
wc_corpus <- tm_map(wc_corpus, PlainTextDocument)
td_mtx <- TermDocumentMatrix(wc_corpus, control = list())
v <- sort(rowSums(as.matrix(td_mtx)), decreasing=TRUE) #ordena as palavras
df <- data.frame(word=names(v), freq=v) #organiza um novo banco
#Paleta de cores
pal1 <- brewer.pal(12,"Paired")
pal3 <- brewer.pal(12,"Set3")
pal2 <- brewer.pal(8,"Dark2")
wordcloud(df$word, df$freq, min.freq=10,
max.words=Inf, random.order=FALSE,
rot.per=.15, scale=c(2.2,0.5),colors=pal1)
nvtg_twiiter <- searchTwitter("naovaitergolpe", n = 1500,lang="pt")
wordcloud(df$word, df$freq, min.freq=10,
max.words=Inf, random.order=FALSE,
rot.per=.15, scale=c(2.2,0.6),colors=pal1)