Soundex
Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. március 1-jén felülvizsgált
verziótól ; az ellenőrzések 2 szerkesztést igényelnek .
Soundex - az egyik algoritmus a húrok hangjuk alapján történő összehasonlítására ; ugyanazt az indexet állítja be az angolul hasonló hangzású karakterláncokhoz .
A Robert C. Russel és Margaret King Odell által kifejlesztett és 1918-ban és 1922-ben szabadalmaztatott [1] [2] történelmileg az első fonetikus algoritmus . Az 1960-as években vált népszerűvé, miután számos cikket szenteltek neki a Communications of the ACM -ben és a Journal of the ACM -ben ; még híresebb lett, miután megjelent Knuth The Art of Programming című művében [3] . Az 1980- as évek óta számos RDBMS -ben alapfunkcióként használják .
Kezdetben az amerikai angol fonetikájára összpontosított , módosításokon keresztül más változatokra és nyelvekre is alkalmazható, de bizonyos esetekben jelentős változtatásokra van szükség (például a Deutsch-Mokotoff algoritmusban , amely támogatja a tulajdonneveket jiddis és szláv nyelvek ). Ezt követően olyan alternatívák is megjelentek, amelyek inkább a közönséges angol szavakra koncentráltak, mint a tulajdonnevekre (például Metaphone , Caverphone ).
Algoritmus lépései
- Emlékezzen a szó első betűjére.
- A h és w minden előfordulása törlésre kerül (kivéve a szó első betűjét).
- A mássalhangzókat 1-től 6-ig terjedő számok helyettesítik, és a hasonló hangzású betűk ugyanazoknak a számoknak felelnek meg:
- b, f, p, v → 1
- c, g, j, k, q, s, x, z → 2
- d, t → 3
- l → 4
- m, n → 5
- r → 6
- Bármely azonos számjegysorozat egy ilyen számjegyre redukálódik.
- Minden a , e , i , o , u , y törlődik (kivéve a szó első betűjét).
- Az első karaktert az 1. lépésben megjegyzett betűre cseréli, nagybetűssé téve azt.
- Az eredményül kapott karakterlánc az első négy karakterre csonkolódik. Ha a karakterlánc rövidebb a szükségesnél, a hiányzó karakterek helyére 0 kerül.
Példák:
- ammónium → a55o5iu5 → a5o5iu5 → a555 → A555
- megvalósítás → i514e5e53a3io5 → i51455335 → i514 → I514
- Robert = Rupert → R163 , Rubin → R150
- Ashcraft = Ashcroft → A261 (de nem A226 : a szavakban lévő s és c betűk egyjegyű 2 -t adnak , nem 22 -t, mivel h -val vannak elválasztva ).
- Tymczak → T522 , nem pedig T520 (a z és k betűket 22 váltja fel, mert magánhangzó választja el őket).
Jegyzetek
- ↑ 1 261 167 számú amerikai egyesült államokbeli szabadalom
- ↑ 1 435 663 számú amerikai egyesült államokbeli szabadalom
- ↑ Donald Knuth . 6. rész. Keresés // Programozás művészete = The Art of Computer Programming. - 2012. - V. 3. Rendezés és keresés. - S. 249.