algorithm - Web 表单的 Winkler 算法使用

标签 algorithm jaro-winkler

从 Web 表单客户端向我发送许多变量,例如名称、姓氏、ID、地址等。有时用户向我发送姓名;

Elviz Aaronn Presley

使用 Winkler 算法,我想将所有记录与数据库记录进行比较。

  1. Elvis 将被比作“Elviz”
  2. Aaron 将被比作“Aaronn”
  3. Presley 将与 Presley 进行比较

然后 Winkler 会返回一个值给我。对于第一种和第二种情况,它将返回超过 90 的值。而且没关系。当谈到像这样的名字时

Elviszfd Aaronn Presley

第一个案例点将低于 90。这是 Not Acceptable 。但是当我与中间名进行比较并获得所有三个的平均值时。点将再次提高到 90 以上。我想接受它。

使用 winkler 算法是正确的做法吗?或者我应该选择另一种算法来执行此操作。

最佳答案

Jaro Winkler 通常是一个很好的名称比较解决方案,而且效果还不错, 但我也会考虑 Monge-Elkan 字符串比较SoftTFIDF

Here is a paper描述这些方法的性能以及时间/空间复杂度。

关于algorithm - Web 表单的 Winkler 算法使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26353903/

相关文章:

algorithm - 运行时间,复杂性,编译时间和执行时间有什么区别?

algorithm - 计算总组合

algorithm - 主导项如何帮助使用 Big-O 确定时间复杂度?

multithreading - 基于静态状态的回收与基于时代的回收

c - Text::JaroWinkler::strcmp95 的第三个参数是什么?

algorithm - D3.js 是怎么做到的?

java - 如何使用 Simmetrics java 计算重叠系数和 Jaro Winkler

android - 使用 Jaro-Winkler 距离算法进行排序?

c# - .NET 中的 Jaro-Winkler 距离算法

sql - 如何在 Oracle 中使用模糊匹配获得准确的 JOIN