ローマ字かな変換入力の効率化を考える


 文字をPCやスマホなどのコンピューティングデバイスに入力する作業はできるだけ簡便に気を使わず素速く行いたいものです。

 しかしながら、ただでさえややこしいと言われる日本語をキーボードで入力する際にはまず『かな』を入力して、必要な部分を漢字やカタカナに変換するという2段階の作業を要求されてしまいます。

 このように日本語の入力作業は難解で面倒で、ついつい、入力の作業だけで脳のリソースのほとんどをもっていかれてしまいますが、逆に言えば、ここの部分の工夫により、入力にかかる時間を減らせたり、楽に入力できてその分他のことに頭を使えるようになる、という可能性があります。

 今回はこの入力作業の効率化について、自分なりに検討してみました。

早速、別のパターンを考案しています。→「指の置き方だけで頑張るGIMT文字変換


 第1段階となる『かな』の入力では大きく分けて、直接かなを入力するやり方と、ローマ字入力をしてかなに変換させるやり方の2通りがあります。

 これらは工夫の中で、ときにお互いのやり方のいいとこ取りをしながら、場合によってはキーの配列変更にまで踏み込んでみたり、キーボードそのものの変更や自作に至ることもあります。


 第2段階となる漢字等への変換では操作のカスタマイズ、ユーザー辞書などの設定により簡便化を図ります。

 第1段階も含めてどのIMEを使用するか、というところからスタートすることになります。




 昨今では音声入力という全く異なるアプローチをとる入力方法も認識率が向上してきて実用性を増してきているようですが、ここでは取り扱いません。

 理由は大きく2つあります。どちらも全く個人的な事情によるものですが、そもそも個人的事情に合わせて効率化を目指すというのが今回の趣旨ですので。


 ひとつは、いつでも完全に文章を考えきってから入力作業に入るわけではない、ということです。

 人は話すときに、言いたいことを全て形にしきってから話し始めるわけではありません。

 ある程度形が見えたところでもう口に出し始めてしまうことがほとんどだと思います。

 音声入力はまだ、言い淀んだところを待ってくれませんし、言い直しを言い直しと認めてくれません。「えーっと」って言っている間にマイクがオフになったりします。

 キーボードによる入力でも同じことです。

 既に完成している文章を速く打ち込むだけのRTA競技向けのようなカスタマイズは(少なくとも筆者の)実用には向きません。


 もうひとつは、本当に筆者の超個人的事情によるものですが、筆者の書く文章の多くが特殊であるため、音声入力では求めている変換をしてくれないことが多いのです。

 ぶっちゃけると、筆者はR-18なゲイ小説を書いています。(覗いてみたい方は覚悟を持ってどうぞ→Gradual Improvement

 公共性の強いプロダクトほどアダルトは頭ごなしに邪険にされますので、そりゃ無茶ってもんだぜベイベー。


 また、今回はIMEとしてGoogle日本語入力およびmozcを使用することを前提に進めていきます。

 SKK系にも興味が多少あって、ときどき思い出したかのように挑戦するのですが、漢字の開始時にShiftを押さなければならないのはまだ良いとして、訓読み漢字の変換は送り仮名まで入力しないと候補すら出てこないというのと送り仮名の開始時にもShiftが必要というところが(いや必要性があるのは分かっているんですけど)どうしても馴染めなくて……

 予測変換とか変換候補を複数同時に表示してくれる機能とか、SKKの不便なところを改良してくれているものもあるのですが、Windowsでしか使えませんし(筆者のメインPCのOSはUbuntuStudioなんです)。

 で、実はそういった改良も本来のSKKの利点を潰してしまっているところもあって、本気でSKKに取り組むならやっぱり素のSKKでバリバリやれるようにした方が恩恵が多い、とも思うんです。

 でも、SKKで恩恵を得られるところまで頑張るには操作の慣れだけではなくて辞書を自分で育てていく気概も必要になります。んで、壁に跳ね返されるんですよね。

 それに、やっぱり、だらだら書きをしたいときに、ここからは漢字でここからは送り仮名で……って習熟していってもある程度意識をそちらに奪われてしまいそうな気がする。(そこまで踏み込めてないので単なる誤解かもしれませんが)




 しかし、効率化が達成出来たとして、その効率化のためのカスタマイズができないようなデバイスがあった場合は結局は非効率な標準的入力方法を余儀なくされます。

 効率化に拘り、独自ルールを設ければ設けるほど、覚えておかなければならないことが増えていく、という脳内リソースの固定費二重払いがのしかかり続けることには注意が必要です。

 ですので、独自の効率化を検討し、環境を整備し、習熟に務める、という手間も含めて、どこまで追求すべきか、というのは本当に個々人の裁量によるとしか言いようがありません。


 どのような工夫が良いのかは人によって異なります。

 自分にとってやりやすい方式が他人にとっても同じとはかぎりません。

 ですので、これはあくまでも自分の場合の例となります。

 また、自身や周りの変化などにより最適解も変化していくことがありますので、決定版になることはありません。


 長くなるのでどこかで切って何回かに分けて書くことになると思いますが、まずは標準のローマ字かな変換方式での大きな問題点について触れようと思います。


ローマ字かな変換の大問題点その1「ん」


 筆者はタッチタイピングが出来ますし、結構年季も入っていますので、あまり身構えずにダラダラ打てるくらいには慣れているつもりです。

 それでも未だにときおり引っ掛かるのが「ん」です。

 これはむしろダラダラ打てるようになってから逆に失敗が増える現象だと思います。


 『n』は「ん」と「な行の子音」の2つの役割を兼ねているため、その打ち方には複雑な法則があります。

 初心者だった頃は「ん」はとにかくnを2連続で打つ、と覚えていれば良かったのですが、例えばこれ、極端だし普段こんな文を打つことはありませんが、


なんにゃんなんかんあ

nannnyannnannkanna


 超面倒臭い!

 そもそも、nを2連続で打つというのは入力システム上仕方なく普及してしまったもので、元のローマ字表記では当然「ん」はn1つでいいわけなんです。

 そして、システム上2度打ちしなくても判別できる場合に限り、n1つでも「ん」と認識してくれます。

 いや、言い方が逆でしたね。n1つでは判断がつかないケースというものが、次に「a」「i」「u」「e」「o」「n」「y」が続く場合だけなんですよ。

 すると次第にnの2度打ちが面倒になってきて1つで済むところは1つしか打たないようになってきます。

 すると今度は2度打ちが必要な場面で1つしか打たないというミスが発生するようになるんですね。「そんな」って打つのに「sonna」ってやってしまうんです。

 「ん」の全部2度打ちは絶対的に面倒、しかし、場合分けは脳内リソースを無駄に奪われる原因。結果、いつまで経ってもミスが減らない状況が続いています。


 システム標準での解決方法は「nn」の他に「n'」「xn」と、どうやっても2打から逃れられないんですね。(「'」が使われるのはANSIいわゆる英語キーボードでの入力が想定されているからだと思われます。[L]キーの2つ右で[Shift]なしで打てるんです。)


