続行 → 概要
← 技術ノート一覧

日本人名の性別判定:漢字・かな・ローマ字の扱い

約4分 2026/10/03更新 日本人名 漢字 かな

日本人名の性別判定では、同じ漢字に複数の読みがあり、読み方を文字列だけから確定できないことが最大の課題です。欧米の名簿と同じ前処理をそのまま適用すると、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" を付けてください。

入力の優先順位は次のようにします。

  1. 本人が入力した読み仮名
  2. 確認済みのローマ字表記
  3. country: "JP" を付けた漢字名
  4. 結果が null の漢字は自動採用せず確認へ回す

読み仮名があるのに漢字だけを送ると、すでに持っている有用な情報を捨てることになります。

姓名順と分割を監査する

日本語順では姓が先です。山田 太郎 のように区切りがあれば分割できますが、山田太郎 だけでは 山田 / 太郎 なのか、別の位置で区切るのかを文字列だけで断定できません。

APIへ名だけを送れるなら、それが第一選択です。フルネームを送る場合は、レスポンスの name、first_name、last_name を確認し、意図した部分が照合されたか記録してください。

かなとローマ字にも別の問題がある

かなは読みを保持しますが、同音の異なる名前を区別できない場合があります。ローマ字には表記ゆれがあります。長音、ハイフン、訓令式とヘボン式の違いを正規化しすぎると、別の入力を同じ文字列へまとめてしまいます。

元の入力は上書きせず、正規化後の値を別フィールドに保存してください。query と name の両方を残すと、入力処理の誤りと分類の誤りを分けて調査できます。

推奨する導入手順

  1. 実データから正解ラベル付きの検証セットを作る。
  2. 漢字、ひらがな、カタカナ、ローマ字を分けて測定する。
  3. カバレッジ、回答時の正解率、端から端までの正解率を別々に記録する。
  4. probability と confidence の採用閾値を用途ごとに決める。
  5. null と要確認を処理できる画面やデータ列を用意する。

大量のCSVやExcelを処理する場合も、この検証を先に行ってください。件数が増えても入力品質や読みの問題は自動的には解決しません。

実際のリクエスト形式は日本語APIドキュメント、測定方法は公開ベンチマークの方法で確認できます。

この記事の結果は、ご自身の名前リストで検証できます。小規模な確認には無料枠を利用できます。