Metaphone ( text ; option )
Rate this function: Average rating: 3.3 (21 votes) Discuss this Custom Function
Craig K. Gowens,
Returns a phonetic key of a given word
Sample Input:
Metaphone ( Johnson ; 0 )
and
Metaphone ( Jansen ; 0 ) |
|
Sample Output:
|
Description:
This function is a FileMaker implementation based on the Metaphone and DoubleMetaphone algorithms developed by Lawrence Philips (see the the December 1990 issue of the journal <i>Computer Language</i> as a primer). It is based primarily on the original Metaphone algorithm but contains some of the pronunciation exceptions from DoubleMetaphone. Various other implementations in C/C++, Java and VB can be found by Yahoo!ing or Googling "Metaphone".
Metaphone is an excellent choice for generating a phonetic index for searches based on pronunciation, spellchecking suggestions for mispelt words or as a key for grouping similar sounding words together.
The option flag gives you the choice of number of characters to return. For zero, the function returns the entire string. For any integer 1-6, the function will returns that number of characters. For example Metaphone(Vanlandingham; 0) returns FNLNTNHM, but Metaphone(Vanlandingham; 4 )returns FNLN.
I am open to and interested in comments and suggestions for improvements to the algorithm. Please feel free to email me at ckgowens at austin dot rr dot com.
Note: these functions are not guaranteed
or supported by BrianDunning.com. Please contact the individual
developer with any questions or problems.
This is my Custom Function and I want to
edit it
Discuss:Make a comment about this Custom Function (please try to keep it brief & to the point). Anyone can post:
|
Newest Custom Functions:
| 1. |
Backwards( _Field ) |
| |
(Thu, May 23, 10:49am) |
| 2. |
FilteredPortalList ( fieldObjectName ; portalRow ) |
| |
(Tue, May 21, 5:33pm) |
| 3. |
ListToggle ( InList ; InValue ) |
| |
(Thu, May 16, 6:59pm) |
| 4. |
VatFormat ( vat ) |
| |
(Tue, May 14, 2:45am) |
| 5. |
CheckVatBE ( vat ) |
| |
(Tue, May 14, 2:32am) |
| 6. |
CheckIBAN (IBAN ) |
| |
(Tue, May 14, 2:24am) |
| 7. |
OrcidCheckDigit ( Orcid_id ; Result ; Iterations ) |
| |
(Wed, May 08, 1:44am) |
| 8. |
DateRangeBySpan ( Begin ; End ; Term) |
| |
(Mon, May 06, 6:53am) |
 |
|
Great function!
I have added a separator after string 0 to use the function with more than one word.
stringA = Substitute ( string1; [" " ; "*"] ; ["/" ; "*"] ; ["-" ; "*"]) ;
(the "*" itself is substituted with an " " in paddedtext-definition)
And a reintroduction of separator after string9:
stringB = Substitute ( string9; ["*" ;separator] ) /* Reintroduce word separator */
I still have two more wishes for the multiword version that I can not accomplish with my programming skills:
1. The ability to reduce every word in list to the length of the option-parameter (like WordShrink http://www.briandunning.com/cf/1374) (Now the length only applies to the whole string – not every word.)
2. The ability to let the rules in string1 and 8 apply to every word in the string – not only to the first and last respectively.
With both this included, you can make wonderful many-to-many relations for search functions. Ideal for library management systems.
Would like to post all modifications I have made, but this exceeds the 1500 character limit for comments.
Sjur Høgberg, Tønsberg, Norway
June 10, 2012 8:54am