-
Linguagem e Ambiente
Python 3.8+ com ambiente virtual (venv
) -
Front‑end e Interface
HTML5, CSS3, JavaScript,ipywidgets
/streamlit
,customtkinter
-
Coleta e Processamento de Dados
pandas
,numpy
,requests
,tweepy
,praw
,google‑api‑python‑client
,python‑dotenv
-
OCR e Criptografia
pytesseract
(Tesseract OCR),cryptography.Fernet
,opencv-python
-
Reconhecimento Facial
face_recognition
-
Processamento de Linguagem Natural
transformers
(BERT),spaCy
,python‑bcpf
-
Visualização e Dashboards
dash
,plotly.express
,plotly.graph_objects
,matplotlib
,seaborn
- Coleta de Dados e Interesses: Em Análise_Individual.ipynb, um formulário interativo (via
ipywidgets
oustreamlit
) captura dados pessoais do usuário (nome, CPF, data de nascimento, e-mail) e informações de interesse em e-sports (jogos favoritos, time preferido, frequência em eventos, compras de produtos). Os campos são validados em tempo real (por exemplo, usandopython-bcpf
ou expressões regulares para CPF) e armazenados em umDataFrame
do Pandas.
- Validação de Identidade (OCR e Reconhecimento Facial): Em Analise_Individual.ipynb, o sistema processa o RG e a selfie enviados. Primeiro, a imagem do RG é criptografada e salva (usando
cryptography.Fernet
). Depois é desencriptada e pré-processada (converter para escala de cinza, ajuste de contraste e binarização) para facilitar a leitura. Em seguida, aplicamospytesseract
(Tesseract OCR) para extrair texto do documento (nome completo, CPF). Esses dados extraídos são comparados com as informações fornecidas no cadastro. Paralelamente, usamos a bibliotecaface_recognition
(baseada em redes neurais) para detectar rostos na selfie e na foto do RG. Cada rosto é convertido em um vetor de características e calculamos a distância entre eles para verificar se representam a mesma pessoa. O notebook exibe, como saída, indicadores de “válido” ou “inválido” para o usuário, apontando qualquer inconsistência (por exemplo, CPF divergente ou rosto diferente).
- Integração Simulada com Redes Sociais e Enriquecimento de Dados: Em Análise_Geral.ipynb, o foco é enriquecer o perfil com dados públicos. Utilizamos a API do Twitter com
tweepy
para buscar tweets relacionados à FURIA e seus jogadores, e a API do YouTube (google-api-python-client
) para coletar comentários de vídeos de e-sports. Para o Reddit, usamosrequests
para fazer uma consulta JSON nos subreddits de e-sports. Todos esses dados (tweets, comentários, posts) são salvos em arquivos JSON e convertidos em DataFrames. Em seguida, filtramos e agregamos informações relevantes: contamos menções por usuário, hashtags mais frequentes, volume diário de posts, etc. Esses dados simulados ou coletados compõem o histórico social do usuário, que é combinado ao seu perfil inicial.
- Processamento de Linguagem Natural e Visualizações: Após coletar os textos das redes sociais, aplicamos técnicas de PLN para extrair insights. Usamos bibliotecas como
transformers
(ex.: modelo BERT) ouspaCy
para análise de sentimento e tópicos em comentários e posts. Por exemplo, medimos a polaridade dos tweets do usuário e extraímos palavras-chave mais citadas. Os resultados são então apresentados graficamente commatplotlib
eseaborn
: criamos histogramas de sentimento, nuvens de palavras para termos frequentes, gráficos de barras comparando interesse em diferentes jogos, etc. Essas visualizações permitem comparar os interesses declarados no formulário com o que é efetivamente discutido nas redes sociais, evidenciando padrões no perfil do fã.
- Análise Geral: Twitter
- Análise Geral: Reddit
- Análise Geral: Youtube
- Análise Individual: Twitter
-
Dashboards Interativos com Dados Sociais: Criei painéis interativos com Dash e Plotly para visualizar o comportamento de fãs da FURIA em redes como Twitter, Reddit e YouTube. Os dados são carregados de arquivos .json e estruturados em pandas.DataFrame. Com base neles, o sistema gera gráficos como histogramas, séries temporais, barras e nuvens de palavras.
- Análise Pessoal do Usuário e Sentimentos: Apliquei um modelo BERT multilíngue (nlptown/bert-base-multilingual-uncased-sentiment) aos tweets mais curtidos para inferir o sentimento do usuário (de 1 a 5 estrelas). Na Dashboard Pessoal, cruzei isso com dados do formulário e do Twitter (por exemplo, horários de postagem, localização, emojis, etc.) para estimar o nível de engajamento como fã individual da FURIA.
- Renderização e Identidade Visual: Os dashboards utilizam o tema plotly_dark, com layout visual coeso: cards com bordas arredondadas, emojis indicativos, ícones, e imagens do usuário (selfie em base64). Elementos personalizados mostram a frase mais positiva, a distribuição de palavras mais frequentes e o emoji que melhor representa o usuário.
- Indicadores de Engajamento: O sistema exibe o “percentual fã” com barra de progresso, horário mais ativo do usuário no Twitter, n-grams mais usados, e dados agregados das redes. O foco é oferecer uma visualização clara do quanto o usuário interage com o universo FURIA.
Ao longo do desenvolvimento, elaborei três planejamentos que serviram como base e orientação para o projeto. Eles consistem em esboços conceituais e estruturais; embora mencionem algumas tecnologias, nem todas foram efetivamente utilizadas na implementação final.
Workflow Geral: O diagrama abaixo apresenta um rascunho do projeto de análise de fãs da FURIA. Ele descreve as etapas principais: (i) Coleta de Dados – requisições à API do Twitter (via Tweepy) e coleta de comentários do YouTube são armazenadas em formato JSON e convertidas em DataFrames (Pandas); (ii) Tratamento de Dados (ETL) – extração, transformação e limpeza simples dos dados coletados; (iii) Análise e Modelagem – estatísticas sobre menções e hashtags, análise de sentimento (por exemplo, usando VADER); (iv) Visualização – criação de dashboards interativos (Plotly Dash) ou gráficos estáticos (matplotlib) para ilustrar os resultados;
Arquitetura Técnica e IA: Este diagrama técnico detalha os módulos do sistema e suas interconexões. Na parte superior, o bloco Coleta de Dados mostra o formulário inicial (capturando nome, CPF, jogos favoritos, etc.). À direita, Validação de Identidade indica o upload de RG e selfie, seguidos do processamento por OCR (pytesseract) e reconhecimento facial (face_recognition). A seguir, o bloco Integração com Redes Sociais (Simulada) exemplifica a vinculação de contas externas e a extração de atividades relevantes (tweets e posts sobre e-sports) de forma fictícia. Na parte inferior, o bloco Enriquecimento de Perfil com Dados Sociais reúne as análises avançadas de linguagem natural e monitoramento de interações: análise de comentários, processamento de texto (PLN) e geração de visualizações baseadas nessas informações. Cada etapa foi planejada para funcionar como um módulo independente (dados, validação, social, IA), conforme indicado por este esboço.
Esboço Manual do Projeto: A foto abaixo mostra o esboço inicial no quadro branco usado para planejar o projeto. À esquerda vemos rascunhos de telas de formulário (form.html
) e notas de seções “Análise Geral” e “Análise Individual”. No centro e à direita há anotações sobre OCR (pytesseract), DeepFace (reconhecimento facial), e conectividade de redes sociais (ícones do Twitter/Instagram). Na parte inferior aparecem fluxos de tratamento de dados e visualização de resultados (gráficos de sentimento, barras, nuvem de palavras). Este desenho manual ilustra a sequência lógica: coleta via formulário → processamento de imagens e documentos → tratamento/junção dos dados → análises estatísticas e visuais. Ele serviu de guia para a organização final dos notebooks, mostrando como cada componente se encaixa na arquitetura do protótipo.
Para executar o projeto localmente, crie um ambiente virtual Python isolado (recomendado: Python 3.8+). Por exemplo, no terminal:
python -m venv .venv
Em seguida ative o ambiente:
- No Windows:
.\venv\Scripts\activate
- No Linux/Mac:
source .venv/bin/activate
Com o ambiente ativo, instale as bibliotecas necessárias via pip
. Por exemplo, execute algo como:
pip install pandas openpyxl ipywidgets streamlit pytesseract opencv-python face_recognition transformers spacy matplotlib seaborn tweepy praw beautifulsoup4 python-dotenv python-bcpf cryptography Pillow requests google-api-python-client customtkinter
Isso garante a instalação de todas as dependências usadas pelos notebooks (manipulação de dados, OCR, redes neurais, NLP, visualização, APIs, etc.).
Instalação do Tesseract OCR: O Tesseract precisa ser instalado separadamente. No Windows, baixe o instalador no repositório de builds (por exemplo, UB-Mannheim) e execute-o (padrão: C:\Program Files\Tesseract-OCR
). Durante a instalação, selecione incluir o pacote de idioma Português (por). Em seguida, adicione o caminho do Tesseract às variáveis de ambiente do sistema (ou defina diretamente no código Python). No Ubuntu/Debian, instale via apt:
sudo apt update
sudo apt install tesseract-ocr tesseract-ocr-por libtesseract-dev
Isso instala o motor OCR e os dados de treinamento para Português. Em qualquer sistema, após instalado o Tesseract, instale o pacote Python pytesseract
(e Pillow
) no ambiente virtual para uso no notebook. No código Python, se necessário, configure:
import pytesseract, os
os.environ["TESSDATA_PREFIX"] = r"C:\Program Files\Tesseract-OCR\tessdata"
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"
Isso aponta para o executável do Tesseract, permitindo usar OCR em Português nos notebooks.
- Abrir o Jupyter: No terminal com o ambiente virtual ativo, rode
jupyter notebook
oujupyter lab
no diretório do projeto. - Executar
Análise_Geral.ipynb
: Em seguida, abra e execute este notebook. Ele realiza a coleta de dados públicos de redes sociais e analisa informações agregadas. Insira suas credenciais de API (Twitter, YouTube) em um arquivo.env
conforme necessário. As células irão buscar tweets, comentários de YouTube e posts do Reddit, processá-los e gerar estatísticas (menções, hashtags, sentimento). Confira que existem chamadas ao Tweepy (Twitter) e Google API (YouTube) e execute cada célula na ordem. - Executar
Analise_Individual.ipynb
: Abra este notebook e execute as células iniciais. Ele irá iniciar um servidor web local. No console, aguarde a mensagem “Servidor rodando em http://localhost:8080”. Abra essa URL em um navegador para visualizar o formulário de cadastro.- Uploads de documentos: No formulário, preencha os campos solicitados (nome, CPF, interesses) e faça o upload da imagem do RG (documento de identidade) e da selfie do usuário. Os arquivos devem ser imagens (JPEG/PNG) legíveis. Como exemplos de teste, você pode usar
Identidade Padrão.jpeg
eSelfie Padrão.png
(disponíveis no repositório). - Executar validação: Após enviar o formulário, volte ao notebook e prossiga com a execução das demais células. O sistema irá processar o RG via OCR e comparar com os dados informados, além de realizar o reconhecimento facial entre selfie e documento. Os resultados (consistência do CPF/nome e similaridade facial) serão exibidos em telas de saída.
- Uploads de documentos: No formulário, preencha os campos solicitados (nome, CPF, interesses) e faça o upload da imagem do RG (documento de identidade) e da selfie do usuário. Os arquivos devem ser imagens (JPEG/PNG) legíveis. Como exemplos de teste, você pode usar
-
Acesse o Portal de Desenvolvedores:
- Vá para https://developer.twitter.com e clique em "Sign In" no canto superior direito.
-
Crie uma Conta de Desenvolvedor:
- Caso ainda não tenha uma, você precisará preencher um formulário explicando como usará a API (responda de forma simples e honesta, por exemplo: “Análise acadêmica de dados públicos sobre e-sports”).
-
Crie um Projeto e App:
- Após aprovação, vá em Dashboard > Projects & Apps > Overview.
- Clique em “+ Add App”. Dê um nome ao seu App e vincule a um projeto.
-
Acesse as Credenciais:
-
Após criar o App, vá até a aba “Keys and Tokens”.
-
Copie:
- API Key
- API Key Secret
- Bearer Token (usado com Tweepy v2)
-
Salve essas chaves em um arquivo
.env
no formato:TWITTER_API_KEY=xxxxxxxxxxxx TWITTER_API_SECRET=xxxxxxxxxxxx TWITTER_BEARER_TOKEN=xxxxxxxxxxxx
-
-
Acesse o Console do Google Cloud:
-
Crie um Projeto:
- Clique em “Select a project” > “New Project”, dê um nome (ex:
FURIA-Dashboard
), e clique em “Create”.
- Clique em “Select a project” > “New Project”, dê um nome (ex:
-
Habilite a API do YouTube:
- No menu lateral, clique em “APIs & Services” > “Library”.
- Busque por “YouTube Data API v3” e clique em “Enable”.
-
Crie Credenciais:
- Vá em “APIs & Services” > “Credentials” > “+ Create Credentials” > “API key”.
- Uma chave de API será exibida. Copie e salve.
YOUTUBE_API_KEY=xxxxxxxxxxxx
-
(Opcional) Restringir a chave:
- Por segurança, você pode restringir a chave para uso apenas com a YouTube API na mesma tela.
No seu código, use a biblioteca python-dotenv
para carregar as chaves:
from dotenv import load_dotenv
import os
load_dotenv()
TWITTER_BEARER = os.getenv("TWITTER_BEARER_TOKEN")
YOUTUBE_API_KEY = os.getenv("YOUTUBE_API_KEY")
Este guia resume a integração dos módulos do projeto e evidencia que os notebooks criam um sistema simulado e funcional. Cada etapa — desde a coleta inicial de dados pessoais e interesses até a validação de identidade e análise de redes sociais — foi implementada dentro do ambiente Jupyter, compondo um pipeline coeso. Mesmo sem acesso a serviços externos em tempo real, o projeto permite testar localmente (via formulários e dados simulados) todo o fluxo de um sistema realista de know-your-fan. Em síntese, o protótipo final demonstra como dados de usuários e inteligência artificial (OCR, reconhecimento facial, PLN) podem ser combinados para gerar um perfil completo de fãs de e-sports, cumprindo os requisitos de um sistema realista e funcional.
Fontes: A instalação do Tesseract em Linux e Windows está documentada na documentação oficial, e confirma suporte ao idioma Português. Os exemplos de configuração do Tesseract (caminho e variáveis) foram adaptados do código do projeto. As seções de OCR e criptografia ilustram o uso de pytesseract
e cryptography.Fernet
nos notebooks. A coleta via APIs de Twitter e Reddit exemplifica o uso de tweepy
e requests
como mostrado nos códigos. O ambiente virtual foi criado segundo as recomendações oficiais do Python.