2010年04月24日

ibus-anthy の辞書管理機能(郵便番号辞書について)【更新】4/27,5/4

ibus-anthy-1.2.1 が出てますが、更新をサボっていたせいで色々知らない機能が増えてました。
親指シフト関係が充実したようです。また、「逐次変換」というもの見えます(まだ使ってない)。

---------
【追記】5/4
前にもどこかに書いた気がしますが、新しめの ibus 関係のパッケージは、openSUSE なら OBS のこの人のところから入れられます。ただし、公式パッケージではないので、自己責任で。
※自分は自前でビルドしてしまったので、使ってないです。
---------

その中で、新たな辞書管理機能についてちょっと書いてみます。

ibus-anthy-121_dict.png

この[拡張辞書]の部分ですね。

これは、一言で言うと、自分が以前、

~/.anthy/imported_words_default.d/ について
個人辞書ツール

という記事で書いたようなこと(というか、それ以上のもの)が実装された感じ、と言えばいいでしょうか。

実は、手元ではちゃんと動いてないんですが、分かった範囲で書いてみます(内部の動作のところは推測なので、間違ってる可能性あり)。

まず、上の画面ではチェックを付けたり外したりはできず、設定変更は [編集] ボタンを押して出てくるウィンドウで行うようです。

ibus-anthy-121_dict2.png

「単独で使用」
・ソース辞書から ~/.anthy/imported_words_ibus__* というシンボリックリンクが貼られる
・ツールバーの辞書切り替えボタンか、ショートカットキー(circle_dict_method)でシステム辞書から切り替えて使う、という使い方らしい。
 つまり、システム辞書と、拡張辞書ないし個人辞書を切り替えて使い分けることができ、「拡張辞書ないし個人辞書にあるエントリがシステム辞書の大量の候補に埋もれてしまって探すのが大変」ということがなくなる、ということでしょう、多分。
 多分というのは、意図としてはそうだと思うんですが、手元では、システム辞書の候補の中に埋もれてしまって、辞書の使い分けができてないから。

「システム辞書に組み込んで使う」
・ソース辞書から ~/.anthy/imported_words_default.d/ibus__* というシンボリックリンクが貼られる
・システム辞書に追加される形になる
 辞書を切り替える手間はないが、「大量の候補に埋もれて…」ということが起こりえます。

[追加] ボタンで、自作の辞書等を追加できる。

という感じのようです。

ちなみに、システム辞書に組み込んで使う場合でも、他のフロントエンド(uim-anthy や scim-anthy)からは使えないようです(ちょっと自信なし)。lock-file_* でロックしてる? よく分かりません。

実際に on/off が反映されるタイミングは、手元の環境では挙動不審で、今のところよく分かりません。
普通に考えて [適用] ボタンを押せば反映される気がしますが、ibus の再起動が必要なようにも思える。手元では、チェックを外しても有効なままだったりして、ちょっと分からない。

さて。
一応説明はこんな感じとして、デフォルトで設定されている辞書ファイルについて。

「記号辞書」は /usr/share/ibus-anthy/dicts/symbol.t で、ソースはここにあるもののようです。ただ、記号辞書は sort されていないので、最初の「きゅうかな」までしか有効になっていないようです。使う前に自分で sort し直しましょう。

「郵便番号辞書」ですが、ソース辞書(リンク先)を見ると、/usr/share/anthy/zipcode.t になってました。PATH は環境によって変わりますが、要するに、anthy のソースに入ってる mkworddic/zipcode.t です。

これは色々と問題があるので、それについて。

(余談ですが、ibus-anthy のこの「拡張辞書」のところに郵便番号辞書が入っているのを見て、「おお、この人、分かってらっしゃる」と感心しました(というと、なんかエラそうですが)。単漢字とか郵便番号みたいなものは、普通、単独で変換するものだと思います。つまり、文節区切りとかを考えなくていい。文節区切りの判定が不要なら、それは「かな漢字変換」ではなく、単なる辞書引きでいいわけで、従って、anthy を介する必要はない。フロントエンド側で独自に lookup とかすればいい。そうやって、単漢字辞書をシステム辞書から切り離せれば、以前書いた単漢字問題みたいなのはなくなる。郵便番号も、たとえば「1000014円」と変換したかったのに、「|東京都千代田区永田町|円|」になった、とかいうこともなくなる、と思ってたので。ただ、実際は、現状では単漢字辞書に依存してる部分があるので、「今すぐ切り離そう」と言われると、自分の方が「ちょっと待って下さい」と言わざるを得ない状態なのが情けないところ。)

【書き直し】4/27
大きな勘違いをしていたので、以下は書き直し。

「mkworddic/zipcode.t は anthy.dic に組み込まれてる」というのは勘違いでした。zipcode.t は anthy.dic とは別で、だからインストールされる。

zipcode.t は /usr/share/anthy/ に置いただけで有効になる。
(厳密に言うと、「/etc/anthy-conf で設定された PATH に置けば」)。
※ /usr/share/anthy 等 PATH は環境によって異なります。

従って、上記の ibus-anthy のように、それにさらにリンクを貼っても意味がない。
もし、ibus-anthy が郵便番号辞書を拡張辞書管理機能で管理したいなら、

・/usr/share/anthy/zipcode.t を空にして無効化する
・使いたい郵便番号辞書を anthy-conf で設定された PATH とは違う所に置く
・その辞書にリンクを貼る

という風にするしかないと思う。

ちなみに、zipcode.t は

[/usr/share/anthy/ で使う場合]
・eucJP
・複数エントリ/行
・読みは半角のエントリだけで良い(ユーザが「数字は全角」に設定していても、anthy が宜しくやってくれる)

[~/.anthy/imported_words_* で使う場合]
・UTF-8
・1エントリ/行
・読みが半角のエントリは、「数字は半角」に設定していないと変換できない(「数字は全角」に設定していると変換できない)。

という違いがある。
(imported_words_* の場合は他に「LANG=C で sort」という条件もあるが、zipcode.t の場合は問題にならないと思うので触れない。)

/usr/share/anthy/ に置けば、読みの全角半角の差異を anthy が吸収してくれるので、辞書は「読みが半角のエントリ」だけを用意すればよい。
従って、zipcode.t は /usr/share/anthy/ に置いて使うのが良い。

という結論になりました。

ただ、「他の辞書でも全角/半角の違いを吸収してよ」と思うので、それについてちょっと。
「読みの全角/半角の差異を誰が吸収すべきか」について
posted by vagus at 01:38| 東京 🌁| Comment(0) | 日本語入力 - アプリ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。