php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Scripts > BRAINSTORMING PHP/SQL/HTML/JS/CSS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


BRAINSTORMING PHP/SQL/HTML/JS/CSS Ihr habt eine Idee, aber keinen genauen Ansatz? Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
Normale Fragen bitte weiterhin in die entsprechenden Foren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 20-12-2006, 11:41
xManUx
 Registrierter Benutzer
Links : Onlinestatus : xManUx ist offline
Registriert seit: Feb 2004
Beiträge: 833
xManUx ist zur Zeit noch ein unbeschriebenes Blatt
Standard [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.
__________________

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


Geändert von xManUx (20-12-2006 um 12:09 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 20-12-2006, 14:22
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard 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 ^^,
Mit Zitat antworten
  #3 (permalink)  
Alt 20-12-2006, 17:30
xManUx
 Registrierter Benutzer
Links : Onlinestatus : xManUx ist offline
Registriert seit: Feb 2004
Beiträge: 833
xManUx ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
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.

Mit Zitat antworten
  #4 (permalink)  
Alt 20-12-2006, 17:45
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
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
Mit Zitat antworten
  #5 (permalink)  
Alt 20-12-2006, 20:14
xManUx
 Registrierter Benutzer
Links : Onlinestatus : xManUx ist offline
Registriert seit: Feb 2004
Beiträge: 833
xManUx ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
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.

Mit Zitat antworten
  #6 (permalink)  
Alt 20-12-2006, 21:03
nOe
 Registrierter Benutzer
Links : Onlinestatus : nOe ist offline
Registriert seit: Nov 2006
Ort: GAMERny
Beiträge: 253
nOe ist zur Zeit noch ein unbeschriebenes Blatt
nOe eine Nachricht über ICQ schicken
Standard

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)
Mit Zitat antworten
  #7 (permalink)  
Alt 20-12-2006, 22:02
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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? ^^;
Mit Zitat antworten
  #8 (permalink)  
Alt 21-12-2006, 08:25
closure
 Master
Links : Onlinestatus : closure ist offline
Registriert seit: Mar 2006
Beiträge: 796
closure ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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!")
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

Simple Forum PHP ansehen Simple Forum PHP

If you need simple forum or discussion on your website, then you've come to the right place. Simple Forum PHP is a script that is very easy to install and administer.

28.08.2021 nevenov | Kategorie: PHP/ Forum PHP Software
Formmailer Bootstrap 4

Mit dem Formmailer kann man sich eMails über seine Seite zukommen lassen.

08.07.2021 arne-home | Kategorie: PHP/ Formular
Fehlerseite Bootstrap 4

Bei Aufruf einer nicht existierenden Seite, teilen Sie Besuchern mit einer eigenen Fehlerseite mit, dass die gewünschte Seite nicht gefunden wurde. Die eigene Fehlerseite sollte dasselbe Design wie die Website haben. Zudem sollte ein Link zur Startseite a

04.07.2021 arne-home | Kategorie: PHP/ Counter
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:57 Uhr.