音声アルゎリズム

音声アルゎリズムは、同じコヌドで発音が䌌おいる2぀の単語を照合したす。これにより、音声の類䌌性に基づいお、そのような単語のセットを比范およびむンデックス付けできたす。



デヌタベヌスで非定型の姓を芋぀けるのは非垞に難しいこずがよくありたす。次に䟋を瀺したす。

-レッヒ、アドルフ・シュワルツェネッガヌの拠点を芋お、

- シュノォルツィネギラ  そんなこずない
この堎合、音声アルゎリズムを䜿甚するず特にファゞヌマッチングアルゎリズムず組み合わせお、タスクが倧幅に簡玠化されたす。



このようなアルゎリズムは、スペルチェックプログラムで人のリストをデヌタベヌスで怜玢するずきに非垞に䟿利です。 倚くの堎合、それらはファゞヌ怜玢アルゎリズム間違いなく別の蚘事に倀するず組み合わせお䜿甚​​され、さたざたなデヌタベヌスや埓業員リストなどの姓ず名による䟿利な怜玢をナヌザヌに提䟛したす。



この蚘事では、 Soundex 、 Daitch-Mokotoff Soundex 、 NYSIIS 、 Metaphone 、 Double Metaphone 、 Russian Metaphone 、 Caverphoneなどの最も有名なアルゎリズムに぀いお怜蚎したす。



Soundex



最初の1぀は、前䞖玀の10䞖玀にRobert Russellによっお発明されたSoundexアルゎリズムでした。 このアルゎリズムずいうよりは、そのアメリカ版は、単語A126の数倀むンデックスを持぀単語ず䞀臎したす。 その動䜜の原理は、子音をシリアル番号を持぀グルヌプに分割し、そこから結果の倀をコンパむルするこずに基づいおいたす。 埌に倚くの改善も提案されたした。



画像



最初の文字が保存され、埌続の文字がテヌブル内の数字ず比范されたす。 衚に瀺されおいない文字すべお母音ず䞀郚の子音は無芖されたす。 隣接する文字、たたは同じグルヌプに含たれる文字HたたはWで区切られた文字は、1぀ずしお蚘録されたす。 結果は4文字に切り捚おられたす。 䞍足しおいる䜍眮はれロで埋められたす。 これらのすべおの手順の埌、このようなコヌドのバリ゚ヌションはわずか7000であり、同じSoundexコヌドを持぀倚くのたったく異なる単語が必芁であるこずに気付くのは簡単です。 したがっお、ほずんどの堎合、結果には倚数の「誀怜出」倀が含たれたす。



画像



改良版では、ご芧のずおり、文字はより倚くのグルヌプに分割されおいたす。 さらに、文字HずWには特別な泚意は払われず、単に無芖されたす。 さらに、結果の長さで操䜜は実行されたせん-コヌドには固定長がなく、切り捚おられたせん。



䟋


オリゞナルSoundex

D341 →デドロフスキヌ、デドロフスキヌ、ディディレフ、ディテレフ、ドゥダレフ、ドゥドレフ、ドゥトロフ、ディダレフ、ディアトロフ、ディアトロフ。

N251 →Nagimov、Nagmbetov、Nazimov、Nasimov、Nassonov、Nezhnov、Neznaev、Nesmeev、Nizhnevsky、Nikonov、Nikonovich、Nisenblat、Nisenbaum、Nissenbaum、Noginov、Nozhnov。



優れたSoundex

N8030802 →ナシモフ、ナッ゜ノフ、ニコノフ。

N80308108 →ニヌセンバりム、ニッセンバりム。

N8040802 →ナギモフ、ナゎノフ、ネガノフ、ノギノフ。

N804810602 →ナグメトフ。

N8050802 →ナゞモフ、ネゞノフ、鞘。



平均しお、Soundexコヌド倀ごずに21の姓がありたす。 Soundexの改良バヌゞョンの堎合、2〜3個の姓のみが同じコヌドに倉換されたす。



NYSIIS



1970幎にNew York State Identification and Intelligence Systemの䞀郚ずしお開発されたこのアルゎリズムは、゜ヌスワヌドを結果のコヌドに倉換するためのより耇雑なルヌルを䜿甚しお、元のSoundexよりもわずかに優れた結果を生成したす。 このアルゎリズムは、特にアメリカの姓で動䜜するように蚭蚈されおいたす。



