User since
2003-08-15
2653
Artikel
BenutzerIn
Leider lässt mich meine studierende Freundin nicht schlafen.
Ein Grund, sich mit etwas Neuem zu beschäftigen.
Heute:
Einige User meine Community versenden leider Kettenmails.
Ich unterbinde dies, indem die letzten 50 Mails miteinander verglichen werden. Punkte und leerzeichen werden dabei ignoriert.
Leider funktioniert das nicht, wenn ein User Buchstaben verdreht, z.b. absichtlich aus "ich", "ihc", "ichh" oder "i ch" macht.
Deshalb bin ich auch folgende Idee gekommen:
Mails, die mehr als 100 Zeichen haben und sich zu 95% ähneln, sind Kettenmails.
Bei dem neuen Verfahren wird also für eine gewisse Anzahl von Zeichen ein Prozentwert festgelegt. Wird dieser Prozentwert erreicht, handelt es sich offenbar um eine mehrfach versandte Kettenmail.
Gibt es da in MySQL irgendeinen Trick, wie man z.b. 50 Datensätze miteinander vergleichen und dann ähnlichkeiten ermitteln kann?
Das Ergebnis muss nicht unbedingt ein Prozentwert sein. Es können auch nur die doppelt vorkommenden Zeichen, oder die "nicht-doppelt"-vorkommenden, sein.
Oder irgendetwas anderes.
Ideen sind jederzeit willkommen. Aber auch andere Vorschläge, wie man über Kettenmails tätig werden könnte.
Leider fühlen sich viele Frauen gestört, wenn sie wie "am Fließband" behandelt werden.
Dagegen muss dringend etwas unternommen werden.
Letztendlich kommt es ja auch den Männern zugute, wenn die Athmosphaere etwas gebessert wird und weibliche Mitglieder ein wenig euphorischer Nachrichten entgegennehmen.
User since
2003-08-15
2653
Artikel
BenutzerIn
Sind bei recht interessant. Aber es wäre schon cool, wenn man das ganze auf die Datenbank anwenden könnte und die ist mySQL.
User since
2003-08-04
14371
Artikel
ModeratorIn
User since
2005-01-17
14748
Artikel
Admin1
SOUNDEX unter MySQL i. m. E. ist nur für Englisch funktionabel. Bei anderen Sprachen funktioniert es nicht richtig.
User since
2007-01-09
192
Artikel
BenutzerIn
Angenommen, es sind nicht viele Datensätze, die bearbeitet bzw. verglichen werden müssen, dann könnte man die Daten auch in eine Liste speichern und String::Similarity verwenden: similarity($string1, $string2); ergibt einen Wert zwischen 0 und 1, der die Ähnlichkeit beider repräsentiert.
User since
2003-08-15
2653
Artikel
BenutzerIn
das problem ist eigentlich schon, dass ich das ganze möglichst performant halten möchte. Soundex ist deshalb eigentlich eine ideale Lösung. Aber mich würde mal interessieren, welche Quelle Gwen für die Aussage, Soundex sei nur für englisch, nimmt.
Also ich weiss wohl, dass es bei bestimmten Uniquodes probleme gibt.
User since
2005-01-17
14748
Artikel
Admin1
[quote=Froschpopo,29.03.2007, 16:33]Aber mich würde mal interessieren, welche Quelle Gwen für die Aussage, Soundex sei nur für englisch, nimmt.[/quote]
Bei MySQL ist SOUNDEX nur für Englisch geeignet.
QuoteImportant: When using SOUNDEX(), you should be aware of the following limitations:
This function, as currently implemented, is intended to work well with strings that are in the English language only. Strings in other languages may not produce reliable results.
This function is not guaranteed to provide consistent results with strings that use multi-byte character sets, including utf-8.
Quelle:
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html
User since
2003-08-15
2653
Artikel
BenutzerIn
dann schicke ich die strings vorher durch dict.cc, lasse sie übersetzen, schreibe sie in eine temporäre tabelle und lasse sie durch Soundex jagen und lösche den temporären datensatz wieder. :D\n\n
<!--EDIT|Froschpopo|1175187547-->