Skip to main content
Documentation
Centre d’apprentissage

Maîtrisez la modération de contenu grâce à des guides complets, des tutoriels et une documentation API

Liens rapides

Filtrage des mots interdits

Le filtrage des mots interdits détecte dans un texte votre propre liste de mots non autorisés. Contrairement au spam ou au sentiment — qui s’appuient sur des modèles entraînés — cette vérification compare le contenu à une liste de mots personnalisée que vous configurez pour votre projet. Vous décidez donc exactement quels termes sont proscrits. Activez-la avec check_badwords sur POST /api/v2/check.

Quand utiliser une liste de mots personnalisée ?

Les modèles sont très efficaces pour les catégories floues comme la toxicité, mais certains termes relèvent de décisions de politique interne que vous êtes seul à pouvoir prendre : le nom d’un concurrent, un produit interdit, des insultes propres à votre communauté, des schémas d’identifiants divulgués ou des mots que votre équipe juridique vous impose de bloquer. Une liste personnalisée vous offre une correspondance exacte et prévisible pour ces cas.

Comment cela fonctionne-t-il ?

Le filtrage des mots interdits ne s’exécute que lorsque deux conditions sont réunies : check_badwords est activé, et votre projet dispose d’une liste de mots personnalisée configurée. Il effectue alors une recherche de sous-chaîne insensible à la casse pour chaque mot listé dans le texte du message, puis renvoie tous les mots trouvés.

curl -X POST https://api.discuse.com/api/v2/check \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "content": {
      "text": "Check out CompetitorBrand for a better deal"
    },
    "settings": {
      "check_badwords": true
    }
  }'

Réponse

{
  "has_violations": true,
  "cached": false,
  "results": {
    "hits": true,
    "badwords": {
      "hit": true,
      "matched_words": ["CompetitorBrand"],
      "apply_penalty": true
    }
  }
}

L’objet results.badwords contient trois champs :

Champ Type Description
hit boolean Vrai si au moins un mot de la liste a été trouvé
matched_words string[] Les mots configurés qui correspondent au texte
apply_penalty boolean Indique si la correspondance doit déclencher votre mesure d’application (toujours true en cas de correspondance)

Comment configurer la liste de mots ?

La liste fait partie des paramètres de votre projet, pas de la requête : vous la définissez une seule fois, puis chaque requête check_badwords l’utilise. Gérez-la depuis les paramètres de votre projet (au même endroit que les vérifications par défaut). Comme la requête ne contient que l’option check_badwords, vous pouvez garder votre liste de mots privée et la modifier sans toucher au code client.

Si check_badwords est activé mais qu’aucun mot n’est configuré pour votre projet, la vérification est ignorée et aucun résultat badwords n’est renvoyé.

Quel type de correspondance est utilisé ?

La correspondance repose sur une recherche de sous-chaîne insensible à la casse : un mot listé comme spam correspond à spam, SPAM, mais aussi à spammer. Choisissez donc vos entrées en conséquence : ajoutez des expressions complètes lorsque vous voulez éviter les correspondances à l’intérieur de mots plus longs, et gardez à l’esprit que les entrées courtes peuvent correspondre à des sous-chaînes non souhaitées.

Utilisation

Le filtrage des mots interdits n’a pas son propre quota : comme les vérifications de texte, il s’exécute dans le cadre d’un appel /api/v2/check, et chaque appel compte une fois dans votre quota mensuel de requêtes API. Consultez Authentification et clés API pour comprendre le fonctionnement des quotas et des limites de débit.

Bonnes pratiques

Combinez avec les vérifications basées sur des modèles

Utilisez la liste personnalisée pour les termes exacts dictés par votre politique, et laissez check_spam, check_sentiment et check_images gérer les catégories plus floues. Un seul appel /check peut les exécuter tous ensemble — consultez Analyse de texte.

Agissez en fonction des mots détectés

matched_words vous indique exactement ce qui a déclenché le filtre, ce qui est utile pour donner du contexte aux modérateurs et pour affiner votre liste :

const result = await check({ text }, { check_badwords: true });
const bad = result.results?.badwords;

if (bad?.hit) {
  await blockAndLog(text, bad.matched_words);
}

Révisez régulièrement la liste

Une liste statique devient obsolète à mesure que les communautés et le langage évoluent. Passez régulièrement en revue les entrées qui se déclenchent réellement (à partir de matched_words dans vos journaux) et supprimez celles qui ne provoquent que des faux positifs.

Exemple d’intégration

import os
import requests

def check_badwords(text):
    response = requests.post(
        'https://api.discuse.com/api/v2/check',
        headers={
            'Content-Type': 'application/json',
            'X-API-Key': os.environ['DISCUSE_API_KEY']
        },
        json={'content': {'text': text}, 'settings': {'check_badwords': True}}
    )
    return response.json()

Prêt à appliquer votre propre politique de mots ? Commencez avec Discuse.

Rédigé par Équipe Discuse · Dernière mise à jour June 2026

Articles associés

Analyse de texte et détection du sentiment

Détectez le spam, la toxicité, les grossièretés et analysez le sentiment dans le contenu textuel

Détection NSFW des images

Détectez et filtrez automatiquement les images inappropriées et le contenu pour adultes

Détection du spam

Filtrage du spam basé sur l’AI pour les textes et les messages