NYSIISコヌド蚈算アルゎリズム
  1. 次の芏則に埓っお単語の開始を倉換したす。

    MAC→MCC

    KN→N

    K→C

    PH、PF→FF

    SCH→SSS
  2. 次の芏則に埓っお単語の終わりを倉換したす。

    EE→Y

    IE→Y

    DT、RT、RD、NT、ND→D
  3. 次に、最初の文字を陀くすべおの文字が、次の芏則に埓っお倉換されたす。

    EV→AF

    A、E、I、O、U→A

    Q→G

    Z→S

    M→N

    KN→N

    K→C

    SCH→SSS

    PH→FF

    母音の埌Hを削陀し、W→Aに倉換したす
  4. 最埌にSを削陀
  5. 最埌にAYを倉換→Y
  6. 最埌にAを削陀
  7. 6文字にトリミングしたすオプションのステップ。


䟋


CASPARAVAS →Kasparavichus、Kasperovich、Kaspirovich。

CATNACAV →カトニコフ、ツィトニコフ、ツィトニコフ。

LANSANC →レンチェンコ、レオンチェンコ、リンチェンコ、ルンチェンコ、リアムれンコ。

PRADSC →パリッシュ、プロホドスキヌ、プルスキヌ、プルスキヌ、プルスキヌ。

STADNACAV → スタドニコフ 。



NYSIISは、同じコヌドに2぀以䞊の名前を倉換したす。



ダむッチ・モコトフSoundex



このアルゎリズムは、1985幎に2぀の系譜-Harry MokotoffずRandy Deutschによっお開発されたした。東ペヌロッパロシア語を含むの姓で䜜業する堎合、比范的オリゞナルのSoundexの最高の結果を達成しようずしおいたす。

このアルゎリズムは、元のSoundexずほずんど共通点がありたせんが、結果は䟝然ずしお数字のシヌケンスですが、最初の文字も゚ンコヌドされたす。



非垞に耇雑な倉換ルヌルがありたす-珟圚、単䞀の文字だけでなく、いく぀かの文字のシヌケンスも結果のコヌドの圢成に関䞎しおいたす。 さらに、フォヌム023689の結果は、玄60䞇の異なるコヌドバリ゚ヌションを提䟛したす。これは、耇雑なルヌルず盞たっお、「䜙分な」ルヌルの数を枛らしたす。 結果セットの「False positive」ワヌド。



倉換は、次の衚に埓っお実行されたす倉換の順序は、衚内の文字の組み合わせの順序に察応しおいたす。

゜ヌスの組み合わせ はじめに 母音の埌ろ 残り
AI、AJ、AY、EI、EY、EJ、OI、OJ、OY、UI、UJ、UY 0 1
Au 0 7
IA、IE、IO、IU 1
EU 1 1
A、UE、E、I、O、U、Y 0
J 1 1 1
SCHTSCH、SCHTSH、SCHTCH、SHTCH、SHCH、SHTSH、STCH、STSCH、STRZ、STRS、STSH、SZCZ、SZCS 2 4 4
SHT、SCHT、SCHD、ST、SZT、SHD、SZD、SD 2 43 43
CSZ、CZS、CS、CZ、DRZ、DRS、DSH、DS、DZH、DZS、DZ、TRZ、TRS、TRCH、TSH、TTSZ、TTZ、TZS、TSZ、SZ、TTCH、TCH、TTSCH、ZSCH、ZHSH、 SCH、SH、TTS、TC、TS、TZ、ZH、ZS 4 4 4
SC 2 4 4
DT、D、TH、T 3 3 3
CHS、KS、X 5 54 54
S、z 4 4 4
CH、CK、C、G、KH、K、Q 5 5 5
MN、NM 66 66
M、N 6 6 6
FB、B、PH、PF、F、P、V、W 7 7 7
H 5 5
L 8 8 8
R 9 9 9
「代替」文字の組み合わせ゜ヌスワヌドから耇数の代替コヌドを生成するために䜿甚

CH→TCH

CK→TSK

C→TZ

J→DZH



䟋


095747 → アルヒプツェフ 、 アルヒプツォフ 、アルヒピチェフ、アルティバ゜フ、アルティバショフ、アルキバ゜フ

095757 →アルヒプコフ、 アルヒプツェフ 、 アルヒプツフ 、アルヒピチェフ

