Lingua::JA::Summarize ver0.02

さっそくアップデートされていますね。

Charsbar さんの Win32 用パッチは、まだ適用していません。現時点ではソースコード中に日本語の文字が EUC でハードコードされているので、make install するだけでは、どのみち Windows 上で動作しないと思うからです。
 ソースコード中に日本語文字を埋め込む方法って、どういうのがお行儀のいい方法なんでしょう? 文字参照で書いて、実行時に Jcode::convert するのが正解?

いくつかに問題を分けますと……

1) Best Practiceはわかりませんが、モジュールの中にEUC-JP文字列がハードコードされていたからってWindowsで動かないということはありません。perl的な美しさを求めるならutf8で書いて、mecabの出力結果もutf8に変換するのがよいのかもしれませんが、mecabのデフォルトがeucであることを思うと現状ママでもよいように思います。

2) Windows用と書いたものの、昨日のパッチは、a) mecabを通すテキストの文字コードmecab辞書の文字コードにあわせる、b) パイプを通すときに現状ママだとWinでうまく動かなかったので、オプションの\tや\nが展開されないようにする、c) mecabから返ってきたテキストの文字コードをモジュール内部の文字コードにあわせる必要があることを示すためのもので、実際にはWin環境固有の問題を解決するためのものではありません。

3) つまり、たとえ*nix環境でもeuc-jp辞書を使っているmecabUTF-8Shift_JISのテキストを渡せば正しく形態素解析できなくておかしな結果になりますし、Win環境でもeuc辞書をインストールしてeucテキストを渡せば正常動作します。

4) ただ、Winユーザはたいていバイナリをインストールするでしょうし、WinバイナリにはShift_JIS辞書がバンドルされているので、MSWinならsjis置換した方がうまくいく可能性は高いだろう、と。実際にはオプションでmecab辞書のエンコードを指定できるようにしたうえで、デフォルト値をOS分岐させるのが適切だろうと思います。