Mini proyecto: Como hacer analisis de datos sobre un pequeño negocio (en Español)

Overview

Si yo fuera dueño de una pequena empresa (Pyme) me gustaria poder analizar que dicen mis clientes acerca de mi negocio, cuales son los productos que mas y menos les gustan y cuales son sus quejas mas frecuentes.

Si mi negocio fuera una cafeteria, me gustaria saber cual es el tipo de cafe que recuerdan con mas cariño, que opinan de los baristas, si hay alguna queja mas frecuente que otra.

.

.

Es posible hacer esto? Si, podemos entrar en Tripadvisor, Google, Yelp y otros sitios que contienen opiniones (o reviews) escritas por clientes acerca de negocios, elegir las reviews correspondientes a nuestro negocio, leer cada una de las reviews de los clientes con suma atencion y tomar nota acerca de los terminos mas repetidos por mis clientes.

Pero existe tambien la posibilidad de analizar todas las reviews utilizando algo de R 😉

Empecemos entonces.

.

Background

Dada un cafeteria generica “X” de Buenos Aires, ejecute web scraping sobre las reviews que tenia el negocio en Tripadvisor, Yelp y Beanhunter:

De cada uno de los sitios considere fecha de publicacion de la review, puntaje de la misma y sitio donde se publico. Tambien dado que estoy considerando esto como un ejercicio “teorico”, elimine de las reviews el nombre del local, de forma de mantener el anonimato del sitio que estoy analizando.

El resultado final es un dataset con todas las reviews unificadas. A continuacion una muestra de como quedo la informacion consolidada:

.

SitePointsMonthYearReview
Beanhunter4.542019Good coffee and I am pretty picky. One of my top three in this one week that I have been in BA. Saturdays there is Javi from Venezuela selling his cinnamon rolls. Cool guy. Say hi from me if Our meet him. Kiana from Berlin/Munich.
Yelp332016Love/hate relationship with this place.
On one side the owner has a terrible attitude problem with the clients, I recommend avoiding the visit when he's around. On the other, their flats and capus are some of my favorite in town.
The fine pastry in the shop comes from "Cannoli de Palermo" which are my favorite in the neighborhood.
TripAdvisor562012Best coffee in Buenos Aires
Anyone who has spent time in Buenos Aires will know that while there is a lot of coffee to be found in the city, most of it is very bad. Name_of_business is the place to of for those craving a perfectly executed cappuccino or macchiato. Not only is the coffee exceptionally good, it is perfectly prepared by the cafe's owner, a champion barista. More recently Name_of_business has begun serving meals: you can have a first-rate cheeseburger, or a Colombian breakfast with homemade areas, or a superb plate of nasi goreng or mei goreng (spicy Indonesian rice or noodles) accompanied by a licuado of passion fruit or lulo (egg-fruit), among other exotic fruits. Followed, of course, by coffee and an excellent brownie or mousse. Name_of_business is an essential address for anyone living in Barrio Norte. For those not living in Barrio Norte, it's well worth the trip.

.

Analisis exploratorio

El objetivo de realizar un analisis exploratorio es descubrir que tendencias vemos en nuestro dataset: en nuestro caso nos vamos a centrar en el puntaje que tenemos en cada uno de los sitios y en que informacion podemos obtener de las reviews.

.

I. Ranking por sitio web de referencia

Podemos ver cual es el rating promedio en cada sitio al dia de la fecha:

.

II. Ranking a traves del tiempo

El grafico anterior nos permite ver una foto en este momento de cual es el ranking desde el inicio al final, pero podemos hacer un desglose a traves del tiempo para ver como fue evolucionando el ranking:

.

Vemos que el ranking subio y bajo, por un lado esto puede formar parte de los habituales subes y bajas que un negocio puede presentar: rotacion de miembros del staff, cambios en los productos y hasta renovacion de los clientes, pero tambien puede tener que ver con la cantidad de reviews, si mas gente opina (o tal vez menos) la cantidad de puntaje que le otorgan a mi sitio cambia, y eso hace variar mi promedio.

.

III. Cantidad de reviews por sitio de referencia.

Dado que el rating ha variado año a año podemos tratar de analizar si la cantidad de gente que ha dejado su review tiene algun tipo de relacion, esto es: mas gente opinando implica mejores reviews o menos gente implica peores reviews y un largo numero de posibles hipotesis y combinaciones.

