Classificação de texto em Python: um guia prático com código
A classificação de texto é uma técnica essencial no processamento de linguagem natural (PNL) que categoriza o texto em classes predefinidas. Python, com sua vasta gama de bibliotecas, torna essa tarefa mais acessível. Este guia irá guiá-lo através de um exemplo básico de classificação de texto, completo com código Python.
1. Coleta de dados
Nosso primeiro passo é reunir um conjunto de dados. Para simplificar, usaremos um conjunto de dados de amostra disponível em bibliotecas Python como o scikit-learn.
from sklearn . datasets import fetch_20newsgroups
dados = fetch_20newsgroups ( subset = 'all' , categorias = [ 'alt.atheism' , 'soc.religion.christian' ] , shuffle = True , random_state = 42 )
2. Pré-processamento de dados
Os dados de texto geralmente precisam de limpeza. Esta é uma maneira simples de pré-processar dados de texto:
import re
def preprocess_text(text):
# Remove special characters and digits
text = re.sub(r'\W', ' ', str(text))
texto = re . sub ( r'\s+[a-zA-Z]\s+' , ' ' , texto )
texto = re . sub ( r'\^[a-zA-Z]\s+' , ' ' , texto )
texto = re . sub ( r'\s+' , ' ' , texto , flags = re . I )
texto = re . sub ( r'^b\s+' , '' , texto )
texto = texto . mais baixo ( )
retornar texto
processados_data = [ preprocess_text ( text ) para texto em dados . dados ]
3. Extração de recursos
Usaremos TF-IDF para extração de recursos:
from sklearn . feature_extraction . text import TfidfVectorizer
vetorizador = TfidfVectorizer ( max_features = 5000 , min_df = 5 , max_df = 0,7 , stop_words = 'inglês' )
X = vetorizador . fit_transform ( dados_processados )
4. Seleção de modelo
Usaremos o classificador Naive Bayes:
from sklearn . model_selection import train_test_split
from sklearn . naive_bayes import MultinomialNB
from sklearn . metrics import classification_report , accuracy_score
# Splitting dataset into training and testing sets
X_train , X_test , y_train , y_test = train_test_split ( X , dados.target , test_size = 0,2 , random_state = 42 )
# Treinando o modelo
modelo = MultinomialNB ( )
modelo . ajuste ( X_train , y_train )
5. Avaliação do modelo
Avaliando o desempenho do modelo:
# Predicting the Test set results
y_pred = model . predict ( X_test )
# Evaluating the model
print ( "Accuracy:" , accuracy_score ( y_test , y_pred ) )
print ( "\nRelatório de classificação:\n" , rating_report ( y_test , y_pred ) )
6. Conclusão
Este guia fornece uma compreensão básica e implementação prática da classificação de texto em Python. Você pode explorar diferentes técnicas de pré-processamento, métodos de extração de recursos e modelos de aprendizado de máquina para melhorar o desempenho. O mundo da PNL é vasto e a classificação de textos é apenas o começo!
Sinta-se à vontade para experimentar diferentes aspectos do código ou procure exemplos e explicações mais detalhadas!