Windows ネイティブ版 Namazu 2.0.15RC1 公開 + 動作チェックに協力していただける方募集2006年01月04日 18時51分50秒

Namazu 2.0.15 をリリースするにあたり、様々な環境での動作チェックを 行う必要があるかと思っています。 このため committer の方を中心とし、動作チェックに協力していただける ボランティアを募集いたします。(一般の方もOK)

Windows 環境で、コンパイル環境を整えるのは大変かと思いますので、 コンパイル済みパッケージを用意しました。

皆様、ふるってご参加ください。(もちろん無保証ですし、エンドユーザ向け のインストーラも用意できていませんので、初心者の方はご遠慮ください。)

(アーカイブファイル) http://www.namazu.org/test/nmz2.0.15RC1-win32.zip

(署名ファイル) http://www.namazu.org/test/nmz2.0.15RC1-win32.zip.sig

(MD5sumファイル) http://www.namazu.org/test/nmz2.0.15RC1-win32.zip.md5

(sha1sumファイル) http://www.namazu.org/test/nmz2.0.15RC1-win32.zip.sha1


募集期間:

 随時

動作チェック期間:

 1/4~1/17 を予定(状況により、変更の可能性あり)

対象OS:

 Windows 各種
 同じ OS でも複数の方が動作チェックに協力していただけると嬉しい

 です。

条件:

 ・C:\ に Win32 ネイティブ版の namazu 2.0.14 をインストールして
   おり、正常に動作していること
 ・ActivePerl 800台を使っていること

 備考:上記以外の環境で動作確認できるバイナリは準備できません。

      ご了承ください。

資格:

 ・Windows, ActivePerl, Namazu について十分な知識があり、
   Namazu 2.0.15RC1 をインストールを行うことのリスクについて
   理解ができる方。

インストール方法:

 1. Namazu 2.0.14 がインストール済みのため、これをバックアップします。
    c:\namazu を c:\namazu-2.0.14 に名前の変更を行います。
 2. nmz2.0.15RC1-win32.zip を C:\ に展開します。
 3. c:\namazu-2.0.15RC1 を c:\namazu に名前の変更を行います。
 4. msvcr71.dll がシステムにインストールされていない場合、これを
    入手し、システムディレクトリにコピーします。
 5. コマンドプロンプト(DOS窓)を開きます。
 6. ppm を起動し、repository を登録します。
    C:\>ppm
    ppm> rep add "Namazu" "http://www.akaneiro.jp/PPMPackages/800/"
 7. rep up コマンドを使用し、"Namazu" が repository の1番にします。
    ppm> rep up 3
    [1] ......
    [2] Namazu
    ppm> rep up 2
    [1] Namazu
 
 8. Perlモジュールをインストールします。
    (インターネット接続環境が必要)
    ppm> install NKF -force
    ppm> install File-MMagic -force
    ppm> install Text-Kakasi -force
    ppm> quit
 9. 環境変数 HOME を設定します。
    (適当なディレクトリがなければ C:\namazu を設定してください。)

アンインストール方法:

 1. c:\namazu を削除します。
 2. バックアップしてあった Namazu 2.0.14 を戻します。
    c:\namazu-2.0.14 を c:\namazu に名前の変更を行います。

 注意:  ・いくつかのモジュールは新しいものに置き換わります。

動作チェック方法:

 1. 環境変数 pkgdatadir に C:\namazu\share\namazu を設定してください。
 2. c:\namazu\pltests に移動し、perl alltests.pl を実行します。
    画面にチェック結果が出力されます。また、test-log ファイルに
    ログが出力されます。 
 3. OS, Perl のバージョンをお知らせください。
 4. 画面に出力された結果をお知らせください。
 5. test-log の中の最初の方に記録される mknmz -C の
    出力結果も省略せずお知らせください。(テスト時に有効となって

  いるフィルタを確認するため)

注意事項:

 - 通常のインストールパッケージではありません。事前に Namazu 2.0.14

  がインストールされており、正常動作している必要があります。

 - 自己責任で Namazu 2.0.15RC1 のインストールを行ってください。
   最悪のケースでは Namazu 2.0.14 に戻せない場合もあります。
 - 大切な文書はバックアップを取った上でご使用ください。開発中のもの
   のため、対象文書を削除する危険があるかもしれません。

pltests の不具合修正2006年01月07日 04時22分50秒

pltests でエラーを見落とす不具合がありました。

Perl の外部コマンドで exit 256 の場合、呼び出し側の $? には 256 << 8 の値が入るはずですが 0 (ノーエラー)になるようです。
($? は 16bit の値ということでしょうか。)

pltests では exit $status としている部分を exit 101 として回避しました。

MacOS X gettext 0.41.2 での不具合2006年01月10日 00時42分39秒

gettext の言語設定は今までにもいろいろと変わって厄介でしたが、
MacOS では gettext の 0.14.2 以降、OS の環境設定で指定された優先言語も使うように修正が加わっていました。

この他、どのバージョンだかわかりませんが、Windows に関しても Windows の設定を使うように修正されていました。

ただ、これらの設定よりも LANGUAGE が優先するようですので、LANGUAGE で設定すれば、特に気にする必要はなくなるようです。

pltests でChaSenの辞書がUTf-8の場合、FAILするように修正2006年01月10日 00時49分28秒

pltests の kakasi-[12].pl, chasen-[12].pl, mecab-[12].pl で "*全* *文* *検* *索*"の文字列で検索するように変更しました。

