domingo, 20 de abril de 2025 0 comentarios

Sentiment Analysis of "Por Favor No Se Enoje" YouTube Comments using Gemini

 "Por Favor No Se Enoje" is a popular Guatemalan radio program known for its engaging discussions on political issues in Guatemala and neighboring countries. This project aims to analyze the sentiment expressed in YouTube comments related to this program, providing insights into public opinion. To achieve this, we will utilize the powerful Gemini model, a large language model developed by Google AI.

This project is part of the 5-Day Gen AI Intensive Course with Google.

Dataset and EDA

The dataset for this project was collected using the YouTube Data API. The process involved identifying relevant videos, retrieving comments, and storing them in a structured format. You can find a detailed explanation of the data extraction process in the accompanying Jupyter Notebook. The resulting dataset is publicly available on Kaggle datasets.

Before diving into sentiment analysis, I performed an Exploratory Data Analysis (EDA) to gain an understanding of the data. Here are some key insights:

  • Top Videos with Most Comments: A bar chart visualization revealed the top 15 videos with the most comments. This information can help identify specific episodes or topics that generated significant audience engagement.
  • Number of Comments Published by Date: A line plot illustrated the number of comments published over time. This visualization highlighted trends and potential spikes in comment activity.
  • Distribution of Like Counts: A histogram displayed the distribution of like counts for comments. This helped understand the overall positivity or negativity expressed in the comments.


Sentiment Analysis using Gemini

We leveraged the Gemini model through Vertex AI to perform sentiment analysis on the YouTube comments. The process involved the following steps:

  1. Setting up the Gemini API Client: We installed the necessary libraries, authenticated using an API key, and configured a retry mechanism for error handling.

  2. Defining the Sentiment Analysis Function (sentiment): This function takes a comment as input and constructs a zero-shot prompt for the Gemini model. The prompt instructs the model to classify the comment's sentiment as either "POSITIVO", "NEGATIVO", or "NEUTRAL," and to return only the classification. Google has provided a prompt gallery, depending on the task of your LLM is good to review if there's an existing prompt in the prompt Gallery.

  3. Making Predictions: The generate_content method of the Gemini model is called with the constructed prompt to obtain the sentiment prediction for each comment. Error handling is included to manage potential issues during API calls.

  4. Applying Sentiment Analysis to the Dataset: The sentiment function is then applied to the "text" column of our DataFrame, creating a new "sentiment" column containing the predicted sentiment for each comment.

For example, the comment "Grand exponente. Lo mejor de Guate. Muy bonito e ilustrativo programa" is classified as: POSITIVO.

A pie chart visualization was created to display the distribution of sentiments across all comments. This chart provides a clear overview of the overall sentiment towards the "Por Favor No Se Enoje" program.



SQLite and Natural Language Querying with Gemini

To enable more flexible data exploration, we saved the processed data into a local SQLite database. This allowed us to use Gemini's function calling capabilities to perform natural language querying. We defined interaction functions like describe_tablelist_tables, and execute_query to interface with the database. Users can then ask questions in natural language, and Gemini automatically translates them into SQL queries to retrieve the desired information. 



Google Search

To provide further context, we utilized Gemini's Google Search tool to retrieve information about the "Por Favor No Se Enoje" program and its founders. The model generated a Markdown summary and presented HTML content from the Google Search results, offering insights into the program's background and key figures.

This is a function with great potential to provide one shot prompts, to use it as RAG and many other possible functions.

Conclusion

This project demonstrates the power of the Gemini model for sentiment analysis and natural language querying. By analyzing YouTube comments, we gained valuable insights into public opinion towards the "Por Favor No Se Enoje" program. The findings can be used to understand audience engagement, identify potential areas for improvement, and track changes in sentiment over time. Furthermore, the integration with SQLite and Google Search enhances the flexibility and richness of the analysis, providing a comprehensive understanding of the topic.

Link to Notebook.

lunes, 20 de julio de 2020 0 comentarios

e-Learning Edulibre


Una de las mayores realizaciones en la vida es soñar despierto, como escribí en mi anterior post, esta vez deseo comunicarles una noticia que me hace sentir sumamente orgulloso, el inicio de un e-learning desarrollado de la mano con la Fundación Tigo de Guatemala. Cuando recibí el link de la publicación se me puso la piel de gallina, cerré los ojos, respiré, detuve lo que estaba haciendo, salí a la terraza y vi al cielo, únicamente dije: "GRACIAS". 



Fundación Tigo es una de las instituciones sociales más grandes de mi país. El hecho que ellos confíen en nuestra propuesta educativa significa mucho, a lo largo de todos estos años hemos buscado una solución que se adapte a países como Guatemala, y ahora tuvimos la oportunidad de desarrollar 3 cápsulas educativas donde enseñamos sobre la herramienta y cómo instalarla.

