ヘッダーをスキップ
Oracle® Database PL/SQLパッケージおよびタイプ・リファレンス
11g リリース2(11.2)
B56262-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

231 UTL_MATCH

UTL_MATCHパッケージによって、2つのレコードを簡単に照合できるようになります。通常、このパッケージは、2つの姓、2つの名などの名前を照合する場合に使用されます。

この章では、次の項目について説明します。


UTL_MATCHの使用方法


概要

「編集距離」は、「レーベンシュタイン距離」(1965年にこのアルゴリズムを考案したロシアの科学者Vladimir Levenshteinにちなんだ呼称)とも呼ばれ、2つの文字列s1とs2の類似度を示す値です。距離は、s1をs2に変換するために必要となる挿入、削除または置換の回数のことです。

The Edit Distance between strings "shackleford" and "shackelford" = 2

2つの文字列の編集距離を計算する別の方法には、「Jaro-Winklerアルゴリズム」があります。これは米国勢調査局で開発された方法で、2つの文字列の部分的な類似度を数値化する、文字列コンパレータによる測定法です。文字列コンパレータでは、文字列長が示され、英数字文字列内の一般的な人為的エラーが部分的に示されます。

表231-1に、Jaro-WinklerアルゴリズムおよびEdit Distanceアルゴリズムによって戻される類似度の値を示します。

表231-1 Jaro-Winklerアルゴリズムおよび編集距離アルゴリズムによって戻される、正規化された値の比較

文字列1 文字列2 Jaro Winkler 編集距離

Dunningham

Cunnigham

89

80

Abroms

Abrams

92

83

Lampley

Campley

90

86

Marhta

Martha

96

67

Jonathon

Jonathan

95

88

Jeraldine

Geraldine

92

89



セキュリティ・モデル

UTL_MATCHパッケージは、定義者の権限で実行されます。UTL_MATCHパッケージは、SYSの下に作成する必要があります。このパッケージで操作を実行するには、SYS権限が必要です。


UTL_MATCHサブプログラムの要約

表231-2 DBMS_ALERTパッケージのサブプログラム

サブプログラム 説明

EDIT_DISTANCEファンクション


string-1をstring-2に変換するために必要となる変更の回数を計算します。

EDIT_DISTANCE_SIMILARITYファンクション


string-1をstring-2に変換するために必要となる変更の回数を計算し、0(一致なし)から100(完全一致)の範囲で値を戻します。

JARO_WINKLERファンクション


string-1とstring-2の一致度を計算します。

JARO_WINKLER_SIMILARITYファンクション


string-1とstring-2の一致度を、0(一致なし)から100(完全一致)の範囲で計算します。



EDIT_DISTANCEファンクション

このファンクションは、string-1をstring-2に変換するために必要となる挿入、削除または置換の回数を計算します。

構文

UTL_MATCH.EDIT_DISTANCE (
   s1  IN  VARCHAR2, 
   s2  IN  VARCHAR2) 
 RETURN PLS_INTEGER;�

パラメータ

表231-3 EDIT_DISTANCEファンクションのパラメータ

パラメータ 説明

s1

変換する文字列。

s2

s1の変換後の文字列。


SELECT UTL_MATCH.EDIT_DISTANCE('shackleford', 'shackelford') FROM DUAL;  
-------------
returns 2 

EDIT_DISTANCE_SIMILARITYファンクション

このファンクションは、string-1をstring-2に変換するために必要となる挿入、削除または置換の回数を計算し、2つの文字列の編集距離を正規化された値で戻します。通常、値は0(一致なし)から100(完全一致)の範囲となります。

構文

UTL_MATCH.EDIT_DISTANCE_SIMILARITY (
   s1  IN  VARCHAR2, 
   s2  IN  VARCHAR2) 
 RETURN PLS_INTEGER;�

パラメータ

表231-4 EDIT_DISTANCE_SIMILARITYファンクションのパラメータ

パラメータ 説明

s1

変換する文字列。

s2

s1の変換後の文字列。


SELECT UTL_MATCH.EDIT_DISTANCE_SIMILARITY('shackleford', 'shackelford') FROM DUAL;
--------------
returns 82

JARO_WINKLERファンクション

このファンクションは、2つの文字列の一致度を計算します。

構文

UTL_MATCH.JARO_WINKLER (
   s1  IN  VARCHAR2, 
   s2  IN  VARCHAR2) 
 RETURN BINARY_DOUBLE;�

パラメータ

表231-5 JARO_WINKLERファンクションのパラメータ

パラメータ 説明

s1

入力。

s2

入力。


SELECT UTL_MATCH.JARO_WINKLER('shackleford', 'shackelford') FROM DUAL;
--------------
returns 9.818E-001

JARO_WINKLER_SIMILARITYファンクション

このファンクションは、2つの文字列の一致度を計算し、0(一致なし)から100(完全一致)の範囲で値を戻します。

構文

UTL_MATCH.JARO_WINKLER (
   s1  IN  VARCHAR2, 
   s2  IN  VARCHAR2) 
 RETURN PLS_INTEGER;�

パラメータ

表231-6 JARO_WINKLERファンクションのパラメータ

パラメータ 説明

s1

入力。

s2

入力。


SELECT UTL_MATCH.JARO_WINKLER_SIMILARITY('shackleford', 'shackelford') FROM DUAL;
--------------
returns 98