多言語タイピングにおける朝鮮語/韓国語の強化

2023.12.17(Sun)
文責:dqmaniac

※本稿は、たのんさんが主催するタイパー Advent Calendar 2023に登録しています。2枠目はこちら
※昨日の記事は、orihさんの英語競技タイピングの世界をざっくりと説明です。
※明日の記事は、TK Lab.さんの速度を競わないタイピング勝負のルールを妄想してみるです。



朝鮮語/韓国語のタイピングとは
用語の定義
なぜ朝鮮語/韓国語か
monkeytypeのkoreanで100wpmを目指せ!(2023/5/24〜10/1)
monkeytypeのkorean 1kで100wpmを目指せ!(2023/10/2〜12/24)
monkeytypeのkorean 5kで100wpmを目指せ!(2023/12/25〜2024/2/19)
TypeRacerのKoreanで100wpmを目指せ!(2024/2/20〜7/7)
参考文献
各種資料
おまけ1:Interstenoに朝鮮語/韓国語が採用されるには?
おまけ2:過去のタイパー Advent Calendar向け記事へのリンク


●朝鮮語/韓国語のタイピングとは

朝鮮語/韓国語のタイピングを始めるには、まず固有の文字であるハングル(가,나,다,라,...)に習熟する必要がある。ハングルは、英語や日本語ローマ字で用いられるラテン文字(a,b,c,...)や、日本語で用いられるひらがな・カタカナ・漢字とは異質な文字である。基本26種類(Shiftを使う文字を含めると33種類)のパーツを2〜4個組み合わせた形で表現され、総数は1万を超える
Unicode一覧表では第0面のAC00〜D7A3に割り振られている)。日本語の五十音との対応については、ハングルノートが分かりやすい。

次に、朝鮮語/韓国語のキーボード配列に習熟する必要がある。上記の性質上、一般的なキーボード上にハングルを1文字1打鍵対応で割り当てる配列は非現実的である。従って、基本26パーツをキーボード上に割り当てて、1文字2〜4打鍵で入力する方法が主流となっている。韓国語の一般的なキーボード配列は、Windows10/11の標準機能に含まれている。[設定]→[時刻と言語]→[言語]→[言語の追加]で韓国語を選択すれば良い。このキーボード配列については、ハングルの入力方法が分かりやすい。なお、他にはローマ字入力もある。だが、ローマ字入力を習得するにはハングルの読み方とローマ字表記との対応の習得が必須であり、初学者にはハードルが高い。

朝鮮語/韓国語タイピングの技能を発揮する場として、TypeRacermonkeytypeがある。Interstenoではまだ採用されていない。英語をはじめとするラテン文字に慣れきっていると、ハングルおよび朝鮮語/韓国語キーボードの壁は高い。例えば、Interstenoの合格条件である「240文字/分以上、かつミス率0.50%以内」を突破するのが意外と難しい。また、約30秒という短期決戦であっても、外国人がTypeRacerやmonkeytypeで100wpmに到達するのは極めて困難である。


●用語の定義

※朝鮮語/韓国語: 「朝鮮語」とは北朝鮮(朝鮮民主主義人民共和国)で用いられている言語、「韓国語」とは韓国(大韓民国)で用いられている言語を指すらしい。とはいえ、筆者の語学力では両者の違いがよく分からない。monkeytypeのkoreanにどちらの言語が採用されているのかも分からない。TypeRacerのKoreanには「한국어, 조선말(韓国語, 朝鮮語)」と併記されている。本稿では、ハングルが15世紀に李氏朝鮮で制定された歴史に鑑み、朝鮮語を先にして「朝鮮語/韓国語」と併記する。但し、筆者が韓国滞在中に触れた言語を指す場合や、Windows10/11の標準機能の韓国語配列で入力できる言語を指す場合には、「韓国語」と記載する。

※ハングル: 朝鮮語/韓国語で使用されている固有の文字の名称。日本語の「ひらがな」「カタカナ」、英語等の「ラテン文字」に相当する。言語の名称ではない。

※Korean/korean: TypeRacerでは「Korean」と先頭大文字、monkeytypeでは「korean」と先頭小文字で記載されている。これは他の言語でも同様である。Koreanは固有名詞であるため、本稿では「Korean」と先頭大文字で記載する。但し、monkeytypeについて述べる時にのみ、「korean」と先頭小文字で記載する。

※通常版/語彙増加版/1k/5k: 本稿ではmonkeytypeのkoreanを「通常版」、korean 1kを「1k」、korean 5kを「5k」と呼称することがある。特にkorean 1k攻略開始後はその傾向が強い。また、1k,5kをまとめて、通常版と対比する意味で「語彙増加版」と呼称することがある。

※英字表記/ローマ字表記: 本稿で「英字表記」とは、Windows10/11の標準機能の韓国語配列でハングルを打鍵した時の文字列をQWERTY配列の英字に置換した文字列を指す。「ローマ字表記」とは、ハングルの発音をローマ字で表現した文字列を指す。例えば[다]の英字表記は[ek]、ローマ字表記は[da]となる。

※wpm: words per minute、即ちワード/分。打鍵速度を表現する一般的な指標の一つ。英字タイピングでは一般的に1ワードを5文字と数えるため、1wpm=5文字/分、100wpm=500文字/分となる。但しmonkeytypeのkoreanのwpm値は、文字単位でなくパーツ単位で計算されている。仮に1分間にハングルを250文字しか打っていなくても、500パーツ打っていれば500文字/分、即ち100wpmとなる。一方、TypeRacerのKoreanのwpm値は、文字単位で計算される。但し打鍵速度を他の言語と比較する際には、係数2.0を掛けて換算される。即ち、朝鮮語/韓国語の50wpmは英語等の100wpmに相当する。


●なぜ朝鮮語/韓国語か

◆韓国と韓国文化への馴染み

筆者は2009年5月に約1カ月間、韓国の水原(수원/スウォン)に滞在したことがある。韓国語学習が目的ではなかったため、コミュニケーションには専ら英語を用いていた。英語が通じにくい場所には、韓国人の友人と一緒に行くことが多かった。済州島(제주도/チェジュド)にある韓国最高峰の
漢拏山(한라산/ハンラサン・ハルラサン)に登頂した時にも、登山口まで友人に送ってもらった。

しかし1カ月も滞在すれば、多かれ少なかれハングルに触れることになる。例えば大長今パークに単独で行ってみたりとか。大長今(대장금/デジャングム/日本語名:宮廷女官チャングムの誓い)には2006年頃にハマりまくり、日本語版・韓国語版(英語字幕)含め少なくとも6周した。従って韓国滞在中に是非とも行きたい場所であった。ハングルを習得してから大長今を改めて見直せば、また楽しめるかもしれない。

また、持参していたノートPCがぶっ壊れたため、現地の量販店で新たなノートPCを購入し、OSを英語化して使用した。元のOSはもちろん韓国語だったため、英語化するとしても言語の設定がどこにあるかすら分からない。何らかの項目を設定する際にも、[はい]か[いいえ]かも分からない。キーボード配列も韓国語仕様であり、慣れないハングルをキーボードを見ながら必死に打ち込んで翻訳サイトを参照したものだ。その過程で、ハングルを分解できることと、パーツの組み合わせでキーボード入力することを知った。まさか14年経過した2023年になってハングルタイピングを本格的に習得することになるとは、当時は考えもしなかった。

◆偉大な先駆者と有用な練習サイトの存在

X(旧Twitter)上で、中村信さんがmonkeytypeのkoreanとkorean 1kで100wpmの達成を報告されていた。筆者より早く、かつ短期間で達成していた。そもそも筆者が朝鮮語/韓国語でノーミス100wpmを目指す絶望的な練習を数カ月にわたり継続できたのは、中村信さんという偉大な先達がその可能性と道筋を示して下さったお陰であり、大変感謝している。

筆者は2023年にまずmonkeytypeで100wpm達成を目標とした。monkeytypeではランダムに並んだ単語を打つ。1回あたりの時間は細かく設定可能であり、筆者は初期値の30秒のままにしている。また、korean(470語)の他に語彙増加版としてkorean 1k(約1,000語)、korean 5k(約5,000語)という難易度の高いバージョンが用意されている。筆者は全種目で順次100wpmを目指している。

一方で、TypeRacerでも100wpm達成を目標とした。TypeRacerでは文章を打つ。1回あたりの時間は概ね30秒〜1分である。

◆難関言語の工数見積もり

さらなる難関言語(ここではアラビア語、タイ語、ヒンディー語等を指す)に将来挑戦する際の工数を見積もっておきたかった。これらの言語に使われる文字には、筆者は全く馴染みが無い。少し調べた限りでは、図形認識すら困難だ。この意味で、ロシア語や朝鮮語/韓国語と比較しても難関言語の習得は極めて困難である。とはいえ、図形認識の段階さえクリアすれば、その先の成長過程はあまり変わらないと予想される(実はこの見通しがまだまだ甘いのかもしれないが)。従って、朝鮮語/韓国語で100wpmを達成する工数を知っておけば、難関言語で100wpmを達成する工数がそれ以上であると想定できる。

具体的には、100wpm到達までには表1に示す幾つかの段階がある。このうち「図形認識の成長」は、ラテン文字のタイピング習得過程にはほぼ無かった。英語のタイピングを始めたのが英語習得の後だったためだ。2015年のInterstenoの多言語対応においても、ロシア語を除けば一部の特殊文字(ドイツ語のß等)や文字装飾に対応するだけで済んだ。ロシア語のタイピング習得時にのみ、図形認識の壁が存在した。だが、気付いた時にはその壁を通り過ぎており、「配列の試行錯誤」の段階に入っていた。ギリシャ語や朝鮮語/韓国語タイピング習得の過程で「図形認識の成長」の段階を改めて実感できた。具体的には、ハングルのパーツとキー配置の関係を叩き込む際に図形認識を活用した。但しㅗ/ㅜ、ㄱ/ㅅ/ㅈ/ㅊの区別は難しく、100wpmに接近してからも苦労した。

【表1: 多言語タイピングの成長過程】

・図形認識の成長
・文字装飾の区別
・配列の試行錯誤
・打鍵高速化過程のプラトー現象
・最後に100wpmを目指して集中練習

もちろん難関言語にはさらなる難関要因が含まれる可能性もある。例えばアラビア語の場合、「右から左に読む」ことが難関要因となり得る。しかし上記の各段階の工数を概ね把握しておくことで、ある程度の見積もりが可能となる。

……

以上、ロシア語と違って趣味に走った理由しかない。Interstenoでは朝鮮語/韓国語が2023年現在採用されていないし、今後採用されるか否かも分からない。朝鮮語/韓国語タイピングで競い合うライバルがいるわけでもない。要するに、朝鮮語/韓国語タイピングはあくまでも自己満足である。とはいえ、己が成長する実感を味わうのは類稀なる快感を伴うものである。


●monkeytypeのkoreanで100wpmを目指せ!(2023/5/24〜10/1)

◆Windows韓国語配列の使用を決定

monkeytypeに出現する単語を抽出し、使用されている文字の種類を調査した。結果は表2の通り。文字種類は日本語のひらがなやカタカナと比較して圧倒的に多い。しかも語彙の増加に伴い増える。この時点で、日本語のJISかなのような1文字を1打鍵で打つという発想はほぼ通用しないことが分かる。

【表2: korean各種目の単語数と文字種類数】

種目単語数文字種類数
korean470316
korean 1k975506
korean 5k4201911

例えば、Microsoft Keyboard Layout Creator(以下MSKLC)で配列を作成するのは事実上不可能だ。使用可能な計46個のキーをデッドキー23個、その他23個に分けたとして、2打鍵で入力可能な文字は23×(23+1)=552種類が限界だ。Shift, Ctrl, 右Altを駆使して使用可能なキーを増やせば、合計1万文字を超えるハングルをすべて表現することも可能かもしれない。しかしShift等を使えば実質的な打鍵数も増えるため、入力効率が悪くなる。また、頻出する文字を1打鍵化した場合、そのキーをデッドキーに使えなくなるため、表現可能な文字の種類が減る。なお、monkeytypeに出現する文字は限られている。これを利用して、例えばkoreanに出現する316種類の文字に限定して配列を考える手はあると思う。だが、korean 1kやkorean 5k、あるいはTypeRacerに移行する際にいちいち配列の拡張が必要であり、効率が悪い。

