! Projeto Arquivado
A SARA é um framework semi-automatizado para coleta e análise de dados de redes sociais online (RSO), utilizando redes complexas, aprendizagem de máquina e mineração de texto.
Desenvolvido no Laboratório de Modelagem Computacional e Inteligência Computacional (LABMIC) da Universidade Federal de São João del-Rei (UFSJ)
Estado : Em desenvolvimento / Experimental
Site : https://labmicufsj.github.io/sara_public/
Grafo dependencias
Crie um ambiente virtual com o comando a seguir:
python3.8 -m venv <nome_ambiente>
Agora ative o ambiente virtual
source <nome_ambiente>/bin/activate
Após a criação e ativação do ambient execute:
pip install --upgrade wheel setuptools pip
Método de instalação recomendado
python setup.py bdist_wheel && pip install --force-reinstall dist/*.whl
python3 setup.py install
Após a instalação pode ser necessário realizar o download de alguns recursos da biblioteca NLTK:
python -m nltk.downloader punkt
python -m nltk.downloader stopwords
Você também pode instalar os recursos do NLTK executando o script nltk
.
Um segundo passo após a instalação é a atualização das credências de acesso:
credentials
- Credênciais do Twitter
Como terceiro passo a instalação do modelo utilizado no pré-processamento:
pip install https://github.com/explosion/spacy-models/releases/download/pt_core_news_sm-3.4.0/pt_core_news_sm-3.4.0.tar.gz
O módulo de coleta utiliza a API do Twitter.
Scripts associados:
sara_stream
- Realiza as coletas de tweets em tempo real.sara_scheduled_stream
- Realiza coletas de acordo com agendamento.credentials/twitter_api
- Contém os dados de acesso da API do Twitter.
Core:
Os dados coletados são salvos em um banco de dados não relacional (MongoDB).
Exemplo de como criar um script para coleta e armazenamento de dados:
from sara.core.collector import SaraCollector
from sara.core.sara_data import SaraData
database = "brasileirao"
colecao = "futebol"
termo = "cruzeiro"
limite_coleta = 0
storage = SaraData(colecao, database)
data_collector = SaraCollector(storage)
data_collector.real_time_collector(termo, limite_coleta)
A geração da rede é realizada utilizando o módulo network_generators
.
Scripts:
sara_network
- Gera uma rede direcionada ou não direcionada.sara_weighted_network
- Gera uma rede com peso nas arestas, direcionada ou não direcionada.
A rede gerada é salva no diretório redes/
.
Core:
O framework identifica os vértices de maior importância de acordo com as seguintes métricas de centralidade:
- Betweenness, PageRank, Degree
A detecção de centralidade é realizada por meio da utilização do script:
Script:
Core:
O resultado deste script é salvo no diretório resultados_importancia/
.
A detecção de comunidades neste framework é realizada utilizando o módulo de overlap e o algoritmo de Louvain.
Esta ferramenta procura encontrar ego-comunidades formada em torno de determinados usuários.
- Detecção de comunidades sobrepostas - Utilize o resultado da centralidade ou outra sequência de importância para detecção de comunidades.
Modulo associado
A análise de conteúdo presente nos tweets é realizada por meio de modelagem de tópicos, distribuição inversa de frequência e nuvem de palavras.
Script:
sara_content
: Responsável pela geração da nuvem de palavras.
Core:
O diretório scripts
contém uma série de scripts construídos utilizando o SARA.
O SARA pode ser modificado e expandido.
- SaraBotTagger
Este projeto possui testes unitários implementados, podendo ser executados com o seguinte comando:
python setup.py pytest
Testado em ambientes Ubuntu, CentOS 7
- Python versão 3.8, 3.9
- MongoDB
- dependências
Este trabalho foi desenvolvido com apoio financeiro das seguintes agências de fomento e universidade:
- Capes
- CNPq
- FAPEMIG
- UFSJ
- Orientador: Vinícius da Fonseca Vieira
- Coorientadora: Carolina Ribeiro Xavier
- Lucas Félix
- Antônio Pedro Santos Alves
Trabalhos relacionados a esta pesquisa que foram publicados em conferências: