从姓名预测国籍

name2nat的Python项目详细描述


name2nat:一个Python包,用于根据名称预测国籍

name2nat是一个Python包,它预测用罗马字母书写的任何名称的国籍。 例如,它为我的名字“Kyubyong Park”返回正确的输出Korean。 不用说,从一个人的名字中100%猜对他的国籍是不可能的。 毕竟,国籍是可以改变的,你知道的。 不过,姓名和国籍之间也有一种趋势。 因此,这项任务的统计分类器在一定程度上起到了作用。 详细说明如下。在

NaNa数据集

结构

我无法找到一个新的数据集,因为我无法找到一个新的数据集。在

  • 第1步。下载并提取了20200601英语维基转储(enwiki-20200601-pages-文章.xml). 在
  • 第二步。重复所有页面并收集标题和国籍。 如果每页底部的分类部分包括。。。出生(绿色矩形), 并从最常用的民族词(红色矩形)中辨认出他们的国籍。在
*第三步。在每个民族组内,以8:1:1的比例将数据随机分成train/dev/test。

统计数据

NationalityTrainDevTest
Total 1112902890248111286111368
Afghan7789798
Albanian2193274275
Algerian1592199200
American2417723022130222
Andorran1882424
Angolan5046363
Argentine892611161116
Armenian1600200201
Aruban931212
Australian4053650675067
Austrian919211491149
Azerbaijani1331166167
Bahamian2332930
Bahraini2373030
Bangladeshi1636204205
Barbadian3724747
Basque961120121
Belarusian2338292293
Belgian7907988989
Belizean1481919
Beninese1992525
Bermudian2703434
Bhutanese1441818
Bolivian6578283
Bosniak811011
Botswana2523132
Brazilian1123414041405
Breton1181515
British4592257405741
Bruneian1151415
Bulgarian3926491491
Burkinabé2893637
Burmese944118118
Burundian1401718
Cambodian3604546
Cameroonian1028129129
Canadian3415242694270
Catalan1717215215
Chadian1391718
Chilean2838355355
Chinese949411871187
Colombian2620328328
Comorian5477
Congolese3545
Cuban1938242243
Cypriot1016127128
Czech7244906906
Dane3245
Djiboutian5477
Dominican1580198198
Dutch1491618641865
Ecuadorian874109110
Egyptian2776347348
Emirati6217878
English7715996459645
Equatoguinean1932425
Eritrean1331717
Estonian2028254254
Ethiopian7339292
Faroese2843536
Filipino3928491491
Finn6889
French4084151055106
Gabonese1802323
Gambian2202828
Georgian2623333
German4238852995299
Ghanaian2036255255
Gibraltarian981213
Greek5975747747
Grenadian1391718
Guatemalan5637071
Guinean5847374
Guyanese3584545
Haitian5617071
Honduran5006363
Hungarian7220903903
I-Kiribati4056
Indian2269228362837
Indonesian2820352353
Iranian5010626627
Iraqi1252157157
Irish1184414811481
Israeli5149644644
Italian2933636673668
Jamaican1422178178
Japanese2121626522652
Jordanian4906162
Kazakh2434
Kenyan1609201202
Korean7896987988
Kuwaiti3965050
Kyrgyz1622
Lao2634
Latvian1693212212
Lebanese1246156156
Liberian2943737
Libyan2713434
Lithuanian1979247248
Macedonian1099137138
Malagasy2322929
Malawian2192728
Malaysian2582323323
Maldivian1521920
Malian3854849
Maltese6638383
Manx1501919
Marshallese3244
Mauritanian961212
Mauritian2633333
Mexican864810811081
Moldovan1000125125
Mongolian5046364
Montenegrin955119120
Moroccan1457182183
Mozambican2102627
Namibian5887474
Nauruan3244
Nepalese7739797
Nicaraguan2853636
Nigerian4060507508
Nigerien1431818
Norwegian1351216891690
Omani1972525
Pakistani3762470471
Palauan3545
Palestinian5286666
Panamanian4745960
Paraguayan1012127127
Peruvian1521190191
Portuguese4734592592
Qatari5486869
Romanian6551819819
Russian2127426592660
Rwandan2693434
Salvadoran5076364
Sammarinese1982525
Samoan5967575
Saudi1496187188
Senegalese823103103
Serb4466
Singaporean1316165165
Slovak2867358359
Slovene881112
Somali1161415
Sotho4967
Sudanese3484444
Surinamese2002525
Swazi1141415
Syriac781010
Syrian1047131131
Taiwanese1946243244
Tajik6188
Tamil1399175175
Tanzanian6277879
Thai2747343344
Tibetan2653334
Togolese2112627
Tongan4565757
Tunisian1072134134
Turk791010
Tuvaluan6689
Ugandan1052132132
Ukrainian6198775775
Uruguayan2267283284
Uzbek6288
Vanuatuan1161515
Venezuelan1937242243
Vietnamese1257157158
Vincentian811
Welsh5270659659
Yemeni3224041
Zambian5106464

可下载链接

  • 您可以下载数据集here。在

名称2NAT

安装

pip install name2nat

用法

^{pr2}$

训练

我使用一个强大的NLP库Flair来训练文本分类器模型。 采用双向GRU层。在

python train.py

评估

python predict.py;
python eval.py --gt nana/test.tgt --pred test.pred

结果

^{tb2}$

参考文献

如果您使用此代码进行研究,请引用:

@misc{park2018name2nat,
  author = {Park, Kyubyong},
  title = {name2nat: a Python package for nationality prediction from a name},
  year = {2020},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/Kyubyong/name2nat}}
}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Java中从本地文件系统导入文件   spring boot如何在Java SpringBoot项目中集成Olingo(Odata)   java查找连续数组中缺少的第k个元素(超过时间限制)   java为什么在mySql中插入1/2行时会得到2/4行   java不能在静态上下文中使用它   File Observer方法的java My onEvent()部分不起作用   java Netty NioSocketChannel在多线程写入时收到中断消息   java将文件夹与父文件夹一起复制   java我的TictaToe代码出了什么问题?如何检查已采取的措施?   java Swing JTable更新   java如何将cordinates查找为int   如何使用selenium和java在firefox中打开新的空选项卡   java Gradle构建输出Jar未运行   java没有GET/WEBINF/jsp/login的映射。jsp