Kazuhiro's blog
ようこそ! Kazuhiro's blog
日曜日, 1月 26 2020 @ 11:36 午後 JST
 記事を友人にメールする 印刷用画面 

PDIC形式の辞書をJIS X 4081に変換する (FreePWINGで)

general

FreePWINGPDIC Toolkitを利用してPDIC形式の辞書をJIS X 4081に変換するツールを公開しました。 先日のEBStudio版に比べると、単語レベルに対応したりとちょっとだけ機能が付加されています。

タグ:PDIC FreePWING

 記事を友人にメールする 印刷用画面 

FreePWINGで長い検索語を受け付けるようにする

general

FreePWINGでは、JIS X 4081の規格上の制限から検索語は(全角文字で)127文字までとなっています。 それ以上の文字数の検索語を登録しようとするとエラーになるので、回避するにはプログラム側で検索語を切り詰めて短くする等の処理が必要になります。 しかし、

  1. 正確な文字数はFreePWINGの内部処理とほぼ同等の正規化を行わないと分からない。

  2. 前方一致検索用に後ろを切りつめた検索語と後方一致検索用に前を切りつめた検索語の二種類の検索語を登録する必要がある。

  3. ドキュメント上に公開されている手段では前方一致検索(あるいは後方一致検索)インデックスのみに検索語を登録する手段が無い。

等の問題があります。特に三番目に関しては意図しないヒットの原因にもなります。 そこで、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

 記事を友人にメールする 印刷用画面 

スクリプトのダウンロード

general

いろんなモジュールだのCGIだのが有効になっているApacheで拡張子がplとかphpだったりするファイルをダウンロードさせる方法、のメモ。

.htaccessで、対象ファイルについて

SetHandler default-handler

と設定する。 CGIやモジュールを有効にする方法はいろんな所に書いてあるけど無効にする方法はなかなか見つかりませんでした。

(2007/02/14 追記) キーワードが分かってから調べると色々なサイトで情報が見つかりました。 本当に知らない事を調べるのは難しいです。

タグ:Apache

 記事を友人にメールする 印刷用画面 

PDIC形式の辞書をJIS X 4081に変換する (EBStudioで)

general

PDIC形式の辞書をLookupから使いたくなりました。

テキスト形式の辞書が公開されていればEBStudioでそのまま変換できます。 多分FreePWINGでも割と簡単に変換できると思います。 しかし、使いたい辞書はテキスト形式のデータは公開されていませんでした。 公開している方にお願いすればテキスト形式のデータも公開して頂けるかもしれませんが、それはなんだか負けた気がするのでとりあえずあがいてみました。

PDIC形式の辞書は仕様も公開されているので、頑張れば検索ツールを作れる筈です。 ツールを作ってエージェントもそれに合わせて作るというのが見栄えのよい方法のように思います。 いちいち変換しなくいいし。 しかしながらそんなにリソースは注げないので、PDIC Toolkitを使ってEBStudioが読み込めるhtml形式に変換するツールを書きました。 といっても付属のpdic2txtをちょっと書き換えただけです。

for your download

pdic2html-20070213.pl

コンソールから以下のように使います。

$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用のコードを書いてみたというものです。

タグ:PDIC EPWING EBStudio

 記事を友人にメールする 印刷用画面 

FreeWnn on cygwin

general

Meadow-users-jpでIMEの話題が出たついででFreeWnnを試してみました。 jserverしか試していませんが一応変換したり単語を登録したりまでは持っていけました。 といってもほとんど修正不要でしたが。 一部パーミッションを444にしたファイルに対してwnntouchを実行しようとする部分があったのを修正したくらいです(Administrators権限でmake installすれば不要な修正だったのかもしれません)。

ちなみに、使用したFreeWnnのバージョンはダウンロードできる最新版の1.1.1-a021で、クライアントはMeadow2+tamago(cvs head)です。 これがWnn7のWindows版のクライアントと通信できたら便利かもしれません(Wnn6と7のクライアントで試してみましたが接続テストをすると無応答になりました)。

タグ:FreeWnn Cygwin

 記事を友人にメールする 印刷用画面 

make 3.80がインストールできない

general

昨日、しばらくサボっていたMeadowのビルドをしようとしたら、エラーが出てできなくなっていました。調べてみるとmakeが原因らしい事が分かりました。cygwinのアップデートをかけた際にうっかりmakeもアップデートしてしまっていたようです。

そういえばそんな話もあったなぁと思いながらmakeのバージョンを戻そうとcygwinのインストーラを起動すると、3.80が選択できなくなっていました。げげっと思いながら調べてみると、既に本家では提供されていない様子。とりあえずmakeはアンインストールし、ローカルに残っていたmake 3.80のバイナリを手動でインストールしてビルドは完了しました。これならインストーラも勝手にアップデートするまい。

tracにはspam扱いされたのでmeadow-developに報告だけしておきました(ここのアーカイブってこんなに早く反映されてたっけ)。

タグ:Meadow Cygwin

 記事を友人にメールする 印刷用画面 

RealAudioからWAVへの変換

general