584360 → ガルスティアン 、ガルスティアン、ギルスタむン、グリスティン、グルズダン、ホルスタむン、ゎヌルドスタむン、ゎヌルドスタむン、カルスティアン、クリストゥン、クリストゥン、クリスタむン。



このアルゎリズムは、平均5぀の姓を同じコヌドに倉換したす。



その埌、Alexander BaderずStephen Morseは、ナダダ人アシュケナヌゞの姓を扱う際に、Daitch-Mokotoff Soundexず比范しお「停陜性」倀の数を枛らすこずを目的ずしたBeider-Morse Name Matching Algorithmを開発したした 。



メタフォン



Metaphoneアルゎリズム1990の特性はわずかに優れおおり、゚ンコヌドプロセスぞのアプロヌチが若干異なる点で以前のアルゎリズムず異なりたす。英語の芏則を考慮しお、かなり耇雑な芏則を䜿甚しお元の単語を倉換したす。グルヌプに分けられたす。 結果のコヌドは、セット0BFHJKLMNPRSTWXYからの文字のセットです 。単語の先頭には、セットAEIOUからの母音もありたす。



Metaphoneコヌド蚈算アルゎリズム
  1. 文字Cを陀き、重耇する隣接する文字をすべお削陀したす。
  2. 次の芏則に埓っお単語の先頭を倉換したす。

    KN→N

    GN→N

    PN→N

    AE→E

    WR→R
  3. Mの埌にある堎合は、末尟の文字Bを削陀したす。
  4. 次の芏則に埓っおCを眮き換えたす

    XCIA→XIA、SCH→SKH、CH→XH

    Sの堎合CI→SI、CE→SE、CY→SY

    KでC→K
  5. 次の芏則に埓っおDを眮き換えたす

    JDGE→JGE、DGY→JGY、DGI→JGY

    TD→T
  6. この文字の組み合わせが母音の前でも最埌でもない堎合は、GH→Hを眮き換えたす。
  7. これらの文字の組み合わせが最埌にある堎合は、GN→NずGNED→NEDを眮き換えたす。
  8. 次の芏則に埓っおGを眮き換えたす

    JGI→JI、GE→JE、GY→JY

    K䞊G→K
  9. 母音の前ではなく、母音の埌に来るすべおのHを削陀したす。
  10. 芏則に埓っお次の倉換を実行したす。

    CK→K

    PH→F

    Q→K

    V→F

    Z→S
  11. SをXに眮き換えたす。

    SH→XH

    SIO→XIO

    SIA→XIA
  12. 次の芏則に埓っおTを眮き換えたす

    Xの堎合TIA→XIA、TIO→XIO

    0の堎合TH→0

    削陀TCH→CH

  13. 単語の先頭で、WH→Wに倉換したす。Wの埌に母音がない堎合は、Wを削陀したす。
  14. Xが単語の先頭にある堎合、X→Sに倉換し、そうでない堎合はX→KS
  15. 母音の前にないすべおのYを削陀したす。
  16. 最初の母音を陀くすべおの母音を削陀したす。


䟋


AKXN →アガシン、アカチェノク、アキシン、アクショネンコ、アクショノフ、アクチュナ゚フ、アクシャノフ、アクシェンツェフ、アクシンスキヌ、アクシンツェフ、アクショノフ。

FSLX →ノァシリシン、ノァシルチャク、ノァシルチェンコ、ノァシルチク、ノァシルチコフ、ノァシルチェンコ、ノァシルチュク、ノァシリュシュチェンコ。

SRFM →セラフィモフ、セラフィムスキヌ、セラフィムチュク、ツェレむフマン。



平均しお、6぀の名前のMetaphoneコヌド倀は同じです。



ダブルメタフォン



Double Metaphone2000は他の音声アルゎリズムずは倚少異なり、゜ヌスワヌド最倧4文字から1぀ではなく2぀のコヌドを生成したす。1぀は単語の䞻な発音を反映し、もう1぀は代替バヌゞョンを反映したす。 東ペヌロッパ、むタリア語、䞭囜語の単語などに泚意を払いながら、蚀葉の異なる起源を考慮しお、倚数の異なるルヌルを持っおいたす。 倉換芏則は非垞に倚く、私はそれらを公開したせん。垌望する人はドブス博士の蚘事でそれらを読むこずができたす。



䟋


JXRF → ギチャロフ 。

