Knowledge

Metaphone

Source 📝

238:
names commonly found in the United States. It improves encoding for proper names in particular to a considerable extent. The author claims that in general it improves accuracy for all words from the approximately 89% of Double Metaphone to 98%. Developers can also now set switches in code to cause the algorithm to encode Metaphone keys 1) taking non-initial vowels into account, as well as 2) encoding voiced and unvoiced consonants differently. This allows the result set to be more closely focused if the developer finds that the search results include too many words that don't resemble the search term closely enough. Metaphone 3 is sold as C++, Java, C#, PHP, Perl, and PL/SQL source, Ruby and Python wrappers accessing a Java jar, and also Metaphone 3 for Spanish and German pronunciation available as Java and C# source. The latest revision of the Metaphone 3 algorithm is v2.5.4, released March 2015. The Metaphone3 Java source code for an earlier version, 2.1.3, lacking a large number of encoding corrections made in the current version, version 2.5.4, was included as part of the OpenRefine project and is publicly viewable.
45:. Contrary to the original algorithm whose application is limited to English only, this version takes into account spelling peculiarities of a number of other languages. In 2009 Philips released a third version, called Metaphone 3, which achieves an accuracy of approximately 99% for English words, non-English words familiar to Americans, and first names and family names commonly found in the United States, having been developed according to modern engineering standards against a test harness of prepared correct encodings. 285:
the same as 'D'. Consider, also, that all English speakers often pronounce 'Z' where 'S' is spelled, almost always when a noun ending in a voiced consonant or a liquid is pluralized, for example "seasons", "beams", "examples", etc. Not encoding vowels after an initial vowel sound will help to group words where a vowel and a consonant may be transposed in the misspelling or alternative pronunciation.
284:
This approximate encoding is necessary to account for the way English speakers vary their pronunciations and misspell or otherwise vary words and names they are trying to spell. Vowels, of course, are notoriously highly variable. British speakers often complain that Americans seem to pronounce 'T's
147:
To implement Metaphone without purchasing a (source code) copy of Metaphone 3, the reference implementation of Double Metaphone can be used. Alternatively, version 2.1.3 of Metaphone 3, an earlier 2009 version without a number of encoding corrections made in the current version, version 2.5.4, has
237:
A professional version was released in October 2009, developed by the same author, Lawrence Philips. It is a commercial product sold as source code. Metaphone 3 further improves phonetic encoding of words in the English language, non-English words familiar to Americans, and first names and family
37:
algorithm by using information about variations and inconsistencies in English spelling and pronunciation to produce a more accurate encoding, which does a better job of matching words and names which sound similar. As with Soundex, similar-sounding words should share the same keys. Metaphone is
143:
This table does not constitute a complete description of the original Metaphone algorithm, and the algorithm cannot be coded correctly from it. Original Metaphone contained many errors and was superseded by Double Metaphone, and in turn Double Metaphone and original Metaphone were superseded by
169:
It is called "Double" because it can return both a primary and a secondary code for a string; this accounts for some ambiguous cases as well as for multiple variants of surnames with common ancestry. For example, encoding the name "Smith" yields a primary code of
94:'C' transforms to 'X' if followed by 'IA' or 'H' (unless in latter case, it is part of '-SCH-', in which case it transforms to 'K'). 'C' transforms to 'S' if followed by 'I', 'E', or 'Y'. Otherwise, 'C' transforms to 'K'. 270:
words that start with a vowel sound will have an 'A', representing any vowel, as the first character of the encoding (in Double Metaphone and Metaphone 3 - original Metaphone just preserves the actual vowel),
305:
languages. On the other hand, rough phonetic encoding causes language dependency — or, in a language variant, average language-speaker dependency — mainly for non-English variants.
229:, and other origins. Thus it uses a much more complex ruleset for coding than its predecessor; for example, it tests for approximately 100 different contexts of the use of the letter C alone. 342: 160:
The Double Metaphone phonetic encoding algorithm is the second generation of this algorithm. Its implementation was described in the June 2000 issue of
561: 434: 276:
voiced/unvoiced consonant pairs will be mapped to the same encoding. (Examples of voiced/unvoiced consonant pairs are D/T, B/P, Z/S, G/K, etc.).
478: 626: 81:
AEIOU are also used, but only at the beginning of the code. This table summarizes most of the rules in the original implementation:
100:
Drop 'G' if followed by 'H' and 'H' is not at the end or before a vowel. Drop 'G' if followed by 'N' or 'NED' and is at the end.
313: 33:, published by Lawrence Philips in 1990, for indexing words by their English pronunciation. It fundamentally improves on the 246:
There are some misconceptions about the Metaphone algorithms that should be addressed. The following statements are true:
657: 352: 294: 103:'G' transforms to 'J' if before 'I', 'E', or 'Y', and it is not in 'GG'. Otherwise, 'G' transforms to 'K'. 347: 162: 121:'T' transforms to 'X' if followed by 'IA' or 'IO'. 'TH' transforms to '0'. Drop 'T' if followed by 'CH'. 257:
produce phonetic representations of the input words and names; rather, the output is an intentionally
309: 144:
Metaphone 3, which corrects thousands of miscodings that will be produced by the first two versions.
485: 202: 30: 317: 370:
Hanging on the Metaphone, Lawrence Philips. Computer Language, Vol. 7, No. 12 (December), 1990.
166:. It makes a number of fundamental design improvements over the original Metaphone algorithm. 20: 226: 222: 218: 206: 198: 194: 97:'D' transforms to 'J' if followed by 'GE', 'GY', or 'GI'. Otherwise, 'D' transforms to 'T'. 214: 210: 651: 302: 380: 250:
All of them are designed to address regular, "dictionary" words, not just names, and
74: 70: 58: 604: 321: 149: 127:'WH' transforms to 'W' if at the beginning. Drop 'W' if not followed by a vowel. 337: 631: 621: 616: 130:'X' transforms to 'S' if at the beginning. Otherwise, 'X' transforms to 'KS'. 637: 479:"Best Faces Forward: A Large-scale Study of People Search in the Enterprise" 455: 308:
Perhaps the first example of stable adaptation of non-English metaphone was
273:
vowels after an initial vowel sound will be disregarded and not encoded, and
88:
If the word begins with 'KN', 'GN', 'PN', 'AE', 'WR', drop the first letter.
54: 406: 298: 34: 607:
Metaphone for Brazilian Portuguese, in C with PHP and PostgreSQL port.
588: 477:
Guy, Ido; Ur, Sigalit; Ronen, Inbal; Weber, Sara; Oral, Tolga (2012).
41:
Philips later produced a new version of the algorithm, which he named
641: 439: 78: 77:", and the others represent their usual English pronunciations. The 610: 66: 62: 19:"Lawrence Philips" redirects here. For the football player, see 511: 193:
Double Metaphone tries to account for myriad irregularities in
536: 38:
available as a built-in operator in a number of systems.
118:'S' transforms to 'X' if followed by 'H', 'IO', or 'IA'. 343:
New York State Identification and Intelligence System
261:
phonetic representation, according to this standard:
178:, while the name "Schmidt" yields a primary code of 591:, By Lawrence Phillips, June 1, 2000, Dr Dobb's, 106:Drop 'H' if after vowel and not before a vowel. 320:municipality of Brazil, and it evolved to the 297:and other languages, having been preferred to 85:Drop duplicate adjacent letters, except for C. 57:symbols 0BFHJKLMNPRSTWXY. The '0' represents " 91:Drop 'B' if after 'M' at the end of the word. 8: 613:Metaphone for Brazilian Portuguese, in Java. 148:been made available under the terms of the 139:Drop all vowels unless it is the beginning. 599:Metaphone algorithms for other languages 512:"Lawrence Philips' Metaphone Algorithm" 456:"The double metaphone search algorithm" 363: 627:Double Metaphone algorithm for Amharic 622:Double Metaphone algorithm for Bangla 589:The Double Metaphone Search Algorithm 42: 16:Phonetic algorithm for indexing words 7: 133:Drop 'Y' if not followed by a vowel. 53:Original Metaphone codes use the 16 562:"OpenRefine source for Metaphone3" 14: 454:Philips, Lawrence (June 2000). 1: 611:Brazilian Portuguese in Java 289:Metaphone of other languages 152:via the OpenRefine project. 617:Spanish Metaphone in Python 405:Philips, Lawrence (1999) . 353:Approximate string matching 674: 537:"Anthropomorphic Software" 316:as a database solution in 18: 632:Russian Metaphone in Ruby 605:Brazilian Portuguese in C 381:"Morfoedro - Technology" 293:Metaphone is useful for 253:Metaphone algorithms do 182:and a secondary code of 174:and a secondary code of 112:'PH' transforms to 'F'. 109:'CK' transforms to 'K'. 136:'Z' transforms to 'S'. 124:'V' transforms to 'F'. 115:'Q' transforms to 'K'. 348:Match Rating Approach 242:Common misconceptions 310:Brazilian Portuguese 658:Phonetic algorithms 491:on December 1, 2023 460:C/C++ Users Journal 314:originated in ~2008 163:C/C++ Users Journal 69:), 'X' represents " 407:"Double Metaphone" 156:Double Metaphone 31:phonetic algorithm 541:www.amorphics.com 510:Atkinson, Kevin. 65:approximation of 21:Lawrence Phillips 665: 638:Double Metaphone 593:Original article 577: 576: 574: 572: 558: 552: 551: 549: 547: 533: 527: 526: 524: 522: 507: 501: 500: 498: 496: 490: 484:. Archived from 483: 474: 468: 467: 451: 445: 444: 431: 425: 424: 422: 420: 411: 402: 396: 395: 393: 391: 385:www.morfoedro.it 377: 371: 368: 325: 295:English variants 43:Double Metaphone 673: 672: 668: 667: 666: 664: 663: 662: 648: 647: 601: 585: 580: 570: 568: 560: 559: 555: 545: 543: 535: 534: 530: 520: 518: 509: 508: 504: 494: 492: 488: 481: 476: 475: 471: 453: 452: 448: 433: 432: 428: 418: 416: 409: 404: 403: 399: 389: 387: 379: 378: 374: 369: 365: 361: 334: 323: 318:Várzea Paulista 291: 244: 235: 158: 51: 24: 17: 12: 11: 5: 671: 669: 661: 660: 650: 649: 646: 645: 635: 629: 624: 619: 614: 608: 600: 597: 596: 595: 584: 583:External links 581: 579: 578: 553: 528: 502: 469: 446: 443:. 19 May 2022. 426: 397: 372: 362: 360: 357: 356: 355: 350: 345: 340: 333: 330: 324:metaphone-ptbr 290: 287: 282: 281: 280: 279: 278: 277: 274: 271: 263: 262: 251: 243: 240: 234: 231: 157: 154: 141: 140: 137: 134: 131: 128: 125: 122: 119: 116: 113: 110: 107: 104: 101: 98: 95: 92: 89: 86: 50: 47: 15: 13: 10: 9: 6: 4: 3: 2: 670: 659: 656: 655: 653: 644:in JavaScript 643: 639: 636: 633: 630: 628: 625: 623: 620: 618: 615: 612: 609: 606: 603: 602: 598: 594: 590: 587: 586: 582: 567: 563: 557: 554: 542: 538: 532: 529: 517: 513: 506: 503: 487: 480: 473: 470: 465: 461: 457: 450: 447: 442: 441: 436: 430: 427: 415: 408: 401: 398: 386: 382: 376: 373: 367: 364: 358: 354: 351: 349: 346: 344: 341: 339: 336: 335: 331: 329: 327: 319: 315: 311: 306: 304: 303:Indo-European 300: 296: 288: 286: 275: 272: 269: 268: 267: 266: 265: 264: 260: 256: 252: 249: 248: 247: 241: 239: 232: 230: 228: 224: 220: 216: 212: 208: 204: 200: 196: 191: 189: 185: 181: 177: 173: 167: 165: 164: 155: 153: 151: 145: 138: 135: 132: 129: 126: 123: 120: 117: 114: 111: 108: 105: 102: 99: 96: 93: 90: 87: 84: 83: 82: 80: 76: 72: 68: 64: 60: 56: 48: 46: 44: 39: 36: 32: 28: 22: 592: 569:. Retrieved 565: 556: 544:. Retrieved 540: 531: 519:. Retrieved 515: 505: 495:February 23, 493:. Retrieved 486:the original 472: 463: 459: 449: 438: 435:"OpenRefine" 429: 419:February 23, 417:. Retrieved 413: 400: 388:. Retrieved 384: 375: 366: 307: 292: 283: 258: 254: 245: 236: 192: 187: 183: 179: 175: 171: 168: 161: 159: 146: 142: 52: 40: 26: 25: 466:(6): 38–43. 301:in several 259:approximate 233:Metaphone 3 190:in common. 186:—both have 150:BSD License 566:github.com 516:aspell.net 414:GNU Aspell 359:References 338:Caverphone 642:Metaphone 326:algorithm 61:" (as an 55:consonant 49:Procedure 27:Metaphone 652:Category 332:See also 322:current 203:Germanic 299:Soundex 227:Chinese 223:Spanish 219:Italian 195:English 35:Soundex 546:16 May 521:16 May 440:GitHub 390:16 May 215:French 207:Celtic 199:Slavic 79:vowels 73:" or " 571:2 Nov 489:(PDF) 482:(PDF) 410:(CPP) 312:: it 211:Greek 63:ASCII 29:is a 640:and 573:2020 548:2018 523:2018 497:2024 421:2024 392:2018 255:not 197:of 188:XMT 184:SMT 180:XMT 176:XMT 172:SM0 654:: 564:. 539:. 514:. 464:18 462:. 458:. 437:. 412:. 383:. 328:. 225:, 221:, 217:, 213:, 209:, 205:, 201:, 75:ch 71:sh 59:th 634:. 575:. 550:. 525:. 499:. 423:. 394:. 67:Θ 23:.

Index

Lawrence Phillips
phonetic algorithm
Soundex
Double Metaphone
consonant
th
ASCII
Θ
sh
ch
vowels
BSD License
C/C++ Users Journal
English
Slavic
Germanic
Celtic
Greek
French
Italian
Spanish
Chinese
English variants
Soundex
Indo-European
Brazilian Portuguese
originated in ~2008
Várzea Paulista
current metaphone-ptbr algorithm
Caverphone

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.