また、将来は配列を工夫するとしても、頻出するパーツ/文字/シーケンスを知る必要がある。従って、まずはWindowsの韓国語配列である程度訓練すべきと考えた。この方向性は、koreanで100wpmを達成した今となっても、正しかったと断言できる。Windowsの韓国語配列の入力効率は高く、筆者は現時点でこれを上回る配列を思いつかない。

◆出現単語の分析

monkeytypeのkoreanの攻略に際して、表3に示す情報をExcelシートに整理した。もちろん、最初からすべての情報を整理できたわけではない。例えば「HTML表記」「意味」は、日記を書く際に、あるいは難関単語や特徴的な単語が新たに出現する度に少しずつ埋めていった。また、「英字表記」「Shift有無」は、ある程度ハングルへの習熟が進んでからまとめて調査した。「代表的な表音とそれを使う単語の一覧」以降は、他の情報が埋まってから少しずつまとめ始めた。

単語の分析の目的は、単語の暗記だ。例えば、幾つかの苦戦した単語(主に外来語)は、結局英字表記で覚えた。朝鮮語/韓国語に限らず、ある程度の暗記は必須だ。100wpmを達成するには、指の動き云々以前に、100wpmという速度にいかに脳を適応させるかが勝負だ。脳細胞がつながっていないうちはまず打てない。

【表3: Excelシートに整理した情報の一覧】

大項目中項目タイミング
文字の一覧
(316文字)
出現回数/出現割合/打鍵数初期
HTML表記徐々に
単語の一覧
(470単語)
打鍵数/文字数初期
英字表記少し後
意味(日本語/英語。Google翻訳レベル)徐々に
Shift有無少し後
単語の分析代表的な表音とそれを使う単語の一覧/外来語一覧/同義語一覧最後

◆文字・単語の練習

上記のExcelシートを見ながら、koreanに出現する316種類の文字を1つずつ入力した。まずはハングルのパーツとキーボード上の配置を把握するのが目的だ。入力結果はEXACT関数で比較し、FALSEが出力された場合には即座に修正する。当初は、316文字打つだけで約1時間を要した。korean 1k, korean 5kについても、この段階で同様の練習を実施した。

上記の練習を4日こなし、ハングルにある程度慣れた段階で、単語の練習に移行した認識単位を文字から単語に拡大し、monkeytypeの30秒練習で速度を上げるためだ。初期段階では、10単語に1単語程度の割合でミスが出た。まずはこのミスを減らすことを目指した。korean 1k, korean 5kについては全部打つと時間がかかるため、約500語ずつ練習した。その過程で、[〜하다](〜する)という語尾が頻出することに気付いた。英字表記では[〜gkek]であり、打ちやすいのですぐに覚えた。

※単語をExcelで入力する際、最初の1文字を入力した時点で候補が表示されることがある。しかも候補と違う文字を入力しようとすると意図しない入力結果となることがある。この邪魔な事象には日本語と同様、オートコンプリート機能を無効にすることで対応できる。[ファイル]→[その他]→[オプション]→[詳細設定]→[編集オプション]→[オートコンプリートを無効にする]だ。

速度が上がるにつれて、単語の練習は470単語通し練習という名のタイムアタックに変化した。当初は全470語を入力するのに20分もかかったものだ。しかし、6/26に15分を、7/24に10分を切り、最終的に8分03秒まで詰めた。1語あたり1秒切りまであと13秒であり、そこまでは詰めたかった。だが、10/1にkoreanで100wpmを達成してkorean 1kに移行したため、koreanの470語通し練習は一旦終了とした。

また、ミスタッチどころかミスすら、根絶することはできなかった。発生するミスの要因は毎回異なり、対策しても無限もぐら叩きの様相を呈していた。この470単語通し練習でよく出たミスは表4の通りである。

【表4: 470単語通し練習でよく出たミスの一覧】

カテゴリ内容具体例
認識ミスㅇ/ㅁの混同[운동](運動)を[문]
ㅅ/ㅈの混同[술](酒)を[줄](行)
打鍵ミスt/gの混同[관심](興味)を[관힘]
r/fの混同[환경](環境)を[환령]
f/gの混同[이루다](実現する)を[이후다]
その他t/dの混同[새](鳥)を[애](子供)

◆30秒練習

「出現単語の分析」「文字単位・単語単位での練習」と並行して、monkeytypeを用いた30秒練習を5/24から開始した。当初は10wpmにすら満たなかった。「指が動かねえ! 脳が働かねえ!」という感覚を久々に味わった。配列習得時のセオリーとして、キーボードを一切見ずに訓練を続けた。その結果、レア文字以外のキー配置は1週間程度で定着した。ここでも、最初に覚えたのは頻出する[다](英字表記では[ek])だった

その後も他の言語と同様、将来のTypeRacerへの挑戦も視野に入れて、「30秒・ノーミス」という条件下で練習を重ねた。英語で160wpmを出せる筆者にとって、朝鮮語/韓国語で100wpmを目指す際に速度の比重は少ない。速度を求めてミス覚悟で限界まで追い込む必要が無いためだ。それよりも、ミスとそれによるロスを抑えることを重視した。そもそもノーミスが条件である以上、1ミスでもした場合には即Escである。終了間際のミス等により、誤って打ち切って出した記録は、集計時に対象外とする。初期段階や不調な日には、1回打ち切るのに苦労することもよくあった。また、速度が上がるにつれて、ノーミス打ち切りは難しくなる。しかし基本方針は変えなかった。

なお、朝鮮語/韓国語の制限時間は初期設定の30秒とした。TypeRacerやInterstenoを見据えるなら、60秒などより長い設定にした方が良い。しかし、特に初期段階で60秒ノーミスを保つのは至難である。練習効率を勘案し、30秒のままの方が良いと判断した。後で振り返れば、15秒などより短い設定を補助的に採用する手はあったと思う。

朝鮮語/韓国語を含む全体の練習は、1セットを約60分として、平日に1セット、休日に2〜3セット実行した。このうち朝鮮語/韓国語には、各セットの最後の約25分を充てた。残りの35分は「指慣らし(主に英語ベースのプログラミング言語)」「Interstenoの10分間練習(主に中速言語)」「ロシア語」「高速言語」という構成だ。Intersteno以外は、monkeytypeの30秒もしくは60秒練習である。朝鮮語/韓国語を25分に限定したのは、それ以上の練習に脳が耐えられなかったためだ。この25分のうち、最初の10分はロード(読み込み)時間だ。次の15分で記録を狙う。これを終える頃には脳のリソースが慢性的に欠乏し、開幕の数語で確実にミスするようになる。この状態で練習を継続しても、己の肉体と精神を痛めつけて疲労を蓄積させるだけであり、戦略的に何の意味も無い。また、朝鮮語/韓国語に限らず他の言語を練習するのは、「Intersteno対策」「ベース速度の維持」「モチベーションの継続」という意味がある。

◆初期段階の改善策

当初は「図形認識→発音→キー配置」という思考回路で打っており、無駄が多かった。そこで、初期段階のうちに発音の要素を排除し、「図形認識→キー配置」という思考回路に矯正した。なお発音については、後のkorean 1k攻略時に漢字や英語との対応関係を調査する際に役立った。

6月下旬、[ㅠ]を左手人差し指(以下「左人」)で打つよう矯正した。Windows10/11の韓国語キーボード配列では、[ㅠ]が[b]に配置されている。韓国語タイピングでは本来、このキーを右手人差し指(以下「右人」)で打つらしい。そこで当初はこのキーを右人で打つ練習をした。しかし、筆者は日本語や英語において[b]を右人で取る最適化に習熟していない。その結果、速度が上がるにつれて、[ㅠ]を右人で打つ際にミスタッチや迷いが発生し始めた。[ㅠ]を右人で打つ練習を約1カ月継続してきたため、ここで左人に切り替えるのはやや惜しい。だが、このままでは速度・正確性両面で悪影響しかない。結果的に、約1週間でこの矯正は完了した。koreanで[ㅠ]が出現するのは[교육](教育/rydbr), [이유](理由/dldb), [컴퓨터](コンピュータ/zjavbxj)の3語のみであるため、対策も容易だ

また、初期段階では誤読に伴うミスが頻発していた。具体的には、[ㅌ],[ㅐ],[ㄴ]をそれぞれ英字の[E],[H],[L]と混同して[ㄷ],[ㅗ],[ㅣ]を打つミスだ。[ㄱ]をカタカナの[フ]と誤読し、しかもそれを[f]に脳内で勝手に変換して[ㄹ]と打つミスもあった。さらに、[ㅋ],[ㅌ]は互いに混同しやすい。これらのミスは、初期段階で意識してほぼ根絶した。

◆苦手単語の洗い出しと対策

6/28に、ミスを誘発する単語や迷いやすい単語をチェックし始めた。目的は、苦手単語で発生するミスやタイムロスを限りなく0に近づけることだ。まずは三大凶悪外来語、即ち[퍼센트](パーセント), [컴퓨터](コンピュータ), [프로그램](プログラム)だ。これらをなかなか打てるようにならないのは、外来語であるが故に、他の単語に出現しないレアな文字、レアなパーツを使用するためだ。monkeytypeのkoreanには、470語が概ね均等に出現すると考えられる。このため、頻出する[〜하다]をすぐに覚える一方で、レアな文字やパーツの習熟はなかなか進まない。そこで、英字表記を暗記することにした。上記の三大外来語の英字表記は順に[vjtpsxm], [zjavbxj], [vmfjrmfoa]となる。ついでに、そこまで苦手でなかった[커피](コーヒー)も[zjvl]で暗記し、得意単語に変えた。

他にも、英字表記で暗記した単語が幾つかある。8月中に、r/t/fの区別に苦戦していた[목소리](声)を[ahrthfl]と暗記した。また、[크다](大きい)を[zmek]と暗記することで、頻発していた[크가]ミスを根絶した。さらに、[기다리다](待つ)を[rlekflek]と暗記することで、慣性に任せて[기다기다]と打つミスを根絶した。

漢字に関連付けて暗記する手もある。[력]では毎回[f],[r]で迷って苦戦した。しかしこの文字は470語中[능력](能力), [노력](努力)にしか含まれない。両者に共通する漢字[力]と関連付けて、[fur]という英字表記ごと暗記した。そもそもハングルは表音文字であり、[단](団体), [자](それ自体), [전](全体)のように同じor似た読みを持つ漢語では同じハングルが使われることがある。こういう事例を少しずつ整理し始めた

紛らわしい単語もExcelで一覧にして暗記した。その最たるものは、[새롭다](新しい)と[어렵다](難しい)。脳と指が混同して[새렵다], [어롭다]と打つミスが頻発していたため、この整理は役立った。

他には表5に示す単語が苦手単語リストに挙がった。470単語通し練習で毎回意識して克服に努めたものの、なかなか成果は挙がらなかった。特に「ㅗ/ㅜの判別が至難」「더に不慣れ」という要因は尾を引き、korean 1kに移行後も悪影響を及ぼし続けた。今振り返れば、苦手単語だけを抽出して集中的に練習すべきだったかもしれない。

【表5: その他の苦手単語一覧】

単語意味英字表記苦手要因克服状況
높다高いshvekㅗが見えない。ㅍに不慣れ。×
좋아하다好きwhgdkgkekㅗが見えない×
작품作品wkrvnaㅜが見えない。ㅍに不慣れ。×
움직이다動くdnawlrdlekㅜが見えない。〜하다と混同×
더욱さらにejdnr더に不慣れ×
형태gudxoㅕ,ㅌに不慣れ
대통령大統領eoxhdfudㅌ,ㅕに不慣れ
만큼ほど/同じくらいakszmaㅋに不慣れ。左殺し
최근最近cnlrmsㅊに不慣れ。mをnとミス
경제経済rudwppをoとミス
가운데真ん中rkdnsep
그대로そのままrmeofhㄷ/ㄹ, o/hを混同
아름답다美しいdkfmaekqeka,qを混同

◆脳の弱さとの闘い

