A aplicação visa classificar a categoria de uma dada noticia, esta deve ser informada pelo usuário no momento da execução da aplicação.
Categorias treinadas:
- ciencia-e-saude
- tecnologia
- agro
- educacao
- politica
- economia
Atenção, caso não exista a base de dados completa (files/urls-complete.csv) contendo o texto das notícias para treino e teste, na primeira execução de uma classificação a aplicação irá baixar o conteúdo necessário utilizando a planilha (files/urls.csv) como base. Caso não deseje aguardar a aplicação realizar a captura do conteúdo, faça o download de uma base já populada disponível em download.
Observação: Ao executar a classificação de uma notícia, o modelo treinado e testado é armazenado em disco (files/saved_model), desta forma ao executar novamente uma classificação a aplicação não precisará treinar e testar a base de dados, portanto conseguimos melhorar a performance em processar o resultado para o usuário.
Bora para a prática!
Atenção para os comandos pip e o py, estes podem sofrer alterações conforme o seu sistema operacional, possíveis alternativas:
- pip
- pip3
- python
- python3
Clone a aplicação em um diretório de sua preferência:
git clone [email protected]:luiscovelo/machine-learning.git
Como instalar:
pip install -r requirements.txt
Como usar:
py main.py --how_to_use app
Modelos de classificação disponíveis:
py main.py --list alg
Classificando uma notícia utilizando todos os modelos disponíveis:
py main.py --url https://www.moneytimes.com.br/gestora-brasileira-hashdex-divulga-cronograma-para-seu-etf-de-bitcoin/ --model all
Classificando uma notícia com todos os modelos e verificando qual modelo obteve a melhor taxa de acerto:
py main.py --url https://www.moneytimes.com.br/gestora-brasileira-hashdex-divulga-cronograma-para-seu-etf-de-bitcoin/ --model best
Classificando uma notícia com um modelo específico:
-
DecisionTree:
py main.py --url https://www.moneytimes.com.br/gestora-brasileira-hashdex-divulga-cronograma-para-seu-etf-de-bitcoin/ --model DecisionTreeClassifier
-
Dummy:
py main.py --url https://www.moneytimes.com.br/gestora-brasileira-hashdex-divulga-cronograma-para-seu-etf-de-bitcoin/ --model DummyClassifier
-
GaussianNB:
py main.py --url https://www.moneytimes.com.br/gestora-brasileira-hashdex-divulga-cronograma-para-seu-etf-de-bitcoin/ --model GaussianNB
-
KNeighbors:
py main.py --url https://www.moneytimes.com.br/gestora-brasileira-hashdex-divulga-cronograma-para-seu-etf-de-bitcoin/ --model KNeighborsClassifier
-
LinearSVC:
py main.py --url https://www.moneytimes.com.br/gestora-brasileira-hashdex-divulga-cronograma-para-seu-etf-de-bitcoin/ --model LinearSVC
-
LogisticRegression:
py main.py --url https://www.moneytimes.com.br/gestora-brasileira-hashdex-divulga-cronograma-para-seu-etf-de-bitcoin/ --model LogisticRegression
-
MLP:
py main.py --url https://www.moneytimes.com.br/gestora-brasileira-hashdex-divulga-cronograma-para-seu-etf-de-bitcoin/ --model MLPClassifier
-
MultinomialNB:
py main.py --url https://www.moneytimes.com.br/gestora-brasileira-hashdex-divulga-cronograma-para-seu-etf-de-bitcoin/ --model MultinomialNB
-
RandomForest:
py main.py --url https://www.moneytimes.com.br/gestora-brasileira-hashdex-divulga-cronograma-para-seu-etf-de-bitcoin/ --model RandomForestClassifier
-
SVC:
py main.py --url https://www.moneytimes.com.br/gestora-brasileira-hashdex-divulga-cronograma-para-seu-etf-de-bitcoin/ --model SVC
Imagens dos resultados