大家好,自然语言处理会涉及到一致性验证特征。英文的姓名相似度包含用户自己填写的姓名、身份证上ocr识别的姓名、征信报告中用户姓名,可以作为模型特征使用、也可以作为业务的个人信息验证规则使用,本文简单介绍其计算逻辑。
1.原理
编辑距离,又叫Levenshtein距离。对于两个字符串文本序列,根据 Levenshtein 计算将一个序列更改为另一个序列所需的最小插入、删除和替换次数,以及插入、删除和替换的自定义成本。
如 "lewenstein"、"levenshtein"的编辑距离为2,"lewenstein" 需要通过一次替换(第三位字符"w"替换为"v")、一次插入("s"字符后插入"t"),即可变为"levenshtein"。
编辑距离越小,一个字符串变更为另一个字符串的变更次数越小,两个字符串的相似度也就越高。可以看出编辑距离非常适合用于计算英文的姓名相似度,在客户自己填写个人信息时,可能会有部分缩写,如"Travor Noah"缩写为"Noah, T.",也可能将"levenshtein"错误拼写为"lewenstein"(ocr识别出姓名的此类问题更是常见),而编辑距离能够很好地减缓这种问题所造成的姓名不一致。
2.工具包
编辑距离的计算可以直接调用levenshtein包,不仅实现了编辑距离及归一化的相似度,还实现了hamming距离和jaro距离计算。
pip install levensht