名前から性別を判別するGenderize APIを使ってみた
はじめに
こんにちは、irucaです。
人の名前やSNSの情報などをデータ分析しているとき、その人の性別をデータ化したいケースがあります。
しかしAPIで性別が取得できないときに、「この人は男だから…」などと手動でラベル付けするのは面倒です。
そんなときに使えるのが「Genderize API」。
人の名前(ファーストネーム)から、性別を推定してくれる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}
バキは100%男
https://api.genderize.io/?name=baki
{"name":"baki","gender":"male","probability":1,"count":20}
おわりに
ファーストネームから性別を推定するGenderize APIをご紹介しました。
ジェンダーについては色々な考え方があり、このように一概にAPIで2パターンに判別ができるようなものでは決してありませんが、一つのツールとして用途はたくさん考えられるかと思います。