練習が進み、70wpm前後まで成長した頃から、脳の弱さが浮き彫りになってきた。まず、練習開始後の約10分間はノーミスを30秒維持できない。30秒どころか10秒持たないことが大半である。このため、各単語のロードに充てるしかなかった。各単語(最低でも苦手単語全部)の打ち方を思い出して初めて、30秒間ノーミスタッチで打ち切れる可能性が出てくる。この問題に関しては、先述した470単語通し練習も直接的な対策にはならなかった。あくまでもmonkeytypeの画面でのロードが必要だった。

各単語のロードが終了してからも、ノーミスを30秒維持できることは稀だ。30秒も脳を高レベルで働かせ続けることは不可能だ。どんなに簡単な単語でも、脳が働かなければミス爆死だ。頻出する[〜하다]でさえもミスが出る。日本語で言えば[か]を[き]とミスするようなものだ。例えば表6に示すケースで頭が真っ白になり、稚拙極まりないミスタッチを繰り返す。要するに、焦ったりびびったり脳を酷使したりして、集中力が途切れた場合や脳のリソースが尽きた場合に、「先読みが途切れる」「指が勝手に動く、あるいは止まる」といった事象が発生する。このため、大半のケースではミスが出るし、仮にノーミスで突破できても次の単語でまた硬直する。

【表6: 脳が働かなくなるタイミング】

・開幕
・改行直後
・難関単語を突破した直後。特に難関単語が2個以上続いた場合
・加速単語で加速した直後
・順調に打ち続けていることにふと気付いた瞬間
・新記録が出そうだと意識した瞬間
・タイピング画面3行目。特に、最後の最後

この事象に対処するには、根本的には出現単語や出現文字、出現パーツへの習熟度を地道に向上させるしかない。難関と思っていた単語をより少ない脳の負担で打ち抜けることで、脳のリソースが尽きる事態が減少する。ほぼ無意識のうちに指が勝手に単語を打ち抜けられるまでに鍛え上げれば、多少の焦りにも対応できる。しかしそのようなレベルにまで鍛え上げるのは、速度が上がるにつれて難しくなる。筆者は100wpmを達成するまでに表7に示すプロセスを辛抱強く繰り返した。それでも結局4カ月以上を要した。

【表7: 脳死対策の一覧】

・470単語通し練習でベース速度を上げる。
・難関単語を少しずつ克服する。即ち、少し速度を落として自然に突破できるようにする。
・加速単語も少しずつ克服する。即ち、力まず自然に加速できるようにする。
・開幕は大量のEscと運で強引に突破する。難関単語がある場合は、事前に指の動きをイメージしておく。
・開幕ダッシュに続けて1行目を速く打つ練習をする。最終的に、1行目を9秒以内に打てるようにする。
・2行目にX秒、3行目にY秒残っている状況に慣れる。X,Yの値は速度により変わる(最終的にX=21, Y=10)。
・改行を突破できた場合は、2行目、3行目で再加速する練習をする(しかし大抵失敗する)。
・最後の最後については場数を踏むしかない(しかし場数を踏んでもミス爆死は多い)。

この事象がいくら発生しても良いだけの速度を獲得するというアプローチも考えた。例えば100wpmを目指すなら、前半を120wpmで打つ。これにより、2行目に22秒、3行目に12秒残す。そして、3行目で数単語打つ度に0.5秒停止する余裕を持つ。実際には、120wpmを維持できるのは高々5秒だった。とはいえ、最終的には20秒まで110wpm弱を維持できるようになり、30秒練習における100wpm達成の確率が高まった。

◆高速化に伴い新たなパターンのミスが発生

90wpmを突破した頃から、新たなパターンのミスが発生した。まずは先読みした文字を先に打つミスだ。これは英語等の他の言語でも発生する典型的なミスだ。しかし、100wpmに満たない時期から発生するとは想定外だった。

95wpmを突破していよいよ100wpmを狙う段階になると、Shift絡みのミスも出始めた。具体的には、[때문](だから)でShiftが残って[떄]となるミスだ。また、頻出する[〜하다](〜する)で強引に加速を狙って[〜gke k][〜gkke]と入るというミスもあった。挙句の果てには、[방향](方向)を[항뱡]とするミスまで出た。[q],[g]の区別がつかないという、ギリシャ語で頻発したミスだ。ハングルではこの二つのパーツの見分けは容易なはずなのに。

これらのミスについても、一つ一つ原因を考察し、対処する必要があった。基本的には、苦手箇所を素早く認識し、その直前に一拍置くしかない。もちろん悠長に1秒単位で待っている余裕は無い。この一拍を限りなく0秒に近付けていく努力が必要だ。

なお、周辺のキーへのカスリは最後まで少なかった。英語等と違って、カスるほどの速度が出ていないためと推測される。

◆モチベーション維持策

4カ月を超える長期戦になると、モチベーションの維持が欠かせない。記録だけにこだわると、特に終盤戦では長期にわたり更新できない時期が増えるためだ。そこで、表8に示す指標を設定した。ささやかな成功体験を積み重ねることで、成長の実感を味わうとともに、執念と怨念に変換した。

【表8: 成長の実感を味わうための指標の一覧】

指標具体例
〇〇wpm以上を通算△△回出す9/15、95wpm以上を通算5回
9/27、98wpm以上を通算5回
〇〇wpm以上を1セットに複数回出す9/15、1セットに95wpm以上を2回
9/23、1セットに95wpm以上を3回
結果表示画面の「やや遅い単語」が100wpm突破8/15に達成
結果表示画面の「遅い単語」が100wpm突破10/1に達成
100wpmを維持できる時間を伸ばす9/13、20秒まで100wpm維持
9/17、26秒まで100wpm維持
Top10から〇〇wpm未満を駆逐する9/16、94wpm未満を駆逐
9/29、97wpm未満を駆逐
Top100から〇〇wpm未満を駆逐する9/10、86wpm未満を駆逐
9/23、89wpm未満を駆逐
タイピング画面で3行打ち切る達成できず
結果表示画面で2行打ち切る9/16に達成
連続5単語以上で平均〇〇wpm以上の加速を決める9/19、連続5単語で平均161wpm
かつての苦手単語を加速単語に変える9/23、[컴퓨터](コンピュータ)を127wpmで突破

◆100wpm達成

10/1の日記から抜粋する(一部改変)。3行目に8秒しか残せなかった時点で更新はあり得ないと割り切り、無駄なびびりから解放されたのが非常に大きかった。実際には2行目までに「打鍵数が多い文字」が頻出し、1行あたりの打鍵数が多いという運に恵まれていた。

korean、101.17wpm(100%)! 100wpm突破!!!!!

画像はこちら。更新できるような単語運では断じて無かった。加速単語は無いし迷いまくりだし。終盤ブチ切れてヤケクソスパートをぶちかましたらたまたま決まった。練習開始から9分と、比較的短時間でケリをつけたのも良かった。2行目に19秒、3行目に8秒残した。10秒時点で100wpm、その後は主に99〜100wpmを維持した。20秒時点で101wpmに上昇した。終盤に2回ほど凹むも、その度にスパートして立て直した。序盤[사건 정신]で110wpm, 71wpm, [마을]で112wpm, [오늘 점]で80wpm, 104wpm、中盤[연구]で105wpm, [중심]で95wpm, [자료]で90wpm, [방법]で111wpm、終盤[깊다]で114wpm, [때 자료]で101wpm, 112wpm, [국민]で98wpmと失速した。一方、開幕[네 아들 뿐 나이 차 내용 주장하다]で平均187wpm、序盤[내리다 행동 영화]で151wpm, 122wpm, 146wpm、終盤[중요하다 그러다 역사 중 씨]で平均130wpm、最後[변화 남다]で134wpm, 146wpmと加速を決めた。

◆練習結果

2023年5〜10月の練習結果を図1に示す。131日目(実質129日)、697回目の練習で100wpmを突破した。期間中、打たなかったのは7/17と9/24の二日のみである。即ち、1日あたり約5.40回ノーミスを出した。グラフはそこそこ綺麗な成長曲線を描いた。

100wpm到達前に85wpm以上(ノーミス。以下同様)は185回、90wpm以上は100回、95wpm以上は30回出した。かつてここまで苦戦した言語は、ギリシャ語5kのみだ。

【図1: monkeytypeのkoreanの練習回数と速度の成長】

常にノーミスを出せたわけではない。その陰には、ミス爆死したトライアルや、大硬直して絶望した挙句Escを叩いたトライアルが、monkeytypeでcsv出力できただけで898回もある(1日あたり約6.96回)。図2の青い点はノーミス、赤い点はミス爆死やEscを含むトライアルを示す。最初の数秒でEscを叩いて無効になった(記録されなかった)トライアルも含めれば、さらに大量にあると思う。

【図2: monkeytypeのkoreanの練習回数と速度の成長(ミス爆死等を含む)】

表9に時系列の主な更新履歴を示す。1日あたりの練習回数(即ちノーミス達成回数)は、速度が向上するに伴いむしろ減少した。100wpmを意識してびびりまくり、終盤にミス爆死するケースが激増したためだ。

予想通り、8/9に90wpmを超えてからが本番だった。そこから100wpm達成までに2カ月弱を要した。9/5に95wpmを超えてからも長かった。そして最後に待ち受けるのが、99.98〜99.99wpmと100wpmの間にある高い壁だ。30秒に250文字打っても、小数点以下が不足して100wpmに届かない事象が高確率で発生する。これは、実際のタイム計測が30.01秒以上となっているケースが大半であるためだ。

【表9: monkeytypeのkoreanの主な更新履歴】

日付回数速度(wpm)
5/24(Wed)212.40
5/25(Thu)920.39
5/27(Sat)2930.40
5/31(Wed)5841.59
6/5(Mon)10850.78
6/14(Wed)16160.00
6/28(Wed)24270.80
7/8(Sat)30375.17
7/18(Tue)36083.17

日付回数速度(wpm)
8/3(Thu)44985.99
8/6(Sun)46287.55
8/6(Sun)46487.98
8/9(Wed)47690.33

日付回数速度(wpm)
8/15(Tue)51890.75
8/20(Sun)54093.18
9/2(Sat)58394.77
9/5(Tue)59795.55
9/9(Sat)61396.37
9/16(Sat)64898.75
9/20(Wed)66699.98
10/1(Sun)697101.17

※回数とは、そのトライアルまでの累計のノーミス達成回数。


●monkeytypeのkorean 1kで100wpmを目指せ!(2023/10/2〜12/24)(2023/12/24追記)

korean 1kで100wpmノーミスを達成できるのは天才のみ!

凡人にはあり得ない単語運と大量の時間が必要。少なくとも3カ月程度では絶対に無理!!!!!

……

……

……

……

……

……

……

……

……

……

……

と記載してから1週間、ようやく修羅の道を突破して100wpmを達成したため、追記する。

通常版で100wpmを達成した直後に1kの練習を開始した。このため、1kでは最初から60wpm以上打つことができ、初日に70wpmに到達した。一方、通常版では単語慣れにより攻略できた部分が多かった。このため、単語が増えると70wpm程度しか打てず、これが実力相応の結果だったという見方もできる。1kでは改めて単語慣れ(というよりも頻出文字/シーケンスへの慣れ)を進めるとともに、ハングル自体への慣れが不足していた部分を補うことにより、徐々に100wpmに近づいていった。

基本的には、通常版と同様のアプローチで臨んだ。しかしそれだけでは対応できないところも存在した。ここでは1kで新たに採用した、あるいは新たに判明した内容を記載する。

◆出現単語の分析

1kには975語が出現する。この975語が通常版の470語とどの程度重複するのか調査した。結果は何と
33個のみ。即ち、1kで通常版の成果を使って楽をすることは難しい。通常版で100wpmに届いたのは、単語慣れによる部分が大きい。従って1kでもほぼゼロから単語を暗記する必要がある。この時点で、1〜2カ月で100wpmに到達するのは難しいという見通しを立てた。

また、ハングルの発音をある程度習得し、漢字や英語との関連を調査した。背景として、1kには漢字や英語で表現できる単語が比較的多い。漢字で表現できる単語は約450語、英語に由来する単語も20語以上ある。これらを合わせると、全体の約半分を網羅できる。通常版ではそれぞれ約150語、4語であり、合わせても全体の約1/3に過ぎない。

