phpbar.de logo

Mailinglisten-Archive

[php] =?ISO-8859-1?B?UmU6IFtwaHBdIHNvdW5kZXggLSBMYXV05GhubGljaGtlaXQ? =

[php] =?ISO-8859-1?B?UmU6IFtwaHBdIHNvdW5kZXggLSBMYXV05GhubGljaGtlaXQ? =

Daniel Lorch php_(at)_phpcenter.de
Fri, 7 Jun 2002 20:03:04 +0200


Hi,

> Beim dem rumspielen mit "soundex()" ist mir etwas aufgefallen, was ich nicht
> ganz deuten kann.
> 1. Der String "brainbits" bekommt den Wert "B651".
> 2. Der String "brainhits" bekommt den Wert "B653".
> 3. Der String "brainpool" bekommt den Wert "B651".
> IMHO ist die Lautähnlichkeit zwischen 1. und 2. größer als zwischen 1. und
> 3. Warum aber sieht soundex() das genau andersherum?

Ich glaube das liegt daran, dass das "b" von bits prinzipiell der
gleiche ton ist wie das "p", bloss nicht betont (dito gilt für "d" und
"t", "k" und "g", ..).

Den zu Grunde liegenden Algorithmus kenne ich nicht, aber er ist im
Buch "The Art Of Computer Programming, Vol. 3: Sorting And Searching",
von Donald Knuth Addison-Wesley (1973), S. 391-392 beschrieben. Bei
dieser Buchreihe soll es sich um "die Bibel für Programmierer"
handeln, habe ich mir sagen lassen. Leider sind sämtliche Beispiele in
einer Meta-Assemblersprache geschrieben (für einen nicht-existierenden
Prozessor) - mit der Idee, dass man das Buch nicht jedes Jahrzehnt neu
schreiben muss um der momentan populären Sprache gerecht zu werden.
Deshalb ist das Buch nicht gerade trivial zu verstehen, aber wenn Du
viel Freizeit hast, kannst Du dich ja heranwagen.

Um den Algorithmus für die deutsche Sprache anpassen zu können,
müsstest Du also zuerst den original-Algorithmus kennen lernen :)

-daniel


php::bar PHP Wiki   -   Listenarchive