Mecabってなに?
- 形態素分析を行ってくるオープンソースのツールです
- 形態素分析は自然言語処理の手法の1つで、生成AIブームもあり注目されています
- 文章を解析して、名詞や動詞などの要素の単位に分解してくれる
- 京都大学情報学研究科と日本電信電話株式会社コミュニケーション科学基礎研究所が共同で開発した
- perl/ruby/python/java/C#に対応している
- ChaSenやKAKASIといった他ツールを比べて高速
環境
Ubuntu20.4
Mecabのインストール手順
インデックスファイルを最新にします。
$sudo apt-get update
インストールするのに必要なライブラリは、ググるとサイトによって色々な情報が散見されます。
mecab libmecab-dev mecab-ipadic-utf8
こちらの3つだけでOKにしているサイトもいくつかありますが、一番多くのライブラリ(6つ)をインストールしている手順を参考にしました。
$sudo apt-get install libmecab2 libmecab-dev mecab mecab-ipadic mecab-ipadic-utf8 mecab-utils
mecab-ipadic-NEologdという新出単語や固有表現に強いという辞書もインストールします。適当なディレクトリを作成して、そこにダウンロードします。
$mkdir download
$git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
ダウンロードしたディレクトリに移動して、インストール用のスクリプトファイルを実行します。
$cd mecab-ipadic-neologd
$./bin/install-mecab-ipadic-neologd -n -a
オプションnを付けると、インストールと同時に、mecab-ipadic-NEologdが最新版にアップデートされます。オプションaを付けると、すべてのseedファイルがインストールされるようになります。オプションの詳細は、スクリプトファイルの中に書かれています。
インストールはなぜかわりと時間がかかります。ご丁寧にカウンターが走ります。
途中で、mecab-ipadic-NEologdをインストールするか聞いてくるので、yesを入力します。
インストールされたことを確認します。
$which mecab
/usr/bin/mecab
git cloneでダウンロードしたファイルは削除しておきます。
$rm -rf download
動作確認です。
$ mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd
UbuntuにMecabのインストールができました。
Ubuntu 名詞,固有名詞,一般,*,*,*,Ubuntu,ウブントゥ,ウブントゥ
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
Mecab 名詞,一般,*,*,*,*,*
の 助詞,連体化,*,*,*,*,の,ノ,ノ
インストール 名詞,一般,*,*,*,*,インストール,インストール,インストール
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
でき 動詞,自立,*,*,一段,連用形,できる,デキ,デキ
まし 助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。 記号,句点,*,*,*,*,。,。,。
EOS
参考
公式サイト
https://taku910.github.io/mecab/#usage-tools
Rubyでmecabを使う
Rubyでmecabを使うには、nattoというgemを使うようです。
Gemfileにgemを追加して、インストールします。
gem 'natto'
$bundle install
サンプルコードです。
require 'natto'
txt = "本日は晴天なり。"
natto = Natto::MeCab.new
natto.parse(txt) do |n|
puts "#{n.surface}: #{n.feature}"
end
このような結果になります。
$ruby hoge.rb
本日: 名詞,副詞可能,*,*,*,*,本日,ホンジツ,ホンジツ
は: 助詞,係助詞,*,*,*,*,は,ハ,ワ
晴天: 名詞,一般,*,*,*,*,晴天,セイテン,セイテン
なり: 助動詞,*,*,*,文語・ナリ,基本形,なり,ナリ,ナリ
。: 記号,句点,*,*,*,*,。,。,。
: BOS/EOS,*,*,*,*,*,*,*,*