ローマ字かな変換の大問題点その2「っ」


 現代では機能が不足、単独で出すには最低3打必要で面倒臭い。


 子音の連打で「っ」が出てさらに打った子音の一つが残って次の字に繋げられる。

 これそのものには何の違和感も無いのですが、最近では「っ」の後ろに文字が続かないケースが結構発生します。


あっ……

ああっ!

そっ、そんな


 これらの入力で「っ」を出すために地道に「ltu」「ltsu」「xtu」「xtsu」のいずれかを打つか、それとも適当に同じ子音を2つ打って1つ消すか、どっちにしろこの時点で流れるような入力作業が止まってしまうことは避けられません。

 入力のリズムが崩されるというのは、思考もその対処に奪われて一旦途切れてしまいますので、思った以上に損害が大きいです。

 あと、


っなんだってーΩΩ


 こんなおかしな文章打つか、という問題はさておいて、子音2連続で「っ」が出ますがnだけは例外でしてn2つは現状「ん」になります。

 なので、この辺りも含めてちょっと整頓できないかなぁ? って思ったりします。(もちろん、この辺りを変更してしまうと標準の動作から外れてしまうし、ローマ字の記法とも離れてしまう可能性が高いので一概に整頓した方が良いとは限りません。どちらがよりベターな選択なのかは各個人の裁量に委ねられるところです。今後もずっと同様な選択が続きますのでもう言いません。)


入力効率化のポピュラーな手法その1「撥音拡張」


 「ann」「inn」「unn」「enn」「onn」の入力を1打で済まそうというアイデアです。


 この案の素晴らしいところは「ん」が確定するというところです。

 「ん」で文章が始まるケースは非常に少なく、その手前に何かしらのかな文字があるとするならばローマ字入力としては母音を打っているはずです。

 すると、この撥音拡張を使用することで、ほとんどの「ん」が確定入力できることになり、上記の大問題がかなり解決できるのです。


 但し、通常母音を打つタイミングで母音とは別のキーを打つ必要があり、母音の一段下となる「z」「k」「j」「d」「l」が良く使用されるのですが、子音連打による「っ」とバッティングしてしまいます。(例えば「kk」で「きん」と入力できるようになるが、「っ」の入力が潰される。)これが結構痛くて、子音連打による「っ」を崩してまで導入するべきものか悩みます。

