ddskk で交ぜ書き変換をしたい - 交ぜ書き辞書へん
前回の「ddskk で交ぜ書き変換をしたい」のつづきです。
おさらい
前回の「ddskk で交ぜ書き変換をしたい」は、以下のような内容でした。
- ddskk で交ぜ書き変換ができる skk-mazegaki を作った。
- ただし、漢字混じりの変換をするには、漢字混じりのエントリのある交ぜ書き辞書が必要!
- SKK に含まれる SKK-JISYO.mazegaki では貧弱、しかも、ddskk のリポジトリにある skk-mkmgk.el は古い存在しない skk の関数を使っていたりして望む辞書が作れない。
#skk-mkmgk.el の存在しない関数問題を直しても、試した限り、欲しいレベルの辞書を作れなかった…。 - よって、SKK-JISYO.L から生成するスクリプトを作ったので、整理してそのうち公開する。おわり。
交ぜ書き変換と skk-mazegaki.el は、以下のような機能でした。
- 通常のかな漢字変換では、「ひらがな」や「数字」のみを変換対象とする。
- 漢直で使われる交ぜ書き変換では、その「ひらがな」と「数字」に加えて、「漢字」も変換対象として含める事ができる。
- 普通の日本語入力方式では、漢字を直接打てないので、変換対象に漢字を含める事はできない。
- よって、skk-mzegaki.el では、確定済みの文字列を変換対象として再変換を行う。
さて、今回は、上記にあるように、交ぜ書き辞書を生成するスクリプトについて作ってみたので、公開します。
交ぜ書き辞書生成
概要
SKK 用の交ぜ書き辞書を生成します。辞書のエントリは、以下のような形式であれば良いです。
... あいち工業だいがく /愛知工業大学/ あいち工業大がく /愛知工業大学/ あいち工業大学 /愛知工業大学/ ...
こういうエントリを SKK-JISYO.L より自動生成します。
設定
skk-mazegaki.el と skk-mazegaki-mkdict.el を `load-path' の通ったディレクトリに置き、以下のように require します。
デフォルトでは、SKK-JISYO.L より生成するため、SKK-JISYO.L が必要で、辞書のパスが skk-large-jisyo に適切に設定されている必要があります。
(require 'skk-mazegaki-mkdict) (setq skk-large-jisyo "SKK-JISYO.L へのパス")
辞書生成以下の手順を踏む必要があります。
以下の例では、SKK-JISYO.L.mazegaki が生成されます。
1. 辞書を生成する。 M-x skk-mazegaki-mkdict-make-dictionary # -> デフォルトでは、/tmp/TMP に生成される 2. 辞書から重複エントリを取り除き、ソートする。 $ skkdic-expr /tmp/TMP | skkdic-sort > SKK-JISYO.L.mazegaki
「1.」の手順では、/tmp/TMP 以下に辞書が生成されます。
辞書ファイルの文字コードは、EUC-JP です。
手元の環境(i386、Debian sid、Core2Duo e7200、メモリ4G、Emacs 24)では、SKK-JISYO.L から交ぜ書き辞書を生成するのに、およそ1時間ほどかかりました。
SKK-JISYO.L 以外から生成する
以下の2変数を編集します。
- skk-mazegaki-mkdict-default-dictionary - skk-mazegaki-mkdict-prog-list
skk-mazegaki-mkdict-default-dictionary には、辞書生成するとき、元としたい辞書を指定します。
デフォルトでは、SKK-JISYO.L となっています。
つまり、SKK-JISYO.L に含まれる単語、「きしゃ /記者/...」、「てんとう /点灯/...」…のような語句から交ぜ書き辞書を生成します。
skk-mazegaki-mkdict-prog-list には、交ぜ書き辞書を生成する際、読みに含まれる漢字を検索する際に使う prog-list を指定します。
デフォルトでは、SKK-JISYO.L のみから検索します。
これを例えば、以下のように skk-search-prog-list を指定すると、通常行っている変換と同じ候補から調べるようになります。
# 注: 複数の辞書を使っていたりすると、尋常じゃなく交ぜ書き辞書の生成が遅くなります。
(setq skk-mazegaki-mkdict-prog-list skk-search-prog-list)
「読みに含まれる漢字を検索」とは、「きしゃ」を例とすると、
- 「きしゃ」を「きしゃ、きし、き、し、しゃ、ゃ」のように分解する
- 分解した語句それぞれについて変換できる漢字を調べる
- 「き」ならば、「木」、「気」、「記」…
- 分解した語句の変換可能な漢字が、「きしゃ」の変換結果に含まれる漢字であるか調べる
- 「きしゃ」の変換結果が「記者」ならば、「記」となる。
- 変換結果に含まれる漢字であるならば、それを置き換えて、1つの候補とする
- 分解した語句として「き」を選び、ここでの変換結果が「記者」ならば、「記しゃ」という候補ができ上がる
skk-mazegaki-mkdict-prog-list は、上記における「2.」のプロセスで行う変換の際に使用されます。
まとめ
SKK-JISYO.L より、交ぜ書き辞書を自動生成するスクリプトを作りました。
これにより、SKK で交ぜ書き変換が多少便利に行えるのではないかなと思います。
よろしければ、遊んでみてください。
更新時刻
- 2010/12/26/3:10