MacでRubyを使ってMeCabを利用する準備

形態素解析など言語解析業界では Python のほうがメジャーなようです。でも Rubyist としてはそこでも Ruby で突き進んでいきたいわけです(速度は気にしないという前提)。なので Ruby での使い方をやっていきます。

MeCabとは

MeCab (和布蕪)とは
MeCab京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所 共同研究ユニットプロジェクトを通じて開発されたオープンソース 形態素解析エンジンです。 言語, 辞書,コーパスに依存しない汎用的な設計を 基本方針としています。 パラメータの推定に Conditional Random Fields (CRF) を用 いており, ChaSenが採用している 隠れマルコフモデルに比べ性能が向上しています。また、平均的に ChaSen, Juman, KAKASIより高速に動作します。 ちなみに和布蕪(めかぶ)は, 作者の好物です。
MeCab: Yet Another Part-of-Speech and Morphological Analyzer

ねばねば…。

HomebrewでMeCab本体とIPA辞書をインストール

あとでリンクを載せている、 heroku-buildpack-mecab で使える MeCab のバージョンが0.996なので、それを入れます。
さて。 MeCabを入れる前に mecab gem をインストールしようとすると怒られます(当然)。

$ gem install mecab
Fetching: mecab-0.996.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing mecab:
	ERROR: Failed to build gem native extension.

    /Users/riocampos/.anyenv/envs/rbenv/versions/2.1.5/bin/ruby extconf.rb
checking for make... yes
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
	--with-opt-dir
	--without-opt-dir
	--with-opt-include
	--without-opt-include=${opt-dir}/include
	--with-opt-lib
	--without-opt-lib=${opt-dir}/lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/Users/riocampos/.anyenv/envs/rbenv/versions/2.1.5/bin/ruby
	--with-mecab-config
	--without-mecab-config
	--enable-mecab-config
	--disable-mecab-config