特に、[名詞+하다]で(〜する)という動詞になる単語が多い。例えば[기대](期待)に[하다]を付けると[기대하다](期待する)になる。同様に、[名詞+되다]で(〜させる/される)という動詞、[名詞+히]で(〜に)という副詞になる性質も利用した。これで似たような単語を関連付けられるし、調べる手間も減る。さらに、[〜하다][〜되다]が頻出するなら、そこで速度を稼ぐこともできる。

また、[체][제][력][계][업][간][방][민][대][속][단]等、共通する文字が用いられる単語を整理した。通常版でも実施した対策だ。漢語由来の単語を漢字とリンクできるため、なかなか有効だ。日本語と異なる例については、朝・日で異なる漢字語を参考にさせて頂いた。以上の調査・分析により、単語の暗記を進めようと試みた。

なお、出現単語も文字も通常版より多いため、調査に時間を要した。例えば、1kに出現する470種の文字のHTML表記の調査を完了したのは12/15だった。また、全975語の意味(英語)の調査を完了したのは12/19だった。英字表記に至っては、初回入力完了が12/20、二度目が12/21、三度目が12/22だった。データの正確性をある程度担保するため、最低でも三度は入力してEXACT関数で比較する必要があった。意味はともかくHTML表記や英字表記に関しては、機械的に処理した方が速かったかもしれない。

[쓰이다](使われる/書かれる)は意味が不明だった。Google翻訳では、日本語で[津田][ツイダ]、英語で[serve][take][write][use]と表示されるためだ。別途Google検索してハングルマスターこの記事を見出し、意味を知ることができた。他にも意味不明な単語が幾つか存在したものの、全部調べきる前に100wpmに届いた。

◆975語通し練習

1kでは単語の数が通常版と比較して倍以上になる。このため、約20分、初期段階ではそれ以上のまとまった時間が必要となった。従って、練習の頻度は低下した。「前半と後半に分ける」「ランダムに並べて先頭の500語を打つ」等、工夫が必要だったかもしれない。

初回挑戦では26分05秒を要した。当初は[ㅠ]や4打鍵文字がとっさに読めず、毎回停止した。まずはこれらの文字に慣れることで、タイムが目に見えて改善された。その後11/22に20分を切り、12/15に19分08秒まで詰めた。だが、それ以上の高速化には至らなかった。1語あたり約1.18秒であり、通常版と比較して14%程度遅い。また、ミスは毎回のように20前後に達した。ミスの傾向は特に無く、通常版で頻出したミスが満遍なく発生した。強いて言えば、「左手範囲の打鍵ミスが比較的多い」「975語のうち終盤にミスが発生しやすい」という傾向が辛うじて読み取れた程度だ。このため、基本的に正確性重視で打ち、ミス数が10台前半に減ってきたら速度を一段上げるようにした。

◆30秒練習

単語数が通常版と比較して倍になるため、練習開始後10分では全単語をロードしきれない。限られた練習時間では、出現単語を思い出すだけで練習の前半が終わる。練習の後半には脳が疲弊していて30秒持たず、99%以上の確率でミス爆死だ。原因は脳の貧弱さにあるため、練習時間を増やせば良いわけでもないし、ゆっくり打っても正確性は上がらない。以上により、ロードが終わらない段階でもノーミスを維持すべく、特にタイピング画面2行目以降では減速が必要となった。

一方、頻出する[〜하다][〜되다]で加速できる。これを通常版で得たベース速度に追加した結果、24日目というそこそこ早い段階で90wpmに到達した。だが、その後は伸び悩んだ。

100wpmを狙う段階では、1セット内の朝鮮語/韓国語に割く時間を25分から30分、35分と増やすこともあった。但し脳が疲弊していない時に限る。

◆苦手単語の洗い出しと対策

表10に1kの苦手単語リストの一部を示す。1kが通常版と異なるのは、出現単語数が多いため、苦手単語を練習する機会が相対的に減ることだ。従って、英字表記による暗記を積極的に採用するとともに、必要に応じて個別に練習した。

【表10: korean 1kの苦手単語リスト】

分類対策具体例
難関外来語英字表記で暗記[텔레비전](テレビ/xpffpqlwjs), [티브이](TV/xlqmdl),
[소프트웨어](ソフトウェア/thvnxndnpdj)
難読語一部を英字表記で暗記[훌륭하다](素晴らしい/gnffbd〜), [괜찮다](大丈夫/rhoscksg〜)
その他4打鍵文字練習量増加[끓이다](沸騰させる/煮込む), [수많다](たくさん)
混同練習量増加[그러므로](従って), [실제로](実際に), [농촌](農村), [라디오](ラジオ)
左殺し練習量増加
英字表記も併用
[평균](平均/vudrbs), [폭력](暴力/vhrfur), [숲](森/tnv),
[박물관](博物館/qkranf〜), [받아들이다](受け入れる/dのみ暗記)

◆脳の弱さとの闘い

通常版と同様、特に95wpm突破後にこの問題には悩まされ続けた。しかも通常版よりも長期化し、なかなか最後の壁を突破できなかった。

◆モチベーション維持策

3カ月近い長期戦になると、モチベーションの維持が欠かせない。記録だけにこだわると、特に終盤戦では長期にわたり更新できない時期が増えるためだ。そこで、表8に示す指標を設定した。ささやかな成功体験を積み重ねることで、成長の実感を味わうとともに、執念と怨念に変換した。

【表8: 成長の実感を味わうための指標の一覧】

指標具体例
〇〇wpm以上を通算△△回出す11/14、95wpm以上を通算2回
11/29、96wpm以上を通算5回
12/20、85wpm以上を通算200回
〇〇wpm以上を1セットに複数回出す11/7、1セットに90wpm以上を2回
11/25、1セットに95wpm以上を3回
結果表示画面の「やや遅い単語」が100wpm突破10/28に達成
結果表示画面の「遅い単語」が100wpm突破12/24に達成
100wpmを維持できる時間を伸ばす11/9、19秒まで100wpm維持
11/15、20秒まで100wpm維持
11/27、28秒まで101wpm維持
12/7、29秒まで101wpm維持
Top10から〇〇wpm未満を駆逐する11/8、90wpm未満を駆逐
11/29、95wpm未満を駆逐
12/16、97wpm未満を駆逐
Top100から〇〇wpm未満を駆逐する11/20、85wpm未満を駆逐
12/15、90wpm未満を駆逐
12/24、92wpm未満を駆逐
タイピング画面で3行打ち切る達成できず
結果表示画面で2行打ち切る12/24に達成
連続5単語以上で平均〇〇wpm以上の加速を決める12/9、連続5単語で平均156wpm
かつての苦手単語を加速単語に変える

◆korean 1kで100wpm達成

12/24の日記から抜粋する(一部改変)。圧倒的な単語運に恵まれ、要所で加速を決めて気持ち良く打ち抜けた。

korean 1k、102.76wpmノーミス! 100wpm突破!!!!!

画像はこちら。結果表示画面で3行目に突入! タイピング画面でも3行ほぼ打ち切り! 練習開始後10分と、比較的短時間でケリをつけた。2行目に21秒、3行目に10秒残した。5秒時点で113wpmまで上げるも、11秒時点で107wpmまで落ちた。13秒以降は102〜104wpmで推移した。終盤落ちかけるも28秒時点で104wpmと立て直し、そこからあまり落とさずゴール。序盤[기구]で105wpm、中盤[미터]で95wpm, [어쨌든]で90wpm, [술]で108wpm, [자동차]で90wpm、終盤[동생]で101wpm, [불구하다]で108wpm, [설명 그만큼 서비스]で78wpm, 104wpm, 103wpm, [번째]で70wpmと失速した。一方、開幕[물건 옮기다 제대로 비 어떠하다 달리다 그룹 규정 상품 종이]で平均127wpm, [기록하다]で130wpm、中盤[늘어나다]で136wpm, [이해]で132wpm, [아기]で151wpm, [비롯하다]で131wpm、終盤[넓다 나아가다]で130wpm, 137wpm, [당연하다 주어지다]で140wpm, 138wpmと要所で加速を決めた。最後[주위]でも129wpmと攻めきった。

◆練習結果

2023年10〜12月にmonkeytypeを用いて練習した結果を図3に示す。84日(実質79日)、327回目の練習で100wpmを突破した。期間中、打たなかったのは10/23, 11/17, 18, 22, 23の五日である。即ち、1日あたり約4.14回ノーミスを出した。グラフはそこそこ綺麗な成長曲線を描いた。

100wpm到達前に85wpm以上(ノーミス。以下同様)は218回、90wpm以上は137回、95wpm以上は47回、98wpm以上は8回出した。かつてここまで苦戦した言語は、朝鮮語/韓国語通常版および、ギリシャ語5kのみだ。ラスト1週間でノーミス打ち切りは25回増えた。98wpm以上を最後の週だけで5回追加した。また、11/27に出した99.98wpm(229回目)は外れ値であり、その後4週間は98wpm以上を出す確率を高めるために必要な期間だったと捉えることもできる。

【図3: monkeytypeのkorean 1kの練習回数と速度の成長】

常にノーミスを出せたわけではない。その陰には、ミス爆死したトライアルや、大硬直して絶望した挙句Escを叩いたトライアルが、monkeytypeでcsv出力できただけで556回もある(1日あたり約7.04回)。図4の青い点はノーミス、赤い点はミス爆死やEscを含むトライアルを示す。最初の数秒でEscを叩いて無効になった(記録されなかった)トライアルも含めれば、さらに大量にあると思う。

【図4: monkeytypeのkorean 1kの練習回数と速度の成長(ミス爆死等を含む)】

また、図3と図4を比較すると、90wpm突破後のミス爆死等が相対的に増加していることが分かる。特に99.98wpm突破後は、図3よりも図4の方が練習回数の割合が多いことが分かる。表11に、主な到達点とその到達時期の比較を示す。100wpmを目前にして焦り、あるいは攻略の難易度が上がったため、ミス爆死の確率が増加したと考えられる。

【表11: 主な到達点とその到達時期の比較】

到達点ノーミスのみミス・Esc含む
90wpm108/327回目、全体の33.0%終了時257/883回目、全体の29.1%終了時
95wpm193/327回目、全体の59.0%終了時477/883回目、全体の54.0%終了時
99.98wpm229/327回目、全体の70.0%終了時569/883回目、全体の64.4%終了時

表12に時系列の主な更新履歴を示す。1日あたりの練習回数(というよりもノーミス達成数)は、速度が向上するに伴いむしろ減少した。100wpmを意識してびびりまくり、終盤にミス爆死するケースが激増したためだ。また、11月後半以降は100wpmを目前にしてプラトー現象に陥り、なかなか壁を越えられなかった。99.98wpmを出してからがなかなか遠く、4週間を要した

【表12: monkeytype 1kの主な更新履歴】

日付回数速度(wpm)
10/2(Mon)473.99
10/3(Tue)974.36
10/5(Thu)1675.58
10/6(Fri)2578.00
10/7(Sat)3180.79

日付回数速度(wpm)
10/8(Sun)3781.17
10/9(Mon)4583.58
10/12(Thu)5887.17
10/16(Mon)7687.57
10/20(Fri)9088.78
10/24(Tue)10689.15
10/25(Wed)10890.75

日付回数速度(wpm)
10/28(Sat)12193.16
11/7(Tue)17293.19
11/9(Thu)18294.36
11/12(Sun)19398.39
11/27(Mon)22999.98
12/24(Sun)327102.76


●monkeytypeのkorean 5kで100wpmを目指せ!(2023/12/25〜2024/2/19)(2024/3/15追記)

1kで100wpmを達成した直後に5kの練習を開始した。1kに頻出したシーケンスがそこそこ出現したため、習熟を活かすことができた。このため、最初から80wpm以上打つことができ、3日目に85wpmを超えた。6日目に90wpmを、11日目に95wpmを突破した。1kでの3カ月にわたる鍛錬は無駄ではなかったようだ。しかしその後は伸び悩んだ。1kまでに出てこないパターンを一つ一つ高速化し、ミス誘発箇所を一つ一つ潰していく作業が再び必要となったためだ。

