psychbruce/ChineseNames
GitHub: psychbruce/ChineseNames
一个基于R语言的中文姓名数据库包,提供1930-2008年间汉族人口姓氏与名字的频率统计及多维心理特征指数计算功能。
Stars: 176 | Forks: 25
# ChineseNames
**中文姓名数据库 1930-2008**
一个包含中文姓氏和名字(1930-2008)的数据库。该数据库包含了 1,806 个中文姓氏和 2,614 个用于名字的汉字的全国频率统计数据,覆盖了约 12 亿汉族人口(占 1930 年至 2008 年出生且 2008 年仍在世的汉族户籍人口的 96.8%)。该包还包含一个用于计算社会科学研究中中文姓氏和名字多个指数的函数(例如,名字独特性、名字性别、名字效价以及名字温暖/能力)。
[](https://CRAN.R-project.org/package=ChineseNames) [](https://github.com/psychbruce/ChineseNames) [](https://github.com/psychbruce/ChineseNames/actions/workflows/R-CMD-check.yaml) [](https://CRAN.R-project.org/package=ChineseNames) [](https://github.com/psychbruce/ChineseNames/stargazers)
## 作者
Bruce H. W. S. Bao 包寒吴霜
📬 [baohws\@foxmail.com](mailto:baohws@foxmail.com)
📋 [psychbruce.github.io](https://psychbruce.github.io)
## 引用
- Bao, H. W. S. (2021). *ChineseNames: Chinese Name Database 1930-2008*.
- Bao, H. W. S., Cai, H., Jing, Y., & Wang, J. (2021). Novel evidence for the increasing prevalence of unique names in China: A reply to Ogihara. *Frontiers in Psychology, 12*, Article 731244.
- Bao, H. W. S., Cai, H., & Jing, Y. (2024). Understanding the rise of unique names: The emphasis on uniqueness matters. *Acta Psychologica Sinica (心理学报), 56*(7), 954–963.
- Bao, H. W. S., Lu, H., & Luo, Y. L. L. (2023). Do unique names fit people for creative work? Implications for job recruitment, name change, and product evaluation. *European Journal of Social Psychology, 53*(7), 1524–1541.
## 安装
```
## 方法 1:从 CRAN 安装
install.packages("ChineseNames")
## 方法 2:从 GitHub 安装
install.packages("devtools")
devtools::install_github("psychbruce/ChineseNames")
```
## 用户指南
### 数据来源
该中文姓名数据库由北京美名科技公司(通过私人合作)提供,原始数据于 2008 年从中国全国公民身份信息中心(NCIIC)获取。
它包含了几乎所有中文姓氏和名字用字的全国频率统计数据,覆盖了约 **12 亿汉族人口**(占 1930 年至 2008 年出生且 2008 年仍在世的人口的 96.8%,即*在世户籍人口*)。它还包含名字用字的主观评分指数。据我们所知,这是迄今为止最全面、最准确的中文姓名数据库。
请注意,该数据库不包含任何个人层面的信息(因此不会泄露个人隐私)。所有数据均在名字层面或汉字层面。极生僻字不包括在内。
无论是该公司还是我自己都没有关于所有中国人的全部信息。年份级和县级的数据无法获取。我们能提供的所有数据都已汇编在此包中。
### 数据集
此包包含五个数据集(R 中的 `data.frame`)。你可以使用 R 中的 `data()` 函数访问它们。这些数据集的使用应遵循 GNU GPL-3 许可证和知识共享许可协议 CC BY-NC-SA,**需正确引用此包且仅用于非商业目的**。
- **`familyname`**:1,806 个中文姓氏及其在汉族人口中的频率。
- 总体频率和比例,不分性别和出生队列
- **`givenname`**:2,614 个名字用字及其在汉族人口中的频率。
- 分性别和 6 个出生队列(1960 年前、1960-1969、1970-1979、1980-1989、1990-1999 和 2000-2008)的频率和比例
- 包括在所有单字和双字名字中的使用情况(例如,所有“张伟”、“张伟\_\_”、“张\_\_伟”、“王伟”、“王伟\_\_”、“王\_\_伟”等中的“伟”字)
- **`top1000name.prov`**:中国大陆 31 个省份的前 1,000 个名字。
- **`top100name.year`**:6 个出生队列的前 100 个名字。
- **`top50char.year`**:6 个出生队列的前 50 个名字用字。
*注*。这些数据集变量名中的“ppm”表示“百万分率(parts per million)”(例如,1 ppm = 1/106 的比例)。
### 计算名字特征
**使用 `compute_name_index()` 函数。** 该函数用于科学研究,计算中文姓氏和名字的多个指数。只需输入一个包含全名(以及必要时出生年份)的数据框,它将返回一个附加了所有名字指数的新数据框。
**示例:**
```
library(ChineseNames)
?compute_name_index # see detailed usage in help page
## 用法 1
compute_name_index(name="包寒吴霜", birth=1995)
## 用法 2
demodata = data.frame(
name = c("包寒吴霜", "陈俊霖", "张伟", "张炜", "欧阳修", "欧阳", "易烊千玺", "张艺谋", "王的"),
birth = c(1995, 1995, 1985, 1988, 1968, 2009, 2000, 1950, 2005))
newdata = compute_name_index(
demodata,
var.fullname="name", # full name
var.birthyear="birth") # adjusted for birth year
View(newdata)
```
```
# name birth name0 name1 name2 name3 NLen SNU SNI NU CCU NG NV NW NC
# 1: 包寒吴霜 1995 包 寒 吴 霜 4 3.0595 2 3.6042 4.1178 -0.2187 3.3542 2.6667 3.2333
# 2: 陈俊霖 1995 陈 俊 霖 3 1.3415 3 2.4619 4.7688 0.4081 4.3125 3.6500 3.6500
# 3: 张伟 1985 张 伟 2 1.1529 26 1.6611 3.8865 0.6859 4.2500 3.5000 3.4000
# 4: 张炜 1988 张 炜 2 1.1529 26 3.0547 5.8583 0.6025 3.9375 3.4000 3.5000
# 5: 欧阳修 1968 欧阳 修 3 3.1645 15 2.9816 3.5510 0.5047 3.0625 3.5000 3.3000
# 6: 欧阳 2009 欧 阳 2 2.9694 15 2.0389 3.4574 0.5103 4.3750 4.1000 3.7000
# 7: 易烊千玺 2000 易 烊 千 玺 4 2.8689 25 3.8743 4.8944 0.4619 3.1875 3.2000 3.1667
# 8: 张艺谋 1950 张 艺 谋 3 1.1529 26 3.8808 3.6611 0.3183 3.5938 3.5500 3.3500
# 9: 王的 2005 王 的 2 1.1257 23 5.1893 1.3110 -0.5325 2.1250 2.5000 2.2000
```
- **NLen: 全名长度**
- 2\~4
- 中文姓氏通常由一个字组成(即单姓),有时由两个字组成(即复姓)。
- 中文名字可以是任何单字或任何双字组合(极少为三字,如作者的名字“寒吴霜”)。
- **SNU: 姓氏独特性**
- 1\~6
- SNU = --log10(Psurname + 10--6)
- Psurname = 某姓氏在汉族人口中所占的百分比。
- 添加一个小常数(10--6)以调整偏度并将 SNU 的最大值限制为 6.00。
- SNU = 2 和 3 分别表示 1/100 和 1/1000 的人拥有此姓氏。
- 中国姓氏的多样性有限:最常见的 25 个中文姓氏已覆盖约 60%(7 亿)的汉族人口(12 亿)。
- **SNI: 姓氏首字母(字母顺序)**
- 1\~26
- 中文名字通常按姓氏首字母排序。该指数是姓氏的 *Pinyin*(拼音)首字母的字母顺序。
- **NU: 名字用字独特性(在起名实践中)**
- 1\~6
- NU = --log10(Pcharacter + 10--6)
- Pcharacter = 某汉字在*特定出生年份*的汉族人口的所有单字和双字名字中使用的百分比(使用最近的两个出生队列及其相对权重进行近似估计,这比仅使用单个出生队列更精确)。
- 添加一个小常数(10--6)以调整偏度并将 NU 的最大值限制为 6.00。
- NU = 2 和 3 分别表示 1/100 和 1/1000 的人(在其出生年份)在名字中使用了此字。
- 对于没有出生年份信息的数据,`compute_name_index()` 函数根据所有六个出生队列的平均百分比返回 NU。
- **CCU: 字符语料库独特性(在当代中文语料库中)**
- 1\~6
- CCU = --log10(Pcharacter + 10--6)
- Pcharacter = 某汉字在当代中文语料库中的百分比。
- CCU 应与 NU 区分开来,因为日常语言使用与起名实践是不同的。有些在名字中很少使用的字可能会在日常语言中频繁使用(反之亦然)。
- **NG: 名字性别(男性与女性使用某字的比例差异)**
- --1\~1
- NG = (*N*male -- *N*female) / (*N*male + *N*female)
- NG 范围从 --1(完全女性化;100% 由女性使用)到 0(中性;男女各半)再到 1(完全男性化;100% 由男性使用)。
- **NV: 名字效价(字义的积极性)**
- 1\~5
- 来自 16 名中文评分者(9 男 7 女;评分者间信度 ICC = 0.921)根据每个字的含义对所有 2,614 个名字用字的积极性进行的主观评分(1 = *非常消极*,3 = *中性*,5 = *非常积极*)。
- **NW: 名字温暖/道德**
- 1\~5
- 来自 10 名中文评分者(5 男 5 女;评分者间信度 ICC = 0.774)对名字中包含这 2,614 个名字用字之一的人可能具有温暖相关特质的主观评分(1 = *极不可能具有*,3 = *中等可能性*,5 = *极有可能具有*)。
- **NC: 名字能力/自信**
- 1\~5
- 来自 10 名中文评分者(5 男 5 女;评分者间信度 ICC = 0.712)对名字中包含这 2,614 个名字用字之一的人可能具有能力相关特质的主观评分(1 = *极不可能具有*,3 = *中等可能性*,5 = *极有可能具有*)。
\* NW 和 NC 评分任务的说明(改编自 [Newman et al., 2018](https://doi.org/10.1177/0146167218769858)):
### 关于双字名字的说明
对于包含多个字的中文名字,名字指数是按字取平均的。换句话说,名字指数是基于***字***而不是***字的组合***计算的。主要原因如下。
1. 在字层面上计算名字变量在研究中更实用。确实,字的组合数不胜数,而单字是一个有限的集合且易于处理。此外,对于除 NU 以外的名字指数,这是唯一可行的方法,尤其是在大样本中。要求参与者对数百万或数十亿种字的组合进行评分是不切实际的。
2. 我们的研究证据表明,通过按字取平均计算的 NU(客观 NU)与人们对自己名字独特性的感知(主观 NU)呈正相关:*r* = 0.32, *p* \< 0.001, *N* = 672。
3. 我们的研究证据表明,在名字独特性的四种测量指标中(两种在字层面,两种在字的组合层面),只有名字用字独特性(即 NU)与文化层面的个人主义呈正相关。
4. 在语言学中,*name*(词)之于英语,犹如*名字用字*(单字)之于中文。
## 婴儿名字 R 包
- 美国婴儿名字 1880-2017:[`babynames`](https://CRAN.R-project.org/package=babynames)
- 英国婴儿名字 1974-2020:[`ukbabynames`](https://CRAN.R-project.org/package=ukbabynames)
- 中国婴儿名字 1930-2008:[`ChineseNames`](https://CRAN.R-project.org/package=ChineseNames)
- 法国婴儿名字 1900-2020:[`prenoms`](https://github.com/ThinkR-open/prenoms) (GitHub)
- 以色列婴儿名字 1948-2022:[`babynamesIL`](https://CRAN.R-project.org/package=babynamesIL)
**中文姓名数据库 1930-2008**
一个包含中文姓氏和名字(1930-2008)的数据库。该数据库包含了 1,806 个中文姓氏和 2,614 个用于名字的汉字的全国频率统计数据,覆盖了约 12 亿汉族人口(占 1930 年至 2008 年出生且 2008 年仍在世的汉族户籍人口的 96.8%)。该包还包含一个用于计算社会科学研究中中文姓氏和名字多个指数的函数(例如,名字独特性、名字性别、名字效价以及名字温暖/能力)。
[](https://CRAN.R-project.org/package=ChineseNames) [](https://github.com/psychbruce/ChineseNames) [](https://github.com/psychbruce/ChineseNames/actions/workflows/R-CMD-check.yaml) [](https://CRAN.R-project.org/package=ChineseNames) [](https://github.com/psychbruce/ChineseNames/stargazers)
## 作者
Bruce H. W. S. Bao 包寒吴霜
📬 [baohws\@foxmail.com](mailto:baohws@foxmail.com)
📋 [psychbruce.github.io](https://psychbruce.github.io)
## 引用
- Bao, H. W. S. (2021). *ChineseNames: Chinese Name Database 1930-2008*. 标签:BSD, CRAN, R, R语言包, 中文名字数据库, 中文姓氏, 人口统计, 名字性别, 姓名分析, 姓名学, 姓名索引, 姓氏分布, 开源数据, 心理学研究, 数据挖掘, 文化分析, 社会计算, 计算社会科学, 起名参考