私は、同じ人を表すが異なる方法 (フル ネームまたは短いバージョン) で書かれている名前を照合するのに役立つメソッドを作成しました。次に例を示します。
Paul Samuelson-Smith
私の方法に基づいて等しいとPaul Smith
見なされます:
private static boolean equalName(String name_2, String name_1){
boolean equality1 = true;
name_1 = name_1.replace("&", " ").replace("-", " ");
String [] names1 = name_1.split(" ");
for (int i = 0; i < names1.length ; i ++) {
if (!name_2.contains(names1[i])) {equality1 = false; break;}
}
boolean equality2 = true;
name_2 = name_2.replace("&", " ").replace("-", " ");
String [] names2 = name_2.split(" ");
for (int i = 0; i < names2.length ; i ++) {
if (!name_1.contains(names2[i])) {equality2 = false; break;}
}
return equality1 || equality2;
}
ただし、名前にタイプミスがある場合は、同一人物であるPaul Samuelson-Smith
と言う問題はまだあります。Paull Smith
私の質問は、タイプミスの可能性を説明するのに役立つ API はありますか? どうすれば方法を改善できますか?