MacBook Air / M1にインストールしたRMeCabからneologdを使えるようにしました

>※別のMacにneologdをインストールした際の手順を別途メモしています。
https://qiita.com/tex_owleyes/items/813897994a187881ce7d

# まずmecabで

R原語の形態素解析パッケージ「RMeCab」の標準辞書は「ipadic」です。
ネットやメディアで使われいてる固有名詞を分割されないようにするには、「mecab-ipadic-NEologd」（以下neologd）を辞書として使った方が便利だそうです。
試用する時間が作れなかったのですが、ようやく（やはり手間取りながら）インストールしました。

まずRMeCabのベースとなる「mecab」でNEologdを使えるようにします。
「ターミナル」を起動します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/5ad2418d-dc15-c966-4b28-7a6d8010d1a0.png)

mecabで解体素解析をかけてみます。
使う文章は以下です。

>両面宿儺と肉体を共有することとなった虎杖悠仁は、最強の呪術師である五条悟の案内で、対呪い専門機関である「東京都立呪術高等専門学校」へと編入

~~~R
% mecab
両面宿儺と肉体を共有することとなった虎杖悠仁は、最強の呪術師である五条悟の案内で、対呪い専門機関である「東京都立呪術高等専門学校」へと編入

両面	名詞,一般,*,*,*,*,両面,リョウメン,リョーメン
宿	名詞,一般,*,*,*,*,宿,ヤド,ヤド
儺	名詞,一般,*,*,*,*,*
と	助詞,並立助詞,*,*,*,*,と,ト,ト
肉体	名詞,一般,*,*,*,*,肉体,ニクタイ,ニクタイ
を	助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
共有	名詞,サ変接続,*,*,*,*,共有,キョウユウ,キョーユー
する	動詞,自立,*,*,サ変・スル,基本形,する,スル,スル
こと	名詞,非自立,一般,*,*,*,こと,コト,コト
と	助詞,格助詞,一般,*,*,*,と,ト,ト
なっ	動詞,自立,*,*,五段・ラ行,連用タ接続,なる,ナッ,ナッ
た	助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
虎杖	名詞,一般,*,*,*,*,虎杖,イタドリ,イタドリ
悠	名詞,固有名詞,人名,名,*,*,悠,ユウ,ユー
仁	名詞,一般,*,*,*,*,仁,ジン,ジン
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
、	記号,読点,*,*,*,*,、,、,、
最強	名詞,一般,*,*,*,*,最強,サイキョウ,サイキョー
の	助詞,連体化,*,*,*,*,の,ノ,ノ
呪術	名詞,一般,*,*,*,*,呪術,ジュジュツ,ジュジュツ
師	名詞,接尾,一般,*,*,*,師,シ,シ
で	助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
ある	助動詞,*,*,*,五段・ラ行アル,基本形,ある,アル,アル
五条	名詞,固有名詞,人名,姓,*,*,五条,ゴジョウ,ゴジョー
悟	名詞,固有名詞,人名,名,*,*,悟,サトル,サトル
の	助詞,連体化,*,*,*,*,の,ノ,ノ
案内	名詞,サ変接続,*,*,*,*,案内,アンナイ,アンナイ
で	助詞,格助詞,一般,*,*,*,で,デ,デ
、	記号,読点,*,*,*,*,、,、,、
対	名詞,接続詞的,*,*,*,*,対,タイ,タイ
呪い	名詞,一般,*,*,*,*,呪い,ノロイ,ノロイ
専門	名詞,一般,*,*,*,*,専門,センモン,センモン
機関	名詞,一般,*,*,*,*,機関,キカン,キカン
で	助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
ある	助動詞,*,*,*,五段・ラ行アル,基本形,ある,アル,アル
「	記号,括弧開,*,*,*,*,「,「,「
東京	名詞,固有名詞,地域,一般,*,*,東京,トウキョウ,トーキョー
都立	名詞,一般,*,*,*,*,都立,トリツ,トリツ
呪術	名詞,一般,*,*,*,*,呪術,ジュジュツ,ジュジュツ
高等	名詞,形容動詞語幹,*,*,*,*,高等,コウトウ,コートー
専門	名詞,一般,*,*,*,*,専門,センモン,センモン
学校	名詞,一般,*,*,*,*,学校,ガッコウ,ガッコー
」	記号,括弧閉,*,*,*,*,」,」,」
へ	助詞,格助詞,一般,*,*,*,へ,ヘ,エ
と	助詞,格助詞,引用,*,*,*,と,ト,ト
編入	名詞,サ変接続,*,*,*,*,編入,ヘンニュウ,ヘンニュー両面	名詞,一般,*,*,*,*,両面,リョウメン,リョーメン
宿	名詞,一般,*,*,*,*,宿,ヤド,ヤド
儺	名詞,一般,*,*,*,*,*
と	助詞,並立助詞,*,*,*,*,と,ト,ト
肉体	名詞,一般,*,*,*,*,肉体,ニクタイ,ニクタイ
を	助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
共有	名詞,サ変接続,*,*,*,*,共有,キョウユウ,キョーユー
する	動詞,自立,*,*,サ変・スル,基本形,する,スル,スル
こと	名詞,非自立,一般,*,*,*,こと,コト,コト
と	助詞,格助詞,一般,*,*,*,と,ト,ト
なっ	動詞,自立,*,*,五段・ラ行,連用タ接続,なる,ナッ,ナッ
た	助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
虎杖	名詞,一般,*,*,*,*,虎杖,イタドリ,イタドリ
悠	名詞,固有名詞,人名,名,*,*,悠,ユウ,ユー
仁	名詞,一般,*,*,*,*,仁,ジン,ジン
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
、	記号,読点,*,*,*,*,、,、,、
最強	名詞,一般,*,*,*,*,最強,サイキョウ,サイキョー
の	助詞,連体化,*,*,*,*,の,ノ,ノ
呪術	名詞,一般,*,*,*,*,呪術,ジュジュツ,ジュジュツ
師	名詞,接尾,一般,*,*,*,師,シ,シ
で	助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
ある	助動詞,*,*,*,五段・ラ行アル,基本形,ある,アル,アル
五条	名詞,固有名詞,人名,姓,*,*,五条,ゴジョウ,ゴジョー
悟	名詞,固有名詞,人名,名,*,*,悟,サトル,サトル
の	助詞,連体化,*,*,*,*,の,ノ,ノ
案内	名詞,サ変接続,*,*,*,*,案内,アンナイ,アンナイ
で	助詞,格助詞,一般,*,*,*,で,デ,デ
、	記号,読点,*,*,*,*,、,、,、
対	名詞,接続詞的,*,*,*,*,対,タイ,タイ
呪い	名詞,一般,*,*,*,*,呪い,ノロイ,ノロイ
専門	名詞,一般,*,*,*,*,専門,センモン,センモン
機関	名詞,一般,*,*,*,*,機関,キカン,キカン
で	助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
ある	助動詞,*,*,*,五段・ラ行アル,基本形,ある,アル,アル
「	記号,括弧開,*,*,*,*,「,「,「
東京	名詞,固有名詞,地域,一般,*,*,東京,トウキョウ,トーキョー
都立	名詞,一般,*,*,*,*,都立,トリツ,トリツ
呪術	名詞,一般,*,*,*,*,呪術,ジュジュツ,ジュジュツ
高等	名詞,形容動詞語幹,*,*,*,*,高等,コウトウ,コートー
専門	名詞,一般,*,*,*,*,専門,センモン,センモン
学校	名詞,一般,*,*,*,*,学校,ガッコウ,ガッコー
」	記号,括弧閉,*,*,*,*,」,」,」
へ	助詞,格助詞,一般,*,*,*,へ,ヘ,エ
と	助詞,格助詞,引用,*,*,*,と,ト,ト
編入	名詞,サ変接続,*,*,*,*,編入,ヘンニュウ,ヘンニュー
~~~