撥音拡張に使用するキー候補


 Shift併用入力を許してくれるのだったら[Shift]+「a」「i」「u」「e」「o」で子音関連をぶっ壊さずに実現できるので良かったのですが、Google日本語入力およびmozcでは無効にされてしまいました。


 もうひとつの逃げ手としては数字キーにその役割を持たせることで子音連打による「っ」との両立が図れますが、「2」「3」「8」「9」辺りはまだ良いとして、若干遠いですよね。効率化に疑問が出そうです。

撥音拡張に使用するキー候補(数字キーに逃げる例)


 また、「あん」みたいに子音が無いケースに対応できません。これの対応策として「x」なり「v」なりのキーを無音子音と定義して手前で打つ方法がありますが、結局イレギュラーな2打になってしまうのが微妙なところです。(数字キーを使う場合は数字入力を潰しても良いのであれば、子音を打たずに1打目から数字を打ったときは子音無しとみなして「あん」みたいに出すことが可能です。)


入力効率化のポピュラーな手法その2「連母音拡張」


 「こう」とか「はい」とかローマ字打ちだと「ou」「ai」みたいに母音打ちが2つ連続するケースが多くあります。これらを1打で済まそうというアイデアです。


 確かに打鍵数は減らせるのですが、5×5=25通りの全ての連母音を1打にするのは無理があるので頻度の高い連母音だけが対象になります。

 その他、上記の「撥音拡張」と同じ問題がまるまる全部発生します。しかも、「撥音拡張」よりも明らかにキーの位置が覚えにくいです。

 もっと言うと、元々母音のキー位置は打ちやすい場所に優遇されていますので、普通に2打でも速く打てます。

 正直、個人的にはこの手法は(実際に取り入れて試みたのですが)イマイチでした。


入力効率化のポピュラーな手法その3「やゆよ母音扱い」


 や行は通常、「や」「ゆ」「よ」の3文字しか使わないので、仮にこれを母音扱いとしたとしても必要となるキーは2つ増えるだけです。(筆者は紆余曲折の末、現在は「q」「y」「l」と「a」「u」「o」に近くて空けやすいキーにマッピングしています。)

 それでいて、「きゃ」などの拗音がおしなべて3打から2打に減らせる利点があります。

やゆよ母音扱いに使用するキー候補


 代わりに「きぃ」など「ぃ」「ぇ」が付くパターンの入力が、例えば「きぃ」は「kyi」では打てなくなり「kixi」などで代用する必要が生じます。

 「連母音拡張」と併用する場合の相性が最悪です。例えば「こうきょう」と打つ場合に連母音「ou」が2つ出てくるのですが、最初の「ou」は連母音として入力できますが、次の「ou」は「よ」の母音化により「きょ」で確定してしまうため必ず「ou」の「o」が既入力になってしまい「u」を単独で入力する必要があります。

 このような特例というか、状況に応じて常に場合分けが発生するみたいな設定は混乱の元ですのでできるだけ避けたいものです。


 というわけで、筆者は「やゆよ母音扱い」はチャレンジを続けてみますが、「連母音拡張」「撥音拡張」の導入は諦めました。(Shift併用入力が許されるならば「撥音拡張」は導入したい)


入力効率化のポピュラーな手法その4「んっ単打」


 上記の大問題で触れた「ん」と「っ」は単打の仕組みを取り入れて慣れることができればかなり解決できそうな気がします。


 「撥音拡張」が取り入れられないのなら、「ん」単打キーを持てば良いじゃない。

 ローマ字かな変換入力で比較的入力しやすいのにほぼ使われていないキーがあります。[;]キーです。

 プログラミングなどで「;」が終端文字として扱われることもあり、「ん」への割り当てには相性の良いキーです。

 これを導入すると、子音の「n」と「ん」を綺麗に分離できます。

 こうして整理できる「nn」のあり方は「んn」(「ん」ひとつ確定と子音のn)か「っn」(子音連打扱い)にするか、どちらか片方しか選べませんが。

 人によっては逆に[n]キーを「ん」へ、[;]キーを子音「n」にした方が扱いやすいかもしれません。


 「っ」は元々3打4打で入力できるのですが「xt」まで打った時点で、もうその先変換すべきかなは「っ」しか無いので「xt」で「っ」が出るようにしてみます。

 また、単独で[c]キーに割り当ててみました。「c」と「っ」は雰囲気も似ています。英語でも「ck」で「っk」なので割と連想しやすいです。

 但し、「cha」〜「cho」などの3打でそれなりに入力頻度のあるパターンがありますので、それを潰さない限りは1打では確定入力できません。でも、「ck」などと打てば「っk」みたいになるので「っ」を実質1打で済ませらる確率は高くすることができます。

 「ca」〜「co」の「かしくせこ」をどうするかも考えどころですねぇ。

