SELECT UTL_MATCH.edit_distance_similarity (列名, '6') AS similarity
SELECT UTL_MATCH.edit_distance_similarity ("列名", '6') AS similarity
复制代码
实践
查询表TABLE_1的C2_VARCHAR2字段的值和6匹配的相似度,并且取相似度大于2的值
SELECT
*
FROM
(
SELECT
UTL_MATCH.edit_distance_similarity (C2_VARCHAR2, '6') AS similarity,
*
FROM
TABLE_1
ORDER BY similarity DESC) AS a
WHERE
similarity >= 2
复制代码
返回:
2、Jaro-Winkler相似度算法
函数:UTL_MATCH.JARO_WINKLER_SIMILARITY
Jaro-Winkler相似度是一种用于比较两个字符串之间相似程度的度量方法。它基于字符匹配和字符顺序的相似性,常用于姓名、地址等文本数据的相似度计算。
Jaro-Winkler相似度算法由William E. Winkler在1989年提出,是对Jaro相似度算法的改进。它通过计算字符匹配的数量、字符顺序的相似性以及前缀匹配的权重来确定字符串的相似度。
Jaro-Winkler相似度的计算过程如下:
计算匹配的字符数量(m):对于两个字符串,计算在相同位置上字符相等的数量。
计算相似字符交换的数量(t):对于两个字符串,计算在不同位置上字符相等但顺序不同的数量。
计算相似度(similarity):根据公式计算相似度,公式如下:
similarity = (m / |s1| + m / |s2| + (m - t) / m) / 3