Exploratory アワー #802 - AI 関数: 2つの列で同一人物か判定する方法

概要

サービスなどの登録時に、不正なアカウント作成を防ぐための「同一人物判定」は非常に重要です。しかし、漢字表記とローマ字表記の混在や、名前の後ろに補足情報が含まれる場合など、従来の条件式では同一人物かどうかを正確に判定するのが難しいケースが多くあります。

今回は、ExploratoryのAI 関数を使用して、2つの列にあるユーザー名が同一人物のものかどうかを判定し、フラグを立てる方法を紹介します。

問題

ユーザー登録時の名前と変更後の名前を比較する際、表記の揺れ(例:漢字とローマ字)や、特定のキーワードの追加(例:氏名の後にかっこ書きで本名を追加)があると、単純な一致確認では「別人」と判定されてしまいます。

一方で、全く異なる言語の名前や明らかに別人の名前に変更されている場合は、不正なアカウント運用の可能性があるため、これらを正確に識別してフラグを立てる必要があります。

解決方法

AI 関数による同一人物判定フラグの作成

今回使用するデータは、1行が1ユーザーの登録情報となっており、「登録時ユーザー名」と「変更後ユーザー名」の2つの列が含まれています。

まず、これら2つの列を比較して、同一人物である可能性が高いかどうかを判定するフラグ列を作成します。AI 関数を活用することで、人間が目視で判断するような柔軟な比較が可能になります。

「登録時ユーザー名」列と「変更後ユーザー名」列を、Shiftキーを押しながら両方選択し、列ヘッダメニューから「AI 関数を作成」を選択します。

「AI 関数を作成」ダイアログが表示されたら、プロンプトに判定の基準を記述します。今回は、以下のようなプロンプトを指定します。

2つの名前に関する情報を渡すので、その2つで両者が同一人物かどうか判定してください。
同一人物の場合であればTRUE、異なる人物と判断される場合はFALSEを返すようにしてください。

登録時ユーザー名: 井上由美
変更後ユーザー名: Inoue Yumi
→同一人物のためTRUEを返す

登録時ユーザー名: 呉芳
変更後ユーザー名: 佐々木翔
→異なる人物のためFALSEを返す

このように、具体的な例をプロンプトに含めることで、AIの判定精度を向上させることができます。

実行すると、AIが各行の2つの名前を比較し、同一人物であればTRUE、別人であればFALSEを格納した新しい列が作成されます。

FALSE(別人)と判定された人たちを確認すると、全く異なる言語の名前や、明らかに別人の名前に変更されている行のみがリストアップされていることがわかります。

今度はTRUE(同一人物)のデータの場合は、漢字とローマ字の違いや、名前の後ろに補足情報がついているケースでも、AIが正しく同一人物であると判断し、TRUEを返していることが確認できます。

このようにExploratoryのAI 関数を活用することで、複雑なルールを自分で作成することなく、高度な名寄せや不正検知のロジックを簡単にデータへ適用することが可能になります。

ビデオ

Export Chart Image
Output Format
PNG SVG
Background
Set background transparent
Size
Width (Pixel)
Height (Pixel)
Pixel Ratio