Security Record

セキュリティ全般に関する情報を発信しています

形態素解析という言語処理ができるMecabを使ってみた

形態素解析とは?

自然言語の最小単位「形態素」に分割して品詞などを判別する処理の事を言います。 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に関する忘備録でした!