extconf.rb:12:in ``': No such file or directory - mecab-config (Errno::ENOENT)
	from extconf.rb:12:in `<main>'

extconf failed, exit code 1

Gem files will remain installed in /Users/riocampos/.anyenv/envs/rbenv/gems/2.1.0/gems/mecab-0.996 for inspection.
Results logged to /Users/riocampos/.anyenv/envs/rbenv/gems/2.1.0/extensions/x86_64-darwin-13/2.1.0/mecab-0.996/gem_make.out
MeCabインストール

気を取り直して Homebrew で入れます。

$ brew info mecab
mecab: stable 0.996 (bottled)
http://mecab.sourceforge.net/
Not installed
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/mecab.rb
$ brew install mecab
==> Downloading https://homebrew.bintray.com/bottles/mecab-0.996.mavericks.bottle.1.tar.gz
######################################################################## 100.0%
==> Pouring mecab-0.996.mavericks.bottle.1.tar.gz
&#127866;  /usr/local/Cellar/mecab/0.996: 18 files, 4.5M
mecab gemインストール
$ gem install mecab
Building native extensions.  This could take a while...
Successfully installed mecab-0.996
1 gem installed

試しに動かしてみます。

require 'mecab'
#=> true
m = MeCab::Tagger.new ("-Ochasen")
# RuntimeError: 

動かん>_<
ではシステムのコマンドで動くかな?

$ mecab
param.cpp(69) [ifs] no such file or directory: /usr/local/Cellar/mecab/0.996/lib/mecab/dic/ipadic/dicrc

うごかーんorz

$ ls -l /usr/local/Cellar/mecab/0.996/lib
total 8944
-r--r--r--  1 riocampos  wheel  1704760  4 13 19:11 libmecab.2.dylib
-r--r--r--  1 riocampos  wheel  2865808 10 22 07:42 libmecab.a
lrwxr-xr-x  1 riocampos  wheel       16 10 22 07:42 libmecab.dylib -> libmecab.2.dylib

mecab ディレクトリが無いです。

あ、辞書が入ってない。

IPA辞書インストール
$ brew install mecab-ipadic
==> Downloading https://downloads.sourceforge.net/project/mecab/mecab-ipadic/2.7.0-20070801/mecab-ip
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/mecab-ipadic/2.7.0-20070801 --with-charset=utf8
==> make install
&#127866;  /usr/local/Cellar/mecab-ipadic/2.7.0-20070801: 6 files,  16K, built in 19 seconds

おけ。確認。

$ ls -l /usr/local/Cellar/mecab/0.996/lib/mecab/dic/ipadic/
total 103656
-rw-r--r--  1 riocampos  wheel    262496  4 13 19:19 char.bin
-rw-r--r--  1 riocampos  wheel       693  4 13 19:19 dicrc
-rw-r--r--  1 riocampos  wheel     55910  4 13 19:19 left-id.def
-rw-r--r--  1 riocampos  wheel   3463716  4 13 19:19 matrix.bin
-rw-r--r--  1 riocampos  wheel      1477  4 13 19:19 pos-id.def
-rw-r--r--  1 riocampos  wheel      6241  4 13 19:19 rewrite.def
-rw-r--r--  1 riocampos  wheel     55910  4 13 19:19 right-id.def
-rw-r--r--  1 riocampos  wheel  49199027  4 13 19:19 sys.dic
-rw-r--r--  1 riocampos  wheel      5690  4 13 19:19 unk.dic

実行

mecabコマンドで実行

RubyでMeCabを使う - Qiita
の例文を。

$ mecab
すもももももももものうち
すもも	名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も	助詞,係助詞,*,*,*,*,も,モ,モ
もも	名詞,一般,*,*,*,*,もも,モモ,モモ
も	助詞,係助詞,*,*,*,*,も,モ,モ
もも	名詞,一般,*,*,*,*,もも,モモ,モモ
の	助詞,連体化,*,*,*,*,の,ノ,ノ
うち	名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS

おお動いた\o/
もいっちょ。
[O] MeCab 用の新語辞書 mecab-ipadic-neologd を公開しました
で挙がっていた例文を。

アップルは Apple Watchを4月24日に国内発売します。
アップル	名詞,一般,*,*,*,*,アップル,アップル,アップル
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
Apple	名詞,固有名詞,組織,*,*,*,*
Watch	名詞,一般,*,*,*,*,*
を	助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
4	名詞,数,*,*,*,*,*
月	名詞,一般,*,*,*,*,月,ツキ,ツキ
24	名詞,数,*,*,*,*,*
日	名詞,接尾,助数詞,*,*,*,日,ニチ,ニチ
に	助詞,格助詞,一般,*,*,*,に,ニ,ニ
国内	名詞,一般,*,*,*,*,国内,コクナイ,コクナイ
発売	名詞,サ変接続,*,*,*,*,発売,ハツバイ,ハツバイ
し	動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
ます	助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス
。	記号,句点,*,*,*,*,。,。,。
EOS
^C

当たり前ですが Apple Watch が固有名詞になってないです。そういう新語への対策として mecab-ipadic-neologd が上がってきたようです。
詳しくは
mecab-ipadic-neologd/README.ja.md at master · neologd/mecab-ipadic-neologd
を。

Rubyで実行
m = MeCab::Tagger.create("-Ochasen")
#=> #<MeCab::Tagger:0x007fefc16ab400 @__swigtype__="_p_MeCab__Tagger">
print m.parse ("今日もしないとね")
今日	キョウ	今日	名詞-副詞可能		
も	モ	も	助詞-係助詞		
し	シ	する	動詞-自立	サ変・スル	未然形
ない	ナイ	ない	助動詞	特殊・ナイ	基本形
と	ト	と	助詞-接続助詞		
ね	ネ	ね	助詞-終助詞		
EOS
#=> nil

うごいた\o/
引数に "-Ochasen" を渡してるので、出力が ChaSen 形式なんですね。

他のgem:natto

上記では標準の mecab gem
スクリプト言語のバインディング
を使いましたが、その他にも
rubyのmecabバインディングnattoを使う - Qiita
によると natto gem
buruzaemon/natto
があるそうです(ねばねばな名前ばかり>_

インストール
$ gem install natto
Fetching: natto-0.9.9.gem (100%)
Successfully installed natto-0.9.9
1 gem installed
実行

RubyでMeCabを使う - Qiita
に倣ってみる。

require 'natto'
#=> true
text = 'すもももももももものうち'
#=> "すもももももももものうち"
nm = Natto::MeCab.new
#=> #<Natto::MeCab:0x007fb10373a990 @tagger=#<FFI::Pointer address=0x007fb1056e2c00>, @libpath="/usr/local/Cellar/mecab/0.996/lib/libmecab.dylib", @options={}, @dicts=[#<Natto::DictionaryInfo:0x007fb1037395e0 @filepath="/usr/local/Cellar/mecab/0.996/lib/mecab/dic/ipadic/sys.dic", charset=utf8, type=0>], @version=0.996>
nm.parse(text) do |n|
  puts "#{n.surface}\t#{n.feature}"  
end  
すもも	名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も	助詞,係助詞,*,*,*,*,も,モ,モ
もも	名詞,一般,*,*,*,*,もも,モモ,モモ
も	助詞,係助詞,*,*,*,*,も,モ,モ
もも	名詞,一般,*,*,*,*,もも,モモ,モモ
の	助詞,連体化,*,*,*,*,の,ノ,ノ
うち	名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
	BOS/EOS,*,*,*,*,*,*,*,*
#=> 1

おお動いた動いた\o/

mecab-ipadic-neologd 辞書を使う

テキトーなところにmecab-ipadic-neologdのインストーラ/アップデータを置きます。今回は /usr/local/mecab-ipadic-neologd/ で作業して /usr/local/mecab-ipadic-neologd/latest に置きました。
mecab-ipadic-neologd/README.ja.md at master · neologd/mecab-ipadic-neologd
に従って行います。まずは必要なライブラリを入れます。

$ brew install mecab mecab-ipadic git curl xz

続いて /usr/local/mecab-ipadic-neologd/ で

$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git

して、

$ mv mecab-ipadic-neologd latest
$ cd latest

と移動します。
最新版に更新してインストールするには

$ git pull
$ ./bin/install-mecab-ipadic-neologd

を実行します。なお mecab-ipadic-neologd 辞書のインストール先は標準で

$ echo `mecab-config --dicdir`"/mecab-ipadic-neologd"

の表示結果のディレクトリになるとのこと。今回だと

$ echo `mecab-config --dicdir`"/mecab-ipadic-neologd"
/usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd

です。 mecab-ipadic-neologd 辞書を使うときにはこのパスを指定する必要があります。

インストール

ではインストールしましょう。

$ ./bin/install-mecab-ipadic-neologd
[install-mecab-ipadic-neologd] : Start..
[install-mecab-ipadic-neologd] : Check the exists of libraries
[install-mecab-ipadic-neologd] : find => ok
[install-mecab-ipadic-neologd] : sort => ok
[install-mecab-ipadic-neologd] : head => ok
[install-mecab-ipadic-neologd] : cut => ok
[install-mecab-ipadic-neologd] : egrep => ok
[install-mecab-ipadic-neologd] : mecab => ok
[install-mecab-ipadic-neologd] : mecab-config => ok
[install-mecab-ipadic-neologd] : make => ok
[install-mecab-ipadic-neologd] : curl => ok
[install-mecab-ipadic-neologd] : sed => ok
[install-mecab-ipadic-neologd] : cat => ok
[install-mecab-ipadic-neologd] : diff => ok
[install-mecab-ipadic-neologd] : tar => ok
[install-mecab-ipadic-neologd] : unxz => ok
[install-mecab-ipadic-neologd] : xargs => ok
[install-mecab-ipadic-neologd] : grep => ok
[install-mecab-ipadic-neologd] : iconv => ok

[install-mecab-ipadic-neologd] : mecab-ipadic-neologd will be install to /usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd

[install-mecab-ipadic-neologd] : Make mecab-ipadic-neologd
[make-mecab-ipadic-neologd] : Start..
[make-mecab-ipadic-neologd] : Check local seed directory
[make-mecab-ipadic-neologd] : Check local seed file
[make-mecab-ipadic-neologd] : Check local build directory
[make-mecab-ipadic-neologd] : create /usr/local/Cellar/mecab-ipadic-neologd/updated/libexec/../build
[make-mecab-ipadic-neologd] : Download original mecab-ipadic file
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 11.6M  100 11.6M    0     0  1501k      0  0:00:07  0:00:07 --:--:-- 2064k
[make-mecab-ipadic-neologd] : Decompress original mecab-ipadic file
x mecab-ipadic-2.7.0-20070801/
x mecab-ipadic-2.7.0-20070801/README
x mecab-ipadic-2.7.0-20070801/AUTHORS
x mecab-ipadic-2.7.0-20070801/COPYING
x mecab-ipadic-2.7.0-20070801/ChangeLog
x mecab-ipadic-2.7.0-20070801/INSTALL
x mecab-ipadic-2.7.0-20070801/Makefile.am
x mecab-ipadic-2.7.0-20070801/Makefile.in
x mecab-ipadic-2.7.0-20070801/NEWS
x mecab-ipadic-2.7.0-20070801/aclocal.m4
x mecab-ipadic-2.7.0-20070801/config.guess
x mecab-ipadic-2.7.0-20070801/config.sub
x mecab-ipadic-2.7.0-20070801/configure
x mecab-ipadic-2.7.0-20070801/configure.in
x mecab-ipadic-2.7.0-20070801/install-sh
x mecab-ipadic-2.7.0-20070801/missing
x mecab-ipadic-2.7.0-20070801/mkinstalldirs
x mecab-ipadic-2.7.0-20070801/Adj.csv
x mecab-ipadic-2.7.0-20070801/Adnominal.csv
x mecab-ipadic-2.7.0-20070801/Adverb.csv
x mecab-ipadic-2.7.0-20070801/Auxil.csv
x mecab-ipadic-2.7.0-20070801/Conjunction.csv
x mecab-ipadic-2.7.0-20070801/Filler.csv
x mecab-ipadic-2.7.0-20070801/Interjection.csv
x mecab-ipadic-2.7.0-20070801/Noun.adjv.csv
x mecab-ipadic-2.7.0-20070801/Noun.adverbal.csv
x mecab-ipadic-2.7.0-20070801/Noun.csv
x mecab-ipadic-2.7.0-20070801/Noun.demonst.csv
x mecab-ipadic-2.7.0-20070801/Noun.nai.csv
x mecab-ipadic-2.7.0-20070801/Noun.name.csv
x mecab-ipadic-2.7.0-20070801/Noun.number.csv
x mecab-ipadic-2.7.0-20070801/Noun.org.csv
x mecab-ipadic-2.7.0-20070801/Noun.others.csv
x mecab-ipadic-2.7.0-20070801/Noun.place.csv
x mecab-ipadic-2.7.0-20070801/Noun.proper.csv
x mecab-ipadic-2.7.0-20070801/Noun.verbal.csv
x mecab-ipadic-2.7.0-20070801/Others.csv
x mecab-ipadic-2.7.0-20070801/Postp-col.csv
x mecab-ipadic-2.7.0-20070801/Postp.csv
x mecab-ipadic-2.7.0-20070801/Prefix.csv
x mecab-ipadic-2.7.0-20070801/Suffix.csv
x mecab-ipadic-2.7.0-20070801/Symbol.csv
x mecab-ipadic-2.7.0-20070801/Verb.csv
x mecab-ipadic-2.7.0-20070801/char.def
x mecab-ipadic-2.7.0-20070801/feature.def
x mecab-ipadic-2.7.0-20070801/left-id.def
x mecab-ipadic-2.7.0-20070801/matrix.def
x mecab-ipadic-2.7.0-20070801/pos-id.def
x mecab-ipadic-2.7.0-20070801/rewrite.def
x mecab-ipadic-2.7.0-20070801/right-id.def
x mecab-ipadic-2.7.0-20070801/unk.def
x mecab-ipadic-2.7.0-20070801/dicrc
x mecab-ipadic-2.7.0-20070801/RESULT
[make-mecab-ipadic-neologd] : Configure custom system dictionary on /usr/local/Cellar/mecab-ipadic-neologd/updated/libexec/../build/mecab-ipadic-2.7.0-20070801-neologd-20150413
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking whether make sets $(MAKE)... yes
checking for working aclocal-1.4... missing
checking for working autoconf... found
checking for working automake-1.4... missing
checking for working autoheader... found
checking for working makeinfo... found
checking for a BSD-compatible install... /usr/bin/install -c
checking for mecab-config... /usr/local/bin/mecab-config
configure: creating ./config.status
config.status: creating Makefile
[make-mecab-ipadic-neologd] : Encode the character encoding of system dictionary resources from EUC_JP to UTF-8
./../../libexec/iconv_euc_to_utf8.sh ./Adj.csv
./../../libexec/iconv_euc_to_utf8.sh ./Adnominal.csv
./../../libexec/iconv_euc_to_utf8.sh ./Adverb.csv
./../../libexec/iconv_euc_to_utf8.sh ./Auxil.csv
./../../libexec/iconv_euc_to_utf8.sh ./Conjunction.csv
./../../libexec/iconv_euc_to_utf8.sh ./Filler.csv
./../../libexec/iconv_euc_to_utf8.sh ./Interjection.csv
./../../libexec/iconv_euc_to_utf8.sh ./Noun.adjv.csv
./../../libexec/iconv_euc_to_utf8.sh ./Noun.adverbal.csv
./../../libexec/iconv_euc_to_utf8.sh ./Noun.csv
./../../libexec/iconv_euc_to_utf8.sh ./Noun.demonst.csv
./../../libexec/iconv_euc_to_utf8.sh ./Noun.nai.csv
./../../libexec/iconv_euc_to_utf8.sh ./Noun.name.csv
./../../libexec/iconv_euc_to_utf8.sh ./Noun.number.csv
./../../libexec/iconv_euc_to_utf8.sh ./Noun.org.csv
./../../libexec/iconv_euc_to_utf8.sh ./Noun.others.csv
./../../libexec/iconv_euc_to_utf8.sh ./Noun.place.csv
./../../libexec/iconv_euc_to_utf8.sh ./Noun.proper.csv
./../../libexec/iconv_euc_to_utf8.sh ./Noun.verbal.csv
./../../libexec/iconv_euc_to_utf8.sh ./Others.csv
./../../libexec/iconv_euc_to_utf8.sh ./Postp-col.csv
./../../libexec/iconv_euc_to_utf8.sh ./Postp.csv
./../../libexec/iconv_euc_to_utf8.sh ./Prefix.csv
./../../libexec/iconv_euc_to_utf8.sh ./Suffix.csv
./../../libexec/iconv_euc_to_utf8.sh ./Symbol.csv
./../../libexec/iconv_euc_to_utf8.sh ./Verb.csv
rm ./Adj.csv
rm ./Adnominal.csv
rm ./Adverb.csv
rm ./Auxil.csv
rm ./Conjunction.csv
rm ./Filler.csv
rm ./Interjection.csv
rm ./Noun.adjv.csv
rm ./Noun.adverbal.csv
rm ./Noun.csv
rm ./Noun.demonst.csv
rm ./Noun.nai.csv
rm ./Noun.name.csv
rm ./Noun.number.csv
rm ./Noun.org.csv
rm ./Noun.others.csv
rm ./Noun.place.csv
rm ./Noun.proper.csv
rm ./Noun.verbal.csv
rm ./Others.csv
rm ./Postp-col.csv
rm ./Postp.csv
rm ./Prefix.csv
rm ./Suffix.csv
rm ./Symbol.csv
rm ./Verb.csv
./../../libexec/iconv_euc_to_utf8.sh ./char.def
./../../libexec/iconv_euc_to_utf8.sh ./feature.def
./../../libexec/iconv_euc_to_utf8.sh ./left-id.def
./../../libexec/iconv_euc_to_utf8.sh ./matrix.def
./../../libexec/iconv_euc_to_utf8.sh ./pos-id.def
./../../libexec/iconv_euc_to_utf8.sh ./rewrite.def
./../../libexec/iconv_euc_to_utf8.sh ./right-id.def
./../../libexec/iconv_euc_to_utf8.sh ./unk.def
rm ./char.def
rm ./feature.def
rm ./left-id.def
rm ./matrix.def
rm ./pos-id.def
rm ./rewrite.def
rm ./right-id.def
rm ./unk.def
mv ./Adj.csv.utf8 ./Adj.csv
mv ./Adnominal.csv.utf8 ./Adnominal.csv
mv ./Adverb.csv.utf8 ./Adverb.csv
mv ./Auxil.csv.utf8 ./Auxil.csv
mv ./char.def.utf8 ./char.def
mv ./Conjunction.csv.utf8 ./Conjunction.csv
mv ./feature.def.utf8 ./feature.def
mv ./Filler.csv.utf8 ./Filler.csv
mv ./Interjection.csv.utf8 ./Interjection.csv
mv ./left-id.def.utf8 ./left-id.def
mv ./matrix.def.utf8 ./matrix.def
mv ./Noun.adjv.csv.utf8 ./Noun.adjv.csv
mv ./Noun.adverbal.csv.utf8 ./Noun.adverbal.csv
mv ./Noun.csv.utf8 ./Noun.csv
mv ./Noun.demonst.csv.utf8 ./Noun.demonst.csv
mv ./Noun.nai.csv.utf8 ./Noun.nai.csv
mv ./Noun.name.csv.utf8 ./Noun.name.csv
mv ./Noun.number.csv.utf8 ./Noun.number.csv
mv ./Noun.org.csv.utf8 ./Noun.org.csv
mv ./Noun.others.csv.utf8 ./Noun.others.csv
mv ./Noun.place.csv.utf8 ./Noun.place.csv
mv ./Noun.proper.csv.utf8 ./Noun.proper.csv
mv ./Noun.verbal.csv.utf8 ./Noun.verbal.csv
mv ./Others.csv.utf8 ./Others.csv
mv ./pos-id.def.utf8 ./pos-id.def
mv ./Postp-col.csv.utf8 ./Postp-col.csv
mv ./Postp.csv.utf8 ./Postp.csv
mv ./Prefix.csv.utf8 ./Prefix.csv
mv ./rewrite.def.utf8 ./rewrite.def
mv ./right-id.def.utf8 ./right-id.def
mv ./Suffix.csv.utf8 ./Suffix.csv
mv ./Symbol.csv.utf8 ./Symbol.csv
mv ./unk.def.utf8 ./unk.def
mv ./Verb.csv.utf8 ./Verb.csv
[make-mecab-ipadic-neologd] : Copy user dictionary resource
[make-mecab-ipadic-neologd] : Re-Index system dictionary
reading ./unk.def ... 40
emitting double-array: 100% |###########################################| 
./model.def is not found. skipped.
reading ./Adj.csv ... 27210
reading ./Adnominal.csv ... 135
reading ./Adverb.csv ... 3032
reading ./Auxil.csv ... 199
reading ./Conjunction.csv ... 171
reading ./Filler.csv ... 19
reading ./Interjection.csv ... 252
reading ./mecab-user-dict-seed.20150413.csv ... 1690104
reading ./Noun.adjv.csv ... 3328
reading ./Noun.adverbal.csv ... 795
reading ./Noun.csv ... 60477
reading ./Noun.demonst.csv ... 120
reading ./Noun.nai.csv ... 42
reading ./Noun.name.csv ... 34202
reading ./Noun.number.csv ... 42
reading ./Noun.org.csv ... 16668
reading ./Noun.others.csv ... 151
reading ./Noun.place.csv ... 72999
reading ./Noun.proper.csv ... 27327
reading ./Noun.verbal.csv ... 12146
reading ./Others.csv ... 2
reading ./Postp-col.csv ... 91
reading ./Postp.csv ... 146
reading ./Prefix.csv ... 221
reading ./Suffix.csv ... 1393
reading ./Symbol.csv ... 208
reading ./Verb.csv ... 130750
emitting double-array: 100% |###########################################| 
reading ./matrix.def ... 1316x1316
emitting matrix      : 100% |###########################################| 

done!
[make-mecab-ipadic-neologd] : Make custom system dictionary on /usr/local/Cellar/mecab-ipadic-neologd/updated/libexec/../build/mecab-ipadic-2.7.0-20070801-neologd-20150413
make: Nothing to be done for `all'.
[make-mecab-ipadic-neologd] : Finish..
[install-mecab-ipadic-neologd] : Get results of tokenize test
[test-mecab-ipadic-neologd] : Start..
[test-mecab-ipadic-neologd] : Replace timestamp from 'git clone' date to 'git commit' date
[test-mecab-ipadic-neologd] : Get buzz phrases
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  132k    0  132k    0     0   196k      0 --:--:-- --:--:-- --:--:--  196k
[test-mecab-ipadic-neologd] : Get difference between default system dictionary and mecab-ipadic-neologd
[test-mecab-ipadic-neologd] : Tokenize phrase using default system dictionary
[test-mecab-ipadic-neologd] : Tokenize phrase using mecab-ipadic-neologd
[test-mecab-ipadic-neologd] : Get result of diff
[test-mecab-ipadic-neologd] : Please check difference between default system dictionary and mecab-ipadic-neologd

