soundex

soundex/metaphone関数:単語の発音文字列を調べる

使い方
$sound1 = soundex( “Word” );
$sound2 = metaphone( “Word” );

soundexとmetaphoneの関数は両方とも引数の文字列の発音を調べることのできる関数です。
soundex関数ならばW630とか、metaphone関数ならばWRTといった文字列が返ってきます。

使いどころ
いったいどういう時に使うんだ?と言いたくなる関数です。
そうです。これは他人にどうでもいいPHPの豆知識をひけらかすための関数なのです。
それは冗談ですが、、、
検索サービスで似たような単語や文章の検索などに使えるかもしれません。

少しだけ関数別にどんな値が返ってくるか調べてみました。

単語 soundex関数の結果 metaphone関数の結果
Light L230 LFT
Right R230 RFT
Fight F230 FFT
Night N230 NFT
Knight K523 NFT
Appropriate A161 APRPRT
Inappropriate I516 INPRPRT
Web Service W126 WBSRFS
Web Site W123 WBST
This is a pen. T221 0SSPN
What does it mean? W323 WTTSTMN
ひかり 0000
みぎ 0000
ひだり 0000

metaphone関数の方がパッと見で分かりやすい発音の文字列が返ってきます。
予想してましたが、日本語の単語(UTF-8のマルチバイト文字列)ではやっぱりダメですね。
metaphone関数ならば単語ではなくちょっとした文章でもそれなりの発音文字列が得られそうです。
使うならばmetaphone関数がオススメかもしれません。

公式サイトマニュアル
http://php.net/manual/ja/function.soundex.php
http://php.net/manual/ja/function.metaphone.php