Discussion:
metaphone mit deutscher Phonetik
(zu alt für eine Antwort)
Borsti
2003-07-16 10:40:11 UTC
Permalink
was hast du mit der metaphonefunktion vor?
Thomas Wacker
2003-07-16 10:53:30 UTC
Permalink
Post by Borsti
was hast du mit der metaphonefunktion vor?
Ich will zwei "deutsche" Namen vergleichen:

Beispiel: "Maier", "Meier" und "Mayer" müssten eine hohe Gleichheit
aufweisen. Der Ähnlichkeits-Prozentwert kann auch per similar_text ermittelt
werden, allerdings berücksichtigt dieser auch wieder nur englische
Sprachphonetik.

Sollte zum Dublettencheck in einer MySQL-Datenbank dienen.

Gruß
Thomas Wacker
sebastian maurer
2003-07-16 20:48:27 UTC
Permalink
On Wed, 16 Jul 2003 17:54:10 +0200, "Paul Lamp"
Ich habe dafür bis jetzt immer Soundex von MySQL benutzt.
Gekoppelt mit einer LIKE Anfrage fängst du so gut wie alle Dubletten ab.
und wie schaut die sql abfrage dann genau aus? ich habe es ausprobiert
und es klappt nicht. doks habe ich auch keine genauen gefunden.

gruß
sebastian
Paul Lamp
2003-07-17 08:26:14 UTC
Permalink
Hallo,
Post by sebastian maurer
On Wed, 16 Jul 2003 17:54:10 +0200, "Paul Lamp"
Ich habe dafür bis jetzt immer Soundex von MySQL benutzt.
Gekoppelt mit einer LIKE Anfrage fängst du so gut wie alle Dubletten ab.
und wie schaut die sql abfrage dann genau aus? ich habe es ausprobiert
und es klappt nicht. doks habe ich auch keine genauen gefunden.
Etwas in der Art sollte es tun:

SELECT vorname, nachname FROM namen WHERE 1 AND SOUNDEX(nachname) =
SOUNDEX('Meier') AND nachname LIKE "%Meier%"

Doku:
http://www.mysql.com/doc/en/String_functions.html
http://www.mysql.com/doc/en/String_comparison_functions.html

Grüße
Paul
Niels Braczek
2003-07-17 14:15:46 UTC
Permalink
Post by Paul Lamp
SELECT vorname, nachname FROM namen WHERE 1 AND SOUNDEX(nachname) =
SOUNDEX('Meier') AND nachname LIKE "%Meier%"
Das lässt sich stark verkürzen zu
SELECT vorname, nachname FROM namen WHERE nachname LIKE "%Meier%".
Damit ist also nichts gewonnen.

MfG
Niels

--
"Klar weiß ich, dass ich den Lack mit einem Tuch polieren kann, wie alle
Anderen das machen, ich möchte aber den Hammer benutzen. Wie geht das?"
Niels Braczek
2003-07-17 15:20:11 UTC
Permalink
Es heißt Einleitungs*zeile*
Post by Niels Braczek
Post by Paul Lamp
SELECT vorname, nachname FROM namen WHERE 1 AND SOUNDEX(nachname) =
SOUNDEX('Meier') AND nachname LIKE "%Meier%"
Das lässt sich stark verkürzen zu
SELECT vorname, nachname FROM namen WHERE nachname LIKE "%Meier%".
Damit ist also nichts gewonnen.
Aus dem Kontext siehe auch folgendes
[...]
Schon klar.
Deine Abfrage wiederum liefert nur eindeutige oder Teilmatches zurück,
wohingegen der Soundex eine phonetische Überprüfung vornimmt.
'Meine' Abfrage ist deine Abfrage bereinigt um die Bedingungen, die die
Ergebnismenge nicht weiter einschränken.

MfG
Niels

--
"Klar weiß ich, dass ich den Lack mit einem Tuch polieren kann, wie alle
Anderen das machen, ich möchte aber den Hammer benutzen. Wie geht das?"
Niels Braczek
2003-07-17 14:19:58 UTC
Permalink
hat jemand bzw. bietet jemand eine Art metaphone-Funktion mit
Berücksichtigung deutscher Phonetik an?
Leider find' ich es nicht mehr... aber vielleicht hilft dir der Ansatz.

Vor Jahren habe ich mal eine 'etymologische' Phonetik-Vergleichsfunktion
gebaut, die Lautverschiebungen berücksichtigte. Dazu wurden die
Buchstaben in Klassen eingeteilt, zB. landeten b,v,w in einer Klasse (da
das griechische beta wie veta gesprochen wird). Über solche Vergleiche
konnte ich eine sehr gute Trefferquote erreichen. Man hatte fast den
Eindruck, als verstünde das Teil, was man *meint*. Aber wie gesagt:
Leider in den Tiefen der Zeit verschollen :-(

HTH
Niels

--
"Klar weiß ich, dass ich den Lack mit einem Tuch polieren kann, wie alle
Anderen das machen, ich möchte aber den Hammer benutzen. Wie geht das?"
Loading...