日本人名の性別判定:漢字・かな・ローマ字の扱い
日本人名の性別判定では、同じ漢字に複数の読みがあり、読み方を文字列だけから確定できないことが最大の課題です。欧米の名簿と同じ前処理をそのまま適用すると、APIの照合前に姓名の分割や読みを誤る可能性があります。
2026年10月、NameGenderは日本人名の漢字の扱いを変えました。以前は、漢字を中国語の読みで照合していたため、「陽子」が "yang zi" として男性と判定されるような誤りがありました。現在は country: "JP" が指定された漢字を、JMnedict の読み(陽子 → ようこ)で照合し、性別は日本の名前データから決めています。JMnedict に載っていない近年の名前(例:紬菜)は、最後の漢字が性別を強く示す場合に限ってその傾向を使います。
二つのテストの結果
| 指標 | 固定テスト(51件) | 近年の名前(2,333件) |
|---|---|---|
| カバレッジ | 100% | 83.4% |
| 回答時の正解率 | 94.1% | 89.3% |
| 端から端までの正解率 | 94.1% | 74.5% |
| 変更前の回答時の正解率 | 78.0% | 65.8% |
固定テストの51件は比較的よく知られた名前が中心で、標本も小さいため、明治安田生命が公開している名前ランキングの掲載名のうち、男女どちらか一方のみの2,333件でも別に測定しました。近年の名前が多く含まれます。
近年の名前では、およそ6件に1件が「不明」になります。読みも最後の漢字も手がかりにならない名前(「颯真」のように、最後の漢字が男女どちらにも使われるもの)を、確信を持って誤るより正直な結果です。回答した名前でも約10件に1件は誤るため、個人宛ての敬称や自動メッセージに無条件で使える水準ではありません。集計用途でも未知値を残し、独自データで再測定してください。
漢字だけでは読みを確定できない
日本の名は、同じ漢字列に複数の読みが付くことがあります。さらに、漢字は中国語の文字範囲と重なるため、country を指定しないと中国語の名前として照合されることがあります。日本人名の漢字を送るときは、必ず country: "JP" を付けてください。
入力の優先順位は次のようにします。
- 本人が入力した読み仮名
- 確認済みのローマ字表記
country: "JP"を付けた漢字名- 結果が
nullの漢字は自動採用せず確認へ回す
読み仮名があるのに漢字だけを送ると、すでに持っている有用な情報を捨てることになります。
姓名順と分割を監査する
日本語順では姓が先です。山田 太郎 のように区切りがあれば分割できますが、山田太郎 だけでは 山田 / 太郎 なのか、別の位置で区切るのかを文字列だけで断定できません。
APIへ名だけを送れるなら、それが第一選択です。フルネームを送る場合は、レスポンスの name、first_name、last_name を確認し、意図した部分が照合されたか記録してください。
かなとローマ字にも別の問題がある
かなは読みを保持しますが、同音の異なる名前を区別できない場合があります。ローマ字には表記ゆれがあります。長音、ハイフン、訓令式とヘボン式の違いを正規化しすぎると、別の入力を同じ文字列へまとめてしまいます。
元の入力は上書きせず、正規化後の値を別フィールドに保存してください。query と name の両方を残すと、入力処理の誤りと分類の誤りを分けて調査できます。
推奨する導入手順
- 実データから正解ラベル付きの検証セットを作る。
- 漢字、ひらがな、カタカナ、ローマ字を分けて測定する。
- カバレッジ、回答時の正解率、端から端までの正解率を別々に記録する。
probabilityとconfidenceの採用閾値を用途ごとに決める。nullと要確認を処理できる画面やデータ列を用意する。
大量のCSVやExcelを処理する場合も、この検証を先に行ってください。件数が増えても入力品質や読みの問題は自動的には解決しません。
実際のリクエスト形式は日本語APIドキュメント、測定方法は公開ベンチマークの方法で確認できます。
この記事の結果は、ご自身の名前リストで検証できます。小規模な確認には無料枠を利用できます。