{ "info": { "author": "Kensuke Muraki", "author_email": "kensk8er1017@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing :: Linguistic" ], "description": "chicksexer - Python package for gender classification\n=================================================================\n\n![Chicksexer](images/chicksexer.jpg?raw=true \"Title\")\n\n`chicksexer` is a Python package that performs **gender classification**. It receives a string of person name and returns the probability estimate of its gender as follows:\n\n```python\n>>> from chicksexer import predict_gender\n>>> predict_gender('John Smith')\n{'female': 0.0027230381965637207, 'male': 0.9972769618034363}\n```\n\nSeveral merits of using the classifier instead of simply looking up known male/female names are:\n\n* Sometimes simple name lookup does not work. For instance, \"Miki\" is a Japanese female name, but also a Croatian male name.\n* Can predict the gender of a name that does not exist in the list of male/female names.\n* Can deal with a typo in a name relatively easily.\n\nYou can also get an estimate as a simple string as follows:\n\n```python\n>>> predict_gender('Oliver Butterfield', return_proba=False)\n'male'\n>>> predict_gender('Naila Ata', return_proba=False)\n'female'\n>>> predict_gender('Saldivar Anderson', return_proba=False)\n'neutral'\n>>> predict_gender('Ponyo', return_proba=False) # name of a character from the film\n'male'\n>>> predict_gender('Ponya', return_proba=False) # modify the name such that it sounds like a female name\n'female'\n>>> predict_gender('Miki Suzuki', return_proba=True) # Suzuki here is a Japanese surname so Miki is a female name\n{'female': 0.9997618066990981, 'male': 0.00023819330090191215}\n>>> predict_gender('Miki Adami\u0107', return_proba=True) # Adami\u0107 is a Croatian surname so Miki is a male name\n{'female': 0.16958969831466675, 'male': 0.8304103016853333}\n>>> predict_gender('Jessica')\n{'female': 0.999996105068476, 'male': 3.894931523973355e-06}\n>>> predict_gender('Jesssica') # typo in Jessica\n{'female': 0.9999851534785194, 'male': 1.4846521480649244e-05}\n```\n\nIf you want to predict the gender of multiple names, use `predict_genders` (plural) function instead:\n\n```python\n>>> from chicksexer import predict_genders\n>>> predict_genders(['Ichiro Suzuki', 'Haruki Murakami'])\n[{'female': 3.039836883544922e-05, 'male': 0.9999696016311646},\n {'female': 1.2040138244628906e-05, 'male': 0.9999879598617554}]\n>>> predict_genders(['Ichiro Suzuki', 'Haruki Murakami'], return_proba=False)\n['male', 'male']\n```\n\nInstallation\n------------\n- This repository can run on Ubuntu 14.04 LTS & Mac OSX 10.x (not tested on other OSs)\n- Tested only on Python 3.5\n\n`chicksexer` depends on [NumPy and Scipy](https://www.scipy.org/install.html), Python packages for scientific computing. You might need to have them installed prior to installing `chicksexer`.\n\nYou can install `chicksexer` by:\n\n```bash\npip install chicksexer\n```\n\n`chicksexer` also depends on `tensorflow` package. In default, it tries to install the CPU-only version of `tensorflow`. If you want to use GPU, you need to install `tensorflow` with GPU support by yourself. (C.f. [Installing Tensorflow](https://www.tensorflow.org/install/))\n\nModel Architecture\n------------------\nThe gender classifier is implemented using Character-level Multilayer LSTM. The architecture is roughly as follows:\n\n1. Character Embedding Layer\n2. 1st LSTM Layer\n3. 2nd LSTM Layer\n4. Pooling Layer\n5. Fully Connected Layer\n\nThe fully connected layer outputs the probability of a name bing a male name. For the details, look at `_build_graph()` method in `chicksexer/_classifier.py`, which implements the computational graph of the architecture in `tensorflow`.\n\nTraining Data\n-------------\nNames with gender annotation are obtained from the sources as follows:\n\n* [Dbpedia Person Data](http://downloads.dbpedia.org/2015-10/core-i18n/en/persondata_en.tql.bz2)\n* [Popular baby names in the US](https://www.ssa.gov/oact/babynames/limits.html)\n* [Names dataset curated by Milos Bejda](https://mbejda.github.io/)\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kensk8er/chicksexer", "keywords": "natural-language-processing machine-learning tensorflow deep-learning recurrent-neural-networks lstm nlp python neural-network character-embeddings data-science gender-classification", "license": "", "maintainer": "", "maintainer_email": "", "name": "chicksexer", "package_url": "https://pypi.org/project/chicksexer/", "platform": "", "project_url": "https://pypi.org/project/chicksexer/", "project_urls": { "Homepage": "https://github.com/kensk8er/chicksexer" }, "release_url": "https://pypi.org/project/chicksexer/0.2.2/", "requires_dist": null, "requires_python": "", "summary": "Python package for gender classification.", "version": "0.2.2" }, "last_serial": 3037431, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "24373bfbdba0509f5f77fbe88c5a09e0", "sha256": "d14ce9ba71a4ceae42f63e26063abed43c124bd76140381ba69ea78906b9f388" }, "downloads": -1, "filename": "chicksexer-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "24373bfbdba0509f5f77fbe88c5a09e0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34048561, "upload_time": "2017-05-25T01:25:21", "url": "https://files.pythonhosted.org/packages/60/b8/8d3930d226caf18da5f4f852ebcc5cc1144feb8fea2b1d53dd100644a8dd/chicksexer-0.1.0-py3-none-any.whl" } ], "0.1.2": [], "0.1.5": [ { "comment_text": "", "digests": { "md5": "2650d21aee7309f272e38ddd252aefff", "sha256": "ca97d5c8c62c9a7405f3e2701943055895f082b4eb31997396afd2c914346b0d" }, "downloads": -1, "filename": "chicksexer-0.1.5.tar.gz", "has_sig": false, "md5_digest": "2650d21aee7309f272e38ddd252aefff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34066647, "upload_time": "2017-06-13T00:13:48", "url": "https://files.pythonhosted.org/packages/2d/0c/00cc15cc67e906380428a17f43beddcb5a29ca214bb3574b1d4e15a425a0/chicksexer-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "2f4cd7e077033e27d0024affaa4db0d0", "sha256": "413f3beedfe80da1776c448862bf4ed63cdf67a28c0c14d5d15ef78480611c3f" }, "downloads": -1, "filename": "chicksexer-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "2f4cd7e077033e27d0024affaa4db0d0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34071041, "upload_time": "2017-06-13T00:26:56", "url": "https://files.pythonhosted.org/packages/9a/ab/43165b44d9307d36eff605623b7b2ee736937807e54dd35608803abf4760/chicksexer-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9cd2bd84bf4dc1cc312b838ff7939fa1", "sha256": "606dccf61f4fc7b52fada3f7d02b73b5c4c1da73d813ee61cd5561490c0fbfb0" }, "downloads": -1, "filename": "chicksexer-0.1.6.tar.gz", "has_sig": false, "md5_digest": "9cd2bd84bf4dc1cc312b838ff7939fa1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34067015, "upload_time": "2017-06-13T00:27:35", "url": "https://files.pythonhosted.org/packages/85/f4/8bd47292f067ed30e74e30d09228017b75f80d736ca0496787840b26e5c7/chicksexer-0.1.6.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "573c88028448c7b45538f0707e4c60eb", "sha256": "6fce31489c7e512706e22408228f5bb9f6131d6244c5c4409cfc882b1d7f70e6" }, "downloads": -1, "filename": "chicksexer-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "573c88028448c7b45538f0707e4c60eb", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 24879762, "upload_time": "2017-07-19T23:47:35", "url": "https://files.pythonhosted.org/packages/a3/58/bc4c8ba7da7df37f2a5e8137f0d27d0c66ec0705a5b9db89be4345e6a977/chicksexer-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b6477f8f9fa5ecf9762caef8b7911f65", "sha256": "3ee0f231fe5ef558fd042aa5934abd60ff212b474d6afc9390c05ce77c2dd283" }, "downloads": -1, "filename": "chicksexer-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b6477f8f9fa5ecf9762caef8b7911f65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24871679, "upload_time": "2017-07-19T23:46:57", "url": "https://files.pythonhosted.org/packages/ce/11/7bfc2af7eccf9c6e1bc56a549aa2f67fe2ee2ca6ba6313f4096ce177d640/chicksexer-0.2.0.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "d93527f2fe90b0c076212f13e96af91c", "sha256": "fc17fd86771cfd8315e580a848518006cc396feaab54403b3a7d93dec363e19a" }, "downloads": -1, "filename": "chicksexer-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d93527f2fe90b0c076212f13e96af91c", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 14066496, "upload_time": "2017-07-20T17:21:05", "url": "https://files.pythonhosted.org/packages/94/eb/be8da085100df911d22f94de34dab84c91ce18899d103e03cd521fbf8524/chicksexer-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dac7a308c115b5bef16d7c5ea3d205ad", "sha256": "7f6c000f9d94d1a44f83d82cbaefcee1483401a3579ddaef8503e9e9cbc9d91c" }, "downloads": -1, "filename": "chicksexer-0.2.2.tar.gz", "has_sig": false, "md5_digest": "dac7a308c115b5bef16d7c5ea3d205ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14059361, "upload_time": "2017-07-20T17:20:53", "url": "https://files.pythonhosted.org/packages/12/eb/3d5085b74bf68fd069fe654f10b3e6b7a2270f6db5d6f493c09edc183446/chicksexer-0.2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d93527f2fe90b0c076212f13e96af91c", "sha256": "fc17fd86771cfd8315e580a848518006cc396feaab54403b3a7d93dec363e19a" }, "downloads": -1, "filename": "chicksexer-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d93527f2fe90b0c076212f13e96af91c", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 14066496, "upload_time": "2017-07-20T17:21:05", "url": "https://files.pythonhosted.org/packages/94/eb/be8da085100df911d22f94de34dab84c91ce18899d103e03cd521fbf8524/chicksexer-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dac7a308c115b5bef16d7c5ea3d205ad", "sha256": "7f6c000f9d94d1a44f83d82cbaefcee1483401a3579ddaef8503e9e9cbc9d91c" }, "downloads": -1, "filename": "chicksexer-0.2.2.tar.gz", "has_sig": false, "md5_digest": "dac7a308c115b5bef16d7c5ea3d205ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14059361, "upload_time": "2017-07-20T17:20:53", "url": "https://files.pythonhosted.org/packages/12/eb/3d5085b74bf68fd069fe654f10b3e6b7a2270f6db5d6f493c09edc183446/chicksexer-0.2.2.tar.gz" } ] }