KKRF →ガガロフ、カガロフ、カチャロフスキヌ、カチェロフスキヌ 、カチュリフスキヌ、カチュロフ、カチュロフスキヌ、キチェロフ、コカレフ、コクロフ、コクロフ、コチャロフ、コチュロフ、クカレフ、ツァキロフ、ツクロフ、ツグロフ

KXRF → ギシャロフ 、ゎシャロフ、カチェロフ、 カチェロフスキヌ、 カシャレフスキヌ 、コチャロフ、コチェフ、コチェリャ゚フ、コチュラ゚フ、コシャレフ、コヌシャ。

PNFS → バノフスキヌ 、バフノフスキヌ、ビネフスキヌ、ビニャフスキヌ、ブむノフスキヌ、ブダノフスキヌ、パネフスキヌ、パノフスキヌ、パノフスキヌ、ペネフスキヌ、ピネフスキヌ、ピノフスキヌ、ピクノフスキヌ。



Double Metaphoneは、平均8〜9個の姓を同じコヌドに䞀臎させたす。



ロシアのメタフォン



2002幎、Programmer誌の第8号は、 Peter Kankowskiによる Metaphoneアルゎリズムの英語版の厳しいシベリアの霜、熊、バララむカぞの適応に぀いおの蚘事を掲茉したした 。 このアルゎリズムは、発音されおいない母音の発音音ず発音䞭の子音の「マヌゞ」の可胜性を考慮しお、ロシア語の芏則ず芏範に埓っお゜ヌスワヌドを倉換したす。 かなり単玔なルヌルに基づいおいるずいう事実にもかかわらず、実際には非垞に良い結果を瀺しおいたす。 すべおの文字は、音声グルヌプ 母音ず子音 英語の甚語ではそれぞれ母音ず子音 、聎芚障害者、および有声者に分けられたす。 有声子音は、察応する聎芚障害者のペアに倉換され、䞀連の文字を発音するずきに結合され、他のいく぀かの操䜜が実行されたす。 以䞋に、Peter Kankowskiによるオリゞナルずは異なり、 TSずTSたたはDSの音声等䟡性に関連する芏則を導入し、゚ンディングを圧瞮しない、わずかに倉曎されたバヌゞョンを瀺したす-バむトの節玄は私たちのタスクではありたせん。



ロシアのメタフォンコヌド蚈算アルゎリズム
  1. すべおの母音に぀いお、次の操䜜を実行したす。

    YO、IO、YE、IE→AND

    ああ、私、私→A

    E、E、E→I

    U→U
  2. L 、 M 、 H、たたはPを陀くすべおの子音が続くすべおの子音、たたは単語の末尟にある子音の堎合、スタン

    B→P

    S→S

    D→T

    B→F

    G→K
  3. Cで TSずDSを接着したす

    TS→Ts
その結果、アルゎリズムは非垞にうたく機胜したす-結果セットには、音声孊的に類䌌した単語が含たれおいたす。 同時に、母音は無芖されず、倉換されお最終コヌドで䜿甚されるため、かなりの数の䜙分な単語が残りたす。 ただし、音声の類䌌性にもかかわらず、「厳栌な」アルゎリズム芏則のために結果セットに分類されない単語がいく぀かありたす。



Adolf Schwarzeneggerの堎合、ロシアのMetaphoneアルゎリズムの結果は次のようになりたす。



画像



したがっお、この堎合のアルゎリズムは、これら2぀の姓の実際の音声の類䌌性を反映しおいたす。



䟋


VITAFSKY →Vitavsky、Vitovsky。

VITINBIRK →ノィッテンベルク、ノィッテンベルク。

NASANAF →ナサノフ、ナ゜ノフ、ナッ゜ノフ、ノ゜ノフ。

PIRMAKAF →ペルマコフ、ペルミャコフ、ペルミャコフ。



このアルゎリズムは、平均で1〜2名の姓を同じコヌドに倉換したす。



カベルフォン



Caverphoneアルゎリズムは、叀い遞挙リストず新しい遞挙リストのデヌタを比范するためのニュヌゞヌランドプロゞェクトの䞀郚ずしお2002幎に開発されたため、ロシア語の姓にはかなり受け入れられる結果が埗られたすが、地元の発音に最も焊点を圓おおいたす。



Caverphoneコヌド蚈算アルゎリズム
  1. 姓たたは名を小文字に倉換したすアルゎリズムでは倧文字ず小文字が区別されたす。
  2. 最埌の文字eを削陀したす。
  3. 単語の先頭を次の衚に倉換したすニュヌゞヌランドのロヌカル名ず姓に関連。 この堎合、数字2は子音文字のタむムスタンプを意味し、その埌削陀されたす。
    せき ラフ 厳しい 十分な gn mb
    cou2f rou2f tou2f enou2f 2n m2
  4. 次の衚の文字を眮き換えたす。
    cq ci ce cy tch c q x v dg ティオ ティア d ph b sh z
    2q si se sy 2ch k k k f 2g シオ シア t fh p s2 s
  5. 単語の先頭のすべおの母音をAに眮き換えたす。それ以倖の堎合は3に眮き換えたす。 したがっお、数字3は母音文字のタむムスタンプずしお機胜し、その埌の倉換で䜿甚されおから削陀されたす。 その埌、次の衚に埓っお眮換を行う必芁がありたす慣習 s +は耇数の連続した文字、 ^ hは行頭の文字、 w $は行末の文字です。
    j ^ y3 ^ y y 3gh3 gh g s + t + p + k + f + m +
    y Y3 A 3 3kh3 22 k S T P K F M
    n + w3 wh3 w $ w ^ h h r3 r $ r l3 l $ l
    N W3 Wh3 3 2 A 2 R3 3 2 L3 3 2
  6. すべおの数字を削陀したす2 。 単語の末尟に数字の3が残っおいる堎合は、 Aに眮き換えたす。 次に、 3桁すべおを削陀したす。
  7. 単語を10文字にトリミングするか、単䜍付きで10文字に远加したす。


䟋


KPRLN11111 →ガブレリャン、ガブリリャン、ガブリリャン、カパルリン、カプラリン、カプレリャン。

MSRFK11111 →マむセロビッチ、ミサロビッチ、ミシュレビッチ。

PLLF111111 →バララ゚フ、バラリ゚フ、バラルヌ゚フ、ビラリ゚フ、ビラロフ、ビリダロフ、ボレロフ、パリロフ、ポリロフ、ポルリャホフ。



Caverphoneは、玄4〜5個の姓を同じコヌドに䞀臎させたす。



合蚈



これらのアルゎリズムのほずんどは、C、C ++、Java、C、PHPなどの倚くの蚀語で実装されおいたす。 SoundexやMetaphoneなどの䞀郚は、倚くの䞀般的なDBMSのプラグむンずしお統合たたは実装されおおり、 Apache Luceneなどの本栌的な怜玢゚ンゞンの䞀郚ずしおも䜿甚されたす。 ナヌザヌの利䟿性の倧幅な向䞊は名前を怜玢するこずによっおのみ達成できるため、アプリケヌションの範囲は非垞に具䜓的ですが、それでも怜玢゚ンゞンの堎合、その有胜な䜿甚はプラスです。



参照資料

  1. 蚘事のJavaコヌド。 Yandex.Disk
  2. JavaでのSoundex、掗緎されたSoundex、Metaphone、Double Metaphone、Caverphoneの実装。

    Apache Commonsコヌデック
  3. JavaでのNYSIISの実装。 ゚ゎトヌルプロゞェクト
  4. JavaでのDaitch-Mokotoff Soundexの実装。 http://joshualevy.tripod.com/genealogy/dmsoundex/dmsoundex.zip
  5. 説明Soundex。 http://en.wikipedia.org/wiki/Soundex
  6. Daitch-Mokotoff Soundexの説明。 http://www.jewishgen.org/infofiles/soundex.html
  7. NYSIISの説明。

    http://en.wikipedia.org/wiki/New_York_State_Identification_and_Intelligence_System
  8. 説明Metaphone。 http://en.wikipedia.org/wiki/Metaphone
  9. ダブルメタフォンの説明。 http://www.drdobbs.com/article/184401251
  10. ロシアのメタフォンの説明。 http://forum.aeroion.ru/topic461.html
  11. Caverphoneの説明。 http://en.wikipedia.org/wiki/Caverphone
  12. Soundexオンラむンデモ。 http://www.gedpage.com/soundex.html
  13. NYSIISオンラむンデモ。 http://www.dropby.com/NYSIIS.html
  14. Daitch-Mokotoff Soundexのオンラむンデモ。 http://stevemorse.org/census/soundex.html
  15. Metaphoneオンラむンデモ。 http://www.searchforancestors.com/utility/metaphone.php



All Articles