約 100 万レコードの管理データの大きなファイルがあります。このデータセットでは、個々の人を複数回表すことができます。記録の約半分には、記録を個人にマッピングする識別コードがあります。そうでない半分については、名前をあいまい一致させて、同一人物に属する可能性のあるレコードにフラグを付ける必要があります。
識別コードを含む記録を見て、同じ個人の名前の記録で発生した違いのリストを作成しました。
- ジョン・スノウ vs ジョン・ターガリエン・スノウなど、ミドルネームを含める
- 2 番目の姓を含める 例: Jon Snow vs Jon Targaryen-Snow
- ニックネーム / 名の短縮形 例: Jonathon Snow vs Jon Snow
- ジョン・スノウ vs スノー・ジョンなどの名前の反転
- スペルミス/タイプミス/バリアント: 例: Samual/Samuel、Monica/Monika、Rafael/Raphael
私が求めている試合の種類を考えると、Rで簡単に実装できるagrep()/levenshteinの距離を使用するよりも良いアプローチはありますか?
編集: R の agrep() は、この問題に対してあまりうまく機能しません。名前が異なる方法で記録されることを考慮して、多数の挿入と置換を許可する必要があるため、多くの誤った一致がスローされます。 .