0

从网络表单客户端向我发送许多变量,例如姓名、姓氏、身份证、地址等。有时用户向我发送姓名,例如;

Elviz Aaronn Presley

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

  1. 猫王将被比作“猫王”
  2. 亚伦将被比作“亚伦”
  3. 普雷斯利将与普雷斯利相提并论

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

Elviszfd Aaronn Presley

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

使用 winkler 算法是一种好的和正确的做法吗?或者我应该选择另一种算法来做到这一点。

4

1 回答 1

1

Jaro Winkler 通常是一个很好的名称比较解决方案,并且它做得相当好,但我也会考虑Monge-Elkan String ComparisonSoftTFIDF

这是一篇描述这些方法的性能以及时间/空间复杂性的论文。

于 2014-10-22T23:42:49.470 回答