Gedanken zu einem "intelligenten" Badwordfilter

daddz

Mitglied
Hallo Leute!

Dieses Thema hat mich dazu angeregt mich mal selbst an die Materie zu wagen.

Nun ich wollte nicht einfach so drauf loslegen sondern erstmal ein paar Gedanken und Ideen sammeln.

Zum ersten bin ich mir noch nicht ganz schlüssig, wie Wörter erkannt werden sollen.

Einmal gäbe es die Möglichkeit über [phpf]soundex[/phpf] und Konsorten.
Jedoch könnte man es auch mithilfe von Regulären Ausdrücken machen.


Zum zweiten wäre da die Sache der Speicherung.
Ich habe mir überlegt mehrere Möglichkeiten anzubieten:
  • Datenbank
  • XML-Datei
  • CSV-Datei

Jetzt komme ich mal zum interessanten Teil - der "Intelligenz" des Programmes.
Es soll keine ausgereifte KI werden oder derartiges in dieser Richtung. (Naja vielleicht doch ein bisschen im seeehr viel späteren Stadium :-( )

Am Anfang wird der Speicher leer sein und keine Wörter beinhalten.
Danach kann man beginnen einige simple "Ausdrücke" einzuspeichern, es müssen nicht mal viele sein.

Der Filter sucht dann automatisch nach ähnlichen oder kombinierten Wörtern und gibt diese als Link aus, mit dem das Wort hinzugefügt werden kann.

Außerdem werden Sonderzeichen aus Wörtern herausgefiltert, um die Verschleierung von Worten zu verwehren und bestimmte Sonderzeichen werden getestet ob sie als Buchstabe in dem Wort ein Ausdruck ergeben würden (z.B. $ könnte ein "S" sein).

So wirklich intelligent ist der Filter dadurch noch nicht, aber es ist ein Anfang.

Ich hoffe ihr habt vielleicht ein paar Ideen, Anregungen oder Gedanken. :)

Edit: Mir ist grad aufgefallen, dass der Spamfilter von Thunderbird im Grunde ziemlich genau dem entspricht, was ich mir vorstelle...

greetz
daddz
 
Zuletzt bearbeitet:
von der Idee her zwar ganz ansprechend, aber..

A) Wer braucht sowas, wer ein forum mit Schimpfwort niveau besucht, wird selbst das Niveau haben. Und wer solche wörter nicht nutzt, wird auch in seinem Umfeld keinen haben der so schreibt.

B) wenn du bestimmte Wörter herausfilterst, auch bei zusammengesetzten wörtern, wirst du bei vielen wörtern Probleme bekommen wo das "schimpfwort" mit eingeht.

z.b Rudiesexfreundin (falls mal jemand ein "space" vergisst
oder Lonsdale oder wie auch immer die marke heist wo die Rechten partei im namen vorkommt. (rein zufällig natürlich, und die Marke gibts schon 50 jahre länger)

Das sind ein paar stichpunkte die du dringend beachten solltest.
 
Es ist ja auch nicht für ein Forum gedacht sondern eher für ein Gästebuch.

Ich kenne sehr viele die Probleme mit solchen Leuten haben und ständig Einträge in ihrem Gästebuch löschen, bearbeiten oder zensieren müssen.

Mit dem Filter gäbe es eine Möglichkeit dieses Problem einigermaßen in den Griff zu bekommen.

Zum 2. Punkt den du ansprichst muss ich dir Recht geben. Da muss man sich was einfallen lassen. Vielleicht hat ja jemand eine Idee!?

Danke schonmal für deine Antwort! :)

greetz
daddz
 
So, es gibt ein paar Neuigkeiten!

fanste und ich haben uns jetzt zusammengeschlossen um an diesem Filter zu werkeln.

Er hat mir auch ein paar Vorschläge und Ideen geschrieben, die ich mal hier für ihn hinschreibe:
fanste hat gesagt.:
1. Text splitten, um die einzelnen Wörter zu bekommen. Diese dann gegebenenfalls ersetzten.
2. Die gleichen Wörter (gesplitteter Text) per soundex() prüfen.
3. Mögliche Zeichen, wie z.B. dein erwähntes $ = S Beispiel, ersetzten und erneut prüfen.
4. Doppelte/dreifache/x-fache Buchstaben entfernen, damit keine Wörter wie "sccheise" durchkommen.
5. Text ab ganzen nochmal durchsuchen. Sollte das Wort in einer Wortkombi gefunden werden, prüfen, was für ein Wort es ist. (muss mal evt schauen, ob man ein digitales Wörterbuch zur Hand nehmen kann/muss/soll)

Was sagt ihr dazu? Habt ihr noch Ideen, (Verbesserungs-)Vorschläge?

greetz
daddz
 
Zuletzt bearbeitet:
Wie würde das denn mit den Wörtern gelöst werden,
die man auch in anderem Kontext benutzen kann (z.B: Latte, Rohr)?
Das würde denn ja auch in bestimmten Fällen zu sexueller Belästigung zählen...

Oder was ist, wenn jemand vom Titikaka-See schreibt?
 
Auf alles wird mal wohl nicht eingehen können. Aber wir werden versuchen, ihn so gut wie nur möglich hinzubekommen. Aber wer weis. Vielleicht fällt uns auch dazu etwas ein.

@daddz:
Da warst du mal wieder schneller. Hab eben erst gelesen, dass ich es hier posten soll ;).
 
Habe ich mir auch schon gedacht. Daher habe ich mir überlegt, dass man noch zeichen für zeichen den Text durchgehen kann, um solch ein Wort zu finden. Aber das kommt nur mit rein, wenn es nicht zu ressourcenfressend ist und in einer annehmbaren Durchlaufszeit liegt.
 
Freak_Desperado hat gesagt.:
Oder was ist, wenn jemand vom Titikaka-See schreibt?
Dazu hatte ich auch schon eine Idee.

Falls der Filter ein kombiniertes Wort findet bietet er dem Admin an dieses Wort in die Liste der verbotenen Wörter aufzunehmen, löscht es aber nicht wenn der Admin es nicht so will.
Matthias Reitinger hat gesagt.:
Das Zerlegen in Wörter birgt insofern Nachteile, dass man den Filter durch Setzen von Leerzeichen einfach umgehen kann (z.B.: „b ö s e s w o r t“)
Der Filter lässt einfach keine "1"-Buchstaben Wörter zu! :-(

greetz
daddz
 
Ist nicht so gut. Was machst du, wenn das Script jetzt z.B. von einem englisch schreibenden benutzt wird? Dort gibt es z.B. das Wort "a". Ist auch nur ein Buchstabe. :)

Außerdem könnte man dann immer noch "bös esw ort" usw schreiben.
 
Zurück