ゆる言語学ラジオというpodcastを聞いていたところ, 「現代日本語書き言葉均衡コーパス」(BCCWJ)というものが紹介されていました. これは「書籍全般、雑誌全般、新聞、白書、ブログ、ネット掲示板、教科書、法律などのジャンルにまたがって1億430万語のデータを格納しており、各ジャンルについて無作為にサンプルを抽出」したコーパスとのことです.
さて, やはり漢字というのはなるべく変換しない方がいいわけですが, その解決策として漢字直接入力(漢直)というのがあります. たとえば, T-Codeという入力法では2打鍵の組み合わせで, 1つのひらがな・カタカナ・数学・記号・漢字が入力されます.
こうした漢直で問題になるのが, その打鍵の配列の評価です. なるべくホームポジション近くで, よく出現する文字を入力できれば, それは効率のよい配置と言えます. たとえば, T-Codeでは"kd"(QWERTY)で「の」と入力できますが, 「の」の出現率が高ければこれは妥当だということです.
ここでBCCWJの登場です. BCCWJには文字表というものがあり, これには各文字の出現頻度・100万字あたりの頻度が書かれています. これを使えば, ある漢直がどの程度の日本語文章を入力できるのかを評価できるはずです.
では, やってみましょう…とはいえ, ある打鍵の組がどれだけホームポジションに近いのか…は自明ではありません. そこで今回は漢直の練習テキストEELLLを代わりの指標として使います. この練習テキストは, いくつかのレッスンに分かれており, 最初は「の」や「、」から始まり, ひらがな・数字・カタカナ・漢字…と少しずつ新たな文字を導入していきます. レッスンに早く登場する文字はそれだけ重要だと考えられているはずです. つまり, 各文字がEELLLの中で何番目に出現するのかの順位を代替的な指標として使います.
EELLL内の順位(縦)と, BCCWJ文字表(Version 1.1)で100万文字あたりの頻度での順位(横)を比較してプロットします.
理想的にはy=xの直線状になるといいですが, そうはなっていませんね. これを見ると右上と左下はいい感じだが, 中間はびみょうな感じがします. つまり, 400文字ぐらいまでは出現頻度が高い文字が早めのレッスンに出ますし, 逆に頻度が低いものは後のレッスンになっています. その間はちょっとばらばらな感じです. また, 右下にちょこちょこ外れている子たちがいますね.
では, どんな文字がEELLLでの順位とBCCWJでの順位の乖離が大きいのでしょうか?
char | lesson | rank_eelll | freq | rank_bccwj | norm_sq | |
---|---|---|---|---|---|---|
129 | ぢ | 105 | 129 | 8.46803 | 1154 | 1050625 |
133 | ぺ | 106 | 131 | 18.15968 | 1144 | 1026169 |
131 | ぴ | 106 | 131 | 34.50698 | 1100 | 938961 |
132 | ぷ | 106 | 131 | 40.06188 | 1078 | 896809 |
127 | ゅ | 104 | 124 | 57.65840 | 998 | 763876 |
281 | 遇 | 305 | 282 | 25.28123 | 1124 | 708964 |
134 | ぽ | 106 | 131 | 72.06532 | 923 | 627264 |
338 | 即 | 311 | 335 | 40.59946 | 1077 | 550564 |
361 | 巨 | 314 | 362 | 46.38987 | 1050 | 473344 |
434 | 塚 | 323 | 434 | 27.55950 | 1119 | 469225 |
426 | 序 | 322 | 423 | 34.73737 | 1099 | 456976 |
469 | 熟 | 404 | 464 | 29.11078 | 1112 | 419904 |
433 | 浦 | 323 | 434 | 39.51919 | 1081 | 418609 |
342 | 募 | 311 | 335 | 61.56475 | 978 | 413449 |
370 | 華 | 315 | 371 | 56.05592 | 1004 | 400689 |
327 | 岩 | 310 | 326 | 67.49340 | 948 | 386884 |
415 | 羽 | 321 | 414 | 51.53520 | 1031 | 380689 |
458 | 卒 | 403 | 454 | 46.06733 | 1054 | 360000 |
372 | 迎 | 315 | 371 | 63.41297 | 966 | 354025 |
690 | 言 | 505 | 688 | 1363.83967 | 96 | 350464 |
「ぢ」「ぺ」「ぴ」などが上位にあります. これらはひらがななので初期レッスンには出るものの実際のところ, あまり登場しないということです. たしかにね. というか, 告白すると自分も「ぢ」についてはあまりに入力しないのでT-Codeでの入力方法がわかりません. これらのrank_eelllが130ぐらいで, rank_bccwjが1100ぐらい…つまり上のプロットの右下の点はこいつらということです.
漢字でいうと「遇」「即」「巨」があります. これらは…いやーあんまりよくわかりませんね…まあ出現しないわりにレッスンでは早いというところです.
上の表は多くの文字が(EELLL順位) < (BCCWJ順位)というものでした. つまり, レッスンが早すぎるものたちです. 逆にレッスンが遅すぎる - EELLLで過少評価されている文字を見てみましょう.
char | lesson | rank_eelll | freq | rank_bccwj | norm_sq | |
---|---|---|---|---|---|---|
690 | 言 | 505 | 688 | 1363.83967 | 96 | 350464 |
970 | 存 | 654 | 969 | 269.56401 | 412 | 310249 |
842 | 条 | 525 | 842 | 385.98666 | 311 | 281961 |
1034 | 識 | 661 | 1023 | 220.36853 | 492 | 281961 |
1094 | 離 | 670 | 1086 | 183.78294 | 571 | 265225 |
687 | 何 | 505 | 688 | 778.37298 | 174 | 264196 |
839 | 得 | 524 | 837 | 353.41494 | 332 | 255025 |
879 | 域 | 602 | 880 | 295.75143 | 378 | 252004 |
928 | 笑 | 605 | 923 | 253.58021 | 438 | 235225 |
1073 | 療 | 663 | 1059 | 182.12414 | 576 | 233289 |
1102 | 願 | 676 | 1098 | 161.55307 | 616 | 232324 |
1032 | 呼 | 661 | 1023 | 197.30926 | 545 | 228484 |
828 | 認 | 522 | 826 | 324.38607 | 349 | 227529 |
1047 | 君 | 662 | 1042 | 184.32563 | 568 | 224676 |
1025 | 影 | 661 | 1023 | 189.15353 | 557 | 217156 |
678 | 等 | 504 | 673 | 559.53526 | 224 | 201601 |
1003 | 移 | 659 | 1003 | 189.24569 | 556 | 199809 |
759 | 質 | 512 | 758 | 374.09353 | 316 | 195364 |
751 | 確 | 511 | 752 | 381.80896 | 313 | 192721 |
825 | 申 | 522 | 826 | 287.10420 | 389 | 190969 |
「言」「何」「得」などたしかに結構入力しそうな文字がありますが, これらはどれもレッスン全体の後半での出現です. 個人的にはプログラミング系のことを書いていると頻出する「呼」がちゃんとここに入っていて良かったです.
さて, 今回はBCCWJ文字表(Version 1.1)を使ってT-Codeの配列について研究してみました. この文字表を使うことで, 他にもEELLLでどのレッスンまでいけば文章中で何割の文字を入力できるようになるのか? 何文字の打鍵を覚えれば文章の何割を直接入力できるのか?が計測できます. それらは次回になります.