Last active
June 7, 2019 16:11
-
-
Save gonzalezgouveia/25895e2a1d23176d0099db035e240abe to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
library(tm) | |
library(SnowballC) | |
library(wordcloud) | |
library(RColorBrewer) | |
library(tidyverse) | |
library(ggwordcloud) | |
# Hecho por Rafa @GonzalezGouveia | |
# Con gusto para #DatosDeMiercoles, propuesto por @R4DS_es | |
# leyendo datos de capitales | |
buenos_aires <- readr::read_csv("https://raw.githubusercontent.com/cienciadedatos/datos-de-miercoles/master/datos/2019/2019-06-05/buenos_aires.csv") | |
cdmx <- readr::read_csv("https://raw.githubusercontent.com/cienciadedatos/datos-de-miercoles/master/datos/2019/2019-06-05/cdmx.csv") | |
rio <- readr::read_csv("https://raw.githubusercontent.com/cienciadedatos/datos-de-miercoles/master/datos/2019/2019-06-05/rio.csv") | |
santiago <- readr::read_csv("https://raw.githubusercontent.com/cienciadedatos/datos-de-miercoles/master/datos/2019/2019-06-05/santiago.csv") | |
######################################## | |
# Un poquito de text mining muy básico # | |
######################################## | |
# mini-diccionario | |
# corpus es el nombreque se le da al conjunto de todos los textos a analizar | |
# stopword son palabras que no ayudan al análisis como "el", "la", y así... | |
# cambiar aqui la capital para cada grafica | |
text <- santiago$descripcion | |
# Cargar datos como un corpus | |
docs <- Corpus(VectorSource(text)) | |
# pasar textos a minúsculas | |
docs <- tm_map(docs, content_transformer(tolower)) | |
# quitar números | |
docs <- tm_map(docs, removeNumbers) | |
# quitar stopwords en español | |
docs <- tm_map(docs, removeWords, stopwords("spanish")) | |
# quitar stopwords en inglés | |
docs <- tm_map(docs, removeWords, stopwords("english")) | |
# quitar puntuación | |
docs <- tm_map(docs, removePunctuation) | |
# eliminar espacios en blanco extras | |
docs <- tm_map(docs, stripWhitespace) | |
# crear tabla de frecuencias | |
dtm <- TermDocumentMatrix(docs) | |
m <- as.matrix(dtm) | |
v <- sort(rowSums(m),decreasing=TRUE) | |
d <- data.frame(word = names(v),freq=v) | |
print(head(d, 10)) | |
d %>% | |
slice(1:50) %>% | |
mutate(angulo = 90 * sample(c(0, 1), n(), replace = TRUE, prob = c(60, 40))) %>% | |
ggplot(aes(label = word, | |
size = freq, | |
angle = angulo, | |
color = freq)) + | |
# geom_text_wordcloud() + | |
geom_text_wordcloud_area() + | |
scale_size_area(max_size = 12) + | |
theme_minimal() | |
# cambiar para cada ciudad | |
ggsave('./images/datos_de_miercoles_airbnb_santiago.png') | |
# Hecho por Rafa @GonzalezGouveia | |
# Con gusto para #DatosDeMiercoles, propuesto por @R4DS_es |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment