mecabで分かち書き
分かち書きだけしたい時、parseToNodeしてnode.surfaceで文字だけ(品詞としての情報などを除いて)取れる
mecab-split-terms.rb
#!/usr/bin/env ruby require 'rubygems' require 'MeCab' exit if ARGV.size < 1 puts ARGV.to_s node = MeCab::Tagger.new.parseToNode(ARGV.to_s) while node do puts node.surface # 分かち書きされた文字だけ node = node.next end puts '*'*5 # 出力を自前でparse puts MeCab::Tagger.new.parse(ARGV.to_s).map{|i| i.split(/\t/).first}.delete_if{|i| i =~ /^EOS/}
実行
ruby mecab-split-terms.rb 味に厚みがある、しかも糖質ゼロ
味に厚みがある、しかも糖質ゼロ 味 に 厚み が ある 、 しかも 糖 質 ゼロ ***** 味 に 厚み が ある 、 しかも 糖 質 ゼロ