ずっと以前にsrd-fpwを画像・音声対応にしようとしたことがありました。かなりad hocな変更で、できるのはできたのですが、その時に問題になったのが音声データの変換でした。

Windows版のランダムハウス英語辞典には、RealAudio形式で音声が収録されています。JIS X 4081に収納する為にはWAV形式に変換しないといけません。しかし、変換する手段というのがほとんどありませんでした。正確には手段はあったのですが、音声データの数が10万個以上あり、Ra2Wav等のようなGUIを備えた(CUIを持たない)ツールはあまり実用的ではありませんでした。また、Linux等ではReal Playerの出力を仮想の音声デバイスを経由してWAVに落とす手段があったようですが、変換時に再生に必要な実時間を丸々要するという欠点がありましたし、そもそもLinuxは触ったことがありません。MPlayerも試してみたのですが、当時(2006年春頃だったと思います)は変換後の音声の末尾にノイズが乗ってしまい、変換結果の質に極めて問題がある状態でした。

最終的にはMPlayerで変換後、末尾のノイズを削除するプログラムをでっち上げる事にしましたが、単純にある程度以下のレベルの音を削り取るだけだったので誤検出も多かったです。また、容量の問題で音声のビットレートをかなり落とす必要があり、音質が極めて悪い状態になってしまいました。

結局、音質に関しては改善は期待できないと判断し、JIS X 4081に変換して使うのはやめにしましたが、先日、MPlayer 1.0rc1でRealAudioからの変換を試してみたのですが、末尾のノイズは入らず、変換ツールとしてみるとずいぶんと改善されていました(本当は音声再生時の不具合の確認だったのですが、残念ながらそっちは健在でした)。ランダムハウス英語辞典のJIS X 4081への変換は、EBStudio用のツールキットが画像・音声を含めて既にサポートしているので、その際の音声変換ツールとして有用かもしれません。

 記事を友人にメールする 印刷用画面 

CDの取り出し方

general

CDをケースから取り出す時、中央部分を力一杯押しても全然はずれる気配が無くて苦労する事があったのですが、「CD「本当」の取り出し方」を紹介しているサイトを発見。 へぇ、全然知りませんでした。 ところで、今は実物が無いので試せませんが、CDが1枚ずつ表と裏に収納されているやつはどうやればいいのでしょう?

 記事を友人にメールする 印刷用画面 

安心だフォン or Two LINK DATA?

general

PHSは月に二日くらいネットに繋ぐのに使う事がある程度なので機種をW-SIM + DDに変更し、コースを「通話相手先限定利用」コースに変更しました。しましたが、コースの変更にだいぶ手間取りました。

最初にサービスセンターに電話で変更しようとしたら断られ(安心だフォンのコースでと言ったらDDからは一切通信ができなくなると言われた)、メールで確認したらそんなことはないと返事され、後日再度サービスセンターに連絡したら今度は何も言われずに変更できました。その後説明し忘れた事があるといってサービスセンターから自宅に電話がかかり、不在だったのでこっちからかけ直しだりで何回住所やら電話番号やらを言わされたりした事か。

その中で疑問に思ったのが安心だフォンTwo LINK DATAの違い、というか違いがあるのか? という事です。 メールでの問い合わせの際には「安心だフォンコース」という表現を使って問い合わせましたが、返事の中では「通話相手先限定コース」という表現が使われていました。 その後にサービスセンターへ電話した際に「通話相手先限定コース」に変更してほしいと話すと「Two LINK DATA」への変更の説明を始められました。 もう突っ込む気力もなかったのでそのまま変更してもらいましたが、マイウィルコムで確認すると料金コースは「通話相手先限定利用」になっていました。 という事で、「安心だフォン」と「Two LINK DATA」は、利用端末(や呼ぶ人)によって名称が異なるだけで中身は一緒なのでは無いでしょうか? 通話料金も同じに見えるし。

まあ、だから何だという話ではなくサービスセンターのお姉さんに思いっ切り嘘をつかれた(どこだかに確認してもらった上での返事だったのに)のといらない手間が増えた事がちょっと悲しかっただけです。

 記事を友人にメールする 印刷用画面 

PRICOM 7000

general

silexのアプライアンスサーバ。発売はずっと以前(2002年9月)からされているのですが、つい最近存在に気づきました。家ではsilexのプリントサーバを2台使っている(USB接続とパラレル接続)のですが、これだと1台ですみそうな気がします。せっかくならルータ機能もあれば家の機械が更に一個減らせられるのですが、セキュリティの観点からはつかないでしょうね。

ところでこの製品の説明にはLinux OS搭載と書かれているのですが、サイト内にはGPLの単語は一切見つからず、ファームウェアのダウンロードページには

  • 本ソフトウェアおよびデータに関するすべての権利は、サイレックス・テクノロジー株式会社に帰属します。
  • 本ソフトウェアに対する一部または全部の修正、改変、リバースエンジニアリング、逆アセンブル(逆コンパイル)、あるいはその派生物を作成することはできません。

と書かれてあります。ほぼ4年もの間、誰からも突っ込まれなかったのでしょうか。