Schrift
[thread]3799[/thread]

ähnlichkeiten ermitteln?



<< |< 1 2 >| >> 12 Einträge, 2 Seiten
Froschpopo
 2007-03-27 04:19
#35375 #35375
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
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.
Ronnie
 2007-03-27 08:09
#35376 #35376
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
CPAN:bayesian könnte ein Ansatz sein.
renee
 2007-03-27 10:12
#35377 #35377
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Oder die CPAN:Levenshtein-Distanz...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Froschpopo
 2007-03-27 10:52
#35378 #35378
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Sind bei recht interessant. Aber es wäre schon cool, wenn man das ganze auf die Datenbank anwenden könnte und die ist mySQL.
renee
 2007-03-27 10:59
#35379 #35379
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du kannst Levenshtein für MySQL nachinstallieren: http://dev.mysql.com/doc/refman/5.1/en/udf-compiling.html#c8098
Oder Du benutzt SOUNDEX: http://dev.mysql.com/doc....soundex
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
GwenDragon
 2007-03-27 13:53
#35380 #35380
User since
2005-01-17
14565 Artikel
Admin1
[Homepage]
user image
SOUNDEX unter MySQL i. m. E. ist nur für Englisch funktionabel. Bei anderen Sprachen funktioniert es nicht richtig.
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

GoodFella
 2007-03-28 02:12
#35381 #35381
User since
2007-01-09
192 Artikel
BenutzerIn
[default_avatar]
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.
Froschpopo
 2007-03-29 18:33
#35382 #35382
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
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.
GwenDragon
 2007-03-29 19:52
#35383 #35383
User since
2005-01-17
14565 Artikel
Admin1
[Homepage]
user image
[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.

Quote
Important: 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
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

Froschpopo
 2007-03-29 20:58
#35384 #35384
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
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-->
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2007-03-27 04:19.