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
実行結果
本日 名詞 ホンジツ
は 助詞 ハ
雨 名詞 アメ
です 助動詞 デス
。 記号 。
-
前の記事
centos7 ldapsearchを使用できるようにする 2021.03.16
-
次の記事
SQL Server エラー「ロック要求がタイムアウトしました」が発生した場合の対処法 2021.03.16
コメントを書く