我正在对人员数据库进行重复数据删除。对于第一遍,我遵循基本的两步过程,以避免对整个数据库进行 O(n^2) 操作,如文献中所述。首先,我“阻塞”——遍历整个数据集,并根据名称中存在的 n-gram 和首字母对每条记录进行分类。其次,使用 Jaro-Winkler 比较每个 bin 的所有记录,以衡量它们代表同一个人的可能性。
我的问题 - 名称是 Unicode。其中一些(尽管不多)名称是 CJK(中日韩)语言。我不知道如何为这些语言中的首字母之类的东西找到单词边界。我不知道 n-gram 分析是否对名称可以是 2 个字符的语言中的名称有效。我也不知道字符串编辑距离或其他相似性指标在这种情况下是否有效。
语言程序员或母语人士有什么想法吗?