mecabを終了する場合はcntl + cでキャンセルできます。

単語は細かく分割されました。

# neologdをインストール

neologdの情報は以下などを参考にしています。

https://github.com/neologd/mecab-ipadic-neologd/blob/master/README.ja.md

思ったよりスムーズにインストールできなかったので、メモとして行った手順を記しておきます。

「git clone --depth 1 https://***」を実行し、インストールしようとしましたが「git」が動きません。

~~~
% git
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
~~~

「xcode-select --install」を実行し、使えるようにしました。

~~~
% xcode-select --install
% git --version
git version 2.30.1 (Apple Git-130)
~~~

neologdをインストールます。

~~~
% git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
% ./bin/install-mecab-ipadic-neologd -n -a
~~~

以下のメッセージが出てインストールが完了しません。

~~~R
[install-mecab-ipadic-NEologd] :     unxz is not found.
~~~

「xz」 のインストールをします。

~~~R
% brew install xz
~~~

再度neologdをインストールします。

~~~R
% ./bin/install-mecab-ipadic-neologd -n -a
#・・・
[install-mecab-ipadic-NEologd] : Do you want to install mecab-ipadic-NEologd? Type yes or no.
#・・・
[install-mecab-ipadic-NEologd] : Finish..
~~~

「Finish」、無事完了しました。