default system dictonary     |	mecab-ipadic-neologd
月 9 			     |	月9 
エリカ 様 		     |	エリカ様 
金 朋 			     |	金朋 
沢尻 エリカ 		     |	沢尻エリカ 
金田 朋子 		     |	金田朋子 
ぶっ ちゃ け 寺 		     |	ぶっちゃけ 寺 
相 葉 			     |	相葉 
ウェスティンホテル 東京 	     |	ウェスティンホテル東京 
少 クラ 収 		     |	少クラ 収 
裸 祭り 		     |	裸祭り 
加藤 晴彦 		     |	加藤晴彦 
こぶし ファクトリー 	     |	こぶしファクトリー 
十津川 警部 		     |	十津川警部 
竹中 直人 		     |	竹中直人 
深津 絵里 		     |	深津絵里 
ミヤマ オウム 		     |	ミヤマオウム 
猫 中毒 		     |	猫中毒 
エアロ ゲル 		     |	エアロゲル 
夙川 アトム 		     |	夙川アトム 

[test-mecab-ipadic-neologd] : Finish..

[install-mecab-ipadic-neologd] : Please check the list of differences in the upper part.

[install-mecab-ipadic-neologd] : Do you want to install mecab-ipadic-neologd? Type yes or no.

ここでインストールするか否かの質問があるので yes を入れます。多分 y とかじゃダメ。

