Question

Pas très technique, mais...Je dois implémenter un filtre de gros mots dans un nouveau site que nous développons.J'ai donc besoin d'une liste de "bons" mauvais mots pour alimenter ma base de données...un indice/une direction ?En regardant autour de moi avec Google, je j'ai trouvé ça un, et c'est un début, mais rien de plus.

Oui, je sais que ce genre de filtres s'échappe facilement...mais la volonté du client est la volonté du client !!!:-)

Le site devra filtrer les mots anglais et italiens, mais pour l'italien, je peux demander à mes collègues de m'aider avec une liste de "parolacce" construite par la communauté :-) - un e-mail fera l'affaire.

Merci pour toute aide.

Était-ce utile?

La solution

Je n'ai vu aucune langue spécifiée, mais vous pouvez l'utiliser pour PHP, cela générera un RegEx pour chaque travail intégré afin que même les fautes d'orthographe intentionnelles (c'est-à-dire@ss, i3itch ) sera également capturé.

<?php

/**
 * @author unkwntech@unkwndesign.com
 **/

if($_GET['act'] == 'do')
 {
    $pattern['a'] = '/[a]/'; $replace['a'] = '[a A @]';
    $pattern['b'] = '/[b]/'; $replace['b'] = '[b B I3 l3 i3]';
    $pattern['c'] = '/[c]/'; $replace['c'] = '(?:[c C (]|[k K])';
    $pattern['d'] = '/[d]/'; $replace['d'] = '[d D]';
    $pattern['e'] = '/[e]/'; $replace['e'] = '[e E 3]';
    $pattern['f'] = '/[f]/'; $replace['f'] = '(?:[f F]|[ph pH Ph PH])';
    $pattern['g'] = '/[g]/'; $replace['g'] = '[g G 6]';
    $pattern['h'] = '/[h]/'; $replace['h'] = '[h H]';
    $pattern['i'] = '/[i]/'; $replace['i'] = '[i I l ! 1]';
    $pattern['j'] = '/[j]/'; $replace['j'] = '[j J]';
    $pattern['k'] = '/[k]/'; $replace['k'] = '(?:[c C (]|[k K])';
    $pattern['l'] = '/[l]/'; $replace['l'] = '[l L 1 ! i]';
    $pattern['m'] = '/[m]/'; $replace['m'] = '[m M]';
    $pattern['n'] = '/[n]/'; $replace['n'] = '[n N]';
    $pattern['o'] = '/[o]/'; $replace['o'] = '[o O 0]';
    $pattern['p'] = '/[p]/'; $replace['p'] = '[p P]';
    $pattern['q'] = '/[q]/'; $replace['q'] = '[q Q 9]';
    $pattern['r'] = '/[r]/'; $replace['r'] = '[r R]';
    $pattern['s'] = '/[s]/'; $replace['s'] = '[s S $ 5]';
    $pattern['t'] = '/[t]/'; $replace['t'] = '[t T 7]';
    $pattern['u'] = '/[u]/'; $replace['u'] = '[u U v V]';
    $pattern['v'] = '/[v]/'; $replace['v'] = '[v V u U]';
    $pattern['w'] = '/[w]/'; $replace['w'] = '[w W vv VV]';
    $pattern['x'] = '/[x]/'; $replace['x'] = '[x X]';
    $pattern['y'] = '/[y]/'; $replace['y'] = '[y Y]';
    $pattern['z'] = '/[z]/'; $replace['z'] = '[z Z 2]';
    $word = str_split(strtolower($_POST['word']));
    $i=0;
    while($i < count($word))
     {
        if(!is_numeric($word[$i]))
         {
            if($word[$i] != ' ' || count($word[$i]) < '1')
             {
                $word[$i] = preg_replace($pattern[$word[$i]], $replace[$word[$i]], $word[$i]);
             }
         }
        $i++;
     }
    //$word = "/" . implode('', $word) . "/";
    echo implode('', $word);
 }

if($_GET['act'] == 'list')
 {
    $link = mysql_connect('localhost', 'username', 'password', '1');
    mysql_select_db('peoples');
    $sql = "SELECT word FROM filters";
    $result = mysql_query($sql, $link);
    $i=0;
    while($i < mysql_num_rows($result))
     {
        echo mysql_result($result, $i, 'word') . "<br />";
        $i++;
     }
     echo '<hr>';
 }
?>
<html>
    <head>
        <title>RegEx Generator</title>
    </head>
    <body>
        <form action='badword.php?act=do' method='post'>
            Word: <input type='text' name='word' /><br />
            <input type='submit' value='Generate' />
        </form>
        <a href="badword.php?act=list">List Words</a>
    </body>
</html>

Autres conseils

Attention à erreurs classiques.

"Apple a commis l'erreur grossière d'évincer son visionnaire - je veux dire, regardez ce que NeXT a fait !"

Hmm."clbuttique".

Google "clbuttic" - des milliers de clics !

Il y a quelqu'un qui appelle sa voiture « clbuttique ».

Il existe des forums de discussion "Clbuttic Steam Engine".

Dictionnaire Webster - aucune aide.

Hmm.Qu'est-ce que cela peut être ?

INDICE:Les gens qui font buttumptions sur leurs scripts regex, seront embarbuted quand ils répètent cette erreur mbuttive.

Shutterstock a un dépôt Github avec un liste de gros mots utilisé pour le filtrage.

Vous pouvez le voir ici: https://github.com/shutterstock/List-of-Dirty-Naughty-Obscene-and-Otherwise-Bad-Words

Si quelqu'un a besoin d'une API, Google fournit actuellement un indicateur de gros mots.

http://www.wdyl.com/profanity?q=naughtyword

{
response: "false"
}

Mise à jour:Google a maintenant supprimé ce service.

Je dirais de simplement supprimer les messages au fur et à mesure que vous en prenez connaissance et de bloquer les utilisateurs qui sont trop explicites dans leurs publications.Vous pouvez dire des choses très offensantes sans utiliser de gros mots.Si vous bloquez le mot cul (alias âne), les gens taperont simplement a$$ ou /\55, ou tout ce dont ils ont besoin pour passer le filtre.

+1 sur l'erreur Clbuttic, je pense qu'il est important que les filtres "mauvais mots" recherchent à la fois les espaces de début et de fin (par exemple, " ass ") plutôt que la chaîne exacte afin que nous n'ayons pas de mots comme clbuttic , clbuttes, buttert, buttess, etc.

Vous pouvez toujours convaincre le client d'avoir une session d'utilisateurs qui publient constamment des jurons et trouver une solution simple pour les ajouter au système.C'est beaucoup de travail mais ce sera probablement plus représentatif de la communauté.

En recherchant ce sujet, j'ai déterminé qu'il fallait plus qu'une simple liste effectuant des remplacements arbitraires.J'ai construit un service Web qui vous permet d'identifier le niveau de « propreté » que vous désirez.Il s'efforce également d'identifier les faux positifs, c'est-à-direoù un mot peut être mauvais dans un contexte mais pas dans d'autres.Jeter un coup d'œil à http://filterlangage.com

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top