Transforme texto em números
caracteristicas = FeatureUnion([
("palavras", TfidfVectorizer(ngram_range=(1, 2))),
("trechos", TfidfVectorizer(
analyzer="char_wb", ngram_range=(3, 5)
)),
])O exemplo combina palavras inteiras e pequenos trechos de caracteres. Isso ajuda a reconhecer descrições semelhantes mesmo quando o texto não é idêntico.
Treine com compras conhecidas
modelo = Pipeline([
("texto", caracteristicas),
("classificador", LogisticRegression(
max_iter=4000, C=4, random_state=42
)),
])
modelo.fit(X_treino, y_treino)Meça antes de automatizar
previsoes = modelo.predict(X_teste)
acuracia = accuracy_score(y_teste, previsoes)
print(f"Acurácia: {acuracia:.1%}")Classifique e use confiança
categorias = modelo.predict(novas["Descricao"])
probabilidades = modelo.predict_proba(novas["Descricao"])
confianca = probabilidades.max(axis=1)
decisao = [
"Automático" if p >= 0.60
else "Revisar categoria"
for p in confianca
]Exemplo de saída
| Compra | Categoria | Confiança | Decisão |
|---|---|---|---|
| Licença Microsoft 365 | Tecnologia | 86,7% | Automático |
| Passagem para reunião com cliente | Viagens | 95,1% | Automático |
| Reparo hidráulico | Manutenção | 96,4% | Automático |