[MeCab+NEologd]形態素解析ソフトのMacへのインストール・実行方法


MeCabとは

MeCabはオープンソースの形態素解析エンジンで、奈良先端科学技術大学院大学出身、現GoogleソフトウェアエンジニアでGoogle 日本語入力開発者の一人である工藤拓[1][2]によって開発されている。名称は開発者の好物「和布蕪(めかぶ)」から取られた。
参照元:Wikipedia:MeCab

ほうほう。

NEologdとは

mecab-ipadic-NEologd は、多数のWeb上の言語資源から得た新語を追加することでカスタマイズした MeCab 用のシステム辞書です。
Web上の文書の解析をする際には、この辞書と標準のシステム辞書(ipadic)を併用することをオススメします。
参照元:mecab-ipadic-neologd/README.ja.md

公式的にはこんな説明。

mecab-ipadic-NEologd は形態素解析用の辞書ではなく「単語分かち書き」用の辞書です。
この辞書を使って分割した際の単語の粒度が形態素になるか分からないので、単語分かち書きと呼んでいます。
参照元:新語・固有表現に強い「mecab-ipadic-NEologd」の効果を調べてみた

なるほど。新語・固有表現に強い。
若者言葉にも強そうなイメージ。

MeCabとNEologdのインストール方法

homebrewはインストール済みの想定で話を進めます
(一応公式のコマンド貼り付け)

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# ちなみに、Ruby 2.6が必要。※Macには搭載されているはず
Homebrew requires Ruby 2.6 which was not found on your system.
$ brew install mecab
$ brew install mecab-ipadic
$ brew install git curl xz
$ git clone --depth 1 [email protected]:neologd/mecab-ipadic-neologd.git
$ cd mecab-ipadic-neologd
$ ./bin/install-mecab-ipadic-neologd -n

簡単だw
(2021/3/17現在有効)

やったこと解説

  • mecabインストール
  • mecabの標準的な辞書ipadicをインストール
  • git, curl, xzコマンドをインストール(必要に応じて)
  • mecabの強化版辞書neologdのリポジトリをインストール
    • ※自分の好きなディレクトリにcdしてからgit cloneするといいかも
    • --depth 1はmaster ブランチにある最新のコミットだけを落とせるいわゆる「シャロークローン」のオプション
  • インストールしたリポジトリのディレクトリに移動
  • neologdを実際にインストール
    • -nnewestを取得するオプション

インストール前のNEologdオプションの確認方法

$ ./bin/install-mecab-ipadic-neologd -h
Usage: install-mecab-ipadic-NEologd [OPTIONS]
  This script is the installer of mecab-ipadic-NEologd

Options:
  -h, --help
  -v, --version
  -p, --prefix /PATH/TO/INSTALL/DIRECTORY
     Set any directory path where you want to install
  -y, --forceyes
     If you want to install regardless of the result of test
  -u, --asuser
     If you want to install to the user directory as an user
  -n, --newest
     If you want to update mecab-ipadic-NEologd
  -a, --install_all_seed_files
     If you want to install all seed files(seed/neologd-*.xz)
  -c, --install_only_patched_ipadic
     If you want to install only patched IPADIC
# ~省略:もっと出てきます~

MeCabで形態素解析を試してみる

今の気持ちをechoしてみました。(お腹グ〜)

mecab-ipadicで実行した場合

$ echo "最強のインスタ映えラーメン屋さんに行きたい" | mecab
最強  名詞,一般,*,*,*,*,最強,サイキョウ,サイキョー
の 助詞,連体化,*,*,*,*,の,ノ,ノ
インスタ    名詞,一般,*,*,*,*,*
映え  名詞,一般,*,*,*,*,映え,ハエ,ハエ
ラーメン    名詞,一般,*,*,*,*,ラーメン,ラーメン,ラーメン
屋 名詞,接尾,一般,*,*,*,屋,ヤ,ヤ
さん  名詞,接尾,人名,*,*,*,さん,サン,サン
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
行き  動詞,自立,*,*,五段・カ行促音便,連用形,行く,イキ,イキ
たい  助動詞,*,*,*,特殊・タイ,基本形,たい,タイ,タイ
EOS

mecab-ipadic-neologdで実行した場合

$ echo "最強のインスタ映えラーメン屋さんに行きたい" | mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd
最強  名詞,一般,*,*,*,*,最強,サイキョウ,サイキョー
の 助詞,連体化,*,*,*,*,の,ノ,ノ
インスタ映え  名詞,固有名詞,一般,*,*,*,インスタ映え,インスタハエ,インスタハエ
ラーメン屋 名詞,固有名詞,一般,*,*,*,ラーメン屋,ラーメンヤ,ラーメンヤ
さん  名詞,接尾,人名,*,*,*,さん,サン,サン
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
行き  動詞,自立,*,*,五段・カ行促音便,連用形,行く,イキ,イキ
たい  助動詞,*,*,*,特殊・タイ,基本形,たい,タイ,タイ
EOS

二つの比較をしてみると

いやいや、上記ウォーリーを探せ状態!!!!!!違いなくない!??!
って思っていたところ、

# ipadic
インスタ    名詞,一般,*,*,*,*,*
映え  名詞,一般,*,*,*,*,映え,ハエ,ハエ
ラーメン    名詞,一般,*,*,*,*,ラーメン,ラーメン,ラーメン
屋 名詞,接尾,一般,*,*,*,屋,ヤ,ヤ

# neologd
インスタ映え  名詞,固有名詞,一般,*,*,*,インスタ映え,インスタハエ,インスタハエ
ラーメン屋 名詞,固有名詞,一般,*,*,*,ラーメン屋,ラーメンヤ,ラーメンヤ

おおおおお確かに。

ラーメン屋は、ラーメン屋として固有表現として認識してほしかったし、
インスタ映えは、新語として固有名詞として認識して欲しかったので、
なんともそのおもてなし配慮が大変にありがたい。

よかったw

まとめ

自分でこの辞書作成と単語の種類の区別等をやろうとしたら、一億万光年かかりそうだったので、
ライブラリって・・・
なんて便利なんだ(⌒▽⌒)✨

今度はこれを使ったアプリケーションを作ってみたいと思います〜

以上、ありがとうございます。