ならば

音とかで遊んでいたログ

論文著者の日本人風の名前ランキング

romajiというRuby用のローマ字・カナの相互変換ライブラリを使って何かできないかと思ってやってみた。

学術文献の検索サイトには、収集した文献の著者一覧を公開しているところがある。
その一覧をもとに、日本人っぽく感じられる姓と名のランキングを作った。

使ったソースと結果

まとめ
ソース 分野 一覧取得日 著者名の総数 日本人っぽい名前の数 抽出比率
DBLP 計算機科学 2012/4/22 1106575 41552 3.8%
RePEc 経済学 2012/4/19 31967 530 1.7%
ランキング(Top50)

姓のランキング

順位 DBLP 抽出数 順位 RePEc 抽出数
1 スズキ 351 1 スズキ 9
2 タナカ 320 1 タナカ 9
3 タカハシ 314 3 タカハシ 8
4 ワタナベ 306 3 ナカジマ 8
5 サト 300 5 サト 7
6 ナカムラ 274 6 イト 6
7 コバヤシ 268 6 マツモト 6
8 ヤマモト 265 6 ワタナベ 6
9 ヤマダ 241 9 オノ 5
10 イト 236 9 ヤマダ 5
11 ヨシダ 221 11 アオキ 4
12 カト 218 11 イマイ 4
13 マツモト 195 11 ウエダ 4
14 キムラ 189 11 カト 4
15 ハヤシ 185 11 コバヤシ 4
16 ヤマグチ 169 11 タケウチ 4
17 イノウエ 164 11 タケダ 4
18 ササキ 158 11 ナカムラ 4
18 モリ 158 11 ホリ 4
20 シミズ 155 11 ヤマグチ 4
21 イケダ 148 21 アベ 3
22 アベ 143 21 イケダ 3
23 フジイ 140 21 イシダ 3
24 イシカワ 137 21 イノウエ 3
24 ハシモト 137 21 ウスイ 3
26 フジタ 136 21 カノ 3
27 セガ 135 21 キムラ 3
27 ヤマシタ 135 21 シライ 3
29 オガワ 134 21 タカヤマ 3
30 ウエダ 133 21 フジイ 3
31 イシイ 132 21 フジワラ 3
32 オカダ 129 21 マツダ 3
33 サイトウ 128 21 ヤマモト 3
33 ムラカミ 128 34 アライ 2
35 サカイ 127 34 イザワ 2
36 マエダ 123 34 イワタ 2
37 タケウチ 122 34 ウラカミ 2
38 サカモト 121 34 オオタキ 2
39 ナカガワ 120 34 オオツ 2
39 ナカジマ 120 34 オオノ 2
41 ハラ 115 34 カスガ 2
41 ミヤザキ 115 34 カタヤマ 2
43 アオキ 112 34 カネコ 2
43 ヤマザキ 112 34 カワイ 2
45 オノ 110 34 カワカミ 2
45 カネコ 110 34 カワムラ 2
47 オカモト 108 34 キタムラ 2
48 ワダ 107 34 クボ 2
49 タケダ 106 34 クボタ 2
49 ナカノ 106 34 クロズミ 2
34 サイトウ 2
34 サカタ 2
34 ツチヤ 2
34 ナイトウ 2
34 ナカバヤシ 2
34 ニシヤマ 2
34 ハヤカワ 2
34 ハヤシ 2
34 ヒラタ 2
34 ヒラノ 2
34 フクダ 2
34 フジタ 2
34 マツシマ 2
34 マルヤマ 2
34 ミズノ 2
34 ミヤザキ 2
34 ミヤザワ 2
34 モリ 2
34 ヤマウチ 2
34 ヤマガタ 2
34 ヤマシタ 2
34 ヤマノ 2
34 ヨシダ 2


名のランキング