んっ単打に使用するキー候補


入力効率化のポピュラーな手法その5「特殊文字割り当て」


 「々」とか「→」「゛」「゜」「﹅」(圏点:ごま)「ヵ」「ヶ」など、そこそこ使用頻度があるけど漢字変換で入力するのがちと面倒、みたいな文字を割り当てると多少楽になるかもしれません。

 人によっては絵文字を割り当てたいとか、あるかもしれませんね。


 標準のキーマップでは子音「l」と「x」がほぼ同じ割り当てで実に勿体無い(左右手の分配で打ち易さを考慮しているのかもしれませんが)ので片方に寄せて、空きが沢山あるので、適当に打ち込んでみます。

 個人的には小文字を打つ際に「l」を使っていたので「l」に寄せたかったのですが、「やゆよ母音扱い」の方で使いたいので「x」に寄せることにしました。

 あと、「v」も「ゔ」ばっかりでかなり勿体無いので、こちらにも少々詰め込みました。

 標準のキーマップでは「z」に1打加えていくつかの特殊文字が打てるようになっているのですが、特に矢印は「やゆよ母音扱い」とバッティングしてしまいますので定義削除しました。「x」や「v」を使えば良いよね、ってことで。(それでもバッティングの都合上2打目のキーを変える必要は生じます。「じょうげさゆう」も「うえしたみぎひだり」も一部がバッティングしてしまうので「じょうげ」の[j][g]で「↑」「↓」、「みぎひだり」の[m][h]で「→」「←」という若干苦しい割り当てになりました。)

特殊文字割り当てに使用するキー候補


入力効率化のポピュラーな手法その6「頻出語句割り当て」


 ここまでくると本当に個人の好みですが、慣れることができれば便利かもしれません。

 例えば空いている「ds」で「です。」と定義すると楽できるかもしれないねえ、という話です。

 覚える慣れるコストと利便性とを天秤に掛けることになります。


 「ds」で「です。」も打ちたいけど「でした。」も打ちたいんだ、という場合はかな変換テーブルではなくて辞書登録しましょう。

 「でした。」は「dst」にするという手もありますが、「ds」を打った時点での確定はできなくなりますので注意。


キーマップはこんな感じ


 上記の手法その5までを取り入れて、細かいところをもうちょっとゴニョゴニョしたのが以下のキーマップになります。


■単打

AIUEOQYLC
 


■2打(縦が1打目、横が2打目)

1\2AIUEOQYL
Cちゃちゅちょ
Kきゃきゅきょ
Sしゃしゅしょ
Tちゃちゅちょ
Nにゃにゅにょ
Hひゃひゅひょ
Mみゃみゅみょ
Rりゃりゅりょ
Wうぃうぇ
Gぎゃぎゅぎょ
Zじゃじゅじょ
Dぢゃぢゅぢょ
Bびゃびゅびょ
Pぴゃぴゅぴょ
Fふぁふぃふぇふぉふゃふゅふょ
Jじゃじゅじぇじょじゃじゅじょ
Vゔぁゔぃゔぇゔぉゔゃゔゅゔょ
X

 ※③は3打入力のパターンがあることを示しています。

 ※ゐ、ゑは本来この入力では出ないはずですが、ただの空きになるのも勿体無いので出るようにしてます。


1\2CKSTNHMRWGZDBPFJVX
Cっcっkっsっtっnっh③っmっrっwっgっzっdっbっpっfっjっv
K っk              
S  っs            
T  っt           
N    んn            
H     っh          
M      っm          
R       っr          
W       っw        
G        っg       
Z         っz      
D         っd     
B            っb    
P             っp   
F              っf  
J               っj 
V   っv
X っx

 ※③は3打入力のパターンがあることを示しています。

 ※[x]が絡む子音同士の2打入力では入力順が前後しても良いように定義しています。(意味あるか分からないけど)


■3打(縦が1,2打目、横が3打目)

