Frage

Viele von uns brauchen zu deal mit Benutzereingaben, Suchanfragen, und Situationen, in denen die Eingabe von text kann potenziell anstößigen Inhalten oder unerwünschte Sprache.Oftmals das muss herausgefiltert werden.

Wo findet man eine gute Liste der Schimpfwörter in verschiedenen Sprachen und Dialekten?

Gibt es APIs verfügbar, um Quellen mit guten Listen?Oder vielleicht eine API, die einfach sagt "ja, das ist sauber" oder "Nein, das ist schmutzig" mit einigen Parametern?

Was sind einige gute Methoden für den Fang von Leuten, die versuchen zu betrügen, das system, wie die a$$, azz, oder a55?

Bonuspunkte, wenn Sie bieten Lösungen für PHP.:)

Edit:Antwort zu Antworten, die sagen, meiden Sie einfach die programmatische Frage:

Ich denke, es ist ein Ort für diese Art von filtern, wenn, zum Beispiel, kann ein Benutzer die Nutzung öffentlicher Bild-Suche zum finden von Bildern, die Hinzugefügt werden, zu einem sensiblen community pool.Wenn Sie suchen für "penis", dann werden Sie wahrscheinlich viele Bilder von, ja.Wenn wir nicht wollen, Bilder von, dass, dann verhindert das Wort als Suchbegriff ist ein guter Torhüter, allerdings nicht eine narrensichere Methode.Bekommen Liste der Wörter in Erster Linie ist die eigentliche Frage.

So bin ich tatsächlich meinen, einen Weg, um herauszufinden, ein einzelnes token ist fehlerhaft oder nicht und dann einfach verweigern.Ich würde nicht die Mühe verhindert eine Stimmung wie die Total ausgelassen "long-necked giraffe" - Referenz.Nichts, was Sie dort tun können.:)

War es hilfreich?

Lösung

Obszönitäten-Filter:Schlechte Idee, oder Unglaublich Intercoursing Schlechte Idee?

Auch kann man nicht vergessen Die Unerzählte Geschichte von s Toontown SpeedChat,, wo auch mit "safe-Wort "whitelist" führte zu einer 14-jährigen schnell es zu umgehen mit:"Ich will stick my long-necked Giraffe up your fluffy white bunny."

Bottom line:Letztlich ist für jede system, dass Sie zu implementieren, es ist absolut kein Ersatz für menschliche überprüfung (ob gleich-oder sonst).Fühlen Sie sich frei zu implementieren, ein rudimentäres Werkzeug, um loszuwerden, der drive-by ist, aber für die bestimmt, troll, müssen Sie unbedingt eine nicht-Algorithmus-basierten Ansatz.

Ein system, das entfernt Anonymität und stellt accountability (etwas, dass Stack Overflow nicht gut) ist auch hilfreich, insbesondere im Hinblick auf die Bekämpfung der John Gabriel G. I. F. T.

Sie fragte sich auch, wo Sie bekommen können, Obszönitäten Listen, um Sie zu erhalten begonnen-eine open-source-Projekt zu überprüfen, Dansguardian -- check out the source code für Ihre Standard-Obszönitäten Listen.Es gibt auch eine zusätzliche Dritte Satz-Liste Sie können herunterladen für den proxy, die kann eine hilfreich Nachlese Punkt für Sie.

Bearbeiten Sie in Antwort der Frage Bearbeiten: Vielen Dank für die Klarstellung, was Sie zu tun versuchen.In diesem Fall, wenn Sie nur versuchen zu tun, eine einfache Wort-filter, gibt es zwei Möglichkeiten, wie Sie es tun können.Man ist zu einer einzigen langen regexp mit all den Verbotenen Phrasen, die Sie wollen, um zu zensieren, und nur ein regex-suchen/ersetzen mit es.Eine regex wie:

$filterRegex = "(boogers|snot|poop|shucks|argh)"

und führen Sie es auf Ihrem input-string preg_match() Großhandel test für einen Treffer

oder preg_replace() leeren Sie Sie aus.

