Soundex

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 1. maaliskuuta 2021 tarkistetusta versiosta . tarkastukset vaativat 2 muokkausta .

Soundex  - yksi algoritmeista kielten vertaamiseen niiden äänen perusteella; asettaa saman indeksin merkkijonoille, jotka kuulostavat samalta englanniksi .

Robert C. Russelin ja Margaret King Odellin kehittämä ja vuosina 1918 ja 1922 patentoitu [1] [2] , on historiallisesti ensimmäinen foneettinen algoritmi . Tuli suosituksi 1960-luvulla sen jälkeen, kun sille oli omistettu useita artikkeleita Communications of the ACM- ja Journal of the ACM -julkaisuissa ; hänestä tuli vieläkin tunnetumpi esiintyessään Knuthin teoksessa The Art of Programming [ 3] . Sitä on käytetty monien RDBMS - järjestelmien vakio - ominaisuutena 1980 - luvulta lähtien .

Aluksi keskittynyt amerikkalaisen englannin fonetiikkaan , muutosten kautta sitä voidaan soveltaa muihin muunnelmiin ja kieliin, mutta joissain tapauksissa tarvitaan merkittäviä muutoksia (kuten esimerkiksi Deutsch-Mokotoff-algoritmissa , joka tukee erisnimiä jiddish ja slaavilaiset kielet ). Myöhemmin ilmestyi myös vaihtoehtoja, jotka keskittyivät enemmän tavallisiin englanninkielisiin sanoihin kuin erisnimiin (kuten Metaphone , Caverphone ).

Algoritmin vaiheet

  1. Muista sanan ensimmäinen kirjain.
  2. Kaikki h :n ja w :n esiintymät poistetaan (lukuun ottamatta sanan ensimmäistä kirjainta).
  3. Konsonantit korvataan numeroilla 1-6, ja samalta kuulostavat kirjaimet vastaavat samoja numeroita:
    • b, f, p, v → 1
    • c, g, j, k, q, s, x, z → 2
    • d, t → 3
    • l → 4
    • m, n → 5
    • r → 6
  4. Mikä tahansa identtisten numeroiden sarja pelkistetään yhdeksi tällaiseksi numeroksi.
  5. Kaikki a , e , i , o , u , y poistetaan (paitsi sanan ensimmäinen kirjain).
  6. Korvaa ensimmäisen merkin vaiheessa 1 muistiin tallennetulla kirjaimella ja tekee siitä ison kirjaimen.
  7. Tuloksena oleva merkkijono katkaistaan ​​neljään ensimmäiseen merkkiin. Jos merkkijono on pienempi kuin vaadittu pituus, puuttuvat merkit korvataan nollalla.

Esimerkkejä:

Muistiinpanot

  1. US-patentti 1 261 167
  2. US-patentti 1 435 663
  3. Donald Knuth . Osa 6. Haku // Ohjelmoinnin taito = The Art of Computer Programming. - 2012. - V. 3. Lajittelu ja haku. - S. 249.