一般に、語彙が増加するほど難易度が上がる。単語がより長く複雑になるためだ。5kでの100wpm達成までにはまだまだ壁が立ちはだかると想定していた。このため、100wpm達成を焦ることは無かった。終盤の安定性を維持しつつ隙を見て加速をする点に課題があると分析していたため、それに対応する練習を繰り返して実力を地道に高めるつもりだった。ところが、2/19にそのような練習を実施していたところ、たまたま単語運に恵まれ、運良く100wpmを超えた。

基本的には、通常版や1kと同様のアプローチで臨んだ。しかしそれだけでは対応できないところも存在した。ここでは5kで新たに採用した、あるいは新たに判明した内容を記載する。

◆出現単語の分析

5kには4201語が出現する。この4201語が通常版の470語、1kの975語とどの程度重複するのか調査した。結果は、
通常版との重複は67語、1kとの重複は92語のみ。なお、通常版・1k・5kすべてに出現する単語はわずか11語のみだった。しかも、そのうち10語は1文字の単語だった。通常版・1k・5kは、もはや別の言語と考えて良いだろう。また、これだけ数が多いと、単語暗記に頼る攻略法は通用しない。新たに覚えるべき文字も多い。5kに出現する912文字のうち、1kに出現しない文字は459文字(50.3%)もある。まずはこれらの暗記が必要だ。結果的に、最初の1カ月ほどはランダム文字列への対応力を鍛え続ける状況に陥った。

各文字のHTML表記や、各単語の漢字/カタカナ表記および意味は、日々の練習記録として日記を執筆する際に地道に進めていった。2/19の100wpm達成時点で、漢字/カタカナ表記は約4割、意味は約6割しか埋まらなかった。それ以前の問題で、全912文字のうちHTML表記の調査を終えたのは9割弱だった。将来、例えば110wpm、120wpmを目指す際にこれらの調査を再開することはあるだろうか。

各単語の意味の調査に関して、Google翻訳レベルでは心許なくなってきた。「韓→日」と「韓→英」の結果が食い違うことが増えたためだ。そこで、[(単語) 意味]でGoogle検索するようになった。結果はほぼ100%「韓→英」が正しい。例外は英語に無い概念(家族や親類の呼称)等、ごく限られた場合のみ。結果的に、Excelシートの意味の欄はすべて英語で埋めた。朝鮮語/韓国語の習得を本格的に目指すなら、そろそろ辞書を買うべきなのだろう。だが、今回はそれが目的ではない。

新たに気付いた傾向は、[〜적](〜的)という単語が多いことだ。[w],[r]のミスを誘発しやすい文字であり、これにいかに慣れるかがカギだ。一方、通常版や1kでも大活躍した[〜하다][〜되다]は、安定の加速シーケンスだ。ここを打つ時だけは脳を休められる。これらが多い時にスコアが伸びるのはもはや当然だ。亜種として[〜지다]等、幾つかパターンがある。この先では、朝鮮語/韓国語の文法の本格的な習得が必要か。

2/13、Excelシートが約1.6MBまで肥大化したため、機能ごとに分割した。即ち、作業用、解析用、練習用だ。vlookup関数を単語数分入力している部分は肥大化の主な原因であるため、作業用に分離する。作業結果のうち必要な部分のみ、解析用に値のみ貼り付ける。また、文字や単語を入力してEXACT関数で比較する機能は練習用に分離する。例えば「英字表記の欄の再入力」は練習用シートで実施し、誤りを検出した場合のみ解析用シートに反映する。これで解析用シートは約1.0MBにまで抑えられた。

◆4201語通し練習は事実上不可能

通常版や1kと比較しても単語数が桁違いに多いため、通し練習は事実上不可能だった。代わりに、1/25以降、英字表記の欄を埋めるため、全体を通して三度入力した。データの正確性をある程度担保するため、最低でも三度は入力してEXACT関数で比較する必要があった。4201語を1日で打つのは難しいため、約600語ずつ分割して実施した。即ち、約3週間を要した。この対策は、単語慣れに直結した。結果として、1/25以降の成長に寄与した可能性が高い。

例えば、30秒練習で苦戦していた[육]と[욕]がだいぶスムーズに見分けられるようにった。30秒練習だけでなく、こういう基礎訓練も必要ということだ

◆文字サイズを最適値に設定

筆者は8月に購入した九号機(Windows11)のディスプレイ解像度を初期値の1920x1080から1280x720まで下げて使用している。老眼の進行により、初期値のままではとても耐えられなかったためだ。この状態で、Chromeのズーム機能で100%から110%に変更し、monkeytypeを打鍵していた。しかし通常版や1kの段階ですら、4打鍵文字や一部の3打鍵文字の認識に苦労した。5kでは難読文字の出現率が上昇し、認識がネックとなって停止する場面が増加した。

そこで、12/31からChromeのズーム機能で125%に変更した。筆者の環境ではこの変更により1行当たり文字数は変わらず、改行も増えない。改行時の視点の移動が大きくなるデメリットはあるものの、文字が全体的に見やすくなるメリットの方が大きい。一方、次段階の150%に拡大すると、今度こそ1行当たり文字数が減る。つまり改行が増えるため、かえってマイナスだ。なお、結果表示画面では従来通り110%にする。125%では、従来の画面と改行位置がずれるためだ。

Chromeのズーム125%でも、区別が難しい文字が存在する。一例は表13の通りだ。実際、1/6の練習では、終盤に[해결되다 통합 늘어지다]が出現した。早速第二者を[통]で決め打ちし、109wpm, 103wpm, 126wpmと加速を決めた。こういうパターンの蓄積がまだまだ足りない。蓄積されるほど判断が必要となり遅くなるものの、対策せずに毎回ミス爆死するよりは遥かに良い。

【表13: 区別が難しい文字とその対策】

区別が難しい文字対策各文字の出現率
[통][틍][퉁][통]を決め打ち
0.26%, 0.00%, 0.01%
[열][옅][열]を決め打ち
0.08%, 0.00%
[쫓][쫒][쫓]を決め打ち
0.03%, 0.00%
[홀][홑][홀]を決め打ち
0.02%, 0.00%
[중][증][종]ズーム125%で対応
0.42%, 0.13%, 0.12%
[농][능]ズーム125%で対応
0.06%, 0.07%

◆苦手単語の洗い出しと対策

1kまでと違い、この対策は意味を為さなかった。母集団が多すぎるためだ。従って、1/24までは、単語運の悪さに抗っても報われないと割り切った。Shiftや紛らわしい単語、外来語が出て崩されたら即Escで良い。凶悪単語や難関単語に耐えて頑張ってもスコア面で報われることはまずあり得ないためだ。但し1/25以降は、30秒持ちこたえる練習を採用したため、ミス爆死しない限りは粘るようにした。

◆脳の弱さとの闘い

2/5以降の最終段階では、1セットに1回は約95wpm以上が出るまで可能な限り粘った。30分粘って出したこともある。

◆モチベーション維持策

2カ月近い長期戦になると、モチベーションの維持が欠かせない。記録だけにこだわると、特に終盤戦では長期にわたり更新できない時期が増えるためだ。そこで、表14に示す指標を設定した。ささやかな成功体験を積み重ねることで、成長の実感を味わうとともに、執念と怨念に変換した。

【表14: 成長の実感を味わうための指標の一覧】

指標具体例
〇〇wpm以上を通算△△回出す1/15、95wpm以上を通算2回
1/27、95wpm以上を通算6回
2/5、95wpm以上を通算9回
〇〇wpm以上を1セットに複数回出す1/9、1セットしかも5分間に90wpmを2回
結果表示画面の「やや遅い単語」が100wpm突破1/14に達成
結果表示画面の「遅い単語」が100wpm突破達成できず
100wpmを維持できる時間を伸ばす1/8、19秒まで102wpm維持
1/21、20秒まで101wpm維持
1/23、23秒まで100wpm維持
2/4、27秒まで100wpm維持
Top10から〇〇wpm未満を駆逐する1/9、90wpm未満を駆逐
2/6、95wpm未満を駆逐
2/17、96wpm未満を駆逐
Top100から〇〇wpm未満を駆逐する1/27、85wpm未満を駆逐
2/17、90wpm未満を駆逐
タイピング画面で3行打ち切る達成できず
結果表示画面で2行打ち切る達成できず
連続5単語以上で平均〇〇wpm以上の加速を決める1/14、連続5単語で平均133wpm
かつての苦手単語を加速単語に変える

◆korean 5kで100wpm達成

2/19の日記から抜粋する(一部改変)。

korean 5k、100.38wpm(100%)! 100wpm突破!!!!!

画像はこちら。練習開始後18分粘った。出遅れたため更新を意識してびびらなかったのも幸いした。2行目に19秒、3行目に9秒残した。10秒時点で96wpmと低迷した。しかし14秒時点で102wpmまで立て直し、20秒まで101〜102wpmを維持した。その後は100〜101wpmで耐えきった! 100wpmに到達できるとは思わなかった。序盤[함부로]で93wpm, [불완전하다 꽉]で102wpm, 69wpm, [현금]で103wpm、中盤[연구원]で102wpm, [손수건]で104wpm、終盤[뛰어들다]で105wpm, [재활용 디자인]で96wpm, 97wpm、最後[밤하(늘)]で84wpmと失速した。一方、序盤[안전하다 산책 거]で152wpm, 111wpm, 139wpm、1語置いて中盤[입사하다 귀하다 (改行)결석 우연히 영상]で平均123wpm, [기뻐하다 묘사하다 퇴직금]で108wpm, 130wpm, 111wpm、終盤[진동 증권 대단하다 연령]で118wpm, 107wpm, 131wpm, 130wpmと加速を決めた。

◆練習結果

2023年12月〜2024年2月にmonkeytypeを用いて練習した結果を図5に示す。55日(実質52日)、203回目の練習で100wpmを突破した。期間中、打たなかったのは1/11, 12, 30の三日である。即ち、1日あたり約3.69回ノーミスを出した。グラフはそこそこ綺麗な成長曲線を描いた。

100wpm到達前に85wpm以上(ノーミス。以下同様)は176回、90wpm以上は111回、95wpm以上は25回、98wpm以上は3回出した。かつてここまで苦戦した言語は、朝鮮語/韓国語通常版、1k、およびギリシャ語5kのみだ。1kの時と違って、最終段階での苦戦が無く、たまたま外れ値が出て100wpmを超えた印象だ。代わりに、95wpmを出してからの足踏みが長かった。

【図5: monkeytypeのkorean 5kの練習回数と速度の成長】

常にノーミスを出せたわけではない。その陰には、ミス爆死したトライアルや、大硬直して絶望した挙句Escを叩いたトライアルが、monkeytypeでcsv出力できただけで388回もある(1日あたり約7.46回)。図6の青い点はノーミス、赤い点はミス爆死やEscを含むトライアルを示す。最初の数秒でEscを叩いて無効になった(記録されなかった)トライアルも含めれば、さらに大量にあると思う。

【図6: monkeytypeのkorean 5kの練習回数と速度の成長(ミス爆死等を含む)】

表15に時系列の主な更新履歴を示す。1日あたりの練習回数(というよりもノーミス達成数)は、速度が向上してもあまり変わらなかった。また、1月には96wpmを目前にしてプラトー現象に陥り、なかなか壁を越えられなかった。1kの時と同様に、終盤まで脳が持たず、文字の認識ができなくなる事象が頻発した。この問題を解決するには、失速を極限まで減らすか、失速を補えるだけの加速をするしかない。1kの時と同様に後者を目指して練習しているうちに、たまたま単語運に恵まれ、前者に限りなく近い形で結果が出た。

【表15: monkeytype 5kの主な更新履歴】

日付回数速度(wpm)
12/27(Wed)1085.60
12/27(Wed)1287.57
12/28(Thu)1788.77
12/30(Sat)2791.20

日付回数速度(wpm)
1/4(Thu)5093.15
1/4(Thu)5295.96

日付回数速度(wpm)
1/25(Thu)11596.36
1/28(Sun)13396.79
2/4(Sun)15297.59
2/8(Thu)16798.37
2/13(Tue)18298.39
2/19(Mon)203100.38


通常版、1k、5kを合わせた練習回数と速度の関係を図7に示す。通常版の最初の100回(主に50wpm未満)は除く。通常版では95wpm以上のエリアの密度が薄い。即ち、単語運に頼っていた部分があった。1kで95wpmを出してからの苦戦を経て、5kでも95wpm以上を出せる実力が培われたと考えている。また、通常版から1kに移行した時のギャップが比較的大きかった。5kでは初日に85wpmを超えるなど、移行時のギャップが小さかった。

