search for in the  
<md5money_format>
Last updated: Thu, 19 May 2005

metaphone

(PHP 4, PHP 5)

metaphone -- Calculate the metaphone key of a string

Description

string metaphone ( string str [, int phones] )

Calculates the metaphone key of str.

Similar to soundex() metaphone creates the same key for similar sounding words. It's more accurate than soundex() as it knows the basic rules of English pronunciation. The metaphone generated keys are of variable length.

Metaphone was developed by Lawrence Philips <lphilips at verity dot com>. It is described in ["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995].



User Contributed Notes
metaphone
stpierre(ta)nebr]NOSPAM[wesleyan(tod)edu
09-Jul-2004 01:17
A C implementation of double metaphone is at http://www.cpan.org/modules/ by-authors/id/MAURICE/Text-DoubleMetaphone-0.07.tar.gz.  (Sorry I had to break that URL up; wouldn't let me post it otherwise.)  If you really need double metaphone that badly, you could roll this into your PHP build for (I would suspect) substantial performance gains.
mail at spam-off dot iaindooley dot com
16-Jan-2004 02:37
you can use the metaphone function quite effectively with phrases by taking the levenshtein distances between two metaphone codes, and then taking this as a percentage of the length of the original metaphone code. thus you can define a percentage error, (say 20%) and accept only matches that are closer than that. i've found this works quite effectively in a function i am using on my website where an album name that the user entered is verified against existing album names that may be similar. this is also an excellent way of people being able to vaguely remember a phrase and get several suggestions out of the database. so you could type "i stiched nine times" with an error percentage of, say, 50 and still get 'a stitch in time saves nine' back as a match.
server: zinkconsulting.com user: galen@
26-Nov-2003 04:18
A small warning about the double metaphone function/class implemented in php: it's slow. Very slow.

On my Mac OS X box it takes roughly 4 seconds to calculate the double_metaphone of a given string 1,000 times and set a variable to that value. Given the exact same code, the built in metaphone function takes a mere 0.03 seconds. That's a huge difference. For reference, soundex takes about 0.015 seconds.

I had dreams of ranking my person database search results with double_metaphone, but with searches yielding a few thousand results sometimes, this isn't terribly reasonable. I'm back to basic metaphone functions.

I'd suggest anyone considering the use of the double_metaphone functionality weigh the slight improvement in results with the fact it's 100 times slower than the php function metaphone. I believe this difference is probably due mostly to implementation and optimization (php code vs. optimized internal php function).

Anybody up for writing a double_metaphone function for php? Maybe php 5?
10-Jan-2003 12:47
Note that you can't really use this on phrases, the results are not what you might expect, see the following test code.

echo metaphone("This is a test");

Output:
0SSTST

echo metaphone("This");
echo metaphone("is");
echo metaphone("a");
echo metaphone("test");

Output:
0SISATST
amon at nonmouse dot net
31-Jul-2002 05:14
You can see this function at work at http://wamex.org.

My only wish is that it returned phonetic values for numbers, instead of "".
ahjs at ozemail dot com dot au
13-Mar-2002 12:51
The improved double metaphone algorithm is available as a php class and function at http://swoodbridge.com/DoubleMetaPhone/
davef at getacard dot com
21-Apr-2000 08:52
A good reference to explain how the metaphone stuff works (and show you a working example) is:
http://www.lanw.com/java/phonetic/

<md5money_format>
 Last updated: Thu, 19 May 2005
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: The Server Pages
Last updated: Thu May 19 17:35:34 2005 CDT