2

オランダ語を話す人々にとって、2つの文字「ij」は「y」と簡単に交換できる1文字と見なされます。

私が取り組んでいるプロジェクトでは、ダメラウ・レーベンシュタイン距離の変形を使用して、「ij」と「y」の間の距離を現在の値2ではなく1として計算したいと思います。

私はこれを自分で試しましたが失敗しました。私の問題は、両方のテキストの長さが異なるという事実をどのように処理するかについての手がかりがないことです。誰かがこれを解決する方法についての提案/コードフラグメントを持っていますか?

ありがとう。

4

3 に答える 3

2

ウィキペディアの記事は、用語がかなり緩いです。「自然言語」には「文字列」などはありません。書かれた文字と文字の組み合わせで表すことができる自然言語の音素があります。

一部の文字の組み合わせは、「gh」が-f-のように聞こえるか、まったく音が出ない現代英語の「ラフ」のように、現代に生き残った歴史的慣習の痕跡です。生の「文字列」に焦点を当てる場合、アルゴリズムは言語と正投影の慣習の歴史的関係にとらわれないようにする必要があります。これにより、文字の組み合わせが単一の音素に相関する場合は常に、任意のメトリックが得られます。「ラフ」から「ラフ」までをどのように測定しますか?または「スルー」から「スルー」へ?または「oe」へのドイツ語のo-umlaut?

あなたの場合、-y-は音声的および正統的に-ij-と交換することができます。では、アルゴリズムによれば、2つの削除とそれに続く挿入、または-j-または-i-の1つの削除と、それに続く残りの文字の-y-への転置とは何でしょうか。または、-ij-が合体し、合体の後に移調が続きますか?

アルゴリズムを適用する前に、-ij-に別の未使用の組み合わせ文字を使用することをお勧めします。おそらくU00EC、アクサングラーブ付きのラテン小文字iです。

アルゴリズムはマルチコードポイント文字をどのように処理しますか?

于 2011-01-04T13:38:56.057 に答える
1

距離を測定する方法が原因で、DL距離自体はそれを処理しません。

ここにはコード(または言語)が含まれていないため、すべての文字列が同じ構造に準拠していることを確認するための提案のみを残しておくことができます。

一般的に質問してからの状況を明確にするために、

DL距離は文字を文字ごとに比較し、実際には文字列自体を読み取らないことに注意してください。ijをyと交換しない場合は、代わりに他の問題が発生するため、比較する前に解析する必要があります。

于 2011-01-04T13:46:33.513 に答える
0

アイデアは、各文字列をある種の構築された正統表現に変換することです。ここで、「ij」や英語の「gh」「th」などの有向グラフとその友人は1文字の長さです。ダメラウ・レーベンシュタインを行う場合、距離メトリックはすべてのタイプの再配置で同じである必要はないため、必要なペナルティを使用できますが、テーブルはローカルで入力する必要があるため、各サウンドをテーブル内の1つのセルにする必要があります。 。

ただし、これは、「ij」が「ij」として意図されていなかった場合、またはスペルミスや単語分割の境界で(オランダ語で発生する可能性があるかどうかはわかりません)、または他の状況では実際にはそうではない場合(意味)、壊れます。 as)ダイグラフ。

そうでなければ、いくつかの見回しを行う必要があります。これは物事を複雑にしますが、周りの一定数のセルのみを見る場合は、アルゴリズムの成長順序を変更しないでください(私は信じています)。ただし、定数係数はさらに大きくなります。

于 2011-01-04T14:02:42.180 に答える