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:
-
pip install spamdetection (ou pip install nuveo-teste-ia) (Recomendado) - confirmar que está disponível
-
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)
-
app
-
pacote + classe etc classe SpamDetector() na documentação
-
pacote + linha de comando
Testes
Detalhamento da metodologia de testes
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a474b07a672b8955963aab679d5db8425d23201bb80235c9ac2dd5e447ee4017
|
|
| MD5 |
d2fa1a4c3806d14c1375425985874ce1
|
|
| BLAKE2b-256 |
96dacf1c23d10c24fe171094fdad16115690d4177af621ce908cff3ec8322011
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a56d3beccb2e4858c6059d5881eeeeefed415b783157a0e2958eadebbc36023
|
|
| MD5 |
dc2278b58b0689cfb7f979660a11fef2
|
|
| BLAKE2b-256 |
9d1153c4a887f04b1ae12bb932a73e7b460fa200b40901d6f7af3faa21fa8112
|