-4

我正在用 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
>>> 
4

3 回答 3

2

I'd guess they probably use a database, possibly supplemented by an algorithm to guess about names that aren't in the database.

There are quite a few names (e.g., "Pat") for which either gender is fairly common. If you look internationally, quite a few names that are generally attached to one gender in one country may be attached to the other gender in other countries, and may be relatively free of gender-attachment in still others.

于 2013-04-15T16:38:09.543 回答
2

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

有很多可用的,一个简单的谷歌搜索会让你走得更远。
我会推荐 Python:NLTK 和/或 PyBrain。
NLTK 有一本(免费)书,其中一章实际上是关于姓名/性别预测的。

关于他们的 API,您是否安装了所有要求?你遇到什么问题?看看你的代码,它对我来说似乎工作正常.. ?


如果你不介意我问,你想达到什么目的?可能有更简单/更好和更可靠的选项可用。

于 2013-04-15T16:47:11.223 回答
1

I think you would be hardpressed to find an algorithm to detect gender.

One thing you could do is create a dictionary with a name as a key, and a gender as a value.

Other things you will have to consider are names that can be for a boy or girl, and non-english names, these variables could factor into your confidence.

于 2013-04-15T16:39:26.170 回答