Fue bastante satisfactorio haber salido en periódicos en Guatemala como Publinews y Soy502 con la noticia del lanzamiento




Yo no me quise quedar fuera de la edición tan profesional que realizaron y al estilo Stan Lee aparecí en el video 😁


De cierta forma siento que este proyecto cierra otro ciclo más en los sueños de Edulibre, razón por la que quise dedicar un post. Ahora damos paso a los siguientes sueños, el que más suena en mi cabeza es: "Edulibre México"... ya veremos.

Si desean ingresar, les dejo el canal de YouTube 

martes, 21 de enero de 2020 3 comentarios

Soñar despierto

¿Nunca les ha pasado que al ver una foto les entra una profunda nostalgia? Son esos momentos del alma en que cierran los ojos y recuerdan tantos pensamientos, sentimientos y vivencias que los llevan a una corta pero profunda reflexión.

Ayer por la mañana recibí 4 fotos que representan más de 12 años de mi vida. El primer artículo que escribí en mi blog sobre Edulibre fue el 2 de octubre del 2007. Recordé a ese joven universitario, iluso e ingenuo que con 20 años pensaba que podría transformar el mundo en un lugar mejor; hoy puedo decir que la ingenuidad me jugó una buena pasada porque desconocía las adversidades que representaría el sueño.


En Río San Juan, Huehuetenango, a 231 kilómetros de donde me encuentro en Ciudad de Guatemala y un recorrido de 6 horas, de la mano de 2 grandes fundaciones: Fundación Tigo y World Vision, un grupo de niños utilizaron por primera vez en su vida una computadora con EdulibreOs, el sistema operativo linux de Edulibre.







Como recuerdo les quiero mostrar al joven y sus amigos que en el 2007 se embarcaron en tan enorme sueño: "Cambiar la vida de los niños de Latino América a través de una educación tecnológica integral por medio del sistema educativo Edulibre"




Como me dijo mi hermano en el desayuno donde presentamos el trabajo de Edulibre del 2019: "estoy verdadermente sorprendido de todo lo que han hecho...", de la mano de Dios miles de niños en latinoamerica han sido beneficiados con este sueño.
jueves, 29 de septiembre de 2016 4 comentarios

Olimpiadas de programación

Escuché decir a Julio Zelaya de Emprende U que cada vez que uno comparte un sueño aumenta las posibilidades que este se vuelva realidad, así que les quiero contar un sueño que tengo, producto de más de dos años de análisis en campo.

La idea inicial de Edulibre en 2008 era instalar laboratorios de computación con máquinas recicladas y un sistema operativo linux orientado a educación para que los niños que no tienen acceso a la tecnología tuvieran ese primer contacto y crearan así mejores oportunidades en la vida o al menos supieran que pueden aspirar a más. A través de distintas alianzas y trabajo comunitario (estudiantes universitarios, municipalidades, comunidades, etc) se han instalado más de 50 laboratorios  y se han realizado más de 5,000 descargas de EdulibreOs, nuestro sistema operativo que próximamente estará en español, inglés y francés en su 8va versión. En el 2015 egresó la primera promoción de estudiantes que recibió computación de 1ro a 6to primaria en la escuela Plan Internacional, donde instalamos el primer laboratorio en 2008 y esto generó mis dudas al verlos realizar un ejercicio de programación ¿cómo hacemos para que den el siguiente paso?¿cómo motivarlos a profundizar más en su aprendizaje?¿podremos enseñarles programación a todos los niños?¿programación orientada a objetos? ¿mejoraría su vida futura si se dan cuenta que ellos también pueden aprender?



Así que les sintetizaré la idea y el sueño por el que me comprometo los siguientes años con los niños de Guatemala y Latinoamerica: realizar una olimpiada internacional de programación con niños de 6to primaria de escuelas públicas utilizando Scratch, un lenguaje de programación orientada a objetos para niños desarrollado por el MIT (Instituto de tecnología de Massachussets), en el portal oficial hay 16 millones y medio de ejercicios (comprenderán el impacto a nivel internacional), el objetivo es motivar a los niños a avanzar significativamente en sus conocimientos sobre tecnología, que se inspiren a soñar en grande y tengan así mejores oportunidades en la vida.



¿Recuerdan micromundos, logos o el programa de la tortuga con el que enseñaban programación en los 90s? Pues un grupo de emprendedores italianos e ingleses lo volvieron un juego basado en el método montessorri para enseñar programación a niños mayores a 3 años, sin computadoras ni pantallas, subieron una campaña de crowdfunding a Kickstarter y juntaron más de un millón y medio de dólares, así que con Cubetto podemos sembrar los principios de programación y empezarlos a preparar para las olimpiadas a la que podrían participar al llegar a sexto.


  • ¿Qué hemos hecho ya? comprar un Cubetto que viene en octubre, capacitación de scratch a 4 maestros de computación de nuestros laboratorios e incluir la última versión de scratch en nuestro sistema operativo EdulibreOs 
  • ¿Qué haremos? una campaña de crowdfunding en HIPGive en noviembre y buscar patrocinadores locales para la primera olimpiada.
  • ¿Qué busco con este post? ideas, sugerencias, ánimos, buenas vibras, que compartan mi locura, voluntarios,  y patrocinadores.

