我的数据库中有一个 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/