【図7: monkeytypeの練習回数と速度の成長】


●TypeRacer Koreanで100wpmを目指せ!(2024/2/20〜7/7)(2024/7/11追記)

monkeytypeで5kまですべて100wpmを達成したのを機に、TypeRacerでも100wpmを目指すことにした。

5kで100wpmを達成した直後にTypeRacerの練習を開始した。初日は75wpmが精一杯で、2週間ほど練習してようやく90wpmに到達するに留まった。monkeytypeと異なる要素が多かったためだ。また、Intersteno2024と重なったのも痛かった。そこで短期決戦での攻略を断念し、仕様の解析も含め長期戦で取り組んだ。

◆TypeRacerとmonkeytypeの主な違い

monkeytypeとの主な違いは、100wpmの定義、そして単語の羅列でなく文章を打つことだ。

monkeytypeでは、文字数でなく打鍵数、即ちパーツの数を測定する。30秒間に250パーツ打ち切れば、概ね500打鍵/分、即ち500cpmとなる。英語等と同様、5cpmを1wpmと換算するため、500cpm=100wpmとなる。一方TypeRacerでは、まず文字数を測定する。30秒間に125文字打ち切れば、250文字/分、即ち250cpmとなる。但し1文字あたりの打鍵数が英数字や記号を除いて2打鍵以上となるため、このままでは英語等と比較して不利になる。そこで、係数2.0を掛けて500cpm(100wpm)に換算する。

TypeRacerの100wpmは、monkeytype 5kで104.532wpmに相当する(※)。また、一部の短文を除いて、打ち切るのに30秒どころか1分近く要する文章が大半である。即ち、monkeytype 5kの30秒練習で100wpmを出すのに四苦八苦する程度の実力では、TypeRacerで100wpmに到達するのは難しい。しかし絶望的な差ではないため、最終的には試行回数を増やして突破する。中間ステップとして、monkeytype 5kの60秒練習で100wpmに到達してからTypeRacerに臨んだ方が良いかもしれない。

※文字数と打鍵数の平均的な比率が分かれば換算できる。そこで、monkeytype 5kの全4210語が1回ずつ出現すると仮定して試算した。

