====== ¿Cómo se anuncian los pisos? Un análisis de las palabras usadas ====== **Dificultad**: //MEDIA// ===== METODOLOGÍA ===== ==== Nube de palabras con timdream ==== - Seleccionar la columna NAME del listing pertinente - Crear un fichero de texto con el texto copiado - Ir a https://timdream.org/wordcloud - Seleccionar FILE y subir el fichero de texto - Una vez generada la nube de palabras, pulsar sobre EDIT LIST y limpiar los datos (quitar palabras como "y", "el", "la"... o unir palabras con y sin tilde, etc.) - Modificar el tema y la disposición de palabras al gusto ==== Porcentaje y número de palabras (R) ==== Si se desea ver numéricamente la frecuencia de las palabras, se puede usar el siguiente script de R: avisos<- scan("INPUT.txt", what="character", sep="\n")` avisos1 <- tolower(avisos) avisos2 <- strsplit(avisos1, "\\W") avisos3 <- unlist(avisos2) freq<-table(avisos3) freq1<-sort(freq, decreasing=TRUE) percent<- round(100*(freq1/length(avisos)),3) temple.sorted.table<-paste(names(freq1), freq1, percent, sep="\t") cat("Word\tFREQ\tPERCENT", temple.sorted.table, file="OUTPUT.txt", sep="\n") Aquí se verá la frecuencia absoluta de cada palabra y el porcentaje. ==== Número de palabras, bigramas y trigamas (Databasic.io) ==== Sube o copia-pega un archivo con todos los títulos de los anuncios (selecciona y copia esa columna en una hoja de cálculo) a la herramienta Wordcounter de Databasic.io https://databasic.io/en/wordcounter ==== Número de palabras con línea de comandos ==== Como se describe en este ejercicio: https://www.datascienceatthecommandline.com/chapter-4-creating-reusable-command-line-tools.html#converting-one-liners-into-shell-scripts Selecciona la columna 5 (que incluye los nombres de los anuncios): awk -F, '{OFS=",";print $5}' listings_donostia_simple.csv > names.csv Ahora calcula las palabras más usadas: cat names.csv | tr '[:upper:]' '[:lower:]' | grep -oE '\w+' | sort | uniq -c | sort -nr | head -n 10 145 in 144 en 129 room 125 beach 122 the 114 apartment 110 san 100 la 95 wifi 91 de 88 habitación 81 con 80 playa 79 old 77 apartamento 69 a 67 sebastian 64 town 62 parking 58 by 56 piso 53 with 53 center 52 rentals 51 y 51 feelfree 50 zurriola 49 concha 48 centro 46 to ==== Análisis espacial ==== {{:airbnb:pregunta:playa-centro-mapa-barrios-titulo.png?400|}} En este script de R https://code.montera34.com/airbnb/valencia/blob/master/analysis/palabras.R se muestra cómo generar mapas de presencia de palabras en barrios y distritos para el caso de Valencia: - Se traducen a un mismo idioma los títulos y descripciones. En google spreadsheets: la fórmula =DETECTLANGUAGE(E2) permite detectar el idioma usado en la celda E2. Luego puedes traducir con =GOOGLETRANSLATE(E2;T2;"es") que traduce el contenido de la celda E2 del idioma definido en la celda T2 al español. - Se cuantifica con tablas dinámicas o con R el número de anuncios por distrito o barrio para calcular su porcentaje (o fecuencia relativa). - Se dibujan los mapas usando QGIS o R (se usó la librería tmap de R) ===== Resultado ===== Puedes ver un ejemplo en el informde de Efecto Airbnb Donostia (julio 2017) https://lab.montera34.com/airbnb/donostia/#palabras