是否有从英文名字中确定性别的方案?

时间:2013-05-28 22:43:56

标签: r

我很想知道 R 是否有一个方法或方法可以从名字中猜出性别。

我想把它作为测试在美国国会上运行。

我需要这可以使用几种欧洲语言。

CRAN没有这样的包。

CRAN具有性别套餐,但仅适用于英文名称。

问题由genderizeR包解决。请参阅我自我回答中的链接。

5 个答案:

答案 0 :(得分:6)

现在CRAN上有一个专门用于此的软件包:gender

来自说明:

  

使用以下任一方式根据姓名和出生日期对性别进行编码   社会保障管理局按年份分列的名字数据集   出生或人口普查局的数据从1789年到1940年,均来自   美国。通过使用这些数据集而不是列表   男性和女性的名字,这个包能够更准确地猜测   名称的性别,它能够报告a的概率   名字是男性或女性。

它还有一个非常有用的vignette演示典型用途。

答案 1 :(得分:4)

我相信答案是“不”,但您仍然可以使用R来分析这个问题。显然,这将是一种概率类型的答案,因为有些名称含糊不清或独特。 This stackoverflow question有一些有用的建议,但链接已过时。美国人口普查数据是一个很好的起点。从2000年美国人口普查中,您可以在http://www.census.gov/genealogy/www/data/1990surnames/names_files.html找到名称目录和元数据。 http://www.census.gov/srd/papers/pdf/rr97-2.pdfhttp://www.census.gov/population/www/documentation/twps07/twps07.pdf讨论了一些有趣的问题。

答案 2 :(得分:4)

请不要接受这个作为答案,因为它是基于其他人的答案和链接。我已将此功能添加到qdap package,因为它适合包。

library(qdap)

name2sex(qcv(mary, jenn, linda, JAME, GABRIEL, OLIVA, 
    tyler, jamie, JAMES, tyrone, cheryl, drew))

name2sex(qcv(mary, jenn, linda, JAME, GABRIEL, OLIVA, 
    tyler, jamie, JAMES, tyrone, cheryl, drew), FALSE)

name2sex(qcv(mary, jenn, linda, JAME, GABRIEL, OLIVA, 
    tyler, jamie, JAMES, tyrone, cheryl, drew), FALSE, TRUE)

name2sex(qcv(mary, jenn, linda, JAME, GABRIEL, OLIVA, 
    tyler, jamie, JAMES, tyrone, cheryl, drew), TRUE, FALSE)


## > name2sex(qcv(mary, jenn, linda, JAME, GABRIEL, OLIVA, 
## +     tyler, jamie, JAMES, tyrone, cheryl, drew))
##  [1] F F F M M F M F M M F M
## Levels: F M

## > name2sex(qcv(mary, jenn, linda, JAME, GABRIEL, OLIVA, 
## +     tyler, jamie, JAMES, tyrone, cheryl, drew), FALSE)
##  [1] B    <NA> F    B    B    F    B    B    B    M    F    B   
## Levels: B F M

## > name2sex(qcv(mary, jenn, linda, JAME, GABRIEL, OLIVA, 
## +     tyler, jamie, JAMES, tyrone, cheryl, drew), FALSE, TRUE)
##  [1] B F F B B F B B B M F B
## Levels: B F M

## > name2sex(qcv(mary, jenn, linda, JAME, GABRIEL, OLIVA, 
## +     tyler, jamie, JAMES, tyrone, cheryl, drew), TRUE, FALSE)
##  [1] F    <NA> F    M    M    F    M    F    M    M    F    M   
## Levels: F M

编辑 - 我添加了fuzzy.match参数,尝试根据模糊匹配猜测未识别名称的性别,但这在计算上非常昂贵。

答案 3 :(得分:2)

根据您的实施建议,plyr包教程有一个good data set

  

婴儿名称在美国,从1880年到1880年,名列前1000位男女婴儿   2008. 258,000条记录(1000 * 2 * 129)但只有四个变量:年份,姓名,性别和百分比。

答案 4 :(得分:2)

关于芬兰名字的this discussion后,我发现了一个非常棒的genderizeR软件包,该软件包查看了一个在线数据库,用于确定多种语言名称的性别。

解决!