💄 Get gender from first name in python
Switch branches/tags
Nothing to show
Clone or download
Latest commit 85d33bb May 5, 2013
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
sexmachine ord bug, mapping, unsupported chars, readme typos Apr 19, 2013
.gitignore first cut Apr 17, 2013
CHANGES.txt silly me, forgot data file Apr 19, 2013
LICENSE first cut Apr 17, 2013
MANIFEST.in first cut Apr 17, 2013
README.rst added readme badges May 5, 2013
setup.py silly me, forgot data file Apr 19, 2013

README.rst

Sex Machine

PyPI status:

https://pypip.in/v/SexMachine/badge.png https://pypip.in/d/SexMachine/badge.png

This package uses the underlying data from the program "gender" by Jorg Michael (described here). Its use is pretty straightforward:

>>> import sexmachine.detector as gender
>>> d = gender.Detector()
>>> d.get_gender(u"Bob")
u'male'
>>> d.get_gender(u"Sally")
u'female'
>>> d.get_gender(u"Pauley") # should be androgynous
u'andy'

The result will be one of andy (androgynous), male, female, mostly_male, or mostly_female. Any unknown names are considered andies. Moreover, you can set unknown value to whatever you want:

>>> d = gender.Detector(unknown_value=u"ferhat")
>>> d.get_gender(u"Pauley")
u'ferhat'

I18N is fully supported:

>>> d.get_gender(u"Álfrún")
u'female'

Additionally, you can give preference to specific countries:

>>> d.get_gender(u"Jamie")
u'mostly_female'
>>> d.get_gender(u"Jamie", u'great_britain')
u'mostly_male'

Additionally, you can create a detector that is not case sensitive (default is to be case sensitive):

>>> d = sexmachine.detector.Detector(case_sensitive=False)
>>> d.get_gender(u"sally")
u'female'
>>> d.get_gender(u"Sally")
u'female'

Try to avoid creating many Detectors, as each creation means reading the data file.

Licenses

The generator code is distributed under the GPLv3. The data file nam_dict.txt is released under the GNU Free Documentation License.