我正在寻找一个图书馆或数据库,可以根据他或她的名字或昵称猜测一个人是男性还是女性.就像是
john => "M", mary => "F", alex => "A", #ambiguous
我正在寻找支持英文名称以外的名字的东西(如日语,印度语等).
在我得到另一个答案之前,"你将通过假设他们的性别/性别冒犯别人"让我清楚,我的申请不会与任何人互动.无论如何,它不会发送电子邮件或联系任何人.没有用户要问.在许多情况下,有关人员已经死亡,我所拥有的唯一信息是姓名,出生日期和死亡日期.我想知道个人性别的原因是为了使输出的语法更好,并有助于可能的后期搜索.
gender.c是一个开源的 C程序,做得很好.它附带了来自世界各地44568名的数据.有很好的文档和文件格式的描述(基本上是纯文本)所以不应该很难从你自己的应用程序中读取它.
这是作者所说的:
关于数据质量的几句话
名字词典已经非常谨慎地准备好了.例如,这本词典中的土耳其语,印度语和韩语名称都由几位母语人士独立分类.我还特别注意列出目前可以找到的那些名字.
这个教训呢?
任何修改都应该非常谨慎(并且它们还必须遵循搜索算法所需的排序).例如,知道"Sascha"在德国是男孩的名字,作者从未认为英语"Sasha"是女孩的名字.知道"Jan"在德国是男孩的名字,我从未认为它也是"珍妮特"的英文简称.另一个例子是"Esra"这个名字.这是德国男孩的名字,但土耳其女孩的名字.
该程序计算名称为女性男性的概率.它可以单独使用名称作为输入,也可以使用名称和原产国,这样可以获得更好的结果.
您可以从德国计算机杂志c't 40 000 Namen的网站下载 .这篇文章是德文但不用担心,所有文档都是英文的.如果您对该文章不感兴趣,可以使用直接ftp链接0717-182.zip.zip-File包含源代码,Windows可执行文件,数据库和文档.
名称的性别是在一般情况下无法以编程方式推断的.您需要一个名称数据库.这是美国人口普查局的免费名称数据库.
编辑:2010年名称的链接已经死亡,但评论中有工作链接和库.
"我告诉你,一个名叫'苏'的男孩的生活并不容易."
......那么,为什么要更难?如果你需要知道性别,只要问......否则,不要担心.
我已经构建了一个免费的API,根据名字对性别进行概率性猜测.我没有使用任何上述方法,而是使用来自社交网络的大量配置文件数据集来提供概率猜测和确定性因子.它还支持通过国家/地区或语言ID进行的可选过滤.随着更多配置文件添加到数据集中,它日渐好转.
它可以在http://genderize.io上免费使用
您应该考虑的一件事是使用一种将人口统计学考虑在内的工具,因为命名约定将严重依赖于此.
例
http://api.genderize.io?name=kim {"name":"kim","gender":"female","probability":"0.89","count":1440} http://api.genderize.io?name=kim&country_id=dk {"name":"kim","gender":"male","probability":"0.95","count":44,"country_id":"dk"}
以下是两种奇怪的方法,甚至可能不起作用,并且可能在不违反许可条款的情况下不会集体使用:
使用Facebook API(我几乎不知道,甚至可能不知道)执行两次搜索:一个用于具有该名字的FB男性用户,一个用于女性.使用这两个数字来确定性别概率.
更宽松但更具可扩展性,使用Google API并搜索名称和性别特定代词,并比较数字.例如,搜索"理查德他的"(不是短语)有592,000,000个结果,但"理查德她"只有179,000,000个.
鉴于你所陈述的限制,你最好的选择是重新表达你所写的任何不分性别的内容,除非你知道他们想要在每个实例中调用什么性别.
如果用英语写作,请记住,单数"他们"在语法上可以作为性别中立的第三人称单数代词.
一个很好的例子就是这个问题的标题.目前:
… mapping a person's name to his or her sex?
如果写的话,那就不那么尴尬了:
… mapping a person's name to their sex?