A primera vista, no existe ningun tipo de relacion entre el valor del rating y la cantidad de reviews.

.

IV. Analisis de sentimiento de acuerdo al rating de las reviews

Tomando muchos de los conceptos descriptos por David Robinson en el post acerca de “Does sentiment analysis work? A tidy analysis of Yelp reviews“, podemos buscar si existe una correlacion entre el sentimiento expresado en las reviews y el rating otorgado por cada cliente del establecimiento. Esto es: si una review tiene mayor cantidad de palabras positivas, la review del establecimiento tendra mejor puntaje; si la reviews tiene mayor cantidad de palabras negativas, la review tendra peor puntaje.

If we’re right and sentiment analysis can predict a review’s opinion towards a restaurant, we should expect the sentiment score to correlate with the star rating.

Nuestra hipotesis es valida? Respuesta corta: si.

Podemos ver que existe una correlacion entre el sentimiento de la review y el puntaje otorgado por la misma.

.

V. Cantidad de palabras por review

Existe alguna relacion entre la cantidad de palabras que tiene una review y si la misma expresa una opinion positiva o negativa?

Vemos que si existe cierta relacion: a mayor cantidad de palabras dentro de una review, una mayor proporcion de las mismas estan asociadas a un sentimiento positivo.


.

VI. Ranking de palabras positivas y negativas con mayor cantidad de ocurrencias.

Finalmente y dado que estamos trabajando con analisis de sentimientos, tambien podemos tomar el top 10 de palabras negativas y positivas con mayor cantidad de ocurrencias, de forma de ver si nos aportan algo mas con relacion a la vision de nuestros clientes acerca de nuestro negocio.

.

.

Si bien hemos realizado el analisis en muchos casos la mayor cantidad de palabras recurrentes no nos da informacion significativa, por ejemplo “excellent”, “nice”, “bad”… no podemos determinar a que esta asociado este adjetivo.

.

VII. Bi-grams con mayor cantidad de ocurrencias.

An n-gram is a contiguous series of n words from a text; for example, a bigram is a pair of words, with n=2. … Let’s use unnest_tokens from the tidytext package to identify all the bigrams from the text

Definition by Julia Silge

Como vimos previamente, solo una palabra no nos da suficiente idea acerca de que es lo que nuestros clientes valoran, pero que pasaria si consideramos dos palabras, de esa forma podemos conseguir una mejor idea acerca de las opiniones mas frecuentes de nuestros clientes.

.

Word 1Word 2Quantity of occurrences
buenos aires58
coffeeshop17
flatwhite11
amazingcoffee10
friendlystaff10
coffeeculture8
excellentcoffee8
palermosoho6
cafeName of the business5
coffeeshop5

.

Ahora si tenemos una mejor idea de aquellos conceptos mas repetidos por los clientes, mirando el cuadro:

  • Se nombra la ubicacion del negocio, Buenos Aires asi como el barrio, Palermo Soho.
  • Dentro de los productos, encontramos dos frases relacionadas: “flat white” y “excelente cafe”.
  • Dentro de otras caracteristicas del negocio encontramos “friendly staff”.

Entonces una mejor forma de analizar mis reviews es tomando grupos de 2 o inclusive 3 palabras de forma de tener una mejor idea acerca de lo que los clientes buscan expresar.

.

Conclusiones

Dado el analisis realizado podemos concluir que el negocio cuenta con una muy buena reputacion online que ha ido creciendo en el tiempo, tanto en cantidad de reviews como en puntuacion.

Dentro del ranking de palabras positivas y negativas podemos ver que cosas le gustan y disgustan mas al cliente, dandole al dueno del negocio material para analizar como mejorar su operatoria.

.

Business application

Este tipo de analisis puede ser aplicado a:

  • Cualquier tipo de negocio sin importar el rubro
  • Cualquier rubro de negocios: extendiendo el analisis a todos los negocios de un rubro de terminado de forma de analizar no solo las reviews de un negocio en particular, si no la de sus inmediatos competidores, de forma de poder realizar analisis comparativos.

.

Disclaimer: Any code provided in this tutorials is for illustration and learning purposes only. The main objective of this article is analyzing the universe of customer reviews and their application as business insight.