# neologdで形態素解析

~~~R
mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd/
両面宿儺と肉体を共有することとなった虎杖悠仁は、最強の呪術師である五条悟の案内で、対呪い専門機関である「東京都立呪術高等専門学校」へと編入

両面宿儺	名詞,固有名詞,人名,一般,*,*,両面宿儺,リョウメンスクナ,リョーメンスクナ
と	助詞,並立助詞,*,*,*,*,と,ト,ト
肉体	名詞,一般,*,*,*,*,肉体,ニクタイ,ニクタイ
を	助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
共有	名詞,サ変接続,*,*,*,*,共有,キョウユウ,キョーユー
する	動詞,自立,*,*,サ変・スル,基本形,する,スル,スル
こと	名詞,非自立,一般,*,*,*,こと,コト,コト
と	助詞,格助詞,一般,*,*,*,と,ト,ト
なっ	動詞,自立,*,*,五段・ラ行,連用タ接続,なる,ナッ,ナッ
た	助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
虎杖悠仁	名詞,固有名詞,人名,一般,*,*,虎杖悠仁,イタドリユウジ,イタドリユージ
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
、	記号,読点,*,*,*,*,、,、,、
最強	名詞,一般,*,*,*,*,最強,サイキョウ,サイキョー
の	助詞,連体化,*,*,*,*,の,ノ,ノ
呪術師	名詞,固有名詞,一般,*,*,*,呪術師,ジュジュツシ,ジュジュツシ
で	助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
ある	助動詞,*,*,*,五段・ラ行アル,基本形,ある,アル,アル
五条悟	名詞,固有名詞,人名,一般,*,*,五条悟,ゴジョウサトル,ゴジョーサトル
の	助詞,連体化,*,*,*,*,の,ノ,ノ
案内	名詞,サ変接続,*,*,*,*,案内,アンナイ,アンナイ
で	助詞,格助詞,一般,*,*,*,で,デ,デ
、	記号,読点,*,*,*,*,、,、,、
対	名詞,接続詞的,*,*,*,*,対,タイ,タイ
呪い	名詞,一般,*,*,*,*,呪い,ノロイ,ノロイ
専門機関	名詞,固有名詞,一般,*,*,*,専門機関,センモンキカン,センモンキカン
で	助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
ある	助動詞,*,*,*,五段・ラ行アル,基本形,ある,アル,アル
「	記号,括弧開,*,*,*,*,「,「,「
東京	名詞,固有名詞,地域,一般,*,*,東京,トウキョウ,トーキョー
都立	名詞,一般,*,*,*,*,都立,トリツ,トリツ
呪術	名詞,一般,*,*,*,*,呪術,ジュジュツ,ジュジュツ
高等専門学校	名詞,固有名詞,一般,*,*,*,高等専門学校,コウトウセンモンガッコウ,コートーセンモンガッコー
」	記号,括弧閉,*,*,*,*,」,」,」
へ	助詞,格助詞,一般,*,*,*,へ,ヘ,エ
と	助詞,格助詞,引用,*,*,*,と,ト,ト
編入	名詞,サ変接続,*,*,*,*,編入,ヘンニュウ,ヘンニュ
~~~

アニメに登場するキャラクタの固有名詞が識別されています。

# RMeCabで使えるように

次に、「RMeCab」で使えるようにします。
そのためには、辞書ファイル（csv）を、「mecab-dict-index」を使いRMeCab用にコンパイルします。

今回は扱いやすいと考え、辞書ディレクトリ「ipadic」にcsvをコピーします。
理由がよくわからなかったのですが、スーパーユーザー権限「sudo」を使って、「sudo cp」と実行しないとコピーができませんでした。

