Skip to content

Scrap, token classification and model deployment for a selective process.

Notifications You must be signed in to change notification settings

TiagoSanti/LID-token-classification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LID: Token Classification

🇧🇷 README | 🇺🇸 README

Este repositório contém o código e os datasets utilizados na resolução do problema do processo seletivo da equipe de IA do projeto LIA e LEDES em 2024.2.

Descrição do problema: Token Classification

Sua tarefa será extrair de textos coletados do InfoMoney as entidades de: empresa, empresario, politico, outras_pessoas, valor_financeiro, cidade, estado, pais, organização e banco.

Parte 1: Coleta de dados

Façam scrapy do site InfoMoney. Sugestão: vejam que o site possui um robots.txt.

Parte 2: Rotulação

Instale localmente em sua máquina o label-studio e rotule as classes definidas no problema. Na interface do Label-Studio vejam o template de Natural Language Processing -> Named Entity Recognition.

Parte 3: Treinamento

Treinar o model.

Parte 4: Avaliação

Avaliar o modelo com precisão, recall e f1-score.

Parte 5: Deploy

Colocar no Label-Studio o modelo para fazer pré-rotulação.

Exemplos de classes

  • empresa: Petrobrás, Carrefour.
  • empresario: Abilio Diniz.
  • politico: Lula, Bolsonaro.
  • outras_pessoas: George Clooney, Julia Roberts.
  • valor_financeiro: US$ 6,5 bilhões; R$ 2,0; US$ 0,38.
  • cidade: Campo Grande, Nova York.
  • estado: MS, Nova York.
  • pais: Brasil, Japão.
  • organização: Fundo das Nações Unidas para Alimentação e Agricultura (FAO);Organização Não Governamental Ação da Cidadania; Organização para a Cooperação e o Desenvolvimento Econômico (OCDE).
  • banco: Banco Nacional de Desenvolvimento Econômico e Social (BNDES); Bradesco, Itaú.

Entrega

Entrega via email com os links para um vídeo de 15 minutos e todos os código no GitHub.

No repositório do github deve conter um código driver com o nome reproduzir.py que ao chamá-lo deve conseguir treinar o modelo.

Instruções para execução

O projeto foi executado em um ambiente Linux, portanto, as instruções a seguir são para esse sistema operacional.

Reprodução do scrap e treinamento

  1. Clone o repositório:

    git clone https://github.com/TiagoSanti/LID-token-classification.git
  2. Acesse o diretório do projeto:

    cd LID-token-classification
  3. Crie um ambiente virtual:

    python -m venv venv
  4. Ative o ambiente virtual:

    source venv/bin/activate
  5. Instale as dependências do projeto:

    pip install -r requirements_linux.txt
  • Execute o script scrap.py para coletar os dados do site InfoMoney:

    python scrap.py
  • Execute o script reproduce.py para treinar o modelo:

    python reproduce.py

    Opcional: crie um arquivo .env com as variáveis de ambiente WANDB_API_KEY e HUGGINGFACE_API_KEY para salvar os resultados do treinamento no Wandb e o modelo treinado no HuggingFace.

    WANDB_API_KEY=your_wandb_api_key
    HUGGINGFACE_API_KEY=your_huggingface_api_key

Reprodução do deploy

  1. Clone o repositório:

    git clone https://github.com/TiagoSanti/LID-token-classification.git
  2. Acesse o diretório ml-backend do projeto:

    cd LID-token-classification/ml-backend
  3. Crie um ambiente virtual:

    python -m venv venv
  4. Ative o ambiente virtual:

    source venv/bin/activate
  5. Instale as dependências do projeto:

    pip install -r requirements.txt
  6. Execute o comando para iniciar o servidor:

    label-studio-ml start .
  7. Adicione o endereço http://localhost:9090/ no Label-Studio para fazer a pré-rotulação.

Wandb e HuggingFace

Os resultados dos treinamentos do modelo estão disponíveis no Wandb e o modelo treinado está disponível no HuggingFace.