oracle - 如何使用 jaro-winkler 查找表中最接近的值?

标签 oracle string-comparison fuzzy-comparison

我的数据库中有一个 jaro-winkler 算法的实现。这个函数不是我写的。该函数比较两个值并给出匹配的概率。

所以 jaro(string1, string2, matchnoofchars) 将返回结果。

我不想比较两个字符串,而是想发送一个带有 matchnoofchars 的字符串,然后得到概率高于 95% 的结果集。

例如,当前函数能够为 jaro("Philadelphia","Philadelphlaa",9) 返回 97.62%

我希望调整此功能,以便我能够找到“Philadelphia”作为“Philadelphlaa”的输入。我需要做出什么样的改变才能实现这一点?

我使用的是 Oracle 9i。

最佳答案

您是否有包含“费城”等单词的单词列表?

那个函数是谁写的?

Oracle 有用于模糊文本比较的 utl_match 包:http://download.oracle.com/docs/cd/E14072_01/appdev.112/e10577/u_match.htm

你不能吗

选择w1.word 来自单词 w1 其中 jaro(w1.word,'费城', 9) >= 0.95

如果表格单词中存在该单词,则将选择“Philadelphia”。

关于oracle - 如何使用 jaro-winkler 查找表中最接近的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3585246/

相关文章:

sql - 动态情况下

iphone - 我应该使用哪些搜索和比较选项来搜索汉字?

c# - 复杂的 "Contains"字符串比较

c# - 从不区分大小写的列表中获取重复项

r - 在 R 中使用 stringdist_join() 进行模糊连接,错误 : NAs are not allowed in subscripted assignments

database - 比较两个文件与歌曲标题列表的最简单方法

database - "Unit"测试数据库

sql - 选择事务作为单行

sql - Oracle错误 "inconsistent datatypes: expected CHAR got LONG"

python - 如何选择模糊匹配算法?