9

ある言語で書かれた文字列と別の言語の別の文字列の音の類似性「評価」を取得するにはどうすればよいですか。つまり、それを識別するアルゴリズムです。

DavidLetterman 」と「דודלטרמן」は同じように聞こえる弦です。

-ああ、そうです、ところで、上記はヘブライ語です、あなたはそれを推測しました:「デビッドレターマン」、そしてそれは英語とほとんど同じように聞こえます/話されます。

私が持っている唯一の原材料は、それぞれの言語のUnicodeの文字列です。つまり、文字列の音素または発音表記/翻訳はありません。

私はすでにSoundexの実装を少し調整して実装しましたが、これはまあまあ機能します。これは行く方法ですか?

4

3 に答える 3

7

Soundexは完璧ではないかもしれませんが、少なくとも英語/ヘブライ語のマッチングの特定の例では、合理的なアプローチのようです。

名前の最初の文字を保持するという規則を使用することは絶対にできませんが、ラテンアルファベットでもそれが好きではありませんでした(母の家系の名前は「E」と「Y」の両方を調べる必要があるため) 。最初の文字を他のすべての文字と同じように扱うことをお勧めします。

次に、ヘブライ文字をSoundexコードにマッピングするだけです。中級の英語の音訳は本当に必要ありません。ヘブライ語→Soundexマッピングを直接コーディングするだけです。

  • בוףפ→1
  • גזחךכסקש→2
  • דטת→3
  • ץצ→32
  • ל→4
  • םמןנ→5
  • ר→6
  • אהיע→無視

ただし、Soundexは英語中心であるため、ヘブライ語の発音の特定のあいまいさを正しく処理できない場合があります。

  • וは上記のリストで1(英語のVのように)にマップされていますが、多くの場合O、U、またはWを表します。この場合、Soundexでは無視する必要があります。
  • חは英語に相当するものがないため、分類が困難です。これは(1)「ch」の音訳と一致し、(2)ך/כがダーゲーシュの有無にかかわらず同じカテゴリを持つことができるため、カテゴリ2に入れました。
  • アシュケナージの発音は、תをカテゴリー2と3に分割します。

これに対処するために、文字列に対して複数のSoundexキーを生成できます。たとえば、「שבת」は212と213の両方にマップされます。

ギリシャ語についても同様のマッピングを行うことができます。

  • ΒΠΦ→1
  • Ψ→12
  • ΓΖΚΞΣΧ→2
  • ΔΘΤ→3
  • Λ→4
  • ΜΝ→5
  • Ρ→6
  • ΑΕΗΙΟΥΩ→無視

またはロシア語:

  • БВПФ→1
  • ГЖЗКСХЧШЩ→2
  • ДТ→3
  • Ц→32
  • Л→4
  • МН→5
  • Р→6
  • АЕЁИЙОУЪЫЬЭЮЯ→無視

(音訳の規則によっては、2の一部が32になる場合があることに注意してください。)


類似性の「評価」は、Soundex値の最長共通部分列長やレーベンシュタイン距離などのメトリックに基づいて取得できます。

たとえば、2つの文字列間の「類似性」を2 * lcslen(A、B)/(len(A)+ len(B))と定義して、0から1の間のスコアを取得できます。

于 2011-05-29T11:05:17.420 に答える
2

Daitch-Mokotoff Soundexコード(特にヘブライ語に適しています)を調べることをお勧めします。英語の文字を入力として受け取るthisと、ヘブライ語の文字を入力として受け取るthisを確認してください

于 2012-12-24T02:06:28.117 に答える
1

Soundexが一般的に適切である可能性は低いです。それはかなり粗雑で、英語にいくらか調和しています。特に、Soundex文字列の最初の文字は入力の最初の文字であるため、最初にヘブライ語の文字を英語(ラテン語)に変換しない限り、英語/ヘブライ語の例は同じSoundexコードに変換されません。キリル文字と中国語の両方で、ネイティブ文字セットからラテン文字への音訳がありますが、その方法にはさまざまなバリエーションがあります。

メタフォンを調査する; ただし、概念的にはSoundexに似ており、同様の制限があります。

クロスリンガルに相当するものはわかりません。

IPA(国際音声記号)が役立つかどうかはわかりません。英語とヘブライ語をIPAに翻訳してから、類似性関数を使用して関連する音を関連付ける必要があります。

于 2011-05-26T16:02:44.507 に答える