从 Web 表单客户端向我发送许多变量,例如名称、姓氏、ID、地址等。有时用户向我发送姓名;
Elviz Aaronn Presley
使用 Winkler 算法,我想将所有记录与数据库记录进行比较。
- Elvis 将被比作“Elviz”
- Aaron 将被比作“Aaronn”
- 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/