Iruca Log

Iruca Log

東京に住むWeb系エンジニアによるデータ分析ブログ

SNSでフォローする!

名前から性別を判別するGenderize APIを使ってみた

f:id:iruca21:20170920011419p:plain

はじめに

こんにちは、irucaです。
人の名前やSNSの情報などをデータ分析しているとき、その人の性別をデータ化したいケースがあります。
しかしAPIで性別が取得できないときに、「この人は男だから…」などと手動でラベル付けするのは面倒です。

そんなときに使えるのが「Genderize API」。

genderize.io

人の名前(ファーストネーム)から、性別を推定してくれるAPIなのです。
確率付きで推定してくれますし、2017年9月現在、79か国89言語の名前に対応しているという充実っぷり。
試しに使ってみるだけでも楽しいです。

使い方

使い方はとっても簡単。name=[調べたいファーストネーム]をクエリストリングにつけてhttps://api.genderize.ioにHTTP GETメソッドでアクセスするだけです。

例 (ブラウザでもアクセスできます)
https://api.genderize.io/?name=tsuyoshi

# curl -s https://api.genderize.io/?name=tsuyoshi | jq .
{
  "name": "tsuyoshi",
  "gender": "male",
  "probability": 1,
  "count": 6
}

この例だと、「つよし」という名前は100%男だという結果です。


複数の名前の性別を一気に調べることもできます。
https://api.genderize.io/?name[0]=peter&name[1]=lois&name[2]=stevie

[
  {"name":"peter","gender":"male","probability":"1.00","count":796},
  {"name":"lois","gender":"female","probability":"0.94","count":70},
  {"name":"stevie","gender":"male","probability":"0.63","count":39}
]

国コードによって特定の国を指定して調べることも簡単。
https://api.genderize.io/?name=kim&country_id=dk

{"name":"kim","gender":"male","probability":"1.00","count":17,"country_id":"dk"}

ただし現在のところ、1日に1000個以上の名前を調べようとするとエラーとなるRate Limitが入っているようなので使い過ぎにはご注意ください。

より詳しい使い方が知りたい方は、公式ページを参照してください。
https://genderize.io/#overview


いろいろふざけてみた

「けい」は62%男

https://api.genderize.io/?name=kei

{"name":"kei","gender":"male","probability":0.62,"count":58}

ルフィは80%男

https://api.genderize.io/?name=luffy

{"name":"luffy","gender":"male","probability":0.8,"count":5}

ライトニングさんは性別不明

https://api.genderize.io/?name=lightning

{"name":"lightning","gender":null}

マツコも性別不明

https://api.genderize.io/?name=matsuko

{"name":"matsuko","gender":null}

バキは100%男

https://api.genderize.io/?name=baki

{"name":"baki","gender":"male","probability":1,"count":20}

おわりに

ファーストネームから性別を推定するGenderize APIをご紹介しました。

ジェンダーについては色々な考え方があり、このように一概にAPIで2パターンに判別ができるようなものでは決してありませんが、一つのツールとして用途はたくさん考えられるかと思います。