From t-suwa @ users.sourceforge.jp Sat Jun 3 11:40:24 2006 From: t-suwa @ users.sourceforge.jp (Tomotaka SUWA) Date: Sat, 03 Jun 2006 11:40:24 +0900 Subject: [aquaskk-dev 57] =?iso-2022-jp?b?GyRCP3RDTUpRNDkkTiU1JV0hPCVIGyhC?= Message-ID: 諏訪です。 数値変換をサポートしたコードを commit しました。 - * - ■ NumericConverter クラスについて 数値変換をサポートする NumericConverter クラスを導入しています。このク ラスには以下のメソッドがあります。 bool Setup(const CppCFString& query) ---------------------------------------------------------------------- 引数の見出し語から連続した数値を見つけて vector に保存します。同時に、 数値部分を '#' に正規化してメンバー変数に保存します。連続した数値が全く 見つからなければ、false を返します。 例えば引数が「だい128かい」であれば、「だい#かい」に正規化して、vector に は "128" が保存されます。 CppCFString OriginalKey() const; ---------------------------------------------------------------------- オリジナルの見出し語を返します。 CppCFString NormalizedKey() const; ---------------------------------------------------------------------- 正規化された見出し語を返します。 CppCFString Apply(const CppCFString& candidate) const; ---------------------------------------------------------------------- 数値変換を実行します。引数に含まれる #[0-59] 部分に、vector の内容を当 てはめていきます。 例えば引数が「第#2回」であれば、「第百二十八回」に変換します。 ■ 数値変換の動作 AquaSKK の変換時の動作は以下のようになります。 1. 通常の見出し語で辞書検索 → 結果 A を得る 2. 数値変換が有効で NumericConverter.Setup() が成功した場合、 正規化した見出し語で辞書検索 → 結果 B を得る → 結果 A の末尾に 結果 B を追加する つまり基本は今まで通りで、数値変換はあくまでも「おまけ」として扱います。 ■ 注意点・問題点 1. 数値再変換を実装していない 本家のマニュアルによると、数値再変換というのは以下のようなエントリがあ る場合に、「/p125」で「東京都葛飾区」を得るもののようです。 p# /#4/ 125 /東京都葛飾区/ AquaSKK ではこの仕様をサポートしません。 理由としては、検索の挙動は辞書の内容に依存すべきではないと考えるからで す。非現実的ですが、仮に、 # /#4/#4/#4/#4/#4/#4/#4/ のようなエントリがあった場合には、無駄な検索を何度もすることになってし まいます。 また、現在の SKK-JISYO.L で #4 を含むエントリは以下の一行のみです。 # /#1/#3/#2/#;number/#0/#4/#5/#9/ そして、この行の意味するところは結局のところ、「オリジナルの数値による 検索をしたい」ということになると思います。 AquaSKK では数値変換は「おまけ」であり、オリジナルの数値による検索は常 に行なわれます。よって、数値再変換を実装しなくてもこの要件を満たすこと ができます。 2. 変換候補が重複する 今のところ、数値変換の結果を単純に足してるので、変換候補が重複する場合 があります。将来的には、重複した候補を取り除く予定です。 - * - ご意見・ご要望や、不具合・見落しなどがあれば指摘をお願いします。 -- Tomotaka SUWA From t-suwa @ users.sourceforge.jp Thu Jun 15 10:42:04 2006 From: t-suwa @ users.sourceforge.jp (Tomotaka SUWA) Date: Thu, 15 Jun 2006 10:42:04 +0900 Subject: [aquaskk-dev 58] =?iso-2022-jp?b?bnVtZXJpYy1jb252ZXJzaW9uIDEuMCA=?= =?iso-2022-jp?b?GyRCJWolaiE8JTkbKEI=?= Message-ID: 諏訪です。 AquaSKK BETA numeric-conversion 1.0 をリリースしました。 ▽追加・改善された機能 ・数値変換を実装 ・KeyBindings に対応 ・SKK 辞書:更新されていたら自動的に読み直すように改善(10分間隔) ▽不具合修正 ・skkserv セッションが不意に切断されると無限ループする不具合を修正 ・見出し語の補完時に「空振り」する現象を修正 ・SKK 自動更新辞書:URL が深いとダウンロードできない不具合を修正(zipcode) ■ 数値変換について 重複した候補を取り除くようにしました。 ■ SKK 自動更新辞書について 以前は SKK-JISYO.zipcode など、ディレクトリ付の辞書がダウンロードできま せんでした。今回からは URL の深度に関わらず、~/Library/AquaSKK 直下にダ ウンロードします。 - * - そろそろ本気で引越しの準備を進めなければならないのと、仕事でトラブルを 抱えているので、ほんとはこんなことやってる場合ではないのですが、とりあ えず出しておきます。 よろしくお願いします。 -- Tomotaka SUWA