list - swear - Filtro "malas palabras"
swear words list (10)
+1 en el error de Clbuttic, creo que es importante para los filtros de "mala palabra" buscar los espacios iniciales y finales (por ejemplo, "culo") en lugar de solo la cadena exacta para que no tengamos palabras como clbuttic , clbuttes, buttert, buttess, etc.
No es muy técnico, pero ... Tengo que implementar un filtro de malas palabras en un nuevo sitio que estamos desarrollando. Entonces, ¿necesito una "buena" lista de malas palabras para alimentar mi DB con ... alguna sugerencia / dirección? Buscando con google encontré este , y es un comienzo, pero nada más.
Sí, sé que este tipo de filtros se escapan fácilmente ... ¡pero el cliente lo hará, el cliente lo hará! :-)
El sitio tendrá que filtrar tanto palabras en inglés como en italiano, pero para italiano puedo pedirle a mis colegas que me ayuden con una lista de "parolacce" construida por la comunidad :-) - un correo electrónico servirá.
Gracias por cualquier ayuda.
Al investigar este tema, determiné que lo que se necesitaba era más que una simple lista que reemplaza arbitrariamente. He creado un servicio web que te permite identificar el nivel de ''limpieza'' que deseas. También hace un esfuerzo por identificar los falsos positivos, es decir, cuando una palabra puede ser mala en un contexto pero no en otros. Eche un vistazo a http://filterlanguage.com
Diría que solo elimine las publicaciones a medida que las conozca, y bloquee a los usuarios que son demasiado explícitos con sus publicaciones. Puedes decir cosas muy ofensivas sin usar malas palabras. Si bloquea el asno de palabra (también conocido como burro), la gente simplemente tecleará a $$ o / / 55, o lo que sea que necesiten escribir para pasar el filtro.
No vi ningún idioma especificado, pero puede usarlo para PHP generará un RegEx para cada trabajo inservible, de modo que incluso errores de ortografía intencionales (es decir, @ss, i3itch) también serán detectados.
<?php
/**
* @author [email protected]
**/
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>
Recientemente encontré esta palabra mala gratuita que filtra el servicio web en línea. Permiten WCF y Publicaciones de formulario en JSON. Funciona muy bien y no tengo que actualizar la lista ya que su lista se actualiza constantemente. tienen servicios premium gratuitos y asequibles disponibles.
vale la pena mirar.
Shutterstock tiene un repositorio de Github con una lista de palabras malas usadas para filtrar.
Puede consultarlo aquí: https://github.com/shutterstock/List-of-Dirty-Naughty-Obscene-and-Otherwise-Bad-Words
Si alguien necesita una API, Google actualmente proporciona un indicador de mala palabra.
http://www.wdyl.com/profanity?q=naughtyword
{
response: "false"
}
Actualización: Google ahora ha eliminado este servicio.
Siempre puede convencer al cliente de tener una sesión de usuarios que publiquen improperios constantemente y que hagan una solución fácil para agregarlos al sistema. Es mucho trabajo, pero probablemente será más representativo de la comunidad.
Tenga cuidado con los errores clbuttic .
"Apple cometió el error clíptico de forzar a su visionario - ¡Quiero decir, mira lo que NeXT ha estado haciendo!"
Hmm. "clbuttic".
Google "clbuttic": ¡miles de visitas!
Hay alguien que llama a su auto ''clbuttic''.
Hay tableros de mensajes "Clbuttic Steam Engine".
Diccionario de Webster - sin ayuda.
Hmm. ¿Qué puede ser esto?
SUGERENCIA: Las personas que hacen suposiciones sobre sus guiones de expresiones regulares se verán abochornados cuando repitan este error.
Wikipedia ClueBot tiene un filtro de mala palabra, lee su fuente.