1
resposta

[Projeto] 01 Plataforma de streaming - Playcatch

A. Análise de Sentimentos (Sentiment Analysis)
Diferente da busca por palavras-chave, o modelo analisa a semântica da letra.

Conceito: Usar um Transformer (como o BERT ou RoBERTa) para classificar o texto em labels emocionais (Alegria, Tristeza, Raiva, Serenidade).

Exemplo Prático: A letra "O sol nasceu e o dia está lindo" gera um vetor de probabilidade alto para a classe Joy (Alegria).

B. Sistemas de Recomendação por Humor (Emotion-based Recommendation)
Conceito: Criar um mapeamento entre o estado emocional do usuário (input) e os metadados das músicas (output).

Exemplo Prático: Se o chatbot detecta que o usuário está "melancólico", o sistema filtra o banco de dados por músicas cujas letras foram classificadas com alto índice de Sadness.

C. Chatbot Conversacional (Conversational AI)
Conceito: Implementar um modelo LLM (como o GPT) que utilize as informações do sistema de recomendação para responder de forma natural.

Exemplo Prático: "Parece que você está em um dia reflexivo. Que tal ouvirmos o novo álbum de MPB que combina com essa vibe?"

Código Fonte: PoC de Análise de Sentimentos:
import torch
from transformers import pipeline
import gradio as gr

1. Inicialização do Pipeline com modelo especializado em emoções

Modelo: j-hartmann/emotion-english-distilroberta-base

classifier = pipeline("text-classification",
model="j-hartmann/emotion-english-distilroberta-base",
return_all_scores=True)

def analyze_lyrics(lyrics):
"""
Recebe a letra da música e retorna a emoção predominante.
"""
# Inferência do modelo
results = classifier(lyrics)[0]

# Ordenar por maior pontuação (score)
sorted_results = sorted(results, key=lambda x: x['score'], reverse=True)

# Formatação para o Chatbot
top_emotion = sorted_results[0]['label']
confidence = sorted_results[0]['score']

return f"Emoção detectada: {top_emotion} ({confidence:.2%})"

2. Interface Gradio (MVP para a equipe da Playcatch)

demo = gr.Interface(
fn=analyze_lyrics,
inputs=gr.Textbox(lines=5, placeholder="Cole a letra da música aqui..."),
outputs="text",
title="Playcatch: Emotion Detector v1.0",
description="Analise o sentimento das letras para o nosso novo motor de recomendação."
)

if name == "main":
demo.launch()

1 resposta

Olá, Moacir! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o pipeline de análise de sentimentos com Transformers para classificar emoções em letras de músicas com Python, utilizou muito bem a interface Gradio para criar um MVP interativo e ainda compreendeu a importância da integração entre modelos de NLP e sistemas de recomendação para oferecer experiências personalizadas baseadas em humor e contexto.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Sugestão de conteúdo para você mergulhar ainda mais no tema:

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!