home *** CD-ROM | disk | FTP | other *** search
- # 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 <bjoern.jacke@gmx.de>
- # - 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 <kevinatk@home.com>
- # Converted from header to data file.
- #
-
- version 1.1
-
- AH(AEIOUY)-^ *H
- AR(AEIOUY)-^ *R
- A(HR)^ *
- A^ *
- AH(AEIOUY)- H
- AR(AEIOUY)- R
- A(HR) _
- BB- _
- B B
- CQ- _
- CIA X
- CH X
- C(EIY)- S
- CK K
- COUGH^ KF
- CC< C
- C K
- DG(EIY) K
- DD- _
- D T
- ╔< E
- EH(AEIOUY)-^ *H
- ER(AEIOUY)-^ *R
- E(HR)^ *
- ENOUGH^$ *NF
- E^ *
- EH(AEIOUY)- H
- ER(AEIOUY)- R
- E(HR) _
- FF- _
- F F
- GN^ N
- GN$ N
- GNS$ NS
- GNED$ N
- GH(AEIOUY)- K
- GH _
- GG9 K
- G K
- H H
- IH(AEIOUY)-^ *H
- IR(AEIOUY)-^ *R
- I(HR)^ *
- I^ *
- ING6 N
- IH(AEIOUY)- H
- IR(AEIOUY)- R
- I(HR) _
- J K
- KN^ N
- KK- _
- K K
- LAUGH^ LF
- LL- _
- L L
- MB$ M
- MM M
- M M
- NN- _
- N N
- OH(AEIOUY)-^ *H
- OR(AEIOUY)-^ *R
- O(HR)^ *
- O^ *
- OH(AEIOUY)- H
- OR(AEIOUY)- R
- O(HR) _
- PH F
- PN^ N
- PP- _
- P P
- Q K
- RH^ R
- ROUGH^ RF
- RR- _
- R R
- SCH(EOU)- SK
- SC(IEY)- S
- SH X
- SI(AO)- X
- SS- _
- S S
- TI(AO)- X
- TH @
- TCH-- _
- TOUGH^ TF
- TT- _
- T T
- UH(AEIOUY)-^ *H
- UR(AEIOUY)-^ *R
- U(HR)^ *
- U^ *
- UH(AEIOUY)- H
- UR(AEIOUY)- R
- U(HR) _
- V^ W
- V F
- WR^ R
- WH^ W
- W(AEIOU)- W
- X^ S
- X KS
- Y(AEIOU)- Y
- ZZ- _
- 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
-
-