また、検索対象も html.html のみとしました。

これにより、ChaSen の辞書が UTF-8 のものになっている場合にはテストがFAILするようになりました。

ちなみに Namazu では EUC-JP の辞書でなければなりません。

configure のメッセージ変更2006年01月10日 00時55分32秒

ExtUtils::MakeMakerの新しいバージョンの場合、INSTALLMAN3DIRとINSTALLSITEMAN3DIRを区別するように変更されています。

このため、ホーム以下にインストールする場合、configure のメッセージ

% perl Makefile.PL LIB=$HOME/lib INSTALLSITEMAN3DIR=$HOME/man

の通りに行うとエラーが発生します。
このため、

ExtUtils::MakeMaker older
% perl Makefile.PL LIB=$HOME/lib INSTALLMAN3DIR=$HOME/man

ExtUtils::MakeMaker newer
% perl Makefile.PL LIB=$HOME/lib INSTALLSITEMAN3DIR=$HOME/man

と併記するようにしました。

mecab-ipadic-2.7.0-20051110 の make 完了せず2006年01月11日 03時28分22秒

MeCab 0.90rc6 の動作確認を行うために
mecab-ipadic-2.7.0-20051110.tar.gz
の make をしたのですが、make が完了せず、無限ループ(あるいは非常に時間がかかっている)状態におちいりました。

:
reading ./Others.csv .. 2
reading ./Postp-col.csv .. 90
reading ./Postp.csv .. 146
reading ./Prefix.csv .. 206
reading ./Suffix.csv .. 1294
reading ./Symbol.csv .. 198
reading ./Verb.csv .. 128946
--> ここで HDD をずっとアクセスしている状態となります。

プロセスを見ると以下の処理で無限ループになるようです。

17752 pts/1 S 0:00 make
17753 pts/1 D 0:45 perl /usr/local/libexec/mecab/mecab-dict-index -c euc
17755 pts/1 S 0:00 /usr/local/libexec/mecab/mecab-tool --darts --input=-

環境は以下の通りです。
* Linux 2.4.20-31.9
* perl, v5.8.0 built for i386-linux-thread-multi
(perl, v5.8.3 built for i686-linux でもダメ)
* gcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)


ちなみに ChaSen 用の ipadic-2.7.0 では辞書の作成ができています。

重み付け検索2006年01月11日 13時01分29秒

検索式に重みを指定することで、スコアを操作する検索です。
検索結果をスコア順で表示する場合には、重みを大きくしたものはより上位に表示されます。

例えば検索式が "word1^5 or word2^2"の場合、"word1" の重みが5で "word2"の重みが2となり、"^" は区切り記号となります。

単純な重み付けの実装としては、単語のみに重みの指定ができるものです。

より複雑なものとしては、単語、部分一致検索式、正規表現検索式が考えられます。
フレイズ検索式の場合は、個々の単語に重みを付けることや、フレイズ全体に重みを付けることを検討しなければなりません。

また、グループ検索式にも重みを付けることができても良いでしょう。
フィールド検索式も同様です。
AND,OR,NOT検索は、重み付けされた語を使って演算するだけですので、特に何か特別な処理が必要ということはないでしょう。

注意しなければならないのは、単純な重み付けの実装として、単語のみとした場合でも日本語の場合は、分解してフレイズ検索になることがあることです。
この場合には、分解された個々の単語に指定した同じ重みを付けるのか、
あるいは分解された場合は、指定した重みは無効(重み1)として処理するのかのいづれかを選択しなければならないでしょう。

この例では、重みの区切り記号として "^" を使っていますので、"^" 自体を検索したい場合のことを少し考慮しなければならないということを忘れてはいけません。
Namazu では、"(",")", "{", "}", "\"", "*", "/", "+",":" 等の記号(メタ文字)に特別な意味を持たせていますが、そのほとんどが単語の先頭か末尾といった位置に限られるため、メタ文字のエスケープについてはあまり考えられていません。
メタ文字単体を検索する場合には "^" や {^} といった中身が単一の単語のフレイズ検索の形式で指定する方法があります。(この場合は、単語検索として処理されます。)

MeCab 0.90rc6 その後2006年01月12日 05時11分06秒

MinGw ではipadicの辞書生成時に

'-' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

とエラーになりました。
open (S1, "|-") がダメなのでしょう。

cygwin では、無事辞書の生成ができましたが、mecab を実行すると

Tagger.cpp(222): tokenizer.cpp(177): cannot find entry for: DEFAULT

とエラーになりました。
どうも RC ファイルの設定の問題のようだが、詳細は不明。

Linux で Juman 辞書の生成を行ってみたが、やはり途中で無限ループに入りました。

...どれもまともに動かすことができていません。やれやれ。

MeCab-perl-0.90rc6 対応2006年01月13日 02時47分34秒

どうにか MeCab-0.90rc6 を動かすことができたので、MeCab-perl-0.90rc6 対応を行いました。

pnamazu の整理2006年01月13日 17時17分23秒

pnamazu のプログラムをV2 のインデックスにのみに対応するように整理するのも良いのではないかと思っています。

現在では Namazu 2.0.X が主流であり、1.X のインデックスに対応している必要はもはやないものと思われます。

いくつかの実験的な機能は削除して良いかもしれません。

プログラムを整理しておけば、Namazu 2.2.X への対応にも役立でしょう。