名前から性別を推定するAPI
名前を送ると、性別、確率、サンプルサイズ、信頼区分、データ出典が返ります。リクエストは1回で済み、漢字・かな・ローマ字を受け付け、一括APIは入力の順序を保ちます。
これは統計的な推定であり、本人確認ではありません。集計や傾向分析、「不明」を残せる処理には使えますが、特定の個人についての判断には使えません。
クレジットカード不要。購入した分は毎月リセットされません。
最初のリクエスト
ダッシュボードでキーを作成し、エンドポイントを呼びます。ここではPOSTでJSONを送っています。漢字やかなのURLエンコードを手で扱わずに済むためで、GETでも同じことができます。
curl -X POST "https://namegender.com/api/v1/gender" \
-H "Authorization: Bearer ng_live_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"name":"さくら","country":"JP"}'
{
"query": "さくら",
"name": "さくら",
"gender": "female",
"probability": 95,
"sample_size": 0,
"confidence": "unverified",
"country": "JP",
"source": "script",
"matched_as": "sakura"
}
`sample_size` が `0`、`confidence` が `unverified` である点に注意してください。日本には名前単位で監査できる公開登録統計がないため、この結果は計数された記録ではなく文字規則に基づいています。正しい可能性は高くても、件数に支えられてはいません。
レスポンスの各項目
`gender` だけを保存すると、強い結果とほぼ半々の結果を区別できなくなります。後から閾値を変えられるように、根拠の項目も一緒に保存してください。
| 項目 | 実装上の意味 |
|---|---|
| gender | 根拠が閾値を満たしたときの主要カテゴリ。満たさなければ null。 |
| probability | データ上の主要カテゴリの比率。その人についての確率ではありません。 |
| sample_size | 結果を支える集計可能な件数。0 は出典が監査可能な件数を公開していないことを示します。 |
| confidence | 証拠量に基づく区分:high、medium、low、unverified、unknown。 |
| source | データベース、文字規則、あいまい一致、LLM、該当なしのいずれか。 |
| matched_as | 実際に照合されたエントリ。入力と異なる場合は転写やあいまい一致が起きています。 |
`probability: 90` は「この人が90%の確率でその性別」という意味ではありません。データ上でその名前が主要カテゴリと結びつく比率です。この二つを混同することが、名前由来の性別データで最も多い誤用です。
漢字・かな・ローマ字の扱い
日本人名で難しいのは検索ではなく入力です。同じ漢字に複数の読みがあり、文字列だけから読みを確定できません。
例えば「薫」はカオル、「郁」はイクにもカオリにもなり得ます。読みが決まらなければ、名前が持つ性別の手がかりも決まりません。
日本の名前に計数された登録データがないため、漢字はCJK共通の読みに引き寄せられることがあります。右の実例では「美咲」が中国語読みの xiao に照合され、確率は54まで下がっています。
「さくら」や Sakura は読みが一意なので照合は安定します。姓名を分けて持っているなら、名のかな表記を送るのが最も確実です。
日本語の表記は姓が先、ローマ字では名が先になることが多く、データセット内で混在しがちです。APIに送る前にどちらの順序かを決め、可能なら名だけを `name` に送ってください。
# かな:読みが確定するので素直に当たる
{"query": "さくら", "gender": "female", "probability": 95,
"confidence": "unverified", "source": "script", "matched_as": "sakura"}
# 漢字:読みが確定せず、別の読みに寄ることがある
{"query": "美咲", "gender": "female", "probability": 54,
"sample_size": 84, "confidence": "medium", "matched_as": "xiao"}
これは実際のレスポンスです。かなは安定して当たり、漢字は読みが確定しないぶん弱くなります。この差は日本語データを扱う際の設計判断に直接効いてくるので、隠さずに示しています。
日本の名前での実測結果
公開している固定テストでは、日本のグループは 51 件です。カバレッジは 98.0%、回答した名前における正解率は 78.0%、未回答も誤りとして数える端から端までの正解率は 76.5% です。
この標本は小さく、日本全体の名前の分布を示すものではありません。他国の数値より明確に低く、その事実をここに書いておきます。導入前にご自身の正解付きデータで小規模に検証してください。ベンダーの総合正解率より確実です。
テスト方法を見る氏名の一括処理
名前ごとに接続を張らないでください。一括APIは1リクエストで最大 100 件を受け取り、返却順は入力順と一致します。
curl -X POST "https://namegender.com/api/v1/gender/bulk" \
-H "Authorization: Bearer ng_live_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"names":["太郎","さくら","美咲","Taro"],"country":"JP"}'
使ってはいけない場面
名前からの性別判定は確率的な推定です。以下は免責のための文章ではなく、ドキュメント、API、レスポンスで実際に守っている方針です。
- —採用、医療、金融、保険、法務、資格判定には使わないでください。
- —UIとデータベースで「不明」を保持し、null を確率の高い側へ自動的に寄せないでください。
- —閾値は自分のデータセットで決めてください。一般的な数値をそのまま使わないでください。
- —カバレッジと回答後の正解率を同時に見てください。片方だけでは必ず判断を誤ります。
- —日本語データは漢字・かな・ローマ字を分けて検証してください。
よくある質問
送れます。漢字・ひらがな・カタカナ・ローマ字のいずれも受け付けます。ただし読みが確定するかな表記のほうが安定します。
名前単位で監査できる公開登録統計がないためです。confidence は答えの正しさではなく、根拠が計数可能かどうかを表します。見栄えのよい数字で上書きせず、そのまま返しています。
51 件の固定テストで、カバレッジ 98.0%、回答後の正解率 78.0%、端から端まで 76.5% です。標本は小さく、他国より低い数値です。テスト方法は公開しています。
保存しません。問い合わせ内容は保存も学習もされません。アカウントには利用回数と課金記録だけが残ります。
できません。どの名前APIにもできません。返るのはデータ上の統計的な傾向です。個人に関わる重要な判断には本人の申告を使ってください。