順位 DBLP 抽出数 順位 RePEc 抽出数
1 タカシ 593 1 タカシ 8
2 ヒロシ 561 1 ヒロシ 8
3 タケシ 419 3 タケシ 7
4 ヒロユキ 399 4 アツシ 6
5 サトシ 396 4 ジュン 6
6 アキラ 366 4 マコト 6
7 ケンジ 335 4 マサヒロ 6
8 マサヒロ 328 8 ケイスケ 5
9 アツシ 325 8 ケンジ 5
10 マコト 317 8 コイチ 5
11 ジュン 300 8 コウジ 5
12 コウジ 289 8 タカヒロ 5
13 ダイスケ 286 8 ダイスケ 5
14 ヒロアキ 264 8 ナオキ 5
15 ユキ 257 8 マサユキ 5
16 マサユキ 253 8 ヤスシ 5
17 タカヒロ 249 17 アキヒコ 4
18 タカユキ 248 17 アキラ 4
19 ナオキ 247 17 カズオ 4
20 ヒロキ 238 17 カズヒロ 4
21 コイチ 219 17 サトシ 4
22 カズヒロ 215 17 テツヤ 4
22 テツヤ 215 17 ハジメ 4
24 マサキ 213 17 ヒロユキ 4
25 トオル 212 17 ユキ 4
26 ヤスヒロ 206 26 アヤコ 3
27 ユタカ 196 26 エイジ 3
28 タクヤ 190 26 カズユキ 3
29 マサシ 189 26 カツユキ 3
29 ヨシヒロ 189 26 ケイコ 3
31 ヒトシ 183 26 ケン 3
32 アキヒロ 181 26 ケンイチ 3
33 シンジ 179 26 ケンスケ 3
33 タツ 179 26 コウゾウ 3
35 ケイスケ 176 26 シンゴ 3
35 ケンイチ 176 26 タイスケ 3
37 カズオ 172 26 タカオ 3
37 トシユキ 172 26 タツ 3
37 マサト 172 26 テツジ 3
40 ユイチ 170 26 ヒデアキ 3
41 オサム 169 26 ヒロアキ 3
42 ケン 165 26 フミオ 3
43 ユウジ 164 26 マサキ 3
44 ツヨシ 163 26 マサル 3
44 トモヒロ 163 26 ミノル 3
46 ヒデキ 160 26 ユタカ 3
47 マサノリ 152 26 ヨイチ 3
48 トシオ 151 26 ヨスケ 3
49 カズヤ 149 26 リュウイチ 3
49 マサアキ 149 26 リョウ 3
補足:

ローマ字表記は一意ではなく揺れがあるので、他に情報がなければ正確なカナ変換は不可能だ。例えば、姓のランキングにある「サト」や「イト」は、元々のローマ字表記だとSatoやItoになっている。実際にはほとんどは、またはもしかしたら全てが、サトウさんイトウさんだと思うけど、それでもサト(例:佐登)さんやイト(例:伊都)さんである可能性は排除できない。

表記の揺れのために、カナ変換した結果が分散してランキングが下がったと思われる名前もある。例えば、Sato, Satoh, Satouの場合、カナ変換の結果は「サト」と「サトウ」に分かれるが、これが全てサトウさんだと仮定すると、DBLPのランキングでは数が352となってスズキさんを抜いて一位になる。

どうやってランキングを作ったか

まず準備として、形態素解析用辞書であるNAIST-jdicnaist-jdic.csvから、人名のエントリのカナ表記の列だけを抜き出して、姓と名の辞書を作っておく。
あとはランキングを出力する以下のようなプログラムを実行する。

  1. 著者一覧から著者名をひとつ取って、姓と名を分離する
    姓と名の並びは前もって一覧を眺めて決めておいて、実行時にスイッチさせた
    DBLPは名・姓、RePEcは姓・名の順
  2. 姓と名について、ありそうな表記の揺れを出す
  3. 処理2の結果をromajiを使ってカナ変換して、姓と名がそれぞれ辞書にあるかチェックする
  4. 処理3の結果、両方が辞書にあれば、それぞれランキングに追加して処理1へ、なければ処理2へ
  5. 全ての著者名について処理が終わったら、ランキングをソートして出力する

処理2でやっているのは、例えば o は oo とか ou に置き換えるなどというルールの組み合わせを、実行する度に順次適用すること。ルールセットは適当に考えて以下にした。

  • a -> aa
  • o -> oo
  • o -> ou
  • oh -> oo
  • oh -> ou
  • u -> uu
  • n -> nn
  • n' -> nn
  • dzu -> zu
  • kio -> kyou
  • tch -> cch
  • wi -> i
  • we -> e
  • ye -> e

なぜこのルールがあるのにSatoが「サトウ」でカウントされないかというと、当たり前だが処理4で最初に辞書にあった名前だけをランキングに追加するようにしているから。揺れの中で複数の候補が辞書にあった場合にはどれが正しいかなんてわからないので、今回は処理が軽くなることを優先した。

他にも高速化のために、処理2の前で姓や名に l, q, v, x が含まれているか、末尾が a, i, u, e, o, n 以外の文字であるかをチェックして、後続処理の実行を省略した。

何も調べてない感想

真面目に取り組もうとすると固有名詞の表記の揺れは厄介そう。漢字だと異体字が大変だろうな。