「mecab」は、日本語の形態素解析エンジンです。
これを、UbuntuでRubyを使って動かします。
# Rubyでmecabを使うためのgem
sudo gem install natto
# mecab関連
sudo apt update && sudo apt install -y mecab libmecab-dev mecab-ipadic-utf8
# mecab_pathを指定しないとエラーになる。
export MECAB_PATH=/usr/lib/libmecab.so.2
とりあえずmecab本体を確認。
echo '何故空は青いの?' | mecab
何故 副詞,助詞類接続,*,*,*,*,何故,ナゼ,ナゼ
空 名詞,一般,*,*,*,*,空,ソラ,ソラ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
青い 形容詞,自立,*,*,形容詞・アウオ段,基本形,青い,アオイ,アオイ
の 助詞,終助詞,*,*,*,*,の,ノ,ノ
? 記号,一般,*,*,*,*,?,?,?
EOS
文字化けもしていない。おk。
mecab -P | grep config-charset
#=> config-charset: UTF-8
ちゃんとUTF-8。
Rubyでテスト
example.rb
Encoding.default_external = 'UTF-8'
require 'natto'
text = 'すもももももももものうち'
nm = Natto::MeCab.new
nm.parse(text) do |n|
puts "#{n.surface}\t#{n.feature}"
end
実行結果
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
BOS/EOS,*,*,*,*,*,*,*,*
おk.