TypeRacerでは文章を打つ。朝鮮語/韓国語では英語等と違って、文頭が大文字になることは無い。一方、英数字や、[.][,]["]['][(][)][-]といった記号は出現する。Windowsの韓国語配列では、USインターナショナル配列と同じ位置に英数字や記号が配置されている。英字は、[右Alt]で英数モードに切り替えれば打てる。さらに、表16に示す特殊な文字が出現する。

【表16: TypeRacerのKoreanに出現する特殊な文字の変換方法】

文章ID冒頭特殊な文字変換方法
#2870095"수비학이란[r]→[右Ctrl]→(変換候補表示)→[PageDown]×2(※1)
#2870006왜 누구는 성공하고π[g]→[右Ctrl]→(変換候補表示)→[PageUp]×2→[4]
#2870093아웃사이더'의勞役[sh](노)→[右Ctrl]→[2]→[dur](역)→[右Ctrl]→[3](※2)
[wnd](중)→[右Ctrl]→[1]

※1. […]の直前に別のハングルがある場合、[r]打鍵後に[右Ctrl]で変換候補を表示させると直前のハングルをベースとした変換候補が表示される。そこで、直前のハングルを入力後に[ ]で1文字空けてから[…]を入力し、その後に余分な[ ]を削除する。もしくは、先に[…]を確定させた後、[←]で1文字前に戻って直前のハングルを入力し、その後に[→]で元の位置に戻る。
※2. 親切なことに、直前に[노역]がハングルで記載されている。従って変換回数(2→3)だけを覚えれば良い。ちなみにここだけ日本語配列に切り替えるのは得策でない。[勞役]は旧字体であり、[ろうえき]を変換しても出ない。仮に辞書登録したとしても、配列切り替えと元に戻す手間がかかるため、ロスが大きい。

また、TypeRacerではmonkeytypeと違って、数十個の固定文章がランダムに出題される。このため、短期間で100wpmを達成するだけなら、最も短い幾つかの文章のみを狙って英字表記を集中練習するという攻略法も考えられる。しかし、筆者はその手法を採用しなかった。理由は二つある。第一に、100wpmを達成しても直後のチート対策テストに合格できる可能性が低いと考えた。仮にチート対策テストに出題される文章が限られているとしても、そこで別途練習が必要となる。第二に、将来他のサイト(Interstenoを含む)でKoreanを打つ可能性を見越して、汎用的なタイピング能力を身につけたかった。以上により、最後の100wpm狙いの期間を除いて、苦手な文章を含め全50文章を可能な限り均等に練習した。

◆仕様の把握

TypeRacerのKoreanには、幾つかの特殊な仕様がある。monkeytypeと共通するものもあるし、異なるものもある。特に把握しておくべき事項は表17の通り。結局のところ慣れるしかない。

【表17: TypeRacerのKoreanを打つ際に把握しておくべき事項】

(1) フォント、文字サイズを最適値に設定する。
(2) 入力モードを事前に確認する。
(3) マウスポインタを事前に排除する。
(4) ミス判定の仕様を把握する。
(5) BSの仕様を把握する。
(6) 改行の仕様を把握する。
(7) 加速シーケンスを把握し、練習する。
(8) 数字の直後、ハングルの直前に[ ]があるように見えるが、実際には無い。

(1) に関して、初期段階では「[린]が[런]に見える」「[훨]が[휠]に見える」といった事象に悩まされた。対策として、monkeytype(Roboto Mono; ブラウザはChrome)に近いフォントに設定した。2023/6/20時点ではThemeをResponsiveにした。2024/5/19時点ではそれに加えて、[change display formats]からフォントをMonospaceに設定した。Arialでもそこそこ見やすいが、1行あたりの文字数が変化し、それに伴い改行位置が変わる。すると(6)の対策に影響するため断念した。さらに、Chromeのズームを100%→110%に変更した。意外なことに、ズーム110%の方が改行の回数が減るので大変助かる。筆者の環境では、文章が画面の横幅いっぱいに広がるためだ。しかしズーム125%以上にすると改行の回数が再び増え始めるので逆効果だ。同様の理由で、文字サイズを無闇に拡大すべきではない。

(2)に関して、レース開始前の待ち時間にアドレスバーに何か打って確認すると良い。英数モードになっていたら[右Alt]でハングルモードにする。なお、英数モードになる原因の一つは、[Alt+Tab]による画面切り替え(による日記執筆)である。[Alt+Tab]直後には、入力モードの確認が必須だ。

(3)に関して、文章の範囲内にマウスポインタが残っていると、そこまで打ち進んだ際に文字の一部が隠されて見えなくなる。また、車が走るエリアにマウスポインタがあると、そこまで車が進んだ時に当該レーサーのProfileウィンドウが表示され、文章が広い範囲で隠される。いずれもマウスポインタを動かして対処するしかなく、記録を狙う際には致命的なタイムロスになる。

(4)に関して、2打鍵以上を必要とするすべての文字は打鍵途中にミス判定となり、桃色表示される。慣れないうちは正確に打てているのにミスしたと勘違いし、停止したりBSしたりしてタイムロスを重ねた。このロスを根絶すべく、訓練が必要だ。なお、この仕様により、終了後のMistakesリストには全単語が列挙される。

(5)に関して、ミスタッチの数が少なければ基本的に「ミスタッチ数と同じ数だけBS(※)→正しいパーツを打ち直す」で良い。しかしBSを2回以上打つと直前のパーツでなく文字まで消えることがある。例えば、ある文字を打鍵中にBSを打つと、パーツが一つずつ消える。その文字が消えてからさらにBSを連打すると、今度はBS1回につき1文字ずつ消える。従って、パーツの数だけ消すつもりでBSを連打すると、その前の文字までまとめて消すことがある。せっかく正確に打った文字も打ち直しとなるわけで、ロスが大きい。また、ミスタッチの状況によっては直前の文字が変化し、より多くのBSと再打鍵が必要になる。例えば[달렸다](走った/ekffuTek)を[ekfu]とミスした場合、ハングルが[다려]に変化する。すると全部消して打ち直す必要がある。このように、BSでどこまで消えるか、そしてどこから打ち直すか、観察が必要である。脳の処理速度が追いつかなければ、散々迷った挙句、単語ごと消して打ち直す羽目になる。結果的に、1ミスが原因で再起不能に陥ることが非常に多い。

※TypeRacerではmonkeytypeと違って、実質ノーミスを毎回狙うのは非効率だ。成功率が低い(筆者の例では1488回中134回)のに加えて、文章の後半部分を練習する機会が減るためだ。そこで、BSによる修正をある程度まで許容する(ミスタッチが多すぎる場合にはEscだが)。確かに、この修正によるロスは速度に影響する。一方、実質ノーミスを狙うと速度面で委縮することがある。従って、実質正確性99%台を狙いつつ、加速できそうな場所では積極的に加速していた。

(6)に関して、TypeRacerではmonkeytypeと異なり、単語の途中で容赦なく改行される。改行直後、単語の下に線が表示されたら単語が終わっていないのでそのまま打つ。そうでなければ次の単語に入るので、[ ]が必要だ。しかし瞬時に見切るのは難しい。筆者は幾つかの文章で毎回引っ掛かったため、個別の暗記で対応した。

(7)に関して、monkeytypeで最大の加速ポイントだった[〜하다][〜되다]はまず出現しない。そこで、他のシーケンスで加速が必要だ。例えば[〜한다][생각〜][는나]がそこそこ出現する。また、monkeytypeと違って助詞と思われる文字、即ち[의][는][를][은][을]等が単語の末尾に追加されることが多い。これらの文字に習熟すると、多少は有利になる。というよりも、出現頻度が高いため、レース数をこなすうちに脳と指が勝手に覚えていく。

(8)に関して、慣れないうちは毎回引っ掛かって[ ]を打ち、タイムロスを重ねた。少し訓練すれば慣れる。

◆苦手単語リストの作成

5/21に苦手単語リストを作成し始めた。当初の目的は、苦手単語を集中的に練習し、克服することだった。ミスや硬直によるロスを減らし、結果的に速度を引き上げることを目指した。対象はMegaracer(※)で出現する50文章だ。即ち、Megaracerがほぼ安定した4/27以降に絞り、日記に記録した苦手単語を集計した。

※直近10戦の平均速度が80wpmを超えた時に得られる称号。Megaracerかそうでないかで、出現する文章が一部異なる。

収集した苦手単語は72日分で1093個、出現頻度の合計は2700回に達した。表18に、上位10単語を示す。この10単語の出現頻度の合計は174回であり、全体の1割に満たない。また、wpm欄に示す通り、この10単語を含む文章の最高記録は95wpmに満たない。

苦手単語リストの上位に来たのは、苦手文章の開幕にある単語が多い。これらを克服しても、その後に別の苦手単語が数多く現れるため、100wpmを狙う際に直接的には役に立たない。むしろ、そのような文章をスクリーニングし、苦手単語の少ない文章を抽出することで、100wpmを狙える文章を絞り込むという効果があった。

苦手要因のうち特に多かったのは、外来語のx/zミスだ。出現率が低いので練習機会が少なく、棄権率も増えてさらに苦手になる。この辺はmonkeytypeと同じだ。次点がr/fミス、h/nミスだ。先読みした文字を先に打つミスも多発した。理不尽な改行にも苦しめられた。最終的に、苦手単語や苦手文字を練習して克服するのではなく、それらを含む文章を避けるという安易な方向に陥ったのは反省点だ。将来速度や安定性でより高みを目指すなら、苦手単語の克服は避けて通れない。

【表18: 苦手単語リスト最終版の上位10単語】

単語出現頻度意味wpm特記事項/苦手要因
지하에23地下に89.892語目。자히ミスが多発
그렇습니다20はい84.69文頭。십ミスが多発
멀티플라이어는18マルチプライヤー90.07文頭。티に不慣れ、태,피とミス
백열등만18白熱灯のみ89.894語目
위로운18孤独な87.20h/nミスが多発
국내총(改行)생산17国内総生産89.98改行含む。改行直前で見えず、충ミスが多発
서트클리프의16サートクリフ92.76x/z,f/vミスが多発
성숙해지는15成熟する92.76숙をrと打つミスが多発
잉크 (改行)카트리지를15インクカートリッジ89.28改行含む。z/xミスが多発
근본14根本94.992語目。분ミスが多発

※出現頻度は、日記に記録した回数。
※wpmは、その単語を含む文章の最高記録。

並行して、頻出単語の分析も試みた。しかし、その結果は分散し過ぎていた。仮に上位10単語を集中的に練習したとしても、100wpmを目指す際に効果が薄いと判断した。

◆正確性と実質正確性の解析

TypeRacerのKoreanで出力される正確性の値は、実質正確性とはかけ離れている。実質ノーミスタッチで打っても、表示される正確性は69〜74%だ。しかも英語等と違って、ミスタッチすると正確性が上昇することが多い。但し、よほどミスタッチが多い場合を除いて、正確性が75%を超えることは稀である。筆者の例では1488回中47回のみだった。Megaracer状態で打った文章に限れば、860回中4回と極端に減る。筆者は、タイピングの成長において、可能な限り100%に近い実質正確性を維持することは欠かせないと考える。筆者の目指すところは実用タイピングであり、成果物は「ミスを含まない打鍵結果」である。また、長時間安定して打ち続けるため、ミスタッチとBSによる消耗も可能な限り抑制すべきと考える。この目的のためには、実質正確性の把握が欠かせない。

正確性も実質正確性も、文字(ハングル)単位でなく打鍵(パーツ)単位で決定される。計算式は、「正解打鍵数÷(正解打鍵数+不正解打鍵数)」である。但しKoreanでは、正確性と実質正確性において「正解打鍵数」「不正解打鍵数」の定義が異なる。またTypeRacerでは、「BSはすべて正解打鍵とみなす」「ミス⇔BSを繰り返す間は、最初の1回のミスを除いてミスもBSもすべて正解打鍵とみなす」という仕様がある。従って、Koreanにおいて実質正確性を算出するためには、ミスおよび修正の全容を把握し、余分に発生した打鍵を数える必要がある。前提として、Koreanで表示される正確性の仕様も把握する必要がある。

以下、表19と表20に結論のみ記す。詳細はKoreanの正確性の定義に関する検証(2024/7/11時点で未完成)を参照。

【表19: TypeRacer Koreanの正確性の仕様】

・実質ノーミス時の文字数、打鍵数(ハングルと半角文字)、文字変化数、
 文字変化によるミスの打ち消し数を最初に把握する。
・基本的に、各ハングルの最初の打鍵はミス判定、他は正解判定。即ち、ミスタッチが無くても正確性は70%前後。
・直前の文字が変化する場合には、1打鍵毎に関係する各文字の正誤判定がなされる。
・直前の文字が変化する場合には、1文字内の打鍵がすべて正解判定となることもある。
・ミスがある場合には、「ミスにより増えるミス判定数」「ミスにより増える正解判定数」を把握する。
・ミスがある場合、1文字内のミス判定は最大1回。それ以外のBSやミスタッチ、打ち直しはすべて正解判定

【表20: TypeRacer Koreanの実質正確性の算出】

・TypeRacerのリプレイを参照し、余分に発生した打鍵数(ミスタッチ数、BS数、打ち直しの数)を把握する。
・不正解打鍵数は、ミスタッチ数と同じ。即ち、ミスタッチが無ければ実質正確性は100%。
・正解打鍵数には、BS数、打ち直しの数を含む。

88wpm以上を記録した計308回のトライアルの実質正確性と速度の分布を図8に示す。実質正確性と速度の相関係数は0.163で、相関性はほぼ無いと言える。とはいえ、逆相関も無いから、ミスが多ければ速度が伸びるわけでもない。なお、7/6にテストに失敗した時の101.11wpm(実質正確性100%)は、他と区別するため色を変えて描画した。

308回のトライアル中、実質正確性100%は74回記録した。また、100wpmを超えたトライアルの実質正確性は100%だった。しかし、実質正確性が100%でなくても88wpm以上は234回出している。特に6月以降は、ノーミスを狙うよりも、1ミスを許容してヤケクソ加速する形での記録狙いを積極的に採用した。

一方、実質正確性98%未満で88wpm以上を出したことは2回しかない。そこまでミスタッチが頻発するトライアルは、ほぼすべて棄権している。大抵の場合、1ミスを起点にミスが連鎖し、立て直せない状況に陥るためだ。さらに、実質正確性99%未満で95wpm以上を出したことは4回しかない。即ち、筆者の現在の実力で95wpm以上を狙う場合、実質正確性99%以上がほぼ必須だ。また、99wpm以上を出したトライアル6回中5回は実質正確性99.7%以上、即ち1ミス以内であった。以上により、実質正確性100%を無理に狙う必要は無いとしても、99%以上、できれば99.7%以上を確保する必要はあると結論できる。

88wpm未満のトライアルも含めるとまた違う結果が出るかもしれない。しかし筆者の目標は100wpmであるから、その計算に意味は無い。何よりも、全1488回のトライアルのミスの状況を手作業で把握するのは極めて面倒だ。308回でも相当キツかった。

【図8: monkeytypeの実質正確性と速度の分布】

◆超長文との死闘

3/10、Megaracerになり始めて間もない頃に、画面いっぱいの超長文(#2870092)が出現した。後で知ったのだが、二番目に長い文章だった。全711文字あり、筆者の環境では11.7行だ。しかも後半に難関単語が多く、脳が持たない。4分以上を要し、70wpmにすら届かない惨敗だった。初見で打ち切ることができたのは、英字や漢字を含んでいなかったためだろう。この文章には3月中に何度か遭遇し、打ち切るたびに記録を更新した。しかし4月に入ると棄権することが増えた。難所で詰まって更新が絶望的になるケースが増えたためだ。

4/22、さらなる超長文(#2870093)に遭遇した。この文章も、Megaracerになってから出現する。3月中に出現しなかったのはたまたまか。ハングル・英字・記号・漢字を含め全807文字あり、筆者の環境では13.4行だ。ちなみに他の文章は概ね3〜6行であり、7行を超える文章は3個しかない。初回挑戦では4行目の[勞役]を打てず、その先に進めなかった。当時はハングルを漢字に変換できるとは知らなかったためだ。まして旧字体である。終了後に具体的な変換方法を調査し、先述の方法を知った。翌日にはそこを突破するも、6行目の[中]を打てず。4/25、三度目の挑戦でついに撃破! 9行目の[(terms)]トラップもしのいだ。その後は少しずつタイム、そして速度を更新していった。具体的な更新履歴は表21の通りである。

【表21: 超長文の更新履歴】

【二番目に長い文章(11.7行)】

日付タイム速度(wpm)正確性
3/104分07秒69.0074.9%
3/123分52秒73.4774.2%
3/183分52秒73.5273.6%
3/223分45秒75.7674.1%
5/013分37秒78.5573.1%(実質98.8%)
5/113分31秒80.6473.6%
6/013分31秒80.8273.8%
6/063分27秒82.1673.6%
6/153分24秒83.6473.5%
6/193分22秒84.4773.4%
6/233分21秒84.6973.2%

【最長の文章(13.4行)】

日付タイム速度(wpm)正確性
4/254分27秒72.5073.7%
4/284分20秒74.4474.0%
4/304分15秒76.0373.5%
5/64分11秒77.0474.1%
5/93分59秒80.9073.6%
5/123分59秒81.0773.9%
5/153分56秒82.1573.8%
5/223分53秒83.0173.7%
5/283分46秒85.5973.1%(実質99.5%)
6/163分45秒85.8473.3%

5/12、二番目に長い文章は、他の文章を含んでいる気がした。5/16に改めて調査した結果は表22の通り。超長文(#2870092, #2870093)を練習すれば、それらに含まれる短文(#2870098〜#2870104)も同時に練習できる。特に超長文の先頭部分では棄権する確率が低いため、#2870098, #2870101では他の文章と比較して約二倍の練習量を確保できる。#2870098が99wpm台、#2870101が94wpm台まで伸びたのは、練習量が多かったためという見方もできる。また、超長文についても短文を鍛えた効果で少しずつ更新していった。特に終盤に入ってから、難所を正確性重視で耐えつつ、加速ポイントで的確に加速できるようになったのが大きい。

なお、Megaracerで出現する50文章とそれ以外で筆者が88wpm以上を出した3文章につき出典を調査したところ、表22に記載した文章以外はすべて相異なっていた。他にも相乗効果を狙える文章があるかと思ったのだが。そう甘くない。

【表22: 超長文とその他の文章の関係】

元の文章操作Text ID出典
#2870092第一〜二文から冒頭の[이동진 ]を削除#2870098[질문하는 책들]
(質問する本)
第三〜四文から冒頭の[김중혁 ]を削除#2870099
第五文以降から冒頭の[이동진 ]を削除#2870100
#2870093第一〜二文から[']を削除#2870101[아웃사이더]
(アウトサイダー)
第三〜四文から[(勞役)]を削除#2870102
第五〜六文から[中)]以前と[(terms)]を削除#2870103
第七文以降#2870104

◆100wpmを狙える文章の絞り込み

最終的に、100wpmを狙える文章を5個に絞り込んだ。その文章を表23に示す。条件は「97wpm以上を出したことがある」とした。その要因として、例えば「苦手単語を含まない」「得意単語を多数含む」「習熟度が高い」があるだろう。一方、短い文章(概ね2行以下の文章)はこの5個に入らなかった。確かに、短文なら後半に脳のリソースが尽きてミスタッチや大硬直を招く事態は減るかもしれない。だが、難関要素を複数含んでいるケースも多く、100wpmを狙えるとは限らない。初期段階から短文に絞った記録狙いを安易に実行しなくて良かった。

結果的に、95wpmを超えた39回のトライアル中、この5文章で出したのは31回。なかなか効率の良い方法だと思う。ちなみに、ベトナム語やギリシャ語で100wpmを狙う際にも、同じ手法を採用した。「1個に絞るのではなく、複数個の候補文章を持つこと」「初期段階から絞るのではなく、ある程度練習を重ねてから絞ること」がポイントだ。

【表23: 100wpmを狙える文章】

ID行数開幕加速ポイント最高記録(wpm)95wpm以上を出した回数
#28700772.9이러는3行目[2001년 4월]以降101.7712
#28700982.9저 역시2行目まで99.608
#28700123.7부동산업을ほぼ全部99.884
#28700693.7아담ほぼ全部99.154
#28701033.0다른ほぼ全部97.353

◆TypeRacer Koreanで100wpm達成

7/7の日記から抜粋する(一部改変)。

Korean、101.77wpm(72.9%)! 再び100wpm突破!!!!!

画像はこちら。昨日幻の101.11wpmを出したのと同じ文章(#2870077)を同じように実質ノーミスで撃破!

スタートダッシュを決めた後、ラップ3でびびって失速した。[정부로부터 집중적인 비난과]で105wpm→103wpm→100wpm→98wpmと急落した。しかしその後粘り、[2001]の手前で98wpmを維持した。そこからギアチェンジし、今日もラストスパートをきっちり決めきった。104wpm超のラップを5個揃えたのは恐らく初だ。

速度(wpm)文章
104.03이러는 사이 문제의 주인공인 파이어스톤과
111.99포드는 언론과 일반 대중, 그리고
87.14정부로부터 집중적인 비난과 공격을 받게
97.74되었다. 그 결과 파이어스톤은 기업의 생존
105.62자체를 위협 받게 되었으며, 세계에서
97.68가장 잘 나가던 에스유브이 중 하나인 포드
116.02익스플로러의 판매는 2001년 4월, 그
111.11전년도에 비해 22퍼센트나 떨어지게 되었다.

◆最後の難関: チート対策テスト

7/6、#2870077でついに101.11wpmを叩き出した。ところが、直後のチート対策テストに6連敗。記録は保存されず、幻と消えた。原因は、テストの文章のフォントが普段練習しているフォントと異なるためだ。特に[ㅈ]はカタカナの[ス]に、[ㅊ]は漢字の[文]に見える。従来は前者を漢字の[大]の上のはみ出しを取り除いた文字、後者を漢字の[大]と図形認識していたため、フォントが違うだけで大いなる認識齟齬が発生する。さらに、4打鍵文字の判読が極めて困難だ。こうなるともはや別の言語と言って良い。テスト6回のうち、速度は一度だけ80.8wpmを(まぐれで)出した。しかし他の5回は時間切れ。正確性は最高でも84%だった。ちなみにテストの合格条件は直前の速度の75%(このケースでは75.8wpm)以上、かつ正確性93%以上だ。つまり速度も正確性も合格ラインに遠く届かない。

無理だ。無理。無理ゲーすぎる。やってられるか!

こ の や り 込 み は 終 了 し ま し た

……

……

……

……

……

……

……

……

……

……

……

本当に絶望しかなかった。2023年5月から1年以上かけて積み上げてきたものがすべて無駄になったような徒労感に襲われた。このままではTypeRacerで100wpmを叩き出しても、それを証明する手段が無い。一応、このテストに合格するため、表24に示す3点が必要と考えた。しかし実現するには最低1カ月、モチベーションが失せればさらに多くの時間を要すると予測した。

【表24: チート対策テスト合格に向けた準備】

(1) 100wpm突破率の引き上げ
(2) テストの文章の収集
(3) テストに類似するフォントを用いた練習

(1)に関して、そもそもテストに到達できる確率が非常に低い点が問題だ。テスト用の訓練をいくら積み重ねても、テストに挑戦できなければ意味が無い。従って、従来使用していたフォントでも訓練を継続する。最終的には、1セットに1回は100wpmを突破し、テストへの挑戦権を日常的に得るのが目安だと思う。

(2)に関して、読めない文字や単語があるなら一つ一つ調査し、ミスを根絶する必要がある。さもないと正確性93%という合格条件を満たすのは困難だ。場合によっては、幾つかの文章を暗記することも視野に入れる。また、収集したテストの画像を見ながら訓練すれば、本番に向けて非常に有効だ。ちなみにテストの文章は少なくとも6種類あった。もちろん、これがすべてではないだろう。

(3)に関して、まずはChromeで全フォント(Monospace, Verdana, Arial, Times New Roman, Georgia, Courier New)を試した。だが、テストと類似するフォントは無かった。ThemeをClassicやDarkにしてもフォントは変わらない。一方、FirefoxのTimes New RomanとGeorgiaがやや似ている。こちらで訓練するのが一案か。従来の記録と分けるため、10年前に使っていた別ID(英語のみ1898戦した時のID)を復活させた。記録は最高でも75wpmをギリギリ超える程度であり、テスト合格の可能性は限りなく低い。

……以上のような計画を立案し、長期戦の構えで実践し始めた。

ところが!

7/7に101.77wpmを叩き出した直後にダメ元で(文章の収集も兼ねて)テストに挑戦したところ、4回目の挑戦で撃破! なぜ撃破できたのか自分でも分からない。運としか言いようがない。確かにこの4回目に限り、2打鍵文字が多数出現し、認識も打鍵も容易だった。しかし表25に示す通り、特に正確性はボーダーラインの93%に遠く届かない状況が続いていた。

【表25: 7/7のチート対策テストの結果】

回数結果速度(wpm)正確性
1不合格80.466%
2不合格32.480%
3不合格48.476%
4合格89.295%

※合格ボーダーラインは、速度76.329wpm(≒254.43cpm×1/5×2)、かつ正確性93%。
※速度はcpmで表示されたため、1/5×2を乗算して英語換算のwpm値を出した。
※チート対策テストの正確性は本文の正確性と違って、正常な値となる。

◆練習結果

2024年2〜7月にTypeRacerを用いて練習した結果を図9に示す。2024/2/19の本格練習開始以来、140日(実質125日)、1488回目の練習で100wpmを突破した。期間中、打たなかったのは2/23, 3/20, 3/23-25, 3/30-31, 4/6-8, 4/13-14, 4/20-21, 4/26の15日である。即ち、1日あたり約11.90回打ち切った。グラフはIntersteno期間中(練習回数で言えば496〜735回目)を除いて成長曲線を描いた。なお、7/6にテストに失敗した時の101.11wpmは、他と区別するため色を変えて描画した。

100wpm到達前に85wpm以上は507回、90wpm以上は193回、95wpm以上は39回、98wpm以上は8回出した。かつてここまで苦戦した言語は無い。ギリシャ語の倍近い試行回数が必要だった。

【図9: TypeRacerの練習回数と速度の成長】

表26に時系列の主な更新履歴を示す。2023年6月、10月、12月には、monkeytypeの成長過程に合わせて、TypeRacerを5回ずつ打鍵した。文章に通用する速度が順調に伸びているか確認するためだ。2024/2/19以降は、ほぼ毎日練習した。但し3/20〜4/26には退化防止練習のみを実施した。Intersteno2024と重なったためだ。

別途計算した通り、monkeytypeのkorean 5kで100wpmを達成した時点の実力ではTypeRacerに歯が立たなかった。TypeRacerのKoreanで100wpmを達成するまでには、Interstenoによる停滞期間を除くとしても、計4カ月近い集中的な練習が必要だった。

【表26: TypeRacerの主な更新履歴】

日付回数速度(wpm)
6/20(Tue)332.14
10/2(Mon)740.24
12/24(Sun)1258.10
2/20(Tue)1665.32
2/20(Tue)2575.88
2/22(Thu)5180.18

日付回数速度(wpm)
2/27(Tue)14481.77
2/29(Thu)16782.79
3/1(Fri)18583.61
3/1(Fri)18684.08
3/2(Sat)22085.50
3/6(Wed)26391.72

日付回数速度(wpm)
4/10(Wed)63492.05
4/30(Tue)81092.37
5/2(Thu)84194.22
5/20(Mon)105796.28
6/2(Sun)121196.54
6/14(Fri)132297.63
6/21(Fri)138999.15
6/22(Sat)139199.31
6/25(Tue)141099.60
7/2(Tue)146199.88
7/6(Sat)1475+101.11
7/7(Sun)1488101.77

※回数は、記録を出した時点での総練習回数。その日までの総練習回数とは必ずしも一致しない。
※速度は、英語等と比較するために係数2.0を掛けた値。
※7/6の記録は、直後のTestに失敗したため幻と消えた。
※上記データはTypeRacer Dataから取得した。


●参考文献

Unicode一覧表
→ハングルのHTML表記を調査する際、Unicode一覧 A000-AFFFUnicode一覧 D000-DFFFを参照しました。また、ハングルのパーツのHTML表記を調査する際、Unicode一覧 1000-1FFFUnicode一覧 3000-3FFFも参照しました。

ハングルノート
→ハングルの基本的な読み方を習得する際、ハングルで名前を書こう!韓国語で「あいうえお表」作っちゃったに記載されている、日本語の五十音表とハングルの対応を参考にさせていただきました。

ハングル練習プリント
→Windows10/11の標準機能の韓国語キーボード配列を習得する際、ハングルの入力方法(タイピング)を参考にさせていただきました。

趙義成の朝鮮語研究室
→monkeytypeのkorean 1kおよびkorean 5k攻略時に、朝・日で異なる漢字語を参考にさせていただきました。また、朝鮮語ビビンパも興味深く拝読しました。他のコンテンツは筆者の学習レベルが追いつかず、読みこなせていません。

Home - instant tools
→出現文字別の分類と集計に文字出現頻度分析ツールを使用しました。このツールは、朝鮮語/韓国語のみならず多言語の解析に、以前から大変役立っています。


●各種資料

monkeytype:出現文字・単語の分析資料
 →monkeytypeのkorean, korean 1k, korean 5kに出現する単語の各種情報を調査・分析した資料。(2024/3/15現在、5kは未完)

monkeytype:練習実績とグラフ
 →monkeytypeのkorean, korean 1k, korean 5kの練習実績を集計し、グラフを描画した資料。

TypeRacer:正確性の解析資料
 →Megaracerで出現する50文章および、それ以外で筆者が88wpm以上を出した3文章に限定し、TypeRacerの仕様に準拠して正確性および実質正確性の計算を解析した資料。

TypeRacer:練習実績とグラフ
 →TypeRacerの練習実績を集計し、グラフを描画した資料。


●おまけ1:Interstenoに朝鮮語/韓国語が採用されるには?

大前提として、朝鮮語/韓国語を母国語とする人たちで構成される継続的な組織が必要だ。なぜなら、オンライン大会のみを考慮した場合でも、毎年の本番用文章や、TakiやZAV向けの練習用文章を提供する必要があるからだ。課題文章は日本語の文章を参照すれば分かる通り、政治的・宗教的に中立で、著作権の問題が無く、それなりの語彙を含むある程度知的な内容で、かつ指定された量(10分間練習は約1万字、1分間練習は約1000字)を満たす必要がある。また練習/本番ソフトへの反映に際しては、特殊文字の取り扱い(どんな文字があるか、どの文字を何点にするか)を決定する必要がある。

その上で、Interstenoの組織への働きかけが必要だ。参考までに、2022〜2023年に日本語の係数を2.2607から2.95に変更する際に要した手続きの概要を記載する。朝鮮語/韓国語やその他の言語を新規に採用する際にも、以下に類する手続きが必要になると考えられる。

・日本側の組織(Intersteno Japan。全日本タイピスト連合とは別組織)からの提案
・Intersteno側のScience Committeeでの説明と承認
・Intersteno側のBoardでの説明と承認
・Intersteno側の各種作業(練習/本番ソフトへの反映、公式サイト等での周知)

この係数に関しても考慮が必要だ。1文字打つのに必要な打鍵数は概ね判明しているため、それがベースになるだろうか。

以上、朝鮮語/韓国語をほんの少しかじりかけた程度の外国人が代行するのは無理がある。まずは北朝鮮人/韓国人の協力者を見出すことから始める必要がある。


●おまけ2:過去のタイパー Advent Calendar向け記事へのリンク

筆者が執筆した文章が数年分蓄積してきたため、備忘録を兼ねて以下にまとめておく。その後の状況も記載する。

多言語タイピングにおけるギリシャ語の強化(2022.12.18)
→ギリシャ語の強化は、最難関種目である25kでの100wpm達成をもって一旦終了した。将来TypeRacerでさらなる境地を目指す意思はある。また、Interstenoで採用されるなら本格的な練習を再開する。

多言語部門におけるロシア語の強化(2021.12.12)
→ロシア語の強化は継続している。但し2022〜2023年はmonkeytypeが中心だった。通常版や1kでは語彙が少なくIntersteno対策には力不足であるため、2022年には10kでの練習を中心とした。2023年にはさらに踏み込んで、25kや50kでの練習を採り入れた。375kでは語彙がマニアックすぎてランダム練習に近くなり、かえって対策にならないと判断している。1月以降、TypeRacerやTakiを用いて文章を打つ訓練に戻ろうと考えている。

老化とタイピング(2020.12.6)
→老化は恐ろしいことに着々と進行している。特に平日の在宅勤務終了後には、眠すぎてタイピングをやる気にすらなれない日が多くなった。しかし特にスピード練習は継続的に実施しないと速度がどんどん衰えていく。Interstenoで言えば英語や日本語等、速度を要求される言語を打つ練習を採用していく。

更新したければ走れ! 2019年版(2019.12.15)
更新したければ走れ!(2018.12.16)
→ランニングは継続している。2023年の年間走行距離は2019年以来久々に1000kmを超えた。但し速度は明らかに低下した。2020年4月の在宅勤務開始に伴い、日々の通勤の高速ウォーキングが丸々なくなったのが地味に響いている。また、老化に伴い、スピード練習をやらないとすぐに落ちるし、そもそもスピード練習の負荷に耐えるのが困難になりつつある。
→タイプウェル国語Rは2022年1月30日、タイプウェル英単語は2019年3月3日を最後に打っていない。約30秒で800文字/分(160wpm)かそれ以上を目指す(≒800文字/分を約30秒維持する)打鍵は、monkeytypeの高速言語の攻略とある意味似ている。スピード練習として効果的であることは間違いないため、いずれ再開する予定はある。


タイパー Advent Calendar 2023に戻る
タイパー Advent Calendar 2023(2枠目)へ
トップページに戻る
タイピングページに戻る