Skip to content

CloudioJ/IPPD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Processamento de Textos em Paralelo

O projeto visa criar um programa multithreading para processar textos em paralelo, utilizando técnicas básicas de Processamento de Linguagem Natural (PLN) em Rust e paralelizando a execução com OpenCL. O programa lê um dataset CSV contendo e-mails que podem ser classificados em até seis categorias. Para cada classificação, o código separa os e-mails em novos arquivos txt e conta a frequência de palavras de cada um utilizando a GPU.

Dataset Utilizado

O dataset utilizado para dividir as mensagens de acordo com as categorias "toxic", "severe_toxic", "obscene", "threat", "insult", "identity_hate" foi encontrado na plataforma Kaggle: Toxic Comments Classification - NB-Logistic.

Funcionalidades

  • Leitura e Escrita em CSV: Leitura de dados de um arquivo CSV de entrada e escrita de dados processados em arquivos CSV de saída;
  • Remoção de Pontuação e Stopwords: Limpeza do texto removendo pontuações e palavras comuns (stopwords);
  • Tokenização: Divisão do texto em palavras individuais (tokens);
  • Cálculo de Frequência de Palavras com GPU: Utiliza a GPU para calcular a frequência de palavras em cada categoria.
  • Representação de Dados: Exibição das 10 palavras mais frequentes de cada categoria.
  • Limpeza de Arquivos Temporários: Remove os arquivos de texto temporários após a análise.

Dependências

  1. Tenha certeza de ter rustc (compilador Rust) e cargo (gerenciador de pacotes) instalado. É possível verificar desta forma:

    rustc --version
    cargo --version
    • Se não tiver:
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    sudo apt install rustc
  2. É necessário instalar o OpenCL. Este trabaho foi feito para ser exeutado com GPUs AMD, foi utilizado o AMD-APP-SDKInstaller.

    export LIB="/c/Program Files (x86)/AMD APP SDK/3.0/lib/x86_64:$LIB"
  3. As dependências ficam listadas em Cargo.toml.

Como Executar

  1. Clone o repositório:
  • Se você tiver o Git instalado, clone o repositório para o seu computador usando o seguinte comando:

    git clone https://github.com/CloudioJ/IPPD
    cd <diretório_do_repositório>
  1. Execute o programa:

    cargo build --release
    cargo run

Estrutura do Projeto

O projeto está organizado nos seguintes diretórios:

  • csv/: Contém o dataset original;
  • src/: Contém o arquivo main.rs;
  • txt/: Contémos os arquivos de texto por categoria - crie manualmente o diretório.

Autores

  • Claudio Luis da Silva Machado Junior
  • Fernanda Cardoso Petiz

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages