# phonetic suggestions by PHONE and optional ph field of dictionary words # Documentationo of PHONE: http://aspell.net/man-html/Phonetic-Code.html # phonetic_english.h - phonetic transformation rules for use with phonetic.c # Copyright (C) 2000 Björn Jacke # # This rule set is based on Lawrence Phillips original metaphone # algorithm with modifications made by Michael Kuhn in his # C implantation, more modifications by Björn Jacke when # converting the algorithm to a rule set and minor # touch ups by Kevin Atkinson # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License version 2.1 as published by the Free Software Foundation; # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # Björn Jacke may be reached by email at bjoern.jacke@gmx.de # # Changelog: # # 2000-01-05 Björn Jacke # - first version with translation rules derived from # metaphone.cc distributed with aspell 0.28.3 # - "TH" is now representated as "@" because "0" is a # meta character # - removed TH(!vowel) --> T; always use TH --> # instead # - dropped "^AE" -> "E" (redundant) # - "ing" is transformed to "N", not "NK" # - "SCH(EO)" transforms to "SK" now # - added R --> SILENT if (after a vowel) and no (vowel or # "y" follows) like in "Marcy" or "abort" # - H is SILENT in RH at beginning of words # - H is SILENT if vowel leads and "Y" follows # - some ".OUGH.." --> ...F exceptions added # - "^V" transforms to "W" # 2000-01-07 Kevin Atkinson # Converted from header to data file. # # 2007-08-23 László Németh # Add PHONE header and PHONE keywords # # version 1.1 PHONE 105 PHONE AH(AEIOUY)-^ *H PHONE AR(AEIOUY)-^ *R PHONE A(HR)^ * PHONE A^ * PHONE AH(AEIOUY)- H PHONE AR(AEIOUY)- R PHONE A(HR) _ PHONE BB- _ PHONE B B PHONE CQ- _ PHONE CIA X PHONE CH X PHONE C(EIY)- S PHONE CK K PHONE COUGH^ KF PHONE CC< C PHONE C K PHONE DG(EIY) K PHONE DD- _ PHONE D T PHONE É< E PHONE EH(AEIOUY)-^ *H PHONE ER(AEIOUY)-^ *R PHONE E(HR)^ * PHONE ENOUGH^$ *NF PHONE E^ * PHONE EH(AEIOUY)- H PHONE ER(AEIOUY)- R PHONE E(HR) _ PHONE FF- _ PHONE F F PHONE GN^ N PHONE GN$ N PHONE GNS$ NS PHONE GNED$ N PHONE GH(AEIOUY)- K PHONE GH _ PHONE GG9 K PHONE G K PHONE H H PHONE IH(AEIOUY)-^ *H PHONE IR(AEIOUY)-^ *R PHONE I(HR)^ * PHONE I^ * PHONE ING6 N PHONE IH(AEIOUY)- H PHONE IR(AEIOUY)- R PHONE I(HR) _ PHONE J K PHONE KN^ N PHONE KK- _ PHONE K K PHONE LAUGH^ LF PHONE LL- _ PHONE L L PHONE MB$ M PHONE MM M PHONE M M PHONE NN- _ PHONE N N PHONE OH(AEIOUY)-^ *H PHONE OR(AEIOUY)-^ *R PHONE O(HR)^ * PHONE O^ * PHONE OH(AEIOUY)- H PHONE OR(AEIOUY)- R PHONE O(HR) _ PHONE PH F PHONE PN^ N PHONE PP- _ PHONE P P PHONE Q K PHONE RH^ R PHONE ROUGH^ RF PHONE RR- _ PHONE R R PHONE SCH(EOU)- SK PHONE SC(IEY)- S PHONE SH X PHONE SI(AO)- X PHONE SS- _ PHONE S S PHONE TI(AO)- X PHONE TH @ PHONE TCH-- _ PHONE TOUGH^ TF PHONE TT- _ PHONE T T PHONE UH(AEIOUY)-^ *H PHONE UR(AEIOUY)-^ *R PHONE U(HR)^ * PHONE U^ * PHONE UH(AEIOUY)- H PHONE UR(AEIOUY)- R PHONE U(HR) _ PHONE V^ W PHONE V F PHONE WR^ R PHONE WH^ W PHONE W(AEIOU)- W PHONE X^ S PHONE X KS PHONE Y(AEIOU)- Y PHONE ZZ- _ PHONE Z S #The rules in a different view: # # Exceptions: # # Beginning of word: "gn", "kn-", "pn-", "wr-" ----> drop first letter # "Aebersold", "Gnagy", "Knuth", "Pniewski", "Wright" # # Beginning of word: "x" ----> change to "s" # as in "Deng Xiaopeng" # # Beginning of word: "wh-" ----> change to "w" # as in "Whalen" # Beginning of word: leading vowels are transformed to "*" # # "[crt]ough" and "enough" are handled separately because of "F" sound # # # A --> A at beginning # _ otherwise # # B --> B unless at the end of word after "m", as in "dumb", "McComb" # # C --> X (sh) if "-cia-" or "-ch-" # S if "-ci-", "-ce-", or "-cy-" # SILENT if "-sci-", "-sce-", or "-scy-", or "-cq-" # K otherwise, including in "-sch-" # # D --> K if in "-dge-", "-dgy-", or "-dgi-" # T otherwise # # E --> A at beginnig # _ SILENT otherwise # # F --> F # # G --> SILENT if in "-gh-" and not at end or before a vowel # in "-gn" or "-gned" or "-gns" # in "-dge-" etc., as in above rule # K if before "i", or "e", or "y" if not double "gg" # # K otherwise (incl. "GG"!) # # H --> SILENT if after vowel and no vowel or "Y" follows # or after "-ch-", "-sh-", "-ph-", "-th-", "-gh-" # or after "rh-" at beginning # H otherwise # # I --> A at beginning # _ SILENT otherwise # # J --> K # # K --> SILENT if after "c" # K otherwise # # L --> L # # M --> M # # N --> N # # O --> A at beginning # _ SILENT otherwise # # P --> F if before "h" # P otherwise # # Q --> K # # R --> SILENT if after vowel and no vowel or "Y" follows # R otherwise # # S --> X (sh) if before "h" or in "-sio-" or "-sia-" # SK if followed by "ch(eo)" (SCH(EO)) # S otherwise # # T --> X (sh) if "-tia-" or "-tio-" # 0 (th) if before "h" # silent if in "-tch-" # T otherwise # # U --> A at beginning # _ SILENT otherwise # # V --> V if first letter of word # F otherwise # # W --> SILENT if not followed by a vowel # W if followed by a vowel # # X --> KS # # Y --> SILENT if not followed by a vowel # Y if followed by a vowel # # Z --> S