Die Schriftsprache unterscheidet sich an vielen Stellen vom gesprochenen Wort. Die Unterschiede zwischen dem geschriebenen Wort und der gesprochenen Variante sind gehörig - das gilt für viele Sprachen – so auch für Texte in englischer Sprache. Es gibt aber gerade für die englische Sprache Algorithmen, die die Wörter des Englischen in eine bestimmte Form der Lautschrift überführen. Man erhöht so die Trefferwahrscheinlichkeit. Wie oft hat man sich schon über fehlerhafte Suchauskünfte im Google geärgert - nur weil die Schreibweise nicht passend war. In der Literatur ist die Prozedur soundex() bekannt.
Auch in PHP gibt es zu diesem Problem ein Implementation - der Befehl metaphone(). Passend hautsächlich allerdings für die englische Sprache, für andere Sprachen wie Deutsch oder Französische ist das Verfahren so leider nicht exakt zu übertragen.
Man schaue sich folgendes Beispiel einmal an:
<?php
/*
* Created on 28.01.2010 by Nico Schubert
*/
$text = 'cash';
$rueckgabe_metaphone = metaphone($text);
echo 'Der englische Klangwert von "'.$text.'" ist:
'.$rueckgabe_metaphone.'<br>';
$text = 'flash';
$rueckgabe_metaphone = metaphone($text);
echo 'Der englische Klangwert von "'.$text.'" ist:
'.$rueckgabe_metaphone.'<br>';
?>
Ausgabe:
Der englische Klangwert von "cash" ist: KX
Der englische Klangwert von "flash" ist: FLX
Erklärung:
Das Beispiel verwendet die eingebaute Prozedur methaphone(), um den Lautwert eines Strings zu berechnen. Die Prozedur „Methaphone“ ist eine unitäre Funktion, also eine Funktion, die ein einziges Argument hat – hier in dem Beispiel die umzuwandelnden Strings. Der Rückgabewert entspricht dem Klangwert des Strings. Im Beispiel werden die Begriffe "cash" und "flash" in die gesprochenen Varianten umgewandelt. Aus dem Sprachstring wird eine Pseudo- Lautschrift Form erstellt. Dieser String wird dann mittels des echo Befehles auf der Konsole ausgegeben.
Man könnte diese Werte dann einem Sprachgenerator wie "Sam" zuweisen, der dann aus dem Text wieder gesprochene Sprache erzeugt. Der erzeugte Wert kann dann auch für eine Verschlagwortung der Begriffe genutzt werden und in eine MySql Datenbank eingepflegt werden. Dann wäre eine schnelle, indexierte Suche unter MySql nach dem Lautwert möglich.
Wenn man den Lautwert von deutschen Begriffen bestimmen möchte, dann empfiehlt sich die Umwandlung nach dem sogenannten Kölner Algorithmus. Diese Prozedur berücksichtigt ziemlich genau die Eigenheiten der deutschen Sprache. Sie finden dazu eine fertige Php Funktion unter x3m.ch, diese Funktion ist an den Kölner Algorithmus angelegt. In grober Näherung kann man die Prozedur metaphone() aber auch für Texte in deutscher Sprache verwenden.