继续 → 概览

根据姓名判断性别 API

发送一个姓名,接口返回性别、概率、样本量、置信等级和数据来源。一次请求即可,支持汉字和拼音,批量接口保持输入顺序。

这是统计推断,不是身份认定。它适合数据汇总、受众分析和可以保留“未知”的流程;不适合对某个具体的人做出判断。

无需信用卡。已购买的额度不会每月清零。

数据库中的姓名
8.0M
覆盖国家
198
汉字姓名准确率
86.9%
固定测试集 222 个汉字姓名,在给出答案的姓名中
汉字姓名覆盖率
99.5%
同一测试集中能够给出答案的比例

第一个请求

在控制台创建密钥后直接调用接口。这里用 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":"CN"}'
真实响应
{
  "query": "伟",
  "name": "伟",
  "gender": "male",
  "probability": 85,
  "sample_size": 0,
  "confidence": "unverified",
  "country": "CN",
  "source": "script",
  "matched_as": "wei"
}

注意 `sample_size` 是 `0`,`confidence` 是 `unverified`。中文姓名没有公开可审计的登记数量,所以这个结果依据的是文字规则而不是计数记录。答案可能正确,但它没有被计数支撑——这一点我们写在响应里,而不是藏起来。

响应字段的含义

生产代码不应该只读取 `gender`。把下面这些字段一起保存,你才能在之后调整阈值,而不必重新调用整批数据。

字段 开发时的含义
gender 证据达到阈值时的主要统计类别,否则为 null。
probability 数据中主要类别所占的比例,不是对这个人的确定度。
sample_size 支撑结果的可计数记录数。0 表示来源没有公开可审计的数量。
confidence 根据证据量区分 high、medium、low、unverified 和 unknown。
source 结果来自数据库、文字规则、模糊匹配、语言模型,还是没有结果。
matched_as 实际命中的数据库条目。与输入不同时说明发生了转写或模糊匹配。

`probability: 90` 不等于“这个人有 90% 的可能是这个性别”。它表示当前数据中该姓名与主要类别的关联比例。把这两件事混为一谈,是姓名性别数据最常见的误用。

汉字、拼音与姓名顺序

中文姓名的难点不在查表,而在输入本身。姓在前、名在后,而多数按西方名单设计的系统默认第一个词是名字。

姓在前会让结果反转

张伟中的张是姓,伟是名。如果系统把第一个拉丁词当作名字,Zhang Wei 会按姓氏 Zhang 查询,得到的是姓氏的性别倾向,而不是这个人的。

汉字比拼音保留更多信息

不带声调的 wei 可以对应伟、薇、微、威、唯,这些字的性别倾向并不相同。拼音把这些区别丢掉了,而接口只能看到你发送的内容。

中文结果通常是 unverified

中国没有公开可按姓名统计的登记数量,所以 sample_size 往往是 0,confidence 是 unverified。这不代表结果错误,而是说明它没有计数支撑。

建议的做法

有独立名字字段时只发送名字;只有全名时优先发送汉字,并读取响应中的 first_name 和 last_name;只有拼音时,明确记录姓名顺序,不要假设第一个词是名字。

同一个姓名,两种写法
# 汉字:姓名顺序被正确识别
{"query": "王芳", "first_name": "芳", "last_name": "王",
 "gender": "female", "probability": 93, "source": "db"}

# 拼音:同一个人,结果相反
{"query": "Wang Fang", "first_name": "Wang", "last_name": "Fang",
 "gender": "male", "probability": 87, "source": "db"}

这是真实响应,不是示意。汉字输入时接口识别出王是姓、芳是名,返回 female;换成拼音 Wang Fang 之后,第一个词被当成名字,结果变成 male。差别不在数据,在输入。

汉字姓名上的实测表现

在公开的固定测试集中,汉字文字组包含 222 个姓名。覆盖率为 99.5%,在给出答案的姓名中准确率为 86.9%,把未回答也算作错误的端到端准确率为 86.5%。

这是可复现的产品测试,不是中国人口普查。它不能代表所有地区、所有年代的用名习惯。评估时请用你自己的一小批带标签数据验证,这比任何供应商给出的总准确率都更有说服力。

查看测试方法

批量姓名性别识别

不要为每个姓名建立一次连接。批量接口在一个请求中最多接收 100 个姓名,并保持返回顺序与输入一致。

批量请求
curl -X POST "https://namegender.com/api/v1/gender/bulk" \
  -H "Authorization: Bearer ng_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"names":["伟","静","王芳","Zhang Wei"],"country":"CN"}'

不应该用在哪里

姓名性别识别是概率推断。下面这些规则不是免责声明,而是我们自己在文档、接口和响应里坚持的做法。

  • 不要用于招聘、医疗、金融、保险、法律或资格判断。
  • 在界面和数据库中保留未知值,不要把 null 自动改成概率更高的一侧。
  • 针对自己的数据集选择概率阈值,不要直接套用通用数字。
  • 同时监控覆盖率和回答后的准确率;只看其中一个都会得出错误结论。
  • 对中文数据分别测试汉字、拼音和混合输入。

常见问题

支持汉字输入吗?

支持。汉字是推荐的输入形式,因为它保留了拼音丢失的区别。接口同时接受汉字、拼音和混合输入。

为什么中文结果的 confidence 是 unverified?

因为来源没有公开按姓名统计的登记数量。confidence 反映的是证据是否可计数,不是答案是否正确。我们选择把这件事写在响应里,而不是用一个看起来更好的数字覆盖它。

准确率是多少?

在 222 个汉字姓名的固定测试集中,覆盖率 99.5%,回答后的准确率 86.9%,端到端准确率 86.5%。测试集和方法都是公开的。

接口会保存我发送的姓名吗?

不会。查询内容不会被存储,也不会用于训练。账户中只保留调用次数和计费记录。

能判断一个人的性别认同吗?

不能,任何姓名接口都不能。返回的是这个姓名在数据中的统计倾向。涉及个人的重要判断请使用本人提供的信息。

先用自己的数据测一测

注册后每天有 100 次免费调用,足够用一小批带标签的姓名验证覆盖率和准确率,再决定是否接入。

由 NameGender 工程团队维护 · 基准测试数据更新于 2026年8月28日