[cryptolog] /me will 'ne Art Loging

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [cryptolog] /me will 'ne Art Loging

    Meine Wenigkeit ist an ein Modul interessiert, dass Sprachauffällige Wörterkombinationen in Zusammenhang des Alters als "Interessant" einstuft und anfängt zu loggen.

    Mein Datenbankmodell könnte wie folgt aussehen:

    Code:
    -- 
    -- Tabellenstruktur für Tabelle `cryptolog_badwords`
    -- 
    
    CREATE TABLE `cryptolog_badwords` (
      `bw_id` int(11) NOT NULL auto_increment,
      `bw_word` varchar(255) collate latin1_general_ci NOT NULL default '',
      `bw_cat` int(10) NOT NULL default '0',
      `bd_fsk` int(2) NOT NULL default '0',
      `bd_prio` int(4) NOT NULL default '0',
      PRIMARY KEY  (`bw_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;
    
    -- --------------------------------------------------------
    
    -- 
    -- Tabellenstruktur für Tabelle `cryptolog_cat`
    -- 
    
    CREATE TABLE `cryptolog_cat` (
      `cat_id` int(8) NOT NULL auto_increment,
      `cat_name` varchar(255) collate latin1_general_ci NOT NULL default '',
      `cat_prio` int(8) NOT NULL default '0',
      PRIMARY KEY  (`cat_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=5 ;
    
    -- 
    -- Daten für Tabelle `cryptolog_cat`
    -- 
    
    INSERT INTO `cryptolog_cat` VALUES (1, 'Kindes Missbrauch', 8);
    INSERT INTO `cryptolog_cat` VALUES (2, '************uelle Belästigung', 3);
    INSERT INTO `cryptolog_cat` VALUES (3, 'Diffamierung, Beleidigung', 1);
    INSERT INTO `cryptolog_cat` VALUES (4, 'Straftat', 10);
    
    -- --------------------------------------------------------
    
    -- 
    -- Tabellenstruktur für Tabelle `cryptolog_logfiles`
    -- 
    
    CREATE TABLE `cryptolog_logfiles` (
      `log_id` int(10) NOT NULL auto_increment,
      `log_score` int(10) NOT NULL default '0',
      `log_date` datetime NOT NULL default '0000-00-00 00:00:00',
      `log_u1_ip` varchar(255) collate latin1_general_ci NOT NULL default '',
      `log_u1_cl` text collate latin1_general_ci NOT NULL,
      `log_u1_host` varchar(255) collate latin1_general_ci NOT NULL default '',
      `log_u2_ip` varchar(255) collate latin1_general_ci NOT NULL default '',
      `log_u2_cl` text collate latin1_general_ci NOT NULL,
      `log_u2_host` varchar(255) collate latin1_general_ci NOT NULL default '',
      `log_text` text collate latin1_general_ci NOT NULL,
      `log_u1_age` tinyint(2) NOT NULL default '0',
      `log_u2_age` tinyint(2) NOT NULL default '0',
      PRIMARY KEY  (`log_id`),
      KEY `log_score` (`log_score`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;

    Kategorien:
    Stellen die Art der "Vergehen" dar und haben die Aufgabe, anhand der Priorität, massiven Einfluss auf die Gewichtung der Formel zu nehmen.

    Badwords:
    Die Wörter sollen einzeln oder in Kombination eingespeist werden, was in der Datenbank so aussehen könnte:

    1. Bsp: "Arschloch" prio: "1" Kat. "Beleidigung" cat_prio: 1
    2. Bsp: "um|bring_en_" prio: 8 Kat. "Straftat" cat_prio: 10

    Ich habe z.b. solch eine Umsetzungsidee:

    Wie in Bsp. 2 soll PHP nun als Pattern nach folgenden Kriterien suchen:

    PHP-Code:
    $pattern "~(umbringen|bring (.*) um|um (.*) bring)~s"
    Dabei habe ich mir eine Formel "entwickelt":

    Prioritätenfühler P:
    P = Prio des Wortes * Prio der Cat

    P_insgesamt = SUM(Der P's) / Anzahl der Funde

    Wenn ein Text gesucht wird, wird abgewogen:

    Der Text: "du arschloch, du volltrottel"
    ergibt für arschloch (1 *1)
    ergibt für volltrottel (1*1)

    Macht:
    P_insgesamt = ( P1+P2 ) / Anz (wenn anz > =3 dann anz-1 nehmen)
    P_insgesamt = ( P1 +P2) / 2 = 1 => nicht loggen


    Der Text: "du arschloch, du volltrottel, bastard"
    ergibt für arschloch (1 *1)
    ergibt für volltrottel (1*1)
    ergibt für bastard (1*1)

    Macht:
    P_insgesamt = ( P1+P2 + P3) / Anz-1
    P_insgesamt = ( P1 +P2 + P3) / 3-1
    P_insgesamt = ( P1 +P2 + P3) / 2
    P_insgesamt = 3 / 2 = 1,5
    1,5 > 1 = alarm schlagen (1=ersteht aus der kat.prio)



    Der Text: "du arschloch, ich bring dich um" für die kat. straftat mit der prio 10 und der prio des wortes 8
    ergibt für arschloch (1 *1)
    ergibt für bring uml (10*8)


    Macht:
    P_insgesamt = ( 1 + 80) / 2
    P_insgesamt = ( 81 ) / 2
    P_insgesamt = 40,5
    40,5 > 10 = alarm schlagen

    Achja: P wird nur gezählt, wenn FSK_des_wortes > als das Alter des Users ist.


    Will man noch das Alter gewichten, würde ich folgedes machen:

    Score = [ P_insgesamt ] + [ Prio des Wortes * (Fsk_des_wortes - Useralter) *4 * Prio der Kat ]

    So kann man auch bei der "Kontrolle" der Logfiles nach Score = Wichtigkeit sortieren.


    Nächstes Problem: Perfomance

    Jedes Mal die DB nach den Wörtern abzufragen, zu vergewaltigen ist natürlich ...
    Ich dachte da an einen Cronjob 1 x in der Nacht oder nach dem Ändern der Tabelle crytolog_badwords, dass dieser mir eine PHP-Datei erzeugt, der mir ein Array zusammenbastelt, die ich dann in meiner Klasse verwende, um die ständige DB-Abfrage mir zu ersparen.


    Relationen müssen evtll. noch angepasst und verbessert werden. Ich wollte im allgemeinen wissen, was ihr davon haltet? Anregungen & Kritik sind gute und nährhafte Freunde.

    Vielen Dank für das Lesen.
    Zuletzt geändert von xManUx; 20.12.2006, 12:09.

    Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
    sondern mit den Augen das Manual zu lesen.

  • #2
    Re: [cryptolog] /me will 'ne Art Loging

    Schöne Theorie, aber ich finde es viel zu aufwendig, für etwas, was sowieso total irrelevant ist
    Wenn der User Arschloch schreiben will, soll er das tun. Wäre das jetzt im vorigen Satz zensiert worden? War doch nur ein Nomen, keine Beleidigung... Wo wir schon bei einem weiteren Problem sind, nämlich dem fehlenden Sinn-Verständnis des Satzes. Nicht jedes Wort ist automatisch bösartig, nur weil es in einem Satz vorkommt und das sind so Feinheiten die sich im normalen 0815-Server-Betrieb einfach nicht mehr abgreifen lassen, weil es an KI ran geht, wofür Google mal wieder mit ihren 2*200 billig-Computern an den Start geht um die 2 Stunden lang rechnen zu lassen, wie bei irgendeinem Übersetzungs-Contest wo die mitgemacht hatten...

    Bitte, ich halte dich nicht auf, aber ich finde die Idee etwas sehr abstrus ^^,

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Bitte, ich halte dich nicht auf, aber ich finde die Idee etwas sehr abstrus ^^,
      Öhm also mein Gedankengut tendiert eher zu Jugendschutz. Bestimmte Mechanismen sollen das Alter der Kommunizierenden überprüfen sowie den Wortlaut. Schlüsselwörter in verschiedenen Kombinationen sollen dazu führen dazu, dass das Log mit der Aufzeichnung beginnt. Klar, Kleinigkeiten wie "Arschloch" etc. sind wirklich nicht der Sache Wert. (Meistens) Aber in Bezug auf Jugendschutz, wird es interessant.

      Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
      sondern mit den Augen das Manual zu lesen.

      Kommentar


      • #4
        Original geschrieben von xManUx
        Öhm also mein Gedankengut tendiert eher zu Jugendschutz. Bestimmte Mechanismen sollen das Alter der Kommunizierenden überprüfen sowie den Wortlaut. Schlüsselwörter in verschiedenen Kombinationen sollen dazu führen dazu, dass das Log mit der Aufzeichnung beginnt. Klar, Kleinigkeiten wie "Arschloch" etc. sind wirklich nicht der Sache Wert. (Meistens) Aber in Bezug auf Jugendschutz, wird es interessant.
        Du haftest doch sowieso erst ab Kenntnis über einen Beitrag, die nötige automatische Überprüfung von Forenbeitragen wurde doch spätestens mit dem Heise-Prozess abgewimmelt

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Original geschrieben von ghostgambler
          Du haftest doch sowieso erst ab Kenntnis über einen Beitrag, die nötige automatische Überprüfung von Forenbeitragen wurde doch spätestens mit dem Heise-Prozess abgewimmelt
          Postgeheimnis... Emails, PM... sollte man nur im Notfall einsehen. Außerdem geht es um "Vermeidung". Man kann man sich über den Verwendungszweck und die Einsetzung solcher Überprüfungen streiten, die hier eigentlich indiskutabel sein sollte. Ich persönlich finde es praktischer, gleich ein fertiges Logfile zur Hand zu haben und die Daten auf das wichtigste reduziert zu haben - die man dann der Polizei aushändigen kann, nach menschlicher Einsicht der LOGs. Und abgesehen davon, wie gesagt, man kann es sinnvoll einsetzen oder eben auch nicht

          BTW: Aber danke für die Info @heise

          Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
          sondern mit den Augen das Manual zu lesen.

          Kommentar


          • #6
            Und öööh was machst du, wenn der Benutzer "A R S C H" schreibt? Also mit Leerzeichen und was weiß ich nicht alles? Da gäbs' dann ja zig-tausendeeeee Kombinationsmöglichkeiten..
            "I am what I am and I do what I can..."
            Meine HP -- Mein GPG-Key
            Meine Projekte: WebStorage 2.0 -- easyAJAX-Chat 2.2.0 (beta)

            Kommentar


            • #7
              Es ist noch wesentlich mehr gegen den Datenschutz wenn du anfängst wahllos Blacklisten auf private Nachrichten der User anzuwenden.
              Bei uns hat sich die komplette Domain des storage-Servers von static.example.org nach daten.example.org verändert. Wir haben uns, aus Gründen des Datenschutzes, dagegen entschieden in jeglichen Tabellen ersteres durch letzteres zu ersetzen

              Generell finde ich deine Theorie einfach viel zu aufwändig für den normalen Server, das ist so performance-lastig, dass es bei jeglichen meiner Projekten eigentlich gar nicht in die nähere Wahl der live-Software kommen würde ... dann ist der Server ja nur damit beschäftigt die Gewichtigkeit von PMs der User auszurechnen, wo bleibt da die restliche tolle Funktionalität die eine Website aus machen? ^^;

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #8
                Hi,

                damit das praktikabel ist darf es nicht auf einen einfachen badwordfilter
                hinauslaufen. ghostghambler hat ja bereits gesagt, dass für eine ordentliche
                anwendung eine semantische analyse des satzes nötig wäre. Und damit nicht
                genug. Es reicht dann nämlich auf einmal nicht mehr nur einen satz zu betrachten
                es geht um den gesamten sprachakt wenn wir von realtime interaktionen ausgehen oder auch von usenet/forums-diskussionen.

                Du hast also neben der nicht trivialen syntaktischen analyse noch zweie
                weitere nicht triviale problemklassen zu lösen. Jede der beiden stellt
                dich vor neue probleme. Das ist sehr aufwändig. Und es fehlen zur zeit
                noch die wissenschaftlichen grundlagen. An diesem thema wird noch geforscht.

                greets
                (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

                Kommentar

                Lädt...
                X