SOUNDEX( ) 関数
ほかの文字列との発音の比較に使用できる、指定された文字列の soundex コードを返します。
構文
SOUNDEX(名前)
パラメーター
名前 | 種類 | 説明 |
---|---|---|
名前 | 文字 | 評価する文字式。 |
出力
文字。4 文字の soundex コードを返します。
例
基本的な例
発音は同じだが、綴りが異なる単語
次の 2 つの例では、綴りが異なっていても発音が同じのため、同じ soundex コードが返されます。
F634 が返されます。
SOUNDEX("Fairdale")
F634 が返されます。
SOUNDEX("Faredale")
発音が似ている単語
次の 2 つの例では異なる soundex コードが返されますが、これら 2 つの単語は発音が似ているため、近い値が返されます。
J525 が返されます。
SOUNDEX("Jonson")
J523 が返されます。
SOUNDEX("Jonston")
発音が異なる単語
次の 2 つの例では、2 つの単語がまったく似ていないため、互いから非常に遠い soundex コードが返されます。
S530 が返されます。
SOUNDEX("Smith")
M235 が返されます。
SOUNDEX("MacDonald")
フィールドへの入力値
Last_name フィールドの各値の soundex コードが返されます。
SOUNDEX(Last_Name)
高度な例
一致する soundex コードを特定する
Last_Name フィールドの各値の soundex コードを表示する演算フィールド、Soundex_Code を作成します。
DEFINE FIELD Soundex_Code COMPUTED SOUNDEX(Last_Name)
ビューに演算フィールド Soundex_Code を追加し、その演算フィールドで重複検査を実行することによって、一致するあらゆる soundex コードを特定することができます。
DUPLICATES ON Soundex_Code OTHER Last_Name PRESORT OPEN TO "Possible_Dupes.fil"
一致する soundex コードは、Last_name フィールドの関連する文字値が重複している可能性があることを示しています。
備考
SOUNDEX( ) の使用に適する場面
SOUNDEX( ) 関数は発音の似た値を検索する場合に使用できます。発音の類似は、重複している可能性がある値や、手作業で入力されたデータで不統一な綴りを見つける 1 つの方法です。
機能の仕組み
SOUNDEX( ) は、評価される文字列の American Soundex コードを返します。コードはすべて、1 文字の後に 3 つの数字が続きます。たとえば、"F634" などです。
Soundex コードの意味
- コードの最初の文字は、評価される文字列中の最初の文字を表します。
- コード内の各番号は、6 つの American Soundex グループのうちの 1 つを表します。これらのグループは、発音が似た子音で構成されています。
これらのグループに基づいて、soundex 処理は、評価される文字列のうち、先頭文字の後に来る最初の 3 つの子音をエンコードします。
Soundex 処理で無視される内容
Soundex 処理では以下が無視されます。
- 大文字の使用
- 母音
- 子音 "H"、"W"、"Y"
- エンコードされた 3 つの子音の後に来るすべての子音
返されるコード内の末尾にある 1 つ以上のゼロ(0)は、評価される文字列には、最初の文字の後に子音が 3 つ未満しかないことを示しています。
Soundex 処理にある制限
SOUNDSLIKE( ) 関数と SOUNDEX( ) 関数のどちらにも、ある制限があります。
- soundex アルゴリズムは、英語で発音された言葉を処理するように設計されており、他の言語で使用した場合には、有効性の度合いが違ってきます。
- soundex 処理は発音の照合を実行しますが、一致する単語は同じ文字で始まっていなければなりません。これはつまり、発音が同じであるいくつかの単語は一致しないということです。
たとえば、"F" で始まる単語と "Ph" で始まる単語は発音が同じですが、これらは決して一致しません。
関連する関数
- SOUNDSLIKE( ) 文字列の発音を比較するもう 1 つの方法。
- ISFUZZYDUP( ) および LEVDIST は、発音記号の比較(発音)ではなく、正字法の比較(綴り)に基づいて文字列を比較します。
- DICECOEFFICIENT( ) は、文字列を比較するときに、文字または文字ブロックの相対位置を重視しないか、または完全に無視します。