どっちが「スゴい」かハッキリさせようぜ! ~異種競技戦の難しさ~
この記事は、たのん さん主催 タイパー Advent Calendar 2021 に登録しています。
昨日(12/12)の記事は、dqmaniac さんの 多言語部門におけるロシア語タイピングの強化 です。
明日の記事は、たのん さんの (予定)タイピング温故知新 ~古きタイピングゲームを温め新しきタイピングゲームを知る~ です。
まえがき
唐突ですけど、「強さ議論スレ」って知ってます?
これ、本当、ありとあらゆるジャンルに存在するんですよ。……いや、「ワンピース強さ議論スレ」とか「ポケモン強さ議論スレ」は分かるんです。だって、ワンピースもポケモンも、戦い(バトル)が物語(ゲーム)のメインですからね。
そうは言っても、「サザエさん強さ議論スレ」とか、「ジブリキャラ強さ議論スレ」辺りになってくると、ちょっと、控えめに言っても「狂ってる……」って思いませんか? 僕は思います。流石に意味分かりませんって。
ただ、理屈抜きで「誰が強いのか?」「誰がスゴいのか?」をハッキリさせたいというのは、もしかしたら、抗いがたい人間の本能なのかもしれない…… なんてことを思ったりもします。
導入:どっちが「スゴい」?
さて、タイピングの話です。
例えば、「英語タイピングサイトで 1 分に 650 文字打ちました!」って人と、「日本語ローマ字入力タイピングサイトで 1 分に 700 キー(ひらがなの数でなくローマ字の数)打ちました!」って人、どっちが「スゴい」と思います?
うーん、数字が 700 > 650 と大きいので、普通に考えたらローマ字 700 キーですかね?
でも、英語って大文字とか '(アポストロフィ)とか頻発するんで、シフトキーを押さないといけないから、ローマ字入力より大変(?)なので、それで 650 なら ローマ字 700 より「スゴい」かも??
まあ、ここで理性的な大人なら、「いや、そもそも文章の打ちやすさ自体も違うから、比べること自体無理な話じゃない?」って思っちゃうかもしれません。実際はその通りで、日本語タイピングと英語タイピングは違う競技ですから、本来、厳密な意味で比べることはできません。
……とは言ってもですよ。タイピング競技者もしくはタイピング競技ファンとしては、「いやいや、とはいえやっぱりどっちが『スゴい』のか知りたいじゃん!」と思うこともあるでしょう。
いわば、異種格闘技戦ですよね。「人間の大きさになったカマキリと、最強の人間、どっちがツエーんだよ?」「孫悟空とルフィ、どっちがツエーんだよ?」ってな話です。まあ、興味深いというか面白いというか、実現すれば夢のある話ではあるわけです。
疑問:それって比較できるのか?
では、どっちが「スゴい」か、どうやって決めればいいんでしょうか?
異種格闘技戦なら、戦わせればいいので単純明快な話です。(もちろん、人間大のカマキリと戦いたいなら、脳内で戦えばいいのでやはり単純明快な話ですね。)
ですが、英語タイピングと日本語タイピングを戦わせることはできません。仕方ないので、いくつかの案を考えていきましょう。
案1 : いや、そのまま数字を比べればいいんじゃないの?
……なるほど、単純明快でいいですね。ただ、まあ、これだと冒頭の疑問に全く答えてないわけですから、「俺のがシフト入力もしてるからスゲーんだし!」「いや俺のが数字が大きいんだからツエーんだし!」「いやいや俺は……」との水掛け論になりますよね。
他の案を検討していきましょう。
案2 : 上位何 % なのかで決めよう!
お? 少しそれらしい案が出てきました。
例えば、「俺は英語タイピングサイトで 310 位 / 10,000 人(=上位 3.1% )なんだぜ!」「私は日本語タイピングサイトで 37 位 / 1,000 人(=上位 3.7% )なのよ!」となればどうでしょう?
うーん…… まあ、上位 3.1% の方が「スゴい」と言うこともできるかもしれません。悪いアイディアではないと思います。
とは言え、ほとんどの方は「いや、参加者のレベルが分からないでしょ」と考えるでしょう。これらのサイトが、例えばアメリカ全土、日本全国の全員が同じ条件の元で参加しているサイトだったら、かなり説得力のある比較できるかもしれませんが、参加者数が 10,000 人、1,000 人と少ないですし、参加者の内訳も分かりません。
例えば、日本語タイピングサイトの参加者は 1,000 人ですが、そのうち 500 人くらいが、ガチガチにタイピングをやり込んでいるオタク達だったらどうでしょう? その中で 37 位というのは相当速いことになります。それに対して、実はこの英語タイピングサイトは子供向けの練習サイトで、10,000 人のうち 9,900 人は 5~10 歳くらいであり、タイピングに本気になっちゃってるいわゆる「大人のお兄さんお姉さん」は残りの 100 人だけだったとすれば? その中で 310 位というと、あまり大したことがないか、将来有望なスーパー小学生が 250 人くらいいるかのどちらかですよね。
これは極端な例ですが、やはり、両者の「スゴさ」を比べるという目的からすれば、良いアイディアとは言い切れなさそうです。
ちなみに、レーティングシステムなどもこのカテゴリに入ると言えるでしょう。
(とはいえ、今の環境内での位置を明確にできるという意味で、個人が上達のモチベーションとする分にはすごく良いものですので、これらの「相対位置を考える」という観点自体は有用だと思います。単純に、「スゴさ」を比べていることにはならない、ということです。)
(あとは、タイピングをよく知らない人に、大まかに自分の位置を説明するのにもいいでしょう。タイピングを知らない人に「私は日本語タイピングで 680 KPM で 英語タイピングで 700 CPM なんです!」とか言っても仕方ないですからね。「日本語タイピングサイトで上位 3% で、英語タイピングサイトでは上位 1% に位置してまして、かなり英語タイピングに力入れてるんですよ!」と言えば、「なんか珍しいことをスゴく頑張ってて、わりと上位にいるんだな! 英語タイピングがスゴいみたいだけど、実際どんなことやってるんだろう?」くらいには思ってくれる…… かもしれません。)
案3 : 英語と日本語の打ちやすさを考慮して統一的なスコアを計算する関数(数式)を作ろう!
むむ……! いきなり、案を出す人の IQ が上がったように見えますね。
確かに、これが実現できれば英語タイパーと日本語タイパーの「スゴさ」を比較できそうです。良いかもしれません。ちょっと考えを進めてみましょう。
関数を作るためには、英語タイピングと日本語タイピングの「違い」って何なの? ということを考えることが必要ですよね。その「違い」が、両者の難しさを変えているわけですからね。
とはいえ、それだけでいいでしょうか?
英語タイパーと日本語タイパー自体の違い、もっと言えばタイパーごとの違いも無視できないですよね。というのも、例えばある点で英語タイピングが難しいと言っても、その「難しい点」を攻略するような打ち方をすれば解決するかもしれないのです。「シフトキーの入力が難しい」「単語毎のスペースキー入力が難しい」と言っても、物心ついた時からシフトキーやスペースキーを押してるんですから、英語圏のタイパーはうまい打ち方を習得してるかもしれません。逆に、英語タイパーが日本語を打ったら「スペースキーが無いからリズムが取りづらい、日本語タイピングは難しい!」なんて言うのかもしれません。
つまり、英語タイピングと日本語タイピングに「違い」があったとしても、「その『違い』がタイピング速度にどのような影響を与えるか」については、タイパーの特性によって変わってくるということです。
(もちろん、反論として「いや、でも『タイパーの特性に関わらない打ちやすさの違い』は厳然としてあるはずだ!」という主張はあるでしょう。実際、それは正しいだろうとは思います。そして、それを把握するために、マッドサイエンティストならこう言うかもしれません。「たくさんの生まれたばかりの赤子を研究所に閉じ込めて、日本語と英語を両方同じ練度で覚えさせた上で、同じ時間だけ日本語タイピングと英語タイピングをやらせて統計を取ったら、純粋な『日本語と英語の打ちやすさの違い』が計測できるはず!」と。しかし、個人的にはこんな非人道的な実験を行ってすらも、計測できないと思ってます。例えば、その赤子が自然に身に着けた運指が、偶然「英語タイピングに不向きなもの」であったら? まあ、赤子を 1,000 人くらい用意すれば、有意差を見出だせるのかもしれませんが…… そこまでするほどの意味はなさそうに思います。)
関数を考えてみる(案 3 の検討)
ということで、「打ちやすさに影響しそうな要素」を、言語側の要素(英語タイピングと日本語タイピングの難しさの違いに直接影響を及ぼす要素)と、タイパー側の要素(日本語と英語の「違い」が速度に影響を及ぼす度合いに違いをもたらすようなタイパー毎の特性)に分けて、思いつく限り挙げていきましょう。
ここで、「ほぼ明らかにマイナス要素」というものには赤色、「ほぼ明らかにプラス要素」というものには青色、「+ー判断つきにくい要素」は紫色をつけていきます。
打ちやすさに影響しそうな要素(言語側 ※英語から見て)
- シフトキー入力の頻度 : 大文字, ', ", & など
- スペースキーの頻発 : 例えば It's a true world. という短い文に 3 つものスペースキー
- 子音→母音のパターンに限らないので打鍵パターンが豊富 : th, tr, cl... 極端な例では rhythm とか
- 促音(っ)による子音の同鍵連打は無い : 例えば っさ ssa, った tta など
- 母音の同鍵連打が割とある : ee, oo はかなり多い上に打ちにくい
- 言語の視認性が違う(かも): 漢字かな混じりはパッと見で読みやすいけど英語は読みにくい(かも)。でも、アルファベットは画数が少ないし情報量がミッチリ詰まってないので読みやすいという人もいる(かも)
- 文字そのものが「読めない」ことはない: 例えば課題文に「鏖」と書いてあったら零と末崎の弟分 板倉くらいしか読めない。それに対して「 d と r と m と f と s のアルファベットが読めない」という人は多分いない
- 言語から打鍵列への変換処理が無い:「あいうえお -> aiueo」のような脳内変換が不要。また「か -> ka で打つか? ca で打つか?」 とか「あいらゔゅー -> vyu か? vuxyu か? vulyu か?」とかいうことはない。そもそも「『ゔ』ってどうやって出すの!?」ということがない
- 打ち方の選択肢が無い:上記の裏返しで、「ぽかぽか -> よし、これは pocapoca と打った方が楽だな!」とか「赤く染まった -> この『赤く』は akaku より acaku と打った方が速いな!」といった柔軟な打つキーの選択はできない
- そもそも言語が違うので打鍵列(どんな順番でキーを押すことになるか)の傾向が根本的に全然違う : p, q が多いのはしんどいと思うけど、za とか wa があんま無いのはありがたいとか、言い出すとキリが無い
打ちやすさに影響しそうな要素(タイパー側 ※英語から見て)
いや〜、言語側だけ見てもかなり複雑ですね。ここに挙げていない要素もいくらでもあると思いますし。とはいえ、こういったことを全て挙げていって、膨大な統計データを得れば、現代の機械学習とかそういう技術を活用すれば関数ができるような気がしないでもありません。
しかし、ここから更に、上記の「違い」を複雑化させる「タイパー毎の特性」も考えていかなければなりません。思いつく限り、挙げていきましょう。
- タイパー毎の練度 : 練度って何やねんという話もありますけど、まあ細かいことはおいといて。例えば「初心者タイパーにとっては英語タイピングのが簡単で、熟練タイパーにとっては英語タイピングのが難しい」といったことがあり得ます。また、「打鍵列と練度の組み合わせ」によっても打ちやすさは変動します。例えば、いわゆるアルペジオ打鍵はタイパーにとっては物凄く速く打てる打鍵列ですが、初心者にとっては別に他の打鍵列と特に変わらないでしょう。この辺りのことを踏まえると、統計や機械学習によって関数を求めるにしても、サンプルとなる打者(?)の習熟度を揃える必要がありそうです。
- 英語タイピングの開始時期:「日本語タイピングに慣れたあとで英語タイピングを始めた人」と「英語タイピングから始めた人」で難しさは同じでしょうか? 同じかもしれないですし、違うかもしれません。自分にはさっぱり分からないですが、まあ本気で評価関数を導こうとするなら、考慮する必要はあるでしょう。
- どのような運指や最適化をしているか:英語タイピングに向いた運指や、英語タピングを強く意識した最適化をするかしないかで、当然難しさは変わってきます。(その最適化の必要性自体を「難しさ」と判断すべきか否かという問題もありますが、とりあえず置いておきます)
- 母語は何か(打とうとする言語の運用能力はどの程度か): つまり「日本人にとって英語タイピングは難しい」というのと「英語タイピング自体が難しい」というのは別の話です。
打ちやすさに影響しそうな要素(ゲーム・競技側)
最後に、念の為注記しておきます。
上記に挙げたような要素は、ゲーム・競技毎に異なってくるものです。
例えばシフト入力がどうこうと書きましたが、当然、「シフト入力なしの英語タイピングサイト」なんてものもあるわけです。スペースキー入力についても、「スペースキー入力を必要とする日本語タイピングソフト」もあります。e-typing などのメジャーサイトでも「日本語ではなぜか句読点(。や、)を入力しなくていいのに、英語では , や . を入力させられる」ことも多いですよね。
つまり、「日本語だからこう」「英語だからこう」という決めつけすらもできないということです。本気で「それなりの信頼性を持つ関数を作りたい」というのなら、そういった影響も無視はできないでしょう。
で、関数は作れるのか?
……ここまで読んで、どう思いましたか? 正直、僕は作れないと思います。いや、厳密には作れるとは思いますが、「競技タイパーが意味を感じられるような関数は作れない」と思います。
例えば、「標準運指(最適化なし、ホームポジション固定)に限って」「初心者〜中級者など練度を限定して」「一定の条件を満たす競技ルールに絞って」といった仮定をたくさん置けば、統計的に導き出すことは可能かもしれませんが、競技タイピングレベルの高速域でそれが意味を持つかどうかというと、正直言って、ほとんど意味が無いわけです。
秒間 5 打のタイピングと秒間 15 打のタイピングって全然世界が違いますし、秒間 15 打といった世界になってくると、言語どうこう以前に、タイピングスタイル(運指とか最適化)とか個人の能力の影響が大きすぎると思います。
あ、でも
先ほど「全く意味が無い」と書きましたが、それは今回の記事の趣旨である「異種競技間で『スゴさ』を比較する」という観点からは意味が無い、という意味です。
上で書いた通り、「打ち方や競技ルールを仮定した時の、ある課題文の打ちやすさ」を計算する関数は作れると思っていますし、それ自体は色々と有益に使えるものだと思います。例えば、毎トライアルで出題ワードの平均難易度を平準化するとか、同じユーザの違うワードセット間での記録を標準化した上で成長度のグラフを作るとか、色々と使えると思います。
くどいようですが、「異なる競技」「異なるスタイル」に渡る比較はこういった手段では難しい、と言っているだけです。
答え:結局、「スゴさ」はどうやって比べるの?
ということで、日本語タイピングと英語タイピングの「スゴさ」を比べるための方法を色々考えてきましたが、僕の結論としては、
こんなもん比べられね〜〜〜〜〜!!
というものです。
いや、だって無理ですもん。僕だって、Sean Wrona のスゴさを 100 として、僕の タイプウェル国語R基本常用後 20.713 秒のスゴさは 70 なのか 60 なのか 50 なのか、意外と 85 くらいあったりするのか、知りたいですよ。でも分かんないですよこれは。現状、どんなスゴい学者やデータサイエンティストでも、ちゃんとは計算できないと思います。
妥協:例えばシフトキーだけに絞ったら?
異種競技タイパーの「スゴさ」を総合的に比較するのはどうやら難しい…… ということが分かってきました。
では、せめて領域を限りなく狭く絞って、「少しでも速度の指標を近付ける」もしくは「少しでも違いを吸収する」というようなアプローチはどうでしょうか?
それも、できれば上記で色々と挙げた要素のうち、計測することが難しそうな要素は無視して、厳密に計算できる要素に絞るのはどうでしょう?
例えば、英語の 650 CPM(文字/分)と日本語の 700 KPM(キー≒ローマ字の数/分)があった時、大文字や ' や " がどれだけあったか(余計なキー入力がどれだけ発生したか)を数えるなどすれば、「その 650 CPM は 690 KPM に当たる!」というような計算はできるでしょう。(この辺り、詳しくは 英語タイピングにおける文字数とキー数の比率 - テルのタイピング記 参照)
こういった努力は「指標を統一して分かりやすくする」という意味はあると思います。英語の 690 KPM と日本語の 700 KPM のどちらが「スゴい」かは別として、少なくとも「こっちの人は 1 分間に 690 キー打って、こっちの人は 700 キー打ったんだ」ということは分かります。
そこに意味を見出すか見出さないか、見出すべきか見出すべきでないかは、個々人の考えですが、それはそれとして、「事実として何キー打ったのか」が分かることには価値があると思います。
ただし、このように計算を行ったところで、シフトキーについて考え尽くしたとは言えません。ちょっと、下の質問に答えてみてください。
質問:「右シフトで大文字 A を入力する(つまりシフトキー+Aキー)」と「pa と2文字の入力をする」の、どちらが大変(時間がかかる)でしょう?
どうでしょう? 結構、パッと答えるのは難しいんじゃないでしょうか?
この質問に対しては色々な回答が予想されますが、僕が考える答えは「一般的には前者(大文字A)のが大変だが、厳密に言えば場合による」です。
まず、「一般的には大文字 A のが大変」というのは、シフトキー入力には 1 文字分以上の負担を強いられることが理由です。「Shift -> A」と 2 キー入力しているだけのようですが、実際は「Shift -> (Shift押しっぱなしで) A -> 次のキーまでにShiftを離す」というように、p -> a といった単純な 2 キー入力に対して、「シフトを押す/離すタイミングの管理」という追加の仕事を要求されています。単純に仕事が増えているわけですから、これはどう考えても 1 キー分の打鍵よりは負担が大きいです。
ここまでは気付く方も多かったと思いますが、「厳密に言えば場合による」というのは気付きましたか? こっちに気付いた方は、英語タイピングをかなりやり込んでいる方ですね。これは「ゲームの種類によっては、文頭のシフトは先に押しておくことができる」というようなことです。例えば typeracer などでは先に課題文が表示されていますから、あらかじめシフトキーを押下したまま待機しておけばいいので、1 キー分稼ぐことができます。他にも考えていけば色々あるでしょう。
とはいえ、"The ..." といった文章なら、やはり「h の前にシフトを離さなければいけない」ことの負担が重いので、1 キー分かそれ以上の負担があるように思います。このテクニックが有効になるのは "A ..." から始まる文章ですね。スペースキーを押している間にシフトを離せばいいわけですから、このパターンであればシフトの負担はほぼゼロに近い感覚です。
結論:定量的評価の難しさ
どうやら、やっぱりシフトキーの負担すらも、ちゃんと定量的に評価するのはなかなか難しいようです。いや、このくらいなら出来なくはないと思うんですが、とりあえず「押す回数の分だけ負担が増える」という単純なものではないということですね。
テルさんは何が言いたかったの?
ずいぶん話が長くなってしまいました。
ここまで読んでいただいて、もしかしたら「前書きでは、漫画を例えに出してまで『異種格闘技戦には夢がある』ようなことを言っておいて、結局「比べられない」ってどういうつもりだよ?」 と思ったかもしれません。しかし、ここには僕の強い思いがあります。
それは、「無理に比べようとしないで、違いを知ってリスペクトして、それぞれの味わいを楽しもうぜ!」ということです。僕は、これが凄く大事なことだと思っています。
比べようとしないことで、見えてくるもの
前書きの例え話の「孫悟空とルフィどっちが強い?」で考えてみましょう(読んだことない方は雰囲気を感じてください。)
……いや、これ正直どう考えても孫悟空の圧勝ですよね。そもそも身体能力の桁が違うんですよ。かめはめ波で星すら簡単に壊せて、瞬間移動もできる。「ルフィはゴム人間だから物理攻撃は通じない」? いいえ、気円斬があるのでルフィにも攻撃は通じます。
とは言っても、ですよ? ここで「ルフィざっこwwwwwww 孫悟空の下位互換じゃんwwwwwww ワンピース読んでるやつ全員間抜けかよwwwwwww」となりますか? って話ですよね。
ルフィファンの孫悟空アンチ(?)だったら、きっと「孫悟空なんて社会性皆無で確固たる夢も未来のビジョンも無く生きてて、息子の悟飯ほったらかしで修行ばっかしてピッコロに悟飯を取られちゃった父親失格のクズじゃん!! ルフィは仲間と一緒に海賊王っていう夢を追いかけてるし、ナミを助けた時みたいに他人の心の機微も分かるし、強すぎないからこそ仲間のために強くなろうとする姿勢が尊いんだもん!!」って言いますよ。(※別に僕は孫悟空アンチじゃありませんよ。むしろ好きです。念の為)
変な例えだったかもしれませんが、なんとなく伝わったでしょうか。「強さ」という比べられるものだけ見ようとしたことで、「その人(今回はルフィ)が持つスゴさ」が見えづらくなったんです。
一般化して言えば、一つの尺度に落とし込もうとすると、見えなくなるものが多すぎるってことですね。
タイピングでも同じです。「どっちがスゴいのか」を比べようとするのもいいですけど、「それぞれのスゴいところ」をまずしっかりと見るのが、観戦者としても、競技者としても、「タイピング」という「細かく枝分かれした異種競技の集合」を楽しむ秘訣です。
英語タイピングが速い人は、シフトキーや日本語とは違う慣れない打鍵列、スペース入力に適応しててスゴいです。
カナ入力が速い人は、広いキーボードを使いこなしててスゴいですし、打鍵列のパターンが多すぎるのに適応しててスゴいです。
毎パソ和文の固定文入力が強い人は、変換をしっかり把握して計画を立てたり、練習した成果を本番でキッチリ出すメンタルやミスしない注意力がスゴいです。
逆に毎パソ和文で初見入力が強ければ、多様な変換法からベターなやり方を導く思考の瞬発力や、文章の認識・変換の組立・打った文章にミスが無いかのチェックなどを並行して行う処理能力がスゴいです。
ミスがめちゃくちゃ多いけどとんでもない速度で打てる人は、ミスを許容した独自の打ち方や先読み能力、他のキーを巻き込みながらも確実に正しいキーを打ち抜くバランス感覚がスゴいです。
速度は少し落ちるけどとんでもなく正確性が高い人は、集中力や動作の再現性、打鍵中に必ず訪れるはずの「少し崩れた瞬間」にも確実にリカバーする緻密さがスゴいです。
ここで、こういった「それぞれのスゴいところ」を見ることの大事さに比べたら、「X 文字打ったとはいえ固定文(だから初見で Y 文字打った○○さんのがスゴい)じゃん」とか「ノーミスだから得点高くなって 1 位になってるけど、2 位の△△さんのがずっと速いじゃん」とか「確かに速いかもしんないけどミス 30 とか意味ないじゃん」とか、マジで下らないですよ。
あとは、他人に対してこんな失礼なこと考えない人でも、自分のことは何故か卑下しちゃったりとかね。「タイプウェル英単語で X 位まで来たけど、人口が少ないし、国語 R で言えば大した価値ないかな……」とか、「寿司打普通はかなり自信あるけど、e-typing は○○pt しか出ないから実力はこの程度なんだよな……」とか。客観視・相対評価をしようとするのも大事かもしれないけど、それぞれの記録と、その記録を実現した能力にまず本質的な価値があるんだって。「見えないものを見ようとして、見えてるものを見落とすな」って、BUMP OF CHICKEN も言ってます。
ということで、「スゴさ」についての僕の結論です。
・同種競技の結果は比べられるから、それが絶対の価値基準。つまり、結果(タイプウェルならタイム、e-typing ならポイント、WT の対戦モードなら勝敗、RTC なら順位)が上の奴が一番スゴい。それはそれとして、『それぞれのスゴさ』もある!
・異種競技の結果は比べられないから、そんなことよりも、違うからこそ際立つ『それぞれのスゴさ』を楽しもうぜ!
以上です。最終的になんか積もり積もった鬱憤(?)により変なテンションになってしまいましたが、最後まで読んで頂き、ありがとうございました。