phonics provides phonetic encoders for English, German,
and French names, plus the two-stage Match Rating Approach comparison.
Every encoder accepts character vectors and preserves their length and
order.
Install the released package from CRAN:
install.packages("phonics")Load it and encode one or more names:
library(phonics)
soundex(c("Robert", "Rupert"))
caverphone(c("Peter", "Peady"), modified = TRUE)
phonics(c("Catherine", "Kathryn"), c("soundex", "nysiis", "metaphone"))By default, an input containing characters outside an encoder’s
supported alphabet produces a warning and an NA result. Set
clean = FALSE to discard unsupported characters before
encoding. maxCodeLen is a validated nonnegative
whole-number bound where supported; Cologne uses unbounded output when
maxCodeLen = NULL.
| Algorithm | Function and variants |
|---|---|
| Caverphone | caverphone() (Caverphone 1
and Caverphone 2) |
| Cologne Phonetic | cologne() |
| Lein | lein() |
| Match Rating Approach | mra_encode() and
mra_compare() |
| Metaphone | metaphone() |
| NYSIIS | nysiis() (original and USDA
modified) |
| Oxford Name Compression Algorithm | onca() |
| Phonex | phonex() |
| Roger Root | rogerroot() |
| Soundex | soundex() and
refinedSoundex() |
| Census Modified Statistics Canada | statcan() |
ONCA’s source describes an unpublished “anglicised” NYSIIS first
stage. onca() therefore uses the documented standard NYSIIS
rules; its modified NYSIIS and Refined Soundex combinations are explicit
package extensions.
The package imports Rcpp and data.table.
Test, vignette, and documentation tools are development dependencies
declared in DESCRIPTION.
This work used the Extreme Science and Engineering Discovery Environment (XSEDE), which is supported by National Science Foundation grant number ACI-1548562. In particular, it used the Comet system at the San Diego Supercomputing Center (SDSC) through allocations TG-DBS170012 and TG-ASC150024.