形態素解析とは?
自然言語の最小単位「形態素」に分割して品詞などを判別する処理の事を言います。 Mecabを使用するとその形態素解析が簡単に出来るっぽいので実際に試してみました。
以下wikipediaより抜粋 自然言語処理の分野における主要なテーマのひとつであり、機械翻訳やかな漢字変換など応用も多い(もちろん、かな漢字変換の場合は入力が通常の文と異なり全てひらがなであり、その先に続く文章もその時点では存在しないなどの理由で、内容は機械翻訳の場合とは異なったものになる)。
実行環境
macOS Mojavi バージョン10.14.5
Windowsの場合はVirtualBox
などで仮想環境を構築してから試すか、
公式サイトにexe形式のインストーラーが用意されているのでそれで試すことも可能です。
インストール
以下コマンドでインストールします。
brewコマンド
はMacOS用のパッケージ管理マネージャーのHomebrewをインストールすると使用できます。
$ brew install mecab mecab-ipadic
以下のようなメッセージが出ます。 インストールには10分くらいかかるのでしばらく待ちます。
ysk-mac:sample$ brew install mecab mecab-ipadic Updating Homebrew... ==> Downloading https://homebrew.bintray.com/bottles-portable-ruby/portable-ruby-2.6.3.mavericks.bottle.tar.gz ######################################################################## 100.0% ==> Pouring portable-ruby-2.6.3.mavericks.bottle.tar.gz ==> Homebrew has enabled anonymous aggregate formulae and cask analytics. Read the analytics documentation (and how to opt-out) here: https://docs.brew.sh/Analytics ==> Auto-updated Homebrew! Updated 1 tap (homebrew/core). ------------- 中略(結構長いです) ------------- ==> Downloading https://homebrew.bintray.com/bottles/mecab-0.996.mojave.bottle.3 ==> Downloading from https://akamai.bintray.com/ef/ef261d203140305ca8c9e4b7311c6 ######################################################################## 100.0% ==> Pouring mecab-0.996.mojave.bottle.3.tar.gz /usr/local/Cellar/mecab/0.996: 20 files, 4.2MB ==> `brew cleanup` has not been run in 30 days, running now... Pruned 0 symbolic links and 13 directories from /usr/local ==> Downloading https://homebrew.bintray.com/bottles/mecab-ipadic-2.7.0-20070801 ==> Downloading from https://akamai.bintray.com/30/30967b4167d34f05c79f185d71a40 ######################################################################## 100.0% ==> Pouring mecab-ipadic-2.7.0-20070801.mojave.bottle.tar.gz ==> Caveats To enable mecab-ipadic dictionary, add to /usr/local/etc/mecabrc: dicdir = /usr/local/lib/mecab/dic/ipadic ==> Summary /usr/local/Cellar/mecab-ipadic/2.7.0-20070801: 16 files, 50.6MB ==> Caveats ==> mecab-ipadic To enable mecab-ipadic dictionary, add to /usr/local/etc/mecabrc: dicdir = /usr/local/lib/mecab/dic/ipadic
mecabを試してみる
インストールに成功したらmecab
というコマンドが使えるようになっているのでmecabコマンドを実行したあと、解析してみたい日本語を入力します。
とりあえずオプションを指定しないで実行してみます。
$ mecab 吾輩は猫である 吾輩 名詞,代名詞,一般,*,*,*,吾輩,ワガハイ,ワガハイ は 助詞,係助詞,*,*,*,*,は,ハ,ワ 猫 名詞,一般,*,*,*,*,猫,ネコ,ネコ で 助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ ある 助動詞,*,*,*,五段・ラ行アル,基本形,ある,アル,アル EOS 東京特許許可局 東京 名詞,固有名詞,地域,一般,*,*,東京,トウキョウ,トーキョー 特許 名詞,サ変接続,*,*,*,*,特許,トッキョ,トッキョ 許可 名詞,サ変接続,*,*,*,*,許可,キョカ,キョカ 局 名詞,接尾,一般,*,*,*,局,キョク,キョク EOS
簡単に解析できました! オプションなしで解析した場合の結果は左から 表層形 \t 品詞 , 品詞細分類1 , 品詞細分類2 , 品詞細分類3 , 活用型 , 活用形,原形 , 読み ,発音 となっています。
次に-O オプションを使い品詞ごとスペースを入れるようにしてみます。
$ mecab -O wakati 吾輩は猫である 吾輩 は 猫 で ある
こちらも精度高く分割されました。 いくつかの単語で試してみましたが、解析の精度はだいぶ高いようです。
関連ライブラリ
こちらは実際に試していないですが、php-mecab
というライブラリを使用する事によって、プログラム上で解析して、解析結果をいろいろと加工する事が可能になります。
php-mecab
使ってみた感想
macに導入した結果インストールは10分位で試すことができました。php-mecabなどの関連ライブラリもあるのでプログラムで解析した結果を加工する事ができたらいろいろな可能性がありそうなライブラリでした。(例えば、フリガナが自動で出力されるのでドキュメントに自動でフリガナをつけるプログラムなどは割と簡単にできそうです)
mecabに関する忘備録でした!