Sie können auch laden Sie diese Funktionen mit arrays statt einer einzigen langen regex, und für lange Wortlisten, kann es mehr überschaubar.Siehe die preg_replace() für einige gute Beispiele, wie arrays können flexibel eingesetzt werden.

Für zusätzliche PHP-Programmierung Beispiele, finden Sie auf dieser Seite eine etwas erweiterte generische Klasse für die word-Filterung, *'s aus der Mitte Briefe aus zensierten Wörtern, und dies vorherigen Stack-Overflow-Frage das hat auch ein PHP-Beispiel (die wichtigsten wertvoller Teil gibt es in der SQL-basierten gefiltert word-Ansatz-die leet-speak-Kompensator kann verzichtet werden, wenn Sie es finden nicht erforderlich).

Sie auch Hinzugefügt:"Bekommen Liste der Wörter in Erster Linie ist die eigentliche Frage."-- zusätzlich zu einigen der vorherigen Dansgaurdian links, die Sie finden können dieser handliche .zip 458 Wörter, um nützlich zu sein.

Andere Tipps

Während ich weiß, dass diese Frage ziemlich alt ist, aber es ist eine häufig auftretende Frage ...

Es gibt sowohl einen Grund und einen deutlichen Bedarf an Profanität Filter (siehe Wikipedia-Eintrag hier ), aber sie oft fallen Kurz von 100% genau für sehr unterschiedliche Gründe zu sein; Kontext und Genauigkeit .

Es hängt (vollständig) auf, was Sie erreichen wollen - es grundlegendste ist, sind Sie wahrscheinlich versuchen, die zur Deckung der „ sieben schmutzige Worte “und dann die grundlegendsten Profanität einig ... einige Unternehmen müssen filtern: Grund Schimpfwörter, URLs oder sogar persönliche Informationen und so weiter, aber andere müssen illegales Konto verhindern Namensgebung (Xbox Live ist ein Beispiel) oder weit mehr ...

Benutzerinhalt erzeugte nicht nur Potential enthalten Schimpfwörter es kann auch offensive Verweise enthalten:

  • Sexuelle Handlungen
  • Sexuelle Orientierung
  • Religion
  • Herkunft
  • Etc ...

Und möglicherweise auch in mehreren Sprachen. Shut entwickelt Grund dirty-Wortlisten in 10 Sprachen Datum, aber es ist immer noch einfach und sehr orientiert an ihren ‚Tagging‘ Bedürfnisse. Es gibt eine Reihe von anderen Listen im Internet verfügbar ist.

ich mit der akzeptierte Antwort zustimmen, dass es nicht eine definierte Wissenschaft und wie Sprache ist eine sich ständig weiterentwickelnden Herausforderung , aber eine, wo eine 90% ige Erkennungsrate besser als 0% . Es hängt rein auf Ihren Zielen -. Was Sie versuchen, das Niveau der Unterstützung zu erreichen, die Sie haben und wie wichtig es ist Schimpfwörter verschiedenen Typen zu entfernen, ist

Beim Aufbau eines Filters, müssen Sie die folgenden Elemente berücksichtigen und wie sie sich auf Ihr Projekt:

  • Wörter / Phrasen
  • Akronyme (FOAD / LMFAO usw.)
  • Falsch positive (Wörter, Orte und Namen wie 'Fehlgriff', 'scunthorpe' und 'Titsworth')
  • URLs (Porno-Seiten sind ein offensichtliches Ziel)
  • Persönliche Informationen (E-Mail, Adresse, Telefonnummer usw. - falls zutreffend)
  • Sprachwahl (in der Regel standardmäßig Englisch)
  • Moderation (wie, wenn überhaupt, können Sie interagieren mit User Generated Content und was kann man damit machen)

Sie können leicht eine Profanität Filter bauen, die 90% + von Obszönitäten fangen, aber Sie werden nie schlagen 100%. Es ist einfach nicht möglich. Je näher Sie zu 100% bekommen, desto schwieriger wird es ... einen komplexe Profanität Motor in der Vergangenheit gebaut, die mit mehr als 500K Realtime-Nachrichten pro Tag behandelt, würde ich die folgenden Ratschläge bieten:

