A Mineração de texto (Text Mining), também denominada de extração de dados de textuais, ou ainda, análise de textual, refere-se ao processo de obter informação quantitativa a partir de um determinado texto.
Essas informações normalmente são obtidas por meio do reconhecimento de padrões e tendências através de aprendizagem estatística. A Mineração de Texto geralmente envolve o processo de estruturação do texto de entrada, reconhecimento dos padrões de dados estruturados, e, finalmente, a avaliação e interpretação dos resultados.
Nesse post mostraremos como realizar algumas das principais tarefas de Text Mining, as quais são úteis no estudo das mídias sociais com propósitos estratégicos gerenciais e de aplicações em marketing.
Análise textual descritiva: Wordcloud.
Uma nuvem de palavras ou Wordcloud é uma representação visual de dados de texto, normalmente usada para descrever os metadados de palavras-chave em textos específicos. Em geral é representada por palavras isoladas, e a importância de cada palavra é mostrada com um tamanho da fonte ou cor. Neste formato é fácil perceber rapidamente os termos mais proeminentes e sua importância relativa.
Considere por exemplo o Soneto da Felicidade:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #Guarda o texto a ser analisado no objeto "soneto" soneto<-"A Felicidade Tristeza não tem fim Felicidade sim A felicidade é como a pluma Que o vento vai levando pelo ar Voa tão leve Mas tem a vida breve Precisa que haja vento sem parar A felicidade do pobre parece A grande ilusão do carnaval A gente trabalha o ano inteiro Por um momento de sonho Pra fazer a fantasia De rei ou de pirata ou jardineira Pra tudo se acabar na quarta-feira Tristeza não tem fim Felicidade sim A felicidade é como a gota De orvalho numa pétala de flor Brilha tranqüila Depois de leve oscila E cai como uma lágrima de amor A felicidade é uma coisa boa E tão delicada também Tem flores e amores De todas as cores Tem ninhos de passarinhos Tudo de bom ela tem E é por ela ser assim tão delicada Que eu trato dela sempre muito bem Tristeza não tem fim Felicidade sim A minha felicidade está sonhando Nos olhos da minha namorada É como esta noite, passando, passando Em busca da madrugada Falem baixo, por favor Pra que ela acorde alegre com o dia Oferecendo beijos de amor" |
1 2 3 | #Habilita as bibliotecas necessárias library (tm) #Text Mining library (wordcloud) #Wordcloud |
1 2 3 4 5 6 7 8 | #Transforma os dados de texto em vetores vs <- VectorSource (soneto) #Coloca no formato de Corpus do pacote tm temp<- Corpus (vs) #Faz o Word Cloud wordcloud (temp) |
- Converte todas as palavras para minúsculo.
- Expande todas as contrações de palavra, por exemplo, "pelo" vira "per o".
- Remove as palavras "ruído".
- Remove as pontuações.
1 2 3 4 5 6 7 8 9 10 11 12 | #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' )) #Cria a frequência de palavras td_mtx <- TermDocumentMatrix (wc_corpus, control = list (minWordLength = 3)) v <- sort ( rowSums ( as.matrix (td_mtx)), decreasing= TRUE ) df <- data.frame (word= names (v), freq=v) wordcloud (df$word, df$freq, min.freq=3) |
1 2 3 4 5 6 7 8 | #Habilitando o pacote de cores library (RColorBrewer) pal2 <- brewer.pal (8, "Dark2" ) #Gera o word cloud wordcloud (df$word, df$freq, min.freq=1, max.words= Inf , random.order= FALSE , rot.per=.15, colors=pal2) |