Skip to main content

Classify text messages between 'spam' and 'ham'

Project description

Introdução

Este diretório contém um projeto Python para solução do problema prático 2 do teste de Inteligência Artificial da Nuveo. Neste problema, solicitou-se a criação de um projeto para servir um modelo de classificação de mensagens de texto em 'ham' e 'spam'. O modelo foi criado utilizando o pacote scikit-learn e disponibilizado como um pipeline contendo um passo de pré-processamento utilizando TF-IDF, seguido por um modelo de classificação binária utilizando Random Forest.

Para a implementação, foi criado um pacote Python de nome spamdetection, que implementa a classe SpamDetector, contendo métodos prob_spam() (que retorna a probabilidade de classificação 'spam' determinada pelo modelo) e is_spam() (que retorna a classificação). Maiores detalhes sobre o uso do pacote estão disponíveis na seção link para uso e na documentação link para documentação.

Conforme solicitado no desafio, o pacote também é acompanhado de um módulo de testes unitários, contido na pasta link para pasta tests. Maiores detalhes abaixo, na seção link para seção testes.

Dependências

Além da biblioteca padrão de Python, os seguintes pacotes são necessários para o uso do pacote spamdetection:

sklearn == 0.24.1 pywebio == 1.2.3

Criado em Python 3.8.5

Ambos estão especificados em requirements.txt e podem ser instalados com pip install requirements.txt.

Instalação

Duas opções estão disponíveis para uso do pacote spamdetection:

  1. pip install spamdetection (ou pip install nuveo-teste-ia) (Recomendado) - confirmar que está disponível

  2. Clonar este repo

    • clonar com git clone link - verificar se o link é estável
    • criar ambiente virtual com venv ou virtualenv
    • à partir da raíz do repositório, instalar dependências com pip install requirements.txt
    • à partir da pasta 02-SMSSpamDetection, acessar o pacote spamdetection

Realisticamente falando, a criação do ambiente virtual, apesar de recomendada, provavelmente não é necessária no seu ambiente. As dependências são muito simples e a probabilidade de conflitos é baixíssima. O modelo foi criado com sklearn 0.24.1, mas fiz o desenvolvimento todo com 0.23.2 e não tive problemas (apesar de diversos warnings desencorajando o uso de modelo criado em versão diferente). PyWebIO é um pacote muito simples e também não deve gerar conflitos.

Para poder acessar o pacote à partir de qualquer diretório, adicionar a pasta 02-SMSSpamDetection ao PATH do Python ou clonar o repositório no diretório sites (VERIFICAR SE ISSO É VÁLIDO!!!)

Uso

modos de operação

Documentação (gerada com pdoc)

  1. app

  2. pacote + classe etc classe SpamDetector() na documentação

  3. pacote + linha de comando

Testes

Detalhamento da metodologia de testes

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spamdetection-0.0.1.tar.gz (728.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spamdetection-0.0.1-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file spamdetection-0.0.1.tar.gz.

File metadata

  • Download URL: spamdetection-0.0.1.tar.gz
  • Upload date:
  • Size: 728.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.5

File hashes

Hashes for spamdetection-0.0.1.tar.gz
Algorithm Hash digest
SHA256 a474b07a672b8955963aab679d5db8425d23201bb80235c9ac2dd5e447ee4017
MD5 d2fa1a4c3806d14c1375425985874ce1
BLAKE2b-256 96dacf1c23d10c24fe171094fdad16115690d4177af621ce908cff3ec8322011

See more details on using hashes here.

File details

Details for the file spamdetection-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: spamdetection-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 8.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.5

File hashes

Hashes for spamdetection-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8a56d3beccb2e4858c6059d5881eeeeefed415b783157a0e2958eadebbc36023
MD5 dc2278b58b0689cfb7f979660a11fef2
BLAKE2b-256 9d1153c4a887f04b1ae12bb932a73e7b460fa200b40901d6f7af3faa21fa8112

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page