メニュー |
ようこそ! Kazuhiro's blog
日曜日, 10月 19 2025 @ 05:29 午前 JST FreePWINGで長い検索語を受け付けるようにする![]() FreePWINGでは、JIS X 4081の規格上の制限から検索語は(全角文字で)127文字までとなっています。 それ以上の文字数の検索語を登録しようとするとエラーになるので、回避するにはプログラム側で検索語を切り詰めて短くする等の処理が必要になります。 しかし、
等の問題があります。特に三番目に関しては意図しないヒットの原因にもなります。 そこで、FreePWINGの方を変更する事にしました。 長い検索語を登録しようとした場合、前方一致検索インデックスと条件検索インデックスには後ろを切り詰めて、後方一致インデックスには先頭を切りつめて登録するようになります。 --- BaseWord.pm.org 2004-05-29 10:29:05.000000000 +0900 +++ BaseWord.pm 2007-02-15 09:11:35.813811200 +0900 @@ -38,7 +38,7 @@ # # 単語の最大長。 # -$max_word_length = 255; +$max_word_length = 254; # # 単語の書き込み方向 @@ -250,11 +250,6 @@ $self->close_internal(); return 0; } - if (255 < length($fixed_word)) { - $self->{'error_message'} = "too long word"; - $self->close_internal(); - return 0; - } # # インデックスの方向が負だったら、単語の前後をひっくり返す。 @@ -263,6 +258,10 @@ $fixed_word = pack("n*", reverse(unpack("n*", $fixed_word))); } + if ($max_word_length < length($fixed_word)) { + $fixed_word = substr($fixed_word, 0, $max_word_length); + } + # # 単語エントリをファイルへ書き込む。 # 上記のパッチを文字コードはEUC-JP、改行コードはLFにして保存し、FreePWING 1.4.4の配布物にあるsrc/BaseWord.pmに適用して下さい。 タグ:FreePWING スクリプトのダウンロード![]() いろんなモジュールだのCGIだのが有効になっているApacheで拡張子がplとかphpだったりするファイルをダウンロードさせる方法、のメモ。 .htaccessで、対象ファイルについて SetHandler default-handler と設定する。 CGIやモジュールを有効にする方法はいろんな所に書いてあるけど無効にする方法はなかなか見つかりませんでした。 (2007/02/14 追記) キーワードが分かってから調べると色々なサイトで情報が見つかりました。 本当に知らない事を調べるのは難しいです。 タグ:Apache PDIC形式の辞書をJIS X 4081に変換する (EBStudioで)![]() PDIC形式の辞書をLookupから使いたくなりました。
テキスト形式の辞書が公開されていればEBStudioでそのまま変換できます。
多分FreePWINGでも割と簡単に変換できると思います。
しかし、使いたい辞書はテキスト形式のデータは公開されていませんでした。
公開している方にお願いすればテキスト形式のデータも公開して頂けるかもしれませんが、 PDIC形式の辞書は仕様も公開されているので、頑張れば検索ツールを作れる筈です。 ツールを作ってエージェントもそれに合わせて作るというのが見栄えのよい方法のように思います。 いちいち変換しなくいいし。 しかしながらそんなにリソースは注げないので、PDIC Toolkitを使ってEBStudioが読み込めるhtml形式に変換するツールを書きました。 といっても付属のpdic2txtをちょっと書き換えただけです。
コンソールから以下のように使います。 $perl ./pdic2html.pl <dictionaey-filename> [output-filename] [--title=title-name] dictionary-filenameはPDIC形式の辞書のファイル名を指定します。 PDIC形式の辞書は必ずファイル名が".DIC"で終わっていないといけません。 output-filenameは出力先のファイル名を指定します。省略可能です。 ファイル名が".html"で終わっていない場合は付け加えられます。 title-nameは辞書のタイトルを指定します。 できるだけ指定して下さい。 日本語・英語の辞書についてはそれなりにうまくいくはずです。 他の言語の辞書については、検索ツールやPDIC Viewer for Emacsを利用したLookupのエージェントを作る方向で考えた方がよいように思います。 (2007/2/16 追記) Personal Dictionary for Win32やPersonal Dictionary for DOSには、PDIC形式からテキスト形式へ辞書を変換する機能が備わっています。 つまり、EBStudioが動く環境では上記ソフトも動くのでこのスクリプトを使う必要はほとんどありません。 最終的にはFreePWINGに対応させる予定で、試しにすぐ書けそうなEBStudio用のコードを書いてみたというものです。 ndeb[s]エージェントでのワイルドカード検索![]() ndebsでワイルドカード検索の続き。 いちいちインデックスを作るのが面倒になったので結局eblookに取り込んでしまいました。 その際に、コードの都合で(エージェントではなく)Lookupの本体側もいじったので他のエージェントでも影響があるかもしれません。 一応動作確認はしましたが何かありましたらご連絡下さい。 ちなみにコードはいい加減のままです。 例えば、必要の無い時でもインデックス全体から調べています。 かなインデックスは参照しません。 改良した方は教えて頂けるとありがたいです。 |
新着情報記事-コメント 最近 2 日-トラックバック 最近 2 日- |
Copyright © 2025 Kazuhiro's blog 本ページのすべての商標と著作権はそれぞれの所有者に帰属します。 |
Powered By Geeklog ページ作成時間: 0.05 秒 |