↑ arvau

Wikipedia / Caverphone

The Caverphone within linguistics and computing, is a phonetic matching algorithm invented to identify English names with their sounds, originally built to process a custom dataset compound between 1893 and 1938 in southern Dunedin, New Zealand. Started from a similar concept as metaphone, it has been developed to accommodate and process general English since then.

Etymology

The Caverphone was created by David Hood in the Caversham Project at the University of Otago in New Zealand in 2002, revised in 2004. It was created to assist in data matching between late 19th century and early 20th century electoral rolls, where the name only needed to be in a "commonly recognisable form". The algorithm was intended to apply to those names that could not easily be matched between electoral rolls, after the exact matches were removed from the pool of potential matches. The algorithm is optimised for accents present in the study area (southern part of the city of Dunedin, New Zealand).

Procedure

Caverphone 1.0

The rules of the algorithm are applied consecutively to any particular name, as a series of replacements.

The algorithm is as follows:

  1. Convert to lowercase

  2. Remove anything not A-Z

If the name starts with...

  1. cough, replace it by cou2f

  2. rough, replace it by rou2f

  3. tough, replace it by tou2f

  4. enough, replace it by enou2f

  5. gn, replace it by 2n

If the name ends with

  1. mb, replace it by m2

Replace

  1. cq with 2q

  2. ci with si

  3. ce with se

  4. cy with sy

  5. tch with 2ch

  6. c with k

  7. q with k

  8. x with k

  9. v with f

  10. dg with 2g

  11. tio with sio

  12. tia with sia

  13. d with t

  14. ph with fh

  15. b with p

  16. sh with s2

  17. z with s

  18. any initial vowel with an A

  19. all other vowels with a 3

  20. 3gh3 with 3kh3

  21. gh with 22

  22. g with k

  23. groups of the letter s with a S

  24. groups of the letter t with a T

  25. groups of the letter p with a P

  26. groups of the letter k with a K

  27. groups of the letter f with a F

  28. groups of the letter m with a M

  29. groups of the letter n with a N

  30. w3 with W3

  31. wy with Wy

  32. wh3 with Wh3

  33. why with Why

  34. w with 2

  35. any initial h with an A

  36. all other occurrences of h with a 2

  37. r3 with R3

  38. ry with Ry

  39. r with 2

  40. l3 with L3

  41. ly with Ly

  42. l with 2

  43. j with y

  44. y3 with Y3

  45. y with 2

remove all

  1. 2

  2. 3

  3. put six 1 on the end

  4. take the first six characters as the code

Caverphone 2.0

  1. Start with a word

  2. Convert to lowercase

  3. Remove anything not in the standard alphabet (typically a-z)

  4. Remove final e

If the name starts with

  1. cough make it cou2f

  2. rough make it rou2f

  3. tough make it tou2f

  4. enough make it enou2f

  5. trough make it trou2f

  6. gn make it 2n

If the name ends with

  1. mb make it m2

Replace

  1. cq with 2q

  2. ci with si

  3. ce with se

  4. cy with sy

  5. tch with 2ch

  6. c with k

  7. q with k

  8. x with k

  9. v with f

  10. dg with 2g

  11. tio with sio

  12. tia with sia

  13. d with t

  14. ph with fh

  15. b with p

  16. sh with s2

  17. z with s

  18. an initial vowel with an A

  19. all other vowels with a 3

  20. j with y

  21. an initial y3 with Y3

  22. an initial y with A

  23. y with 3

  24. 3gh3 with 3kh3

  25. gh with 22

  26. g with k

  27. groups of the letter s with a S

  28. groups of the letter t with a T

  29. groups of the letter p with a P

  30. groups of the letter k with a K

  31. groups of the letter f with a F

  32. groups of the letter m with a M

  33. groups of the letter n with a N

  34. w3 with W3

  35. wh3 with Wh3

  36. if the name ends in w replace the final w with 3

  37. w with 2

  38. an initial h with an A

  39. all other occurrences of h with a 2

  40. r3 with R3

  41. if the name ends in r replace the final r with 3

  42. r with 2

  43. l3 with L3

  44. if the name ends in l replace the final l with 3

  45. l with 2

  46. remove all 2s

  47. if the name end in 3, replace the final 3 with A

  48. remove all 3s

  49. put ten 1s on the end

  50. take the first ten characters as the code


Examples

Caverphone 1.0

Lee -> lee lee -> l33 l33 -> L33 L33 -> L L -> L111111 L111111 -> L11111 Thompson -> thompson thompson -> th3mps3n th3mps3n -> th3mpS3n th3mpS3n -> Th3mpS3n Th3mpS3n -> Th3mPS3n Th3mPS3n -> Th3MPS3n Th3MPS3n -> Th3MPS3N Th3MPS3N -> T23MPS3N T23MPS3N -> TMPSN TMPSN111111 -> TMPSN1

Caverphone 2.0

Lee -> lee lee -> le le -> l3 l3 -> L3 L3 -> LA LA -> LA1111111111 LA1111111111 -> LA11111111 Thompson -> thompson thompson -> th3mps3n th3mps3n -> th3mpS3n th3mpS3n -> Th3mpS3n Th3mpS3n -> Th3mPS3n Th3mPS3n -> Th3MPS3n Th3MPS3n -> Th3MPS3N Th3MPS3N -> T23MPS3N T23MPS3N -> TMPSN TMPSN1111111111 -> TMPSN11111

See also

References

Implementations: