Pyon's Diary
成る可くJIS X 0213:2004對應MSフォント(5.0)、IPAフォント(003.02)で御覽下さい
2010-03-27 舊 平成廿貳年如月拾貳日丙子 (土・曇) [長年日記]
江戸川公園。(江戸川橋)
最近寒い日が續いてゐるので明日の花見が出來るかどうか少し心配になつたので、圖書館の歸りに江戸川公園に行つて來た。
暖かい日は無かつたのに川沿ひの櫻は五分咲きに成つてゐた。
風が吹いてゐる中、車座に成つて盛り上がつてゐる花見客もちらほらとゐた。
此なら明日の花見も大丈夫さう。
Ruby (1.9.1)でMeCab (0.97)を使つた時の文字コード。
けふ少し嵌つた。UTF-8な文字列をMeCabにパースさせると戻つてきたデータの文字コードはASCII-8BITに成つてゐた。
#!/opt/ruby/bin/ruby # -*- coding: utf-8 -*- require 'MeCab' text = "明日花見が出来ると良いな。" mecab = MeCab::Tagger.new node = mecab.parseToNode(text) p text.encoding p node.surface.encoding
此を實行すると以下のやうになつた。
% ruby test_mecab.rb #<Encoding:UTF-8> #<Encoding:ASCII-8BIT>
此に氣附かず可成りの時間を無駄にした。
追記。(2010/03/28)
- MeCab: Yet Another Part-of-Speech and Morphological Analyzer
- スクリプト言語のバインディング -- MeCab: Yet Another Part-of-Speech and Morphological Analyzer
- LiveCoding行ってきましたよ & MeCabメモ - もち
追記。(2010/03/28)
以下のやうにメソッドを追加して使ふ事にした。
class MeCab::Node
def normal_node?
MeCab::MECAB_NOR_NODE == n.stat
end
def unknown_node?
MeCab::MECAB_UNK_NODE == n.stat
end
def bos_node?
MeCab::MECAB_BOS_NODE == n.stat
end
def eos_node?
MeCab::MECAB_EOS_NODE == n.stat
end
def each
node = self
while node
if n.normal_node? or n.unknown_node?
yield node
end
node = node.next
end
end
def categories
self.feature.force_encoding('UTF-8').split(/,/).map{|c|
'*' == c ? nil : c
}
end
def category
self.categories[0]
end
def subcategories
self.categories[1,2,3]
end
def root_form
self.categories[6]
end
def noun?;
'名詞' == self.category
end
def verb?
'動詞' == self.category
end
def adjective?
'形容詞' == self.category
end
end
[ツッコミを入れる]
[]