12\3AIUEOQYL
CHちゃちゅちぇちょ   
KWくぁくぃくぅくぇくぉ  
SHしゃしゅしぇしょ   
SWすぁすぃすぅすぇすぉ  
TSつぁつぃつぇつぉ  
THてゃてぃてゅてぇてょ  
TWとぁとぃとぅとぇとぉ  
HWふぁふぃふぅふぇふぉ  
WHうぁうぃうぇうぉ  
WY     
GWぐぁぐぃぐぅぐぇぐぉ  
ZWずぁずぃずぅずぇずぉ  
DHでゃでぃでゅでぇでょ  
DWどぁどぃどぅどぇどぉ  


■アルファベットキー以外

1\2-^\@[];:,./
(単打)
(Shift)
Z     
X  ……

 ※[z]先打ちの行は標準の設定をそのまま残しているだけです。

 元からある「;」「:」などがむっちゃ打ちづらくなるやん、と思われるかもしれませんが、そのまま変換しようとすれば候補に出てきますし、[Ctrl]+[p]や[F9]キーなどで全角英字にすれば出てきます。




 一応、撥音拡張も定義してみましょうか。ただし、子音連打とのバッティングの他にやゆよ母音扱いとのバッティングも発生するので、遠くなりますが数字キーに逃げています。

 なので、あまり本気になって習得しようとしなくても良いかもしれません。

 数字を入力したい場合は[Ctrl]+[p]や[F9]キーなどで全角英字にしてやってください。


■数字単打で撥音拡張

1234567890
 やんあんえん  ゆんうんいんおんよん


■2打目が数字の撥音拡張

1\21234567890
Cちゃんかんせん  ちゅんくんしんこんちょん
Kきゃんかんけん  きゅんくんきんこんきょん
Sしゃんさんせん  しゅんすんしんそんしょん
Tちゃんたんてん  ちゅんつんちんとんちょん
Nにゃんなんねん  にゅんぬんにんのんにょん
Hひゃんはんへん  ひゅんふんひんほんひょん
Mみゃんまんめん  みゅんむんみんもんみょん
Rりゃんらんれん  りゅんるんりんろんりょん
Wゐんわんうぇん   うんうぃんをんゑん
Gぎゃんがんげん  ぎゅんぐんぎんごんぎょん
Zじゃんざんぜん  じゅんずんじんぞんじょん
Dぢゃんだんでん  ぢゅんづんぢんどんぢょん
Bびゃんばんべん  びゅんぶんびんぼんびょん
Pぴゃんぱんぺん  ぴゅんぷんぴんぽんぴょん
Fふゃんふぁんふぇん  ふゅんふんふぃんふぉんふょん
Jじゃんじゃんじぇん  じゅんじゅんじんじょんじょん
Vゔゃんゔぁんゔぇん  ゔゅんゔんゔぃんゔぉんゔょん
Xやんあんえん  ゆんうんいんおんよん


■3打目が数字の撥音拡張

12\31234567890
CH ちゃんちぇん   ちゅんちんちょん
KW くぁんくぇん   くぅんくぃんくぉん
SH しゃんしぇん   しゅんしんしょん
SW すぁんすぇん   すぅんすぃんすぉん
TS つぁんつぇん   つんつぃんつぉん
TH てゃんてぇん   てゅんてぃんてょん
TW とぁんとぇん   とぅんとぃんとぉん
HW ふぁんふぇん   ふぅんふぃんふぉん
WH うぁんうぇん   うんうぃんうぉん
WY  ゑん    ゐん 
GW ぐぁんぐぇん   ぐぅんぐぃんぐぉん
ZW ずぁんずぇん   ずぅんずぃんずぉん
DH でゃんでぇん   でゅんでぃんでょん
DW どぁんどぇん   どぅんどぃんどぉん


キー設定の変化の具合はこんな感じです。

キー設定変化一覧

ピンク色のキーが主にかな文字入力のために規則を変えているキーです。

オレンジ色のキーは撥音拡張のために規則を変えているキーです。

黄色のキーは日本語入力で良く使う記号などの入力のために規則を変えているキーです。


 最後に、もしこのローマ字かな変換テーブルのデータを使ってみたいという方に向けて、一応定義ファイルを置いておきます。

GIRTローマ字かな変換テーブルデータ


 Google日本語入力およびmozcの設定で「ローマ字テーブル」の編集画面を開き「編集」ボタンでインポートできます。

 全て上書きされてしまいますので、今のデータが既に何かしらカスタマイズしたものである場合は事前にエクスポートして現在データのバックアップを取っておいてください。

!この文字が見える場合、コピペされています(ブラウザ非対応でも見えます)! from Gradual Improvement (dodoit.info)

[記事作成日: 2020-02-17] [内容更新日: 2020-02-18] ※誤記訂正のみの更新等は含みません

この記事のタグ

PC

トゥベタ

Windows

Linux/BSD

トライ