从姓名中检测性别(男性或女性)

时间:2013-04-15 16:34:16

标签: python algorithm

我正在python中开发一个应用程序,我想在其中检测是否有任何名称通常是男性或女性名称。

我在谷歌上进行了搜索,但找不到任何我可以做到的算法/代码。但是我发现一个网站也做得很好:http://www.i-gender.com/

我想在我的应用程序中使用他们的API,但在此之前只想知道他们如何从名称中检测性别?是否真的可以通过算法进行?请提供一些文档/链接。

我在这里尝试:

>>> import urllib2
>>> import json
>>> req = urllib2.Request("http://www.i-gender.com/ai", "name=jhony")
>>> resp = urllib2.urlopen(req).read()
>>> decoder = json.JSONDecoder()
>>> result = decoder.decode(resp)
>>> print result['gender']
male
>>> print result['confidence']
100
>>> 

3 个答案:

答案 0 :(得分:2)

如您在自然语言处理中所述的评论中所述,或者sr2222建议使用神经网络。 (您可能最终需要两者的组合)。如果iGender正在积极尝试创建人工智能性别预测工具,正如他们所声称的那样,他们也在使用它。

有许多可用的,一个简单的谷歌搜索将帮助你 我建议使用Python:NLTK和/或PyBrain NLTK有一本(免费)书,其中一章实际上是名字/性别预测。

关于他们的API,您是否安装了所有要求? 你跑步的问题是什么?看看你的代码似乎对我很好..?


如果你不介意我问,你想要达到什么目的?可能有更容易/更好和更可靠的选择。

答案 1 :(得分:1)

我猜他们可能会使用一个数据库,可能会用算法来补充猜测数据库中没有的名称。

有很多名字(例如“Pat”),其性别相当普遍。如果你看一下国际上,在一个国家通常附属于一个性别的很多名字可能会附加到其他国家的另一个性别,并且在其他国家可能相对没有性别依恋。

答案 2 :(得分:1)

我认为你会很难找到一种检测性别的算法。

您可以做的一件事是创建一个字典,其中名称为键,性别为值。

您必须考虑的其他事项可能是男孩或女孩的名字,以及非英语名称,这些变量可能会影响您的confidence