yes
[install-mecab-ipadic-neologd] : OK. Let's install mecab-ipadic-neologd.
[install-mecab-ipadic-neologd] : Start..
[install-mecab-ipadic-neologd] : Sudo make install to /usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd
Password:

ここでパスワードが求められます。

make[1]: Nothing to be done for `install-exec-am'.
/bin/sh ./mkinstalldirs /usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd
mkdir /usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd
 /usr/bin/install -c -m 644 ./matrix.bin /usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd/matrix.bin
 /usr/bin/install -c -m 644 ./char.bin /usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd/char.bin
 /usr/bin/install -c -m 644 ./sys.dic /usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd/sys.dic
 /usr/bin/install -c -m 644 ./unk.dic /usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd/unk.dic
 /usr/bin/install -c -m 644 ./left-id.def /usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd/left-id.def
 /usr/bin/install -c -m 644 ./right-id.def /usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd/right-id.def
 /usr/bin/install -c -m 644 ./rewrite.def /usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd/rewrite.def
 /usr/bin/install -c -m 644 ./pos-id.def /usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd/pos-id.def
 /usr/bin/install -c -m 644 ./dicrc /usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd/dicrc

[install-mecab-ipadic-neologd] : Install completed.
[install-mecab-ipadic-neologd] : When you use MeCab, you can set '/usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd' as a value of '-d' option of MeCab.
[install-mecab-ipadic-neologd] : Usage of mecab-ipadic-neologd is here.
Usage:
    $ mecab -d /usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd ...

[install-mecab-ipadic-neologd] : Finish..
[install-mecab-ipadic-neologd] : Finish..

インストールされました。

mecab gem で mecab-ipadic-neologd 辞書を使う

先ほどのインストールログのお終い部分

Usage:
    $ mecab -d /usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd ...

を参考にして、辞書パスをMeCab::Tagger.new の-d 引数に指定します。

require 'mecab'
#=> true
m = MeCab::Tagger.new("-d /usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd")
#=> #<MeCab::Tagger:0x007ff8e42f6590 @__swigtype__="_p_MeCab__Tagger">
sentence = "アップルはApple Watchを4月24日に国内発売します。"
#=> "アップルはApple Watchを4月24日に国内発売します。"
print m.parse(sentence)
アップル	名詞,一般,*,*,*,*,アップル,アップル,アップル
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
Apple Watch	名詞,固有名詞,一般,*,*,*,Apple Watch,アップルウォッチ,アップルウォッチ
を	助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
424日	名詞,固有名詞,一般,*,*,*,424日,シガツニジュウヨッカ,シガツニジュウヨッカ
に	助詞,格助詞,一般,*,*,*,に,ニ,ニ
国内	名詞,一般,*,*,*,*,国内,コクナイ,コクナイ
発売	名詞,サ変接続,*,*,*,*,発売,ハツバイ,ハツバイ
し	動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
ます	助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス
。	記号,句点,*,*,*,*,。,。,。
EOS
#=> nil

ちゃんと Apple Watch が固有名詞扱いされましたね。

natto gemで mecab-ipadic-neologd 辞書を使う

Natto::MeCab.new の引数として、辞書パスをdicdirに指定すれば良いです。

require 'natto'
#=> true
nm = Natto::MeCab.new(dicdir: "/usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd")
#=> #<Natto::MeCab:0x007ff8e75fda10 @tagger=#<FFI::Pointer address=0x007ff8e7c9ee30>, @libpath="/usr/local/Cellar/mecab/0.996/lib/libmecab.dylib", @options={:dicdir=>"/usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd"}, @dicts=[#<Natto::DictionaryInfo:0x007ff8e75f7c78 @filepath="/usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd/sys.dic", charset=UTF8, type=0>], @version=0.996>
sentence = "アップルはApple Watchを4月24日に国内発売します。"
#=> "アップルはApple Watchを4月24日に国内発売します。"
nm.parse(sentence) do |n|
  puts "#{n.surface}\t#{n.feature}"  
end  
アップル	名詞,一般,*,*,*,*,アップル,アップル,アップル
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
Apple Watch	名詞,固有名詞,一般,*,*,*,Apple Watch,アップルウォッチ,アップルウォッチ
を	助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
424日	名詞,固有名詞,一般,*,*,*,424日,シガツニジュウヨッカ,シガツニジュウヨッカ
に	助詞,格助詞,一般,*,*,*,に,ニ,ニ
国内	名詞,一般,*,*,*,*,国内,コクナイ,コクナイ
発売	名詞,サ変接続,*,*,*,*,発売,ハツバイ,ハツバイ
し	動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
ます	助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス
。	記号,句点,*,*,*,*,。,。,。
	BOS/EOS,*,*,*,*,*,*,*,*
=> 1

こちらでも Apple Watch が固有名詞扱いされましたね。
なお、

インストール時に mecab-ipadic をベースにビルド処理をする

とありますし、

nm.dicts.first.is_sysdic?
=> true
nm.dicts.first.is_usrdic?
=> false

となることから、 mecab-ipadic の代わりに mecab-ipadic-neologd がシステム辞書として用いられている、ということが分かります。
ちなみに、常時使う辞書を指定するには /usr/local/Cellar/mecab/0.996/etc/mecabrcdicdir に辞書パスを渡せば良いです。初期設定は

dicdir =  /usr/local/Cellar/mecab/0.996/lib/mecab/dic/ipadic

になっていました。