~~~
% cd/Users/user_name/mecab-ipadic-neologd/build/mecab-ipadic-2.7.0-20070801-neologd-20200910/
% sudo cp -f mecab-user-dict-seed.20200910.csv /usr/local/lib/mecab/dic/ipadic/
% cd /usr/local/lib/mecab/dic/ipadic/
% ls
char.bin				pos-id.def
dicrc					rewrite.def
ipadic					right-id.def
left-id.def				sys.dic
matrix.bin				unk.dic
mecab-user-dict-seed.20200910.csv
~~~

mecab-dict-indexも「sudo」で実行します。

~~~
 % sudo /usr/local/libexec/mecab/mecab-dict-index \
-d /usr/local/lib/mecab/dic/ipadic \
-u mecab-user-dict-seed.20200910.csv.dic \
-f utf-8 \
-t utf-8 mecab-user-dict-seed.20200910.csv

Password:
reading mecab-user-dict-seed.20200910.csv ... 3224584
emitting double-array: 100% |###########################################| 

done!

% ls
char.bin				mecab-user-dict-seed.20200910.csv.dic
dicrc					pos-id.def
ipadic					rewrite.def
left-id.def				right-id.def
matrix.bin				sys.dic
mecab-user-dict-seed.20200910.csv	unk.dic
~~~

辞書ファイル「mecab-user-dict-seed.20200910.csv.dic」が作成できました。

# RMeCabでneologd解析

「dic = "//usr/local/lib/mecab/dic/ipadic/mecab-user-dict-seed.20200910.csv.dic"」というオプションを付け、「RMeCabC」を実行します。

~~~R
> library(RMeCab)
> input <- "両面宿儺と虎杖悠仁"
> RMeCabC(input, dic = "//usr/local/lib/mecab/dic/ipadic/mecab-user-dict-seed.20200910.csv.dic")
[[1]]
      名詞 
"両面宿儺" 

[[2]]
助詞 
"と" 

[[3]]
      名詞 
"虎杖悠仁" 

~~~

オプションを付けずに標準辞書を使うと、こうなります。

~~~R
> RMeCabC(input)
[[1]]
  名詞 
"両面" 

[[2]]
名詞 
"宿" 

[[3]]
名詞 
"儺" 

[[4]]
助詞 
"と" 

[[5]]
  名詞 
"虎杖" 

[[6]]
名詞 
"悠" 

[[7]]
名詞 
"仁" 
~~~

冒頭で使った文章を形態素解析にかけてみます。

~~~R
> input <- "両面宿儺と肉体を共有することとなった虎杖悠仁は、最強の呪術師である五条悟の案内で、対呪い専門機関である「東京都立呪術高等専門学校」へと編入"
> RMeCabC(input, dic = "//usr/local/lib/mecab/dic/ipadic/mecab-user-dict-seed.20200910.csv.dic")
[[1]]
      名詞 
"両面宿儺" 

[[2]]
助詞 
"と" 

[[3]]
  名詞 
"肉体" 

[[4]]
助詞 
"を" 

[[5]]
  名詞 
"共有" 

[[6]]
  動詞 
"する" 

[[7]]
  名詞 
"こと" 

[[8]]
助詞 
"と" 

[[9]]
  動詞 
"なっ" 

[[10]]
助動詞 
  "た" 

[[11]]
      名詞 
"虎杖悠仁" 

[[12]]
助詞 
"は" 

[[13]]
記号 
"、" 

[[14]]
  名詞 
"最強" 

[[15]]
助詞 
"の" 

[[16]]
    名詞 
"呪術師" 

[[17]]
助動詞 
  "で" 

[[18]]
助動詞 
"ある" 

[[19]]
    名詞 
"五条悟" 

[[20]]
助詞 
"の" 

[[21]]
  名詞 
"案内" 

[[22]]
助詞 
"で" 

[[23]]
記号 
"、" 

[[24]]
名詞 
"対" 

[[25]]
  名詞 
"呪い" 

[[26]]
      名詞 
"専門機関" 

[[27]]
助動詞 
  "で" 

[[28]]
助動詞 
"ある" 

[[29]]
記号 
"「" 

[[30]]
  名詞 
"東京" 

[[31]]
  名詞 
"都立" 

[[32]]
  名詞 
"呪術" 

[[33]]
          名詞 
"高等専門学校" 

[[34]]
記号 
"」" 

[[35]]
助詞 
"へ" 

[[36]]
助詞 
"と" 

[[37]]
  名詞 
"編入" 
~~~

冒頭で行ったmecabeを使用した結果と同じになりました。

**了**