Modelagem de Dados
Visão Geral do Processo
O processo de modelagem de dados envolvou várias etapas, incluindo a extração dos dados vindos do PDF, aplicação de análise de sentimento e agrupamento de reviews e por fim o cálculo do rating final.
1. Extração de Dados do PDF
- Uso do LlamaParser:
Utilizamos o LlamaParser para extrair dados estruturados do PDF - Transformação em JSON:
Os dados são convertidos para o formato JSON - Estrutura do JSON:
{ "id": "730a3870-082a-47fd-bc1d-9687cb29f55c", "date": "22/01/2025 12:26", "name": "Rafa Kalimann", "nickname": "@rafakalimann", "rate": 10.0, "when_worked": "2023", "work_description": "Ela é incrível, a campanha foi ótima! Uma querida real, tratou todo mundo super bem e ajudou demais nos conteúdos. Tava sempre disposta :)", "advice_description": "Podem contratarr hahahah" }
2. Análise de Sentimento
- Modelo Hugging Face:
Utilizamos o modelo cardiffnlp/twitter-xlm-roberta-base-sentiment para análise de sentimento - Resultado:
Para cada reviews obtivemos o sentimento e o score de confiança. Dados utilizados para o cálculo do rating final.
3. Agrupamento de Reviews
- Fuzzy Matching:
Utilizamos técnicas de fuzzy matching para agrupar reviews do mesmo influenciador - Critérios de Agrupamento:
Consideramos similaridades em nomes e nicknames - Resultado:
Reviews agrupadas por influenciador, usando um threshold de similaridade de 80%
4. Cálculo do Rating Final
- Normalização do Rate Original:
O rate original (0-10) é dividido por 10 para normalizar para a escala 0-1 - Normalização do Score de Sentimento:
- Positivo: mantém o score original
- Neutro: atribui 0.5
- Negativo: inverte o score (1 - score)
- Cálculo do Score da Review:
Média entre o rate normalizado e o score de sentimento normalizado - Aplicação de Peso:
O peso de cada review é igual ao score de sentimento (confiança do modelo) - Cálculo da Média Ponderada:
Soma dos scores ponderados dividida pela soma dos pesos - Conversão para Escala 0-5:
A média ponderada final é multiplicada por 5
Visualização da Transformação de Scores
- Score Positivo → Rating
- Score Negativo → Rating
Exemplo com Sentimento Positivo:
Score 0.9 → Rating = 0.9 * 5 = 4.5
Exemplo com Sentimento Negativo:
Score 0.9 → (1 - 0.9) * 5 = 0.5