- Data engineer: Alberto - Franky
- Machine learning engineer: Carla - Josue
- Data analyst: Jovany
- Cloud engineer: Jesús
El presente proyecto se centra en el análisis y la creación de sistemas de recomendación basados en reseñas de usuarios de plataformas populares como Google Maps y Yelp. El objetivo principal es desarrollar herramientas que ayuden a un conglomerado de empresas a comprender mejor la percepción de sus clientes y a tomar decisiones informadas. Para este proyecto, hemos creado una empresa ficticia llamada Data Solutions, que se encargará de implementar soluciones de ciencia de datos para invertir con éxito.
Se describe la situación actual comunicando el contexto, la problemática y expresando posibles soluciones.
Desde hace muchos años, tanto Yelp como Google Maps permiten a los usuarios escribir reseñas sobre sus experiencias en una variedad de negocios, principalmente en el sector comercial. Estas plataformas han ido ganando aceptación y popularidad a medida que las opiniones de los usuarios han crecido y tomado protagonismo, ayudando a otros usuarios a tomar decisiones más informadas. Como consecuencia, estas reseñas se han convertido en un recurso valioso para las empresas, permitiéndoles entender la percepción de los clientes sobre sus servicios, medir su desempeño, identificar áreas de mejora y planificar estrategias de negocio más efectivas.
A continuación se detallan los distintos desafíos encontrados:
- Conocimiento del cliente: Las empresas necesitan conocer la imagen que los usuarios tienen de ellas a través de un análisis de las reseñas para mejorar su desempeño, valorar sus opiniones y ofrecer servicios personalizados.
- Experiencia del usuario: Al usuario se le dificulta la elección del establecimiento adecuado que cumpla con sus preferencias. Esto se debe a tres motivos: (1) en parte existe un exceso de reseñas, (2) falta de personalización para cada usuario y (3) las reseñas son subjetivas.
- Ubicación de locales: Las empresas necesitan identificar las mejores ubicaciones para nuevos locales y así invertir correctamente.
- Desarrollar un sistema de recomendación utilizando algoritmos de machine learning para analizar las opiniones e identificar patrones de preferencia.
- Implementar un análisis de sentimientos utilizando técnicas de procesamiento de lenguaje natural (NLP).
- Simplificar la experiencia del usuario desarrollando un frontend adecuado para que el usuario ingrese una palabra clave y reciba las tres mejores opciones.
- Desarrollar un sistema de recomendación que sugiera nuevos restaurantes que el usuario probablemente disfrutará, basado en calificaciones previas (aunque no las haya visitado antes), o basado en usuario que tienen gustos similares, o que brinde la posibilidad de, mediante un motor de búsqueda, recomendar el restaurante.
- Implementar un análisis de sentimiento detallado de las opiniones de los usuarios en Yelp y Google Maps para cuantificar la percepción de los clientes y predecir el éxito o fracaso potencial de nuevos locales en distintas ubicaciones.
- Crear un dashboard interactivo que brinde a los clientes una visualización clara y precisa, destacando las áreas clave en las que deberían enfocar sus esfuerzos para alcanzar los objetivos propuestos.
Para alcanzar dichos objetivos, se utilizará la metodología Scrum, un marco de trabajo ágil diseñado para gestionar proyectos complejos y adaptarse rápidamente a los cambios. El seguimiento se realizará en ciclos cortos llamados Sprints, con entregas incrementales alineadas con las necesidades del negocio y del cliente, distribuidas en tres fases. Para mayor detalle, se anexa un documento llamado 'metodologiaScrum'.
Desplegar un sistema de recomendación e implementar un tablero de control para la toma de decisiones gerenciales, considerando dos factores importantes: el sector gastronómico, por ser una categoría clave, y los 10 estados más relevantes de la zona este en términos de cantidad de reseñas, para asegurar la relevancia de los datos. Estas consideraciones se aplican a este proyecto debido a cuestiones de tiempo y escala, pero podrían expandirse en futuras etapas.
La lista de Estados que comprende este proyecto es: [NY, FL, PA, NJ, GA, VA, NC, MA, MD, TN]
A continuación, se agrupan las distintas tecnologías según flujo de trabajo:
- Fuente de datos:
- SerpAPI:
- Yelp.
- Google Maps.
- SerpAPI:
- Pipeline ETL:
- Cloud Scheduler.
- Cloud Storage.
- PubSub.
- Cloud Functions.
- Big Query.
- EDA:
- NumPy.
- Matplotlib y Seaborn.
- Plotly.
- Scikit-learn.
- Machine Learning:
- Scikit-learn.
- NLTK y SpaCy.
- Hugging Face (DistilBERT).
- Despliegue:
- Docker.
- Registry container.
- Cloud Run.
- Visualización:
- Power BI.
- Para más detalle Ver workflow. Este archivo describe el workflow de un sistema de recomendación, abarcando desde la obtención de datos hasta su despliegue. Incluye etapas clave como ETL (Extracción, Transformación y Carga), EDA (Análisis Exploratorio de Datos), modelamiento de Machine Learning, y despliegue en la nube. Utiliza diversas herramientas como Google Cloud Platform (BigQuery, Cloud Storage, Cloud Functions), además de APIs como Google Maps y Cloud Natural Language API. Los principales entregables son un dashboard interactivo y el sistema de recomendación desplegado en la nube.
A continuación se visualiza un cronograma de Gantt, el cual muestra de manera clara cómo fueron asignadas las tareas por persona y los tiempos de trabajo, vinculándose perfectamente con los hitos clave que deben alcanzarse.
El Diagrama Entidad-Relación (DER) es una representación gráfica de la estructura de la base de datos, mostrando las entidades, sus atributos y las relaciones entre ellas. Este diagrama permite visualizar cómo interactúan los datos en el sistema y ayuda a comprender la organización de la base de datos.
- Para más detalle Ver diagrama de entidad-relacion
Para tener un panorama amplio de lo que significa cada variable y entender el origen de los dataset, se puede acceder a la carpeta de diccionario de datos.
En cuanto al procesamiento de los datos, se realizó lo siguiente:
- Para ver el codigo para realizar el web scarping: Ir al Scrap
- Para ver el código para las funciones de limpieza y transformación de los datos: Ir a la carpeta clean_functions
- Para ver donde se alojaron los archivos limpios provenientes del punto 2: Ir a la carpeta Data_cleand
- Para ver como se ejecutan las funciones para el ETL: Ir al ETL
Se realizó un análisis exploratorio tanto del dataset de Google Maps como también con el de Yelp.
Además, se realizó un EDA produndo, el cual fue utilizado para el posterior análisis de sentimiento y sistema de recomendación.
Se implementó el análisis de sentimiento con Hugging Face para determinar si una reseña tienen connotación positiva, negativa o neutra. Además se realizó un análisis por aspecto donde se puede observar por reseña si tiene una connotación positiva, neutra o negativa según cuatro aspectos: precio, comida, servicio, ambiente. En este proceso, se elaboró un análisis para observar cuales son los aspectos más priorizados. Finalmente, se prepararon los datos para realizar un sistema de recomendación únicamente utilizando análisis por aspecto.
- Para más detalle: Ir a la carpeta de Análisis de sentimiento
Se implementó un modelo de clasificación con aprendizaje supervisado basado en un algoritmo de similitud de coseno. El objetivo es que el sistema arroje un a recomendación de los mejores tres restaurantes por cada algoritmo utilizado. Entonces, se probaron cuatro métodos diferentes:
- Filtro de contenido: dando la posibilidad al usuario de ingresar una palabra clave, un aspecto y una determinada ciudad.
- En cuanto al aspecto, se trabajó con análisis de sentimiento, brindando la posibilidad de priorizar por: precio, comida, servicio, ambiente.
- Filtro colaborativo: se brinda una recomendación automática de acuerdo con los restaurantes que el usuario ha reseñado.
- Filtro colaborativo: se brinda una recomendación automática siguiendo las mejores calificaciones del usuario.
- Filtro por análisis de aspecto: se brinda una recomendación en función de como puntúa de 0 a 1 un usuario a cuatro aspectos princiales: precio, comida, servicio, ambiente.
- Para ver como se desarrollaron los primeros tres filtros: Ir a la carpeta de sistema de recomendación
- Para ver como se desarralló el filtro por análisis de aspecto: Ir al sistema de recomendación por análisis de sentimiento
Además se desplegó el modelo utilizando tecnología de Google Cloud y con FastAPI se realizó la primera función en Frontend.
El dashboard interactivo tiene como objetivo optimizar la toma de decisiones gerenciales al proporcionar insights valiosos e indicadores clave de rendimiento.
A continuación, se mencionan los KPI que se visualizarán en el Dashboard para facilitar el seguimiento, control y la toma de decisiones estratégicas.
Objetivo: Incrementar la tasa de clientes recurrentes en un 10 % para el próximo trimestre.
Fórmula para calcular el KPI:
Fórmula para calcular la tasa de clientes recurrentes:
Objetivo: Aumentar la tasa de reseñas en un 20 % para el próximo trimestre.
Fórmula para calcular el KPI:
Objetivo: Aumentar la satisfacción del cliente por establecimiento recomendado en un 10 % para el próximo trimestre.
Fórmula para calcular el KPI:
Para llevar a cabo los KPIs enunciados, es necesario que el cliente, después de visitar el establecimiento recomendado, reciba una notificación con las siguientes preguntas:
- Califique el establecimiento con estrellas del 1 al 5.
- Evalúe su satisfacción: positiva, neutra o negativa.
- Indique si es su primera visita o una visita repetida.
Estos KPIs se lograrán con mayor efectividad mediante campañas de marketing para impulsar las reseñas y la participación en la encuesta de satisfacción. Por ejemplo, se podrían incentivar con programas de puntos y recompensas. Sin embargo, por cuestiones de tiempo, se ha decidido aplazarlos para fases futuras del proyecto.
Las presentaciones para cada sprint pueden ser descargadas desde estos enlaces:
- Sprint 1: este enlace
- Sprint 2: este enlace
- Sprint 3: este enlace