Avvio rapido
Usa il pacchetto JavaScript in Node o nel browser, oppure il pacchetto Dart puro in Flutter. Entrambi condividono regole di rilevamento ed esiti attesi.
npm install italian-profanityimport { createChecker } from "italian-profanity";
const checker = createChecker({
profile: "balanced",
languages: ["it"],
contacts: false,
maxLength: 64,
});
const result = checker.check("D10 p0rc0");
if (result.action === "block") {
// Rifiuta il nickname inviato.
}flutter pub add italian_profanityimport 'package:italian_profanity/italian_profanity.dart';
final checker = ItalianProfanity.createChecker(
profile: Profile.balanced,
languages: ['it'],
contacts: false,
maxLength: 64,
);
final result = checker.check('Claudio');
if (result.action == Action.block) {
// Rifiuta il nickname inviato.
}Per pacchetti Dart fuori da Flutter, esegui dart pub add italian_profanity.
API
TypeScript e Dart condividono quattro punti d'ingresso:
| Funzione | A cosa serve |
|---|---|
check(text) | Restituisce un'azione (allow, review o block) e le corrispondenze. |
findMatches(text) | Elenca le regole rilevate senza applicare una decisione di moderazione. |
isClean(text) | Restituisce true solo quando l'azione è allow, non review. |
createChecker(options) | Riusa la stessa policy, le lingue, le eccezioni e le impostazioni tra un controllo e l'altro. |
Ogni corrispondenza indica categoria, gravità, confidenza e posizione nel testo originale. Le posizioni sono offset UTF-16: trattale come dati potenzialmente sensibili.
Policy
La predefinita, pensata per ridurre i falsi positivi sui nomi comuni.
Più severa con i termini ambigui. Valutane l'impatto prima di adottarla.
Meno severa, per prodotti in cui un avviso è più utile di un rifiuto.
Rendi esplicita la policy del tuo prodotto. Se non hai una coda di revisione manuale, puoi rifiutare solo block e gestire review a parte. Non dare per scontato che isClean() faccia questa distinzione al posto tuo.
Personalizzazione
- Lingue: l'italiano è attivo di default. Attiva la copertura inglese curata con
languages: ["it", "en"]. - Contatti: rilevamento facoltativo di URL, email e numeri di telefono con
contacts: true. - Regole aggiuntive: aggiungi regole a parola intera specifiche del tuo prodotto invece di modificare il dataset condiviso.
- Eccezioni e soglie: regola la sensibilità per categoria senza riscrivere il rilevatore.
La guida d'integrazione completa descrive tutte le opzioni e la migrazione dai filtri esistenti.
Apri la guida d'integrazione ↗In produzione
- Ricontrolla sul server. I controlli lato client migliorano l'esperienza ma si possono sempre aggirare.
- Allinea le versioni. Usa la stessa release e le stesse opzioni su backend e app.
- Valida la lunghezza a parte. Il filtro può esaminare solo la parte iniziale configurata di un testo lungo.
- Proteggi la privacy. Non salvare nickname, corrispondenze o offset reali nella telemetria di moderazione.
- Controlla le differenze tra release. Nuove regole possono cambiare l'esito di testi prima consentiti.
Limiti
La libreria non comprende intenzioni o contesto e non può garantire che un testo consentito sia appropriato. Alcuni nomi ambigui restituiscono volutamente review.
I dialetti regionali sono coperti solo in parte. Il dataset inglese facoltativo è curato, ma non equivale a un servizio completo di moderazione in inglese. Prova la libreria su casi reali prima di applicare blocchi rigidi.
Manca qualcosa?
Esempi riproducibili ed eccezioni ben motivate aiutano il progetto a migliorare.
Apri una issue