Y como dijo Malala (premio nobel de la paz):





martes, 23 de agosto de 2016 0 comentarios

Un amor durante 60 años

Despertar y abrir los ojos en un día mágico cuando aún no había sonado el despertador ¡todo se veía diferente!, desde el primer instante se sentía la magia: el aire, el color del cielo y el ambiente en general. Ese día usaría finalmente "mi estreno", hacía de nuevo el recuento de cuántos regalos podría recibir y de cuántas horas quedaban para la media noche.

Desayunar, hacer cola para bañarme, revisar que no olvidara nada y esperar la bocina de un Hyundai Pony modelo 85 para ir a ver a nuestro amor que duró 60 años, quien me daría mi primer ansiado regalo.

¡Sonaba la bocina! y como siempre, no estábamos listos, faltaba nuestra caja de regalos, las tarjetas, la comida de la cena debía quedar lista, las gaseosas, etc. sería un día largo donde la magia terminaría al volver a la cama pasada la media noche.

Volver a escuchar la historia que inició en 1956, que se conocieron en Cotió en los estudios teosóficos, que fue madrina de bodas y madrina de los 3 hijos, que ella tuvo 7 hijos y que en ese tiempo no existía lavadora y cuando sentía ¡El olor de pinabete! muchos regalos bajo el árbol, abrazos, saludos y risas! mientras yo aprovechaba disimuladamente a buscar cuál era mi regalo, llegaba la hora de la comida, las manzanas rojas de importación, uvas, pastel, gaseosa y así transcurría la primera de varias comidas del día, como esas manzanas no eran de siempre había que aprovechar mientras llegaba el primer regalo, el que decía para: hijo chiquito de Ananda, el de la Madrina LOLITA, la madrina de mis tíos, la madrina de mis abuelitos y así la madrina de todos! luego venían los consejos, los regaños y finalmente las fotos de despedida en un 24 de diciembre común desde que tengo memoria, una tradición que duró 60 años, enseñanza de mi abuelito Fidel, ir a ver a nuestro amor de todos los 24 de diciembre por la mañana.

¡La extrañaremos madrina y nos vemos en el cielo!

Navidad 2010

Navidad 2010
¡Adiós querida madrina!
Nuestra despedida...



miércoles, 25 de febrero de 2015 0 comentarios

Bucket List 2015

En el 2007 salió la película Bucket List con Morgan Freeman y Jack Nicholson, son dos enfermos terminales de cáncer que hacen un listado de sus sueños antes de morir y los cumplen juntos. Cuando vi en la película en 2009 me inspiré a hacer mi Bucket List, la cual pueden ver en este post, en ese momento mi listado era:

  1. Vivir un tiempo en Alemania (viví un tiempo en Austria)
  2. Visitar Holanda (lo he visitado 3 veces)
  3. Ser barista
  4. Ganar un torneo de Fifa en clase mundial
  5. Hablar bien alemán (no hablo perfecto pero mejoré mi alemán)
  6. Emprender una asociación de ayuda a miles de personas (llevo 9 años con Edulibre)
  7. Ser presidente de Guate 
  8. Ayudar a un amigo en un momento crítico de su vida (me encanta ayudar generando empleo)
  9. Correr en un circuito de ciclismo (he corrido varias carreras a nivel semi-profesional)
  10. Ser 2do dan de cinta negra
  11. Dar una conferencia sobre la 2da Guerra Mundial (no he dado conferencias pero visité Auschwitz y Mauthausen)



Con 7 de 11 cumplidas me inspiré nuevamente a actualizar mi Bucket List para los siguientes años y como dicen: "cada vez que compartes un sueño aumentas las probabilidades de cumplirlo":
    1. Fundar una empresa comercial con operaciones en Latino America y Europa
    2. Beneficiar a muchos niños en Latino America con Edulibre
    3. Ser director de un equipo de ciclismo
    4. Regresar a Viena 
    5. Visitar Bélgica
    6. Visitar Estados Unidos
    7. Visitar China
    8. Correr una carrera profesional de ciclismo
    9. Ser alcalde
    10. Independizarme (tener mi propio apartamento, carro, etc)
    Sin darme cuenta la mitad de mis sueños son viajes, otra parte seguir emprendiendo y deportes.
    Y tú, ¿cuáles son tus sueños? ¿ya hiciste tu bucket list?





                   
                  ;