Namazu-win32-users-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE:WinChaを使ったインデックス



池浦@福岡県水産海洋技術センターです。


>  阿部@三菱電機と申します。
>
>  mknmzで WinCha(茶筅Windows版)を用いて 
>インデクッスを作れないものかと考えています。
>
>  本MLの過去記事を検索しました所  
>茶筅を使うにはcygwinを用いるとの記事が
>ありました。
>  
>  WinCha を使い、 単語切り出し時に
>毎回WinChaを起動する運用をするならば cygwin 
>を使わずとも mknmz からchasenを利用できるのではと
>思うのですが、このような運用されている方
>いらっしゃいませんでしょうか?
>

 当方は水産関係なので、変わった単語が結構あり、Chasenが
使えないものか試行錯誤しています。

 cygwinを使用すれば可能ということだったのですが、当方の
環境ではcygwinでChasenをコンパイルすると実行エラーが出て
使えない(コンパイルの仕方が悪い?)ので、Windows版Chasen
使用時のmknmzの処理を追いかけていると、どうもWindows版
Chasenの入出力はShiftJis、mknmzはEUCのようでした(はずれて
たらごめんなさい)。

 それでChasen.exeにコンテンツを渡す前にShiftjis化し、分か
ち書きした一時ファイルから内容を取り出した後、処理する前に
EUC化するという処理に書き換えたところ、一応動くようになりま
した。下手なコードですが、下のようなものです。
 たぶん問題があるんだろうとは思いますが、ご参考までに。

 ただ最近の問題としては、やっとChasenを使ってできたインデックスの
単語と、namazu.cgi.exeの分かち書きが異なってしまうため、
インデックスが出来ていても単語がヒットしないという状況が出て
います。namazu.cgi.exeの単語のわかちがきにインデックスを
作成したツール(kakasi or Chasen)が使用できるようにならな
いものでしょうか。


---------------------------------------------------------------------------
(conf.pl 185行)
  $CHASEN = "Chasen -j -F '\%m '";

---------------------------------------------------------------------------

(wakati.pl 80行以降を書き換え)

	my $tmpfile = util::tmpnam("NMZ.wakati");
        util::dprint(_("wakati: using ")."$conf::WAKATI\n");
	# Don't use IPC::Open2 because it's not efficent.
		my $fh_wakati = util::efopen("|$conf::WAKATI > $tmpfile");
		if ($conf::WAKATI eq $conf::CHASEN) {
			$$content = codeconv::eucjp_to_shiftjis($$content);
			print $fh_wakati $$content;
			close($fh_wakati);
			$fh_wakati = util::efopen($tmpfile);
			my @tmp2 = <$fh_wakati>;
			my $line = "";
			my $cont = "";
			foreach $line (@tmp2) {
				$line = codeconv::shiftjis_to_eucjp($line);
				$cont = $cont . $line;
			}
			@tmp = $cont;
		} else {
			print $fh_wakati $$content;
			close($fh_wakati);
			$fh_wakati = util::efopen($tmpfile);
			@tmp = <$fh_wakati>;
		}
	    chomp @tmp;
		unlink $tmpfile;
    }

    return @tmp;
}

1;

---------------------------------------------------------------------------


/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

             福岡県水産海洋技術センター             
             企画情報課       池浦 繁                        
                TEL: 092-806-0854                                 
                FAX: 092-806-5223                                 
                e-mail:s-ikeura_sea@xxxxxxxxxxxxxxxxxxxxxxxxxx    

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/