`くやしがr /悔しが/' のような、送り位置を自動補正するエントリについて
要約
- 単純に間違い、不要
- 送り位置を間違った時に補正してくれるのは便利
- 正則の送りだけが唯一の送りではない。正則を強制されるのは困る
- 補正エントリを許すにしても許容範囲は考える必要あり
- プログラム的な解決の可能性
送り位置を間違って押した時に補正してくれれば便利
なごやk /和や/
くやしがr /悔しが/
skk-auto-okuri-process を tにされては? > 登録者この手のエントリが大量に加わるのは、個人的にかなり嫌です。
skk-auto-okuri-process を t にしても送りなし変換したときしか拾ってくれないじゃないですか。送りあり変換として送ったときに送り仮名の最初で変換しないと変換できない辞書よりは、送り仮名の最初の文字でなくても変換できる方が便利です。そして正しい位置で送り仮名を送れる人にとり、こういうエントリを入れることは、辞書サイズが増えること以外に(例えば変換効率を落とすなどの) デメリットは見当りません。このようなエントリは歴史的に SKK 辞書としては「正しいエントリ」として認識されてきた、と理解しています。
間違いでない候補は、SKK 的に正しいエントリです。
allowance とその範囲
`なごやk /和や/' は、送り指定の Shift を貴殿がおっしゃる正しい位置で押していないだけで、間違いでないでしょう。厳密な位置できちんと typeできないと変換できない辞書よりは、allowance の部分があって良いと思うのです。
「くやしがr /悔しが/」の登録には完全に反対です。送り補正を認めるにしたって、こんなひどい送り方はありえません。
「正しい送り位置」とは?
そんなの正しい送りを覚えれば済む話だと思うので、消すのに賛成します。
「間違いでない」という定義はなんですか?間違った送り仮名を覚えてる人にしか役に立たないエントリはSKK的に正しいんですか?
「正則」≠「正しい」
一般論の方ですが、まず「正しい送り位置」を言うなら、「和やか」と書きたいなら「NagoYaka」、「和か」と書きたいなら「NagoyaKa」が「正しい」です。(「和{なごや}か」は稀ですが、間違いではありません)
skkの大きな魅力の一つは送り位置を自分で決定出来ることです。NagoYakaと打てば「和やか」が、NagoyaKaと打てば「和か」が出るのが期待される動作なわけでして、それが NagoyaKa から「和やか」が出てしまえば前提が大きく崩れてしまいます。
現に「むこu /向こ/」というエントリが存在しており、これがあるために「向う」と入力したいのに油断すると「向こう」が出てしまう場合があります。何かの間違いでこの手のエントリが先頭に来てしまっていないか、常に注意しなければならず実に具合が悪い。これでは何のためにわざわざ送り位置を指定しているのかわかりません。
「なごやk /和/」は「標準的ではないが正しいエントリ」であり、登録希望には反対しないどころかむしろ賛成するだろうと思いますが、「なごやk /和や/」や、況してや「くやしがr /悔しが/」については「間違ったエントリ」であり、反対と言わざるを得ません。
変換ソフトが字を送る位置を強制するのはskk的に「間違い」ではありませんか?
「NagoyaKa」で「和か」だけでなく「和やか」にも変換できて便利だ、と言うなら「NagoYaka」で「和か」にも変換できるようにすべきではないだろうか?
okuri-ari と okuri-nasi の位置付け
あと、送りなしで変換して送り仮名が付いている事についてはどうなの?
「Nagoyaka」→「和やか」
送りなしについては様々な問題が絡むので一概には言えませんが、「送りのないエントリ」と捉えるよりは「送り位置を指定する必要・意味のないエントリ」と捉えた方が良い気がしています。「まして /況して/」とか「おじょうさん /お嬢さん/」のようなエントリを全てokuri-ariのみにするのは非現実的でしょう。
問題はむしろ、 MatuRiなら「祭り」、Maturiなら「祭」が欲しいんだ、といった okuri-ariとokuri-nasiで違う情報を伝えたいケースでしょうね。両者の間にそれほど明確な線を引けそうにないのが厄介なところです。
送りを自動補正する elisp
現在、skk-auto-okuri-processを non-nil にしても、*個人辞書*に*送り仮名のブロック付き*で、skk-henkan-keyのサブセット(?)になるエントリが存在する場合のみ拾いますが、これとは別に、送り有り変換だろうと送り無し変換だろうと、共有辞書を対象としてサブセットを検索するような検索プログラムを設ければ、このエントリを登録した人の希望に応えられるのではないでしょうか?
現在アクティブなコミッターの中にこの件のコード書く人がいなさそうだったので、こんな事するのもどうかとは思いつつ自分で書いてみました。取扱いは御自由にどうぞ。一寸冗長に書いています。
(defun my-skk-search-progs (key prog-list &optional remove-annotation) (save-match-data (let ((skk-henkan-key key) (skk-henkan-okurigana nil) (skk-okuri-char (when (string-match "[ぁ-ん][a-z]$" key) (substring key (1- (length key))))) (skk-auto-okuri-process nil) words) (ignore-errors (dolist (form prog-list) (dolist (word (eval form)) (when (and remove-annotation (string-match ";" word)) (setq word (substring word 0 (match-beginning 0)))) (setq words (skk-nunion words (list word)))))) words))) (defun my-skk-auto-okuri-search () (unless (or skk-abbrev-mode ;; my-skk-search-progsに与える prog-listで絞っていれば不要 (get 'my-skk-auto-okuri-search 'active)) (let ((key skk-henkan-key) (okuri "") key-okuri-pair ret) (put 'my-skk-auto-okuri-search 'active t) (save-match-data (while (> (length key) 2) (when (string-match "[a-z]$" key) (setq key (substring key 0 (1- (length key))))) (let ((subkey1 (substring key 0 (1- (length key)))) (subkey2 (substring key (1- (length key))))) (setq okuri (concat subkey2 okuri) key (concat subkey1 (skk-okurigana-prefix subkey2)))) (when (string-match "[ぁ-ん][a-z]$" key) ;1がつ→1Gがつ対策 (setq key-okuri-pair (cons (cons key okuri) key-okuri-pair))))) (catch 'found ;最初にヒットした時点で止めるのでなければ catchを外す (dolist (k-o (nreverse key-okuri-pair)) (setq ret (skk-nunion ret (mapcar #'(lambda (w) (concat w (cdr k-o))) ;; skk-search-all-progsだと、skk-search-jisyo-fileで ;; 送り有りエントリが引けない。 (my-skk-search-progs (car k-o) skk-search-prog-list 'remove)))) (when ret (throw 'found nil)))) (put 'my-skk-auto-okuri-search 'active nil) ret)))
my-skk-search-progs()は skk-henkan-okuriganaを nil から (when (string-match "[ぁ-ん][a-z]$" key) "") とするよう、手元では更新しています。
また、my-skk-auto-okuri-search()については、(while (> (length key) 2) の 2を 1に変える必要がありました。# "あり"というキーに対し、"あr"を検索できてなかった。自分では使ってないので、まだバグがあるかも。
(勝手に)まとめ
- 「正しくない」から即「削除すべき」とは言えない
- 非正則な送りを使う人には有害となるおそれがある
- 違う送り位置が望まれていた可能性が高いものについて、annotationを付与した上で、登録順を一番最後にして登録しておくくらいでよいのでは
- 有用そうな例 - 「やさしi /優し/易し/」
- 不要そうな例 - 「おこがましi /烏滸がまし/」
- ユーザ間の利害が一致しない例 - 「むこu /向/向こ/」
現存する「送り位置補正」エントリ
よんd /読ん/ よろこんd /喜ん/ よみd /読み/ よかr /善か/ やめr /止め/ やさしi /優し/易し/ もちいt /用い/ もしm /若し/ もしk /若し/ むこu /向/向こ/ むかi /向/向か/ みつかr /見付か/ まちあわs /待合/待ち合わ/ まだs /未だ/ ましt /況し/ まぎらわs /紛らわ/ まきちらs /撒き散ら/ ほしi /欲し/欲/ へらs /減ら/ ふやs /増や/殖や/ ふまe /踏ま/ ひきしめr /引き締め/ ひきおこs /引き起/引き起こ/ はりつけr /貼り付け/ はてs /果て/ はっp /葉っ/ はずかs /恥/恥ずか/ はげまs /励ま/ ねっk /根っ/ にくたらしi /憎たらし/ なまめかしk /艶かし/ なまめかしi /艶かし/ なべt /並べ/ なづけt /名付け/ なごやk /和や/ なけr /泣け/ なうt /名う/ とりしまr /取締/取り締;-り/取り締ま/ とぼしi /乏し/ とっk /疾っ/ とぎれr /途切れ/ とおのk /遠退/遠の/ とおざかt /遠ざか/ といあわs /問合/問い合わ/ でかけr /出掛け/ てぶr /手振/手ぶ/ つっこn /突込/突っ込/突っこ/ ついやs /費/費や/ ちいさn /小さ/ だっk /抱っ/ たらz /足ら/ たべt /食べ/ たべr /食べ/ たのもs /頼も/ たどりつk /辿り着/辿りつ/ たどりつi /辿り着/辿りつ/ たちあげr /立ち上げ/ たたきつk /叩き付/叩きつ/ たすかr /助か/ たかぶr /昂/昂ぶ/亢ぶ/ たえz /絶え/ せめr /攻め/ すまu /住ま/ すまi /住ま/ すまh /住ま/ すてr /捨て/ すくなk /少/少な/ すくなi /少/少な/寡/尠/ すくu /救/掬/巣喰/匡/抄/済/巣く/ すぎn /過ぎ/ じべt /地べ/ しんじt /信じ/ しんじr /信じ/ しんz /信/進/死ん/ しらべr /調べ/ しらz /知ら/ しらs /報/知ら/ したしm /親し/親/ しずけs /靜け/ しからしm /然らし/ しいれr /仕入れ/ しいt /強い/ しあがt /仕上が/ さらn /更/然ら/ さらb /然ら/ さがr /下/下が/ さかのぼr /遡/溯/泝/逆昇/逆のぼ/ こやs /肥や/ こまかi /細か/ こまm /小ま/ こころみr /試み/ けしかr /怪しか/ くわわt /加わ/ くらu /喰ら/食ら/ くらe /喰ら/ くみたてr /組み立て/ くみあわs /組合/組み合/組み合わ/ くすぶr /燻/燻ぶ/ きりかえr /切り換え/ きよらかn /清らか/ きびしi /厳し/ きさk /気さ/ かんがみr /鑑み/ からs /辛/枯ら/ かさなt /重な/ かけつけt /駆け付け/ かけだs /駆けだ/ かくt /確/斯く/ かきかえr /書き換え/ かきおろs /書下/描き下ろ/ おわr /終/終わ/ おもすぎr /重過ぎ/ おっt /追っ/ おちr /落/堕ち/墜ち/落ち/ おぞまs /悍/鈍/悍ま/ おしg /惜し/ おこなw /行/行な/ おこなu /行/行な/ おこなi /行/行な/ おこがましk /烏滸がまし/ おこがましi /烏滸がまし/ おこs /興/起/遣/熾/お越/起こ/ おけr /於け/ おきかえt /置き換え/ おきかえr /置き換え/ おおすぎt /大過ぎ/ うかr /合格/浮か/ いわb /言わ/ いらだたしi /苛立たし/ いらいらしi /苛苛し/ いやしm /卑し/ いてつk /凍て付/凍てつ/ いえr /癒え/ いいかえr /言い替え/ あんd /編ん/ あとかたづk /後片付/後片づ/ あつまt /集/集ま/ あつまr /集/集ま/ あっけなi /呆気な/ あたらしi /新し/ あそんd /遊ん/ あけくれr /明け暮れ/ あくr /明く/ あがt /上/騰/挙が/揚が/上が/ あがr /上/騰/挙が/揚が/上が/ あかr /赤/明/灯/明か/ あえt /敢/敢え/
最終更新時間:2011年04月06日 04時05分55秒