Inspecionando seu modelo
Agora que você construiu um classificador de "fake news", vamos investigar o que ele aprendeu. Você pode mapear os pesos importantes do vetor de volta para palavras reais usando algumas técnicas simples de inspeção.
Você tem disponível seu classificador Naive Bayes com tf-idf, de bom desempenho, como nb_classifier, e os vetores como tfidf_vectorizer.
Este exercício faz parte do curso
Introdução ao Processamento de Linguagem Natural em Python
Instruções do exercício
- Salve os rótulos das classes como
class_labelsacessando o atributo.classes_denb_classifier. - Extraia as features usando o método
.get_feature_names()detfidf_vectorizer. - Crie um array zipado dos coeficientes do classificador com os nomes das features e ordene-os pelos coeficientes. Para isso, primeiro use
zip()com os argumentosnb_classifier.coef_[0]efeature_names. Em seguida, usesorted()nisso. - Imprima as 20 features com maior peso para o primeiro rótulo de
class_labelse imprima as 20 features com menor peso para o segundo rótulo declass_labels. Isto já foi feito para você.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Get the class labels: class_labels
class_labels = ____
# Extract the features: feature_names
feature_names = ____
# Zip the feature names together with the coefficient array and sort by weights: feat_with_weights
feat_with_weights = ____(____(____, ____))
# Print the first class label and the top 20 feat_with_weights entries
print(class_labels[0], feat_with_weights[:20])
# Print the second class label and the bottom 20 feat_with_weights entries
print(class_labels[1], feat_with_weights[-20:])