bsfileter+chasenメモその2全体に公開
2012年11月18日16:22
rubyを1.9にしたらmixi_backupが動かなくなったので結局1.8版に変更。
でも今度は文字コードの変換にencodeが使えなくなったので、以下のように修正。

--- bsfilter.orig 2010-11-20 19:07:46.000000000 +0900
+++ bsfilter 2012-11-18 16:14:13.000000000 +0900
@@ -303,4 +303,7 @@
end
end
+ def Iconv.eucjp2u(str)
+ return (Iconv.safe_iconv(CODESET_UTF8, CODESET_EUCJP, str))[0]
+ end
def Iconv.u2eucjp(str)
return NKF::nkf('-e -E -X -Z0', (Iconv.safe_iconv(CODESET_EUCJP, CODESET_UTF8, str))[0])
@@ -1059,5 +1062,5 @@
end
when "chasen"
- Chasen.getopt("-F", '%H %m\n', "-j")
+ Chasen.getopt("-F", '%H %m\n', "-i", "w")
@method = Proc::new {|s| chasen(s)}
when "kakasi"
@@ -1129,9 +1132,10 @@
return []
end
+ strutf=Iconv.eucjp2u(str)
array = Array::new
- Chasen.sparse(str).split("\n").each do |hinshi_token|
+ Chasen.sparse(strutf).split("\n").each do |hinshi_token|
if (hinshi_token =~ /(.*) (.*)/)
- hinshi = $1
- token = $2
+ hinshi = Iconv.u2eucjp($1)
+ token = Iconv.u2eucjp($2)
if (hinshi == "\xcc\xbe\xbb\xec")
if ((token =~ Reg_kanji_katakana) || (token.length > 2))
@@ -3411,4 +3415,7 @@
@options["message-fh"].printf("combined probability %s %d %f\n",
fh.path, number, token_db.probability)
+ else
+ @options["message-fh"].printf("%d %f\n",
+ number, token_db.probability)
end
number += 1

最後のは、標準入力でも結果が標準出力に返るようにした変更。

コメント