dune
FZH01****@nifty*****
2005年 5月 4日 (水) 16:24:13 JST
極悪です。 MSVCR71.dll が PC に入ってないと morogram のスタンドアロン版が動かな い不具合を修正し、morogram-0.7.1x(CJKT)_r1.36.zip として sourceforge にアップしました(v1.35 => v.1.36)。 以下、おまけ。 morogram の出力2つを比較し、共通部分を出力する perl スクリプトです。 morogram の utf8 出力専用。ngsm に足りないので mgsm.pl です。 --^ここから mgsm.pl #!/usr/local/bin/perl use strict; #use Encode qw(from_to); #my $time = time; END{ print STDERR "<<<",time - $time,">>>\n"; } my $ffile = shift or die; my $gfile = shift or die; sub gets{ my $fh = shift or die; local $_ = <$fh>; m/^(\d+)\t(.+)\t(\d+)\n/s or return; return($1,$2,$3); } sub puts{ my($file,$f,$s,$n) = @_; from_to($s,"utf8" => "sjis"); printf "%s\t%3d\t%s\t%3d\n",$file,$f,$s,$n; } open(my $ffh,$ffile) or die; open(my $gfh,$gfile) or die; my($ff,$fs,$fn) = gets($ffh); my($gf,$gs,$gn) = gets($gfh); while(1){ my $cmp = $fn == $gn ? $fs cmp $gs : $gn - $fn; if($cmp == 0){ # puts($ffile,$ff,$fs,$fn); # puts($gfile,$gf,$gs,$gn); print $ff+$gf,"\t$fs\t$fn\t$ff\t$gf\n"; ($ff,$fs,$fn) = gets($ffh) or last; ($gf,$gs,$gn) = gets($gfh) or last; }elsif($cmp < 0){ # puts($ffile,$ff,$fs,$fn); ($ff,$fs,$fn) = gets($ffh) or last; }else{ # puts($gfile,$gf,$gs,$gn); ($gf,$gs,$gn) = gets($gfh) or last; } } while($ff){ # puts($ffile,$ff,$fs,$fn); ($ff,$fs,$fn) = gets($ffh) or last; } while($gf){ # puts($gfile,$gf,$gs,$gn); ($gf,$gs,$gn) = gets($gfh) or last; } __END__ --$ ここまで mgsm.pl 使用例:古今集(kokin.txt)と源氏物語(genji.txt)で試します。 件の「あひ見むと頼め」は「頼」が genji.txt では漢字、kokin.txt では 仮名なのでこの結果には出てきません、残念。kakasi 等で前処理すれば、 表記も文の意味も無視して、音だけで比較できるはず。 (注)tconv は utf8 を sjis に変換して出力するコマンドです。 D:$ morogram.exe --p --f=1,0 --g=5,10 kokin.txt 1>mg_kokin.txt 2>nul D:$ morogram.exe --p --f=1,0 --g=5,10 genji.txt 1>mg_genji.txt 2>nul D:$ perl mgsm.pl mg_kokin.txt mg_genji.txt 1>mg_result.txt D:$ tconv utf-8 Shift_JIS mg_result.txt | more 3 しきものにぞありける 10 2 1 2 の涙なりけりおろかな 10 1 1 2 りけるひぐらしの鳴く 10 1 1 2 惜しきものにぞありけ 10 1 1 2 涙なりけりおろかなる 10 1 1 3 いたづらになりぬべ 9 1 2 4 きものにぞありける 9 2 2 2 けるひぐらしの鳴く 9 1 1 3 しきものにぞありけ 9 2 1 2 なりけりおろかなる 9 1 1 2 の涙なりけりおろか 9 1 1 2 むなしき空に満ちぬ 9 1 1 2 りけるひぐらしの鳴 9 1 1 2 りまた知る人もなき 9 1 1 2 れば憂さこそまされ 9 1 1 2 惜しきものにぞあり 9 1 1 2 涙なりけりおろかな 9 1 1 5 いたづらになりぬ 8 1 4 2 えぬものなればか 8 1 1 2 きものと思ひ知り 8 1 1 4 きものにぞありけ 8 2 2 2 き人の心なりけり 8 1 1 2 けるひぐらしの鳴 8 1 1 3 こともなからまし 8 1 2 3 こりずまにまたも 8 1 2 4 ころにもあるかな 8 2 2 3 しきものにぞあり 8 2 1 2 じと思ひしものを 8 1 1 3 たづらになりぬべ 8 1 2 2 だに恋しきものを 8 1 1 2 つのためになれる 8 1 1 2 てあるべきものを 8 1 1 2 ても久しくなりぬ 8 1 1 2 て身のいたづらに 8 1 1 2 とは思はざりしを 8 1 1 3 とまるものならば 8 2 1 2 なしき空に満ちぬ 8 1 1 2 なりけりおろかな 8 1 1 2 にこそありけれみ 8 1 1 2 にめづらしき人を 8 1 1 2 にや思ひなされむ 8 1 1 2 のどけき春の日に 8 1 1 2 のめづらしきかな 8 1 1 2 の下露は雨にまさ 8 1 1 2 の涙なりけりおろ 8 1 1 2 ば憂さこそまされ 8 1 1 2 また知る人もなき 8 1 1 2 むなしき空に満ち 8 1 1 2 むものならなくに 8 1 1 2 もいかがとぞ思ふ 8 1 1 4 もなりにけるかな 8 3 1 8 ものにぞありける 8 6 2 2 りけりおろかなる 8 1 1 2 りけるひぐらしの 8 1 1 2 りまた知る人もな 8 1 1 2 るひぐらしの鳴く 8 1 1 2 ればいかにせむと 8 1 1 2 れば憂さこそまさ 8 1 1 2 を折りてけるかな 8 1 1 5 世にこそありけれ 8 3 2 2 人のとがむる香に 8 1 1 2 惜しきものにぞあ 8 1 1 2 昨日今日とは思は 8 1 1 2 涙なりけりおろか 8 1 1 〜 以下省略 〜 -- 極悪, mailto:FZH01****@nifty*****