Ein Basisfilter würde bedeuten:

  • Eine Liste der anwendbaren Schimpfwörter
  • Die Entwicklung eines Verfahrens mit Ableitungen von Obszönitäten des Umgangs

Ein mäßig komplexe Filer würde bedeuten, (Neben einem Basisfilter):

  • Verwenden von komplexen Musterabgleich mit erweiterten Ableitungen zu behandeln (erweiterte Regex)
  • Der Umgang mit Leetspeak (l33t)
  • Der Umgang mit Fehlalarme

Ein komplexer Filter würde eine Reihe der folgenden (Neben einem moderaten Filter) beinhalten:

  • White- und schwarze Listen
  • Naive Bayes-Inferenz Filterung von Phrasen / Begriffe
  • Soundex Funktionen (wo ein Wort wie der andere klingt)
  • Levenshtein Abstand
  • Stemming
  • Human Moderatoren helfen ein Filter-Engine führen durch Beispiel zu lernen, oder die die Spiele sind nicht genau genug, um ohne Führung (ein selbst / ständig verbessernde System)
  • Vielleicht eine Form der KI-Engine

Ich weiß nicht, von jedem guten Bibliotheken für diese, aber was auch immer Sie tun, stellen Sie sicher, dass Sie in Richtung des Lassens Sachen durch irren. Ich habe mit Systemen behandelt, die nicht zulassen würde mich „mpassell“ als Benutzernamen zu verwenden, da es „ass“ als Teil enthält. Das ist eine gute Möglichkeit, Benutzer zu entfremden!

Während ein Vorstellungsgespräches von mir, das Unternehmen CTO, den ich interviewte versucht, ein Wort / Web-Spiel heraus, dass ich in Java geschrieben. Aus einer Wortliste des gesamten Wörterbuch Oxford English, was war das erste Wort, das zu erraten kam zu?

Natürlich ist das Foul Wort in der englischen Sprache.

Irgendwie, ich habe immer noch das Jobangebot, aber ich verfolgen dann eine Profanität Wortliste nach unten (nicht

ein Profanität Filtersystem wird nie perfekt sein, auch wenn der Programmierer cocksure ist und verfolgt dabei alle Nackt Entwicklungen

, daß die jede Liste des ‚Schimpfwörter‘ ist wahrscheinlich, sowie jede andere Liste durchzuführen, da das zugrunde liegende Problem ist Sprachverständnis , die ziemlich hartnäckig mit dem aktuellen Technologie ist

so, die einzige praktische Lösung ist zweifach:

  1. bereit sein, Ihren Wörterbuch zu aktualisieren häufig
  2. einen menschlichen Editor einstellen, um Fehlalarme (beispielsweise „clbuttic“ anstelle von „klassischen“) und falsch-negative Ergebnisse (oops! Verpassten!) Zu korrigieren

Die einzige Möglichkeit, offensive Benutzereingaben zu verhindern, ist alle Benutzereingaben zu verhindern.

Wenn Sie darauf bestehen, auf Benutzereingaben ermöglicht und Moderation benötigen, dann menschliche Moderatoren übernehmen.

In Bezug auf Ihre Teilfrage „das System auszutricksen“, können Sie damit umgehen, dass sowohl das „schlechte Wort“ -Liste zu normalisieren und den vom Benutzer eingegebenen Text vor Ihrer Suche zu tun. zB Verwenden Sie eine Reihe von regulären Ausdrücken (oder tr , wenn PHP hat) zu konvertieren [z $ 5] auf "s", [4 @] auf „a“, usw., dann die normalisierte „schlechtes Wort“ Liste gegen den normalisierten Text vergleichen. Beachten Sie, dass die Normalisierung möglicherweise zu zusätzlichen Fehlalarme führen könnte, obwohl ich nicht von irgendwelchen konkreten Fällen im Moment denken kann.

Die größere Herausforderung mit etwas einfallen läßt, ist, dass die Menschen lassen zitieren „Der Stift mächtiger als das Schwert“, während Blocking „p e n i s“.

Vorsicht vor Lokalisierungsprobleme. Was ein Schimpfwort in einer Sprache ist vielleicht ein ganz normales Wort in einem anderen sein

Ein aktuelles Beispiel hierfür: ebay einen Wörterbuch Ansatz nutzt „Schimpfwörter“ von Feedback zu filtern. Wenn Sie versuchen, die Deutsch Übersetzung eingeben von „dies eine perfekte Transaktion war“ ( „das war Eine perfekte Transaktionen in Veräusserungspositionen“), wird ebay das Feedback wegen schlechten Worten ablehnen.

Warum? Da das Deutsch Wort für „war“ ist „Krieg“ und „Krieg“ ist in ebay Wörterbuch von „bad words“.

So passen sie von Lokalisierungsprobleme.

Wenn Sie so etwas wie Digg / Stackoverflow tun können, wo die Benutzer / mark obszöne Inhalte können ... downvote dies tun.

Sie dann alles tun müssen, ist die „naughty“ Benutzer zu überprüfen und blockieren sie, wenn sie die Regeln brechen.

Ich bin ein wenig spät zur Party, aber ich habe eine Lösung, die diese für einige, die lesen könnte funktionieren. Es ist in Javascript anstelle von PHP, aber es gibt einen triftigen Grund dafür.

  

Vollständige Offenlegung, schrieb ich dieses Plugin ...

Wie auch immer.

Der Ansatz, den ich mit gegangen ist, damit ein Benutzer auf ihre Profanität Filterung auf „Opt-In“. Grundsätzlich wird Profanität standardmäßig zugelassen werden, aber wenn meine Nutzer wollen nicht, es zu lesen, sie müssen nicht. Dies hilft auch mit dem "l33t sp3 @ k" -Ausgabe.

Das Konzept ist eine einfache Plugin, wenn die Kunden wird vom Server injiziert Konto Profanität Filterung ermöglicht. Von dort ist es nur ein paar einfache Linien, die die schwört auslöschen.

Hier ist die Demo-Seite
https://chaseflorell.github.io/jQuery.ProfanityFilter/demo/

<div id="foo">
    ass will fail but password will not
</div>

<script>
    // code:
    $('#foo').profanityFilter({
        customSwears: ['ass']
    });
</script>

Ergebnis

  

*** fehlschlagen, aber Passwort wird nicht

Nicht. Es führt nur zu Problemen. Eine clbuttic persönliche Erfahrung, die ich mit Profanität Filter habe, ist die Zeit, wo ich Kick / von einem IRC-Kanal verboten für die Erwähnung, dass ich „Überschrift über die Brücke nach Hancock für ein paar Stunden“ oder etwas in diesem Sinne.

Ich bin damit einverstanden Post mit HanClinto der weiter oben in dieser Diskussion. Ich verwende im Allgemeinen reguläre Ausdrücke String-Match Eingabetext. Und das ist eine vergebliche Mühe, als, wie man ursprünglich erwähnt haben Sie zu berücksichtigen explizit für jeden Trick Form in Ihrer „blockiert“ Liste im Netz populär zu schreiben.

Auf einer Seite zur Kenntnis, während andere die Ethik der Zensur debattieren, muß ich zustimmen, dass irgendeine Form auf dem Netz erforderlich ist. Einige Leute einfach genießen Vulgarität veröffentlichen, weil es sofort Offensive zu einem großen Körper von Menschen sein können, und erfordert absolut keinen Gedanken an den Autor Teil.

Vielen Dank für die Ideen.

HanClinto Regeln!

Sobald Sie eine gute MYSQL Tabelle einiger Schimpfwörter haben Sie filtern möchten (ich mit einem der Links in diesem Thread gestartet wird), können Sie etwas tun:

$errors = array();  //Initialize error array (I use this with all my PHP form validations)

$SCREENNAME = mysql_real_escape_string($_POST['SCREENNAME']); //Escape the input data to prevent SQL injection when you query the profanity table.

$ProfanityCheckString = strtoupper($SCREENNAME); //Make the input string uppercase (so that 'BaDwOrD' is the same as 'BADWORD').  All your values in the profanity table will need to be UPPERCASE for this to work.

$ProfanityCheckString = preg_replace('/[_-]/','',$ProfanityCheckString); //I allow alphanumeric, underscores, and dashes...nothing else (I control this with PHP form validation).  Pull out non-alphanumeric characters so 'B-A-D-W-O-R-D' shows up as 'BADWORD'.

$ProfanityCheckString = preg_replace('/1/','I',$ProfanityCheckString); //Replace common numeric representations of letters so '84DW0RD' shows up as 'BADWORD'.

$ProfanityCheckString = preg_replace('/3/','E',$ProfanityCheckString);

$ProfanityCheckString = preg_replace('/4/','A',$ProfanityCheckString);

$ProfanityCheckString = preg_replace('/5/','S',$ProfanityCheckString);

$ProfanityCheckString = preg_replace('/6/','G',$ProfanityCheckString);

$ProfanityCheckString = preg_replace('/7/','T',$ProfanityCheckString);

$ProfanityCheckString = preg_replace('/8/','B',$ProfanityCheckString);

$ProfanityCheckString = preg_replace('/0/','O',$ProfanityCheckString); //Replace ZERO's with O's (Capital letter o's).

$ProfanityCheckString = preg_replace('/Z/','S',$ProfanityCheckString); //Replace Z's with S's, another common substitution.  Make sure you replace Z's with S's in your profanity database for this to work properly.  Same with all the numbers too--having S3X7 in your database won't work, since this code would render that string as 'SEXY'.  The profanity table should have the "rendered" version of the bad words.

$CheckProfanity = mysql_query("SELECT * FROM DATABASE.TABLE p WHERE p.WORD = '".$ProfanityCheckString."'");
if(mysql_num_rows($CheckProfanity) > 0) {$errors[] = 'Please select another Screen Name.';} //Check your profanity table for the scrubbed input.  You could get real crazy using LIKE and wildcards, but I only want a simple profanity filter.

if (count($errors) > 0) {foreach($errors as $error) {$errorString .= "<span class='PHPError'>$error</span><br /><br />";} echo $errorString;} //Echo any PHP errors that come out of the validation, including any profanity flagging.


//You can also use these lines to troubleshoot.
//echo $ProfanityCheckString;
//echo "<br />";
//echo mysql_error();
//echo "<br />";

Ich bin sicher, dass es eine effizientere Art und Weise ist all diese Alternativen zu tun, aber ich bin nicht schlau genug, um es herauszufinden (und dies scheint in Ordnung zu arbeiten, wenn auch ineffizient).

Ich glaube, dass Sie auf der Seite erlaubt den Nutzern, und die Menschen benutzen, um zu registrieren, irren sollte, um Ihre Profanität Tabelle zu filtern und fügen Sie je nach Bedarf. Obwohl es auf den Kosten eines falsch-positiven (okay Wort als schlecht gekennzeichnet) hängt im Vergleich zu einem falsch-negativen (schlechtes Wort durchkommt). Das sollte letztlich bestimmen, wie aggressiv oder konservativ Sie in Ihrer Filterstrategie sind.

Ich würde auch sehr vorsichtig sein, wenn Sie Platzhalter verwenden möchten, da sie manchmal mehr onerously verhalten können, als Sie beabsichtigen.

Ich sammelte 2200 Schimpfwörter in 12 Sprachen: en, ar, cs, da, de, eo, es, fa, fi, fr, hallo, hu, es, ja, ko, nl, nein, pl, pt, ru, sv, th, tlh, tr, zh.

MySQL-Dump, JSON, XML oder CSV-Optionen stehen zur Verfügung.

https://github.com/turalus/openDB

Ich würde Ihnen empfehlen, diese SQL in Ihre DB auszuführen und prüfen Sie jedes Mal, wenn Benutzereingaben etwas.

Ehrlich gesagt, würde ich ließ sie bekommen die „Trick, um das System“ Worte aus und verbieten ihnen statt, was mich gerade. Aber es macht auch die Programmierung einfacher.

Was ich tun würde, ist eine Regex-Filter implementieren etwa so: /[\s]dooby (doo?)[\s]/i oder es das Wort auf andere, /[\s]doob(er|ed|est)[\s]/ vorangestellt. Diese würden Filter Worte wie gestillt verhindern, die perfekt gültig ist, sondern würden auch erfordern die Kenntnis der anderen Varianten und die Aktualisierung den eigentlichen Filter, wenn Sie einen neuen lernen. Offensichtlich sind diese alle Beispiele, aber Sie müssten entscheiden, wie es selbst zu tun.

Ich bin nicht über die Worte alles, was ich weiß, tippen, nicht, wenn ich will nicht wirklich, sie kennen.

ich mit der Sinnlosigkeit des Subjekts zustimmen, aber wenn Sie einen Filter haben müssen, überprüfen Nings Boxwood :

  

Boxwood ist eine PHP-Erweiterung für den schnellen Austausch von mehreren Wörtern in einem Stück Text. Es unterstützt Groß- und Kleinschreibung Groß- und Kleinschreibung Matching. Es setzt voraus, dass der Text es arbeitet auf als UTF-8 codiert werden.

Siehe auch diese Blog-Post für weitere Informationen:

  

Mit Boxwood, können Sie Ihre Liste der Suchbegriffe haben, so lange wie Sie möchten - das Suchen und Ersetzen-Algorithmus nicht bekommen mit mehr Wörter auf der Liste der Wörter, langsamer zu suchen. Es funktioniert durch eine Trie aller Suchbegriffe zu bauen und dann scannt Ihr Motiv Text nur einmal, Elemente des Trie zu Fuß nach unten und sie zu Zeichen in Ihrem Text zu vergleichen. Es unterstützt US-ASCII und UTF-8, Groß- und oder unempfindlich Matching, und hat einig Englisch-zentrierte Wortgrenze Prüflogikschaltung.

I geschlossen, um eine gute Profanität Filter brauchen wir drei Hauptkomponenten zu erstellen, oder zumindest ist es das, was ich tun werde. Diese sind sie:

  1. Der Filter: a. Hintergrunddienst, der gegen einen schwarzen Liste, Wörterbuch oder so ähnlich überprüfen
  2. Nicht erlaubt anonymes Konto
  3. Missbrauch melden

Ein Bonus, wird es irgendwie diejenigen zu belohnen, die mit genauen Missbrauch Reporter beitragen und die Täter zu bestrafen, z.B. suspendieren ihre Konten.

Auch spät im Spiel, aber einige Untersuchungen machen und stolperte über hier. Wie andere erwähnt haben, ist es nur fast nahezu unmöglich, wenn sie automatisiert wurde, aber wenn Sie Ihr Design / Anforderung in einigen Fällen beinhalten kann (aber nicht die ganze Zeit) menschliche Interaktionen zu überprüfen, ob es profan ist oder nicht, können Sie ML betrachten. https: // docs. microsoft.com/en-us/azure/cognitive-services/content-moderator/text-moderation-api#profanity ist meine aktuelle Wahl gerade jetzt aus mehreren Gründen:

  • Unterstützt viele Lokalisierung
  • Sie halten die Aktualisierung der Datenbank, also muss ich nicht Schritt halten mit den neuesten slangs oder Sprachen (Wartungsausgabe)
  • Wenn es eine hohe Wahrscheinlichkeit (d 90% oder mehr), können Sie es einfach leugnen pragmatisch
  • Sie können für die Kategorie beobachten, die ein Flag verursacht, die nicht Profanität sein kann oder nicht, und kann es jemand überprüfen müssen zu lehren, dass es ist oder nicht entweihen.

Für mein Bedürfnis, es war / ist auf der Grundlage öffentlich freundlichen kommerziellen Dienst (OK, Videospiele), die anderen Benutzer / die Benutzername sehen, aber das Design erfordert, dass es durch Profanität Filter gehen Offensive Benutzername abzulehnen. Das Traurige daran ist, das klassische „clbuttic“ -Ausgabe wird höchstwahrscheinlich auftreten, da Benutzernamen in der Regel einziges Wort sind (bis zu N Zeichen) von manchmal mehreren Wörtern verketteten ... Auch Microsofts kognitiven Dienst nicht Flagge „Assist“ als Text. HasProfanity = true kann aber Flagge einer der Kategorien Wahrscheinlichkeit hoch sein.

Wie die OP fragen, was ist mit "A $$", hier ist ein Ergebnis, wenn ich es durch die Filter geleitet: image description treten Sie hier , wie Sie sehen können, ist es festgestellt hat, ist es nicht profan, aber es hat eine hohe Wahrscheinlichkeit, dass es, so Flaggen als Empfehlungen der Überprüfung (menschliche Interaktionen).

Wenn Wahrscheinlichkeit hoch ist, kann ich entweder wieder zurück „Es tut mir Leid, dass Name bereits vergeben ist“ (auch wenn es nicht ist), so dass es weniger anstößig zu Anti-Zensur-Personen oder etwas, wenn wir don ‚t menschliche Beitrag integrieren wollen oder Rückkehr‚Ihr Benutzername haben die Live-Betrieb Abteilung benachrichtigt worden sind, können Sie warten auf Ihren Benutzernamen einen anderen Benutzernamen überprüft und genehmigt oder entschieden werden‘. Oder was auch immer ...

Durch die Art und Weise, die Kosten / Preis für diesen Service ist ziemlich niedrig für meine Zwecke (wie oft kommt der Benutzername geändert wird?), Aber auch hier für OP vielleicht die Designanforderungen intensivere Anfragen und kann nicht ideal zu zahlen / für ML-Dienste abonnieren, oder Mensch-Review / Interaktionen nicht hat. Es hängt alles von der Gestaltung ... Aber wenn Design der Rechnung paßt, vielleicht kann diese OP-Lösung sein.

Wenn Sie interessiert ist, kann ich die Nachteile in dem Kommentar in der Zukunft Liste.

Sie nicht.

Denn:

  • Clbuttic
  • Obszönität ist nicht OMG EVIL
  • Obszönität nicht effektiv definiert werden
  • Die meisten Menschen sehr wahrscheinlich nicht zu schätzen wissen „geschützt“ von Profanität werden

Edit: Während ich mit dem Kommentator zustimmen, der sagte: „Zensur ist falsch“, das ist nicht die Art dieser Antwort

.

Profanity Filter sind eine schlechte Idee. Der Grund dafür ist, dass Sie nicht jedes Schimpfwort fangen kann. Wenn Sie versuchen, erhalten Sie falsch-positive Ergebnisse.

Fangen Wörter

Lassen Sie uns einfach sagen, dass Sie das F-Wort fangen wollen. Einfach richtig? Nun wollen wir mal sehen.

Sie können eine Schleife durch einen String „Fick.“ Zu finden Leider verleiten Menschen heutzutage Filter. Die Profanität Filter nicht abholen "fuk."

kann man versuchen, für mehrere Schreibweisen und Varianten des Wortes zu prüfen, aber das wird der Code der Leistung verlangsamen. Um das F-Wort zu fangen, müssen Sie für "fuc" suchen, "Fuc", "fuk", "Fuk", "F ***", etc. Und die Liste geht weiter und weiter.

Vermeiden von Innocence

Okay, wie wäre es Groß- und Kleinschreibung und Leerzeichen ignorieren, so dass es „F u C k“ fängt? Das mag wie eine gute Idee klingen, aber kann jemand umgehen nur die Weltlichkeit Filter mit „F.U.C.K.“

Sie ignorieren Zeichensetzung.

Nun, das ist ein echtes Problem, da ein Satz wie " Hölle o, da!" abholen, wie "hell" und "Wh Arsch oben?" nimmt als "ass."

Und da sind ein paar Worte, die Sie aus dem Filter ausschließen müssen, wie zum Beispiel "Cons tit ution", weil es "tit" drin.

Die Menschen können auch Ersatz Wörter wie verwenden „Frack.“ Sie blockieren das auch? Was ist mit „Stift“ für „Penis“? Ihr Programm hat keine künstliche Intelligenz zu wissen, ob die Saite gut oder schlecht ist.

nicht Profanität Filter verwenden. Sie sind schwer zu entwickeln, und sie sind so langsam wie ein Crawl.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top