Ruby Mecabを使用して形態素解析を行う

Ruby Mecabを使用して形態素解析を行う

Rubyで自然言語処理の形態素解析ができる「Mecab」を使用するまでの手順を記述してます。Rubyのバージョンは3.0.0となります。

環境

  • OS CentOS 7.9.2009 (Core)
  • Mecab 0.996
  • Ruby 3.0.0

natto使用

nattoというライブラリを使用すれば簡単にMecabを使用することが可能です。

gemでインストールします。

gem install natto

Mecab使用

rubyから実行してみます。

require "natto"

txt = "本日は雨です。"

natto = Natto::MeCab.new

natto.parse(txt) do |n|
  p n.surface + ":" + n.feature
end

実行結果

"本日:名詞,副詞可能,*,*,*,*,本日,ホンジツ,ホンジツ"
"は:助詞,係助詞,*,*,*,*,は,ハ,ワ"
"雨:名詞,一般,*,*,*,*,雨,アメ,アメ"
"です:助動詞,*,*,*,特殊・デス,基本形,です,デス,デス"
"。:記号,句点,*,*,*,*,。,。,。"
":BOS/EOS,*,*,*,*,*,*,*,*"

必要な要素のみを取得する場合は、以下となります。

「%m」は対象の文字で「%f[0]」で要素の位置を指定することが可能です。

require "natto"

txt = "本日は雨です。"

# %f[0]
natto = Natto::MeCab.new('-F%m\t%f[0]\t%f[7]\n')

natto.enum_parse(txt).each do |n|
  puts n.feature unless n.is_eos?
end

実行結果

本日    名詞    ホンジツ
は      助詞    ハ
雨      名詞    アメ
です    助動詞  デス
。      記号    。