hakeの日記

Windows環境でプログラミングの勉強をしています。

Anthy 8529

がdipusさんトコで公開されていたので入れ替え。
メーリングリストで書かれていたものの、前の8517では使用できなかった~/.anthy/private_words_defaultが使用できるようになりました。このバージョンからanthy-dic-toolで単語の登録を行うとprivate_words_defaultに登録されるようになりますね。private_words_defaultはUTF8なテキストなので直接編集も可能です。フォーマットはこんな感じ

かっこ #T37*1000 「」
ざうるす #T00*1 SL-C3000

追記

と思ったら、再起動をしたら機能しないっス(^^ゞ
どうやら再起動を忘れていて前のバージョンが生きていただけみたいだった
anthy-dic-toolの対象もprivate_words_defaultになるとすると
これ以降のAnthyでは辞書登録がマトモに使用できなくなるということなのか?いやだなぁ

追記

追記1のは、まっさらな~/.anthyを作成してanthy-dic-tool --loadを行った状態。これだと上手く行かないっぽい。
private_dict_default.tt等の従来のファイルをそのままにした状態でprivate_words_defaultに直接追加を行うと候補に登場するようになった。これはこれで変な話なのだが(^^ゞ まだ仕様変更の過渡期ということでしょうか。

追記

上手くいかない原因判明。private_words_defaultを読みでソートしていなかった所為でした(^^ゞ メーリングリスト良く読めよ < 自分 orz。anthy-dic-tool --loadの出力はソートされないのね。
読み部分が記号だったりして順序が不明の場合は読みの文字コード(16進)をRubyで確認、private_words_defaultはutf8なので注意。

require "kconv"

"あいうえお".toutf8.unpack("H*")


private_words_defaultをソートしてprivate_words_default.newを作成

#!/usr/bin/env ruby
$KCODE = "u"
require "kconv"

h = Hash.new
File.foreach("private_words_default") do |line|
	line.chomp!
	/^(.*?) .*$/ =~ line
	key = $1
	unless h.has_key?(key)
		h[key] = Array.new
	end
	h[key].push(line)
end

#p h

list = h.keys.sort
File.open("private_words_default.new", "w") do |f|
	list.each do |k|
		h[k].each do |str|
			f.puts str
			puts str.toeuc
		end
	end
end