【Python】mecab-ipadic-neologdを使えるようにする方法(テキストマイニングのために)

テキストマイニングで通常のIPA辞書で対応していたのですが、やはり「mecab-ipadic-neologd」という辞書を使いたいと思いました。

そこで「mecab-ipadic-neologd」が使えるようになるまでの全体的な流れと、少し躓いた箇所を書き残しておきます。(※スムーズにとはいかなかったので…

新しいPCになったときにまた時間掛かっちゃうと思いますし(苦笑)、自分のためのメモですね^^;

スポンサーリンク

前提

まず、僕の環境ですが、Windows10です。

では、あらかじめインストール済みだったものをざっとご紹介します。

Pythonのインストール

Python3.9.10がインストール済でした。インストールについては下記にまとめていますので、まだの方はご覧ください。

【Python】インストールする方法

Anacondaのインストール

Anaconda3もインストール済でした。インストールについては下記にまとめていますので、まだの方はご覧ください。

【Python】Anacondaをインストールする方法

Microsoft C++ Build Toolsのインストール

次に「mecab-python3」をpipでインストールするのですが、エラーが出る場合があります。その際に「Microsoft C++ Build Tools」をインストールしておくと、エラーが出なくなります。

僕の場合は、「wordcloud」をインストールしようとしたときにエラーが出たので、入れました。

ダウンロード

下記を開いてください。
https://visualstudio.microsoft.com/ja/visual-cpp-build-tools/

引用:visualstudio.microsoft.com

Build Toolsのダウンロード」をクリックすると、ダウンロードできます。

ファイルを開いてインストール

ダウンロードできたらそのファイルを開きます。下記画面が表示されますので、後は順番に進めればOKです。

引用:Build Toolsのインストーラ

続行」をクリックします。

引用:Build Toolsのインストーラ

「ダウンロード済み」「インストーラ済み」が上記のようになったら、勝手に進みます。

引用:Build Toolsのインストーラ

「C++によるデスクトップ開発」をチェックします。(←注意点はココだけです、忘れずチェックします

すると、右側に更にチェックする項目が表示されるので、赤枠で囲んだ3つ「MSVC v142・・・」「Windows 10 SDK・・・」「Windows用 C++・・・」だけチェックを入れて、

インストール」をクリックします。

引用:Build Toolsのインストーラ

後は上記赤枠内の2つのバーが100%になれば、インストール完了です!

引用:Build Toolsのインストーラ

この画面になったら、閉じてOKです。PCを再起動すれば完了です。

Microsoft C++ Build Toolsのパスを通す

コマンドプロンプトで使用したいので、インストールした「Microsoft C++ Build Tools」のパスを通します。

パスの確認

引用:Windows

旗マークをクリックします。

引用:Windows

「Visual Studio 2019」の「Dveloper Command Prompt for VS…」をクリックします。

引用:Build Tools

コマンドプロンプトみたいなものが開くので、「where cl」と入力しEnterを押します。

引用:Build Tools

そうすると、フルパスが得られますので、コピーします。

環境変数の「Path」に追加

下記ページを参考に環境変数の「Path」にコピーしたフルパスを追加します。

>【Windows10】「システム環境変数」>「Path」への追加方法

↑について「システム環境変数」ではなく「●●のユーザ環境変数」の方に追加で問題ありません。

mecab-python3をインストール

コマンドプロンプトで下記を入力しEnterを押します。

pip install mecab-python3

MeCabをインストール

ダウンロード

下記を開きます。
https://github.com/ikegami-yukino/mecab/releases/tag/v0.996.2

引用:https://github.com/ikegami-yukino/mecab/releases/tag/v0.996.2

僕のPCは64bitなので「mecab-64-0.996.2.exe」をクリックして、インストーラをダウンロードします。

インストール

ダウンロードできたらそのファイルを開きます。下記画面が表示されますので、後は順番に進めればOKです。

引用:MeCabインストーラ

OK」をクリックします。

引用:MeCabインストーラ

Python3で使用するため「UTF-8」を選んで「次へ」をクリックします。

引用:MeCabインストーラ

同意する」を選んで「次へ」をクリックします。

引用:MeCabインストーラ

次へ」をクリックします。

引用:MeCabインストーラ

次へ」をクリックします。

引用:MeCabインストーラ

インストール」をクリックします。

引用:MeCabインストーラ

いいえ」をクリックします。
※全ユーザで使用したい場合は「はい」をクリックしてください

引用:MeCabインストーラ

コマンドが動き出します。途中で止まった場合は、Enterを押してみてください。進みだすと思います。

引用:MeCabインストーラ

再起動のタイミングを決めたら、該当する方にチェックを入れて、「完了」をクリックします。

以上で、MeCabのインストールは完了です!

MeCabのパスを通す

コマンドプロンプトで使用したいので、インストールした「MeCab」のパスを通します。(※既に環境変数のPathに登録されている場合は追加不要です

環境変数の「Path」に追加

下記ページを参考に環境変数の「Path」に「C:\Program Files\MeCab\bin」を追加します。

追加するパス

インストール時に下記設定で指定したパスの中に「bin」というフォルダが作られています。その「bin」へのパスを環境変数に追加します。下記の場合ですと、「C:\Program Files\MeCab\bin」となります。

引用:MeCabインストーラ

もし違う場所にインストールされた場合は、そちらのパス+「bin」を環境変数に追加してください。

>【Windows10】「システム環境変数」>「Path」への追加方法

↑について「システム環境変数」ではなく「●●のユーザ環境変数」の方に追加で問題ありません。

mecab-ipadic-NEologdのインストール

ようやく本題の「mecab-ipadic-NEologd」のインストールです。

ダウンロード

github の下記ページからダウンロードします。
https://github.com/neologd/mecab-ipadic-neologd

引用:Github > neologd

ページを開いて「Code」をクリックして、ポップアップが開くので、「Download ZIP」をクリックするとダウンロードできます。

解凍&移動

ダウンロードしたファイルを解凍すると「mecab-ipadic-neologd-master」というフォルダ名なので「mecab-ipadic-neologd」とリネイムします。(リネイムの必須ではありません)

次に、そのフォルダをpythonを動かしているフォルダの中に入れます。

引用:コマンドプロンプト

僕の場合は、「C:\Users\info\py」でpythonを動かしているので、このフォルダ内に入れます。

引用:エクスプローラー

緑枠がダウンロードしてきたファイルです。赤枠が解凍しリネイムしたものです。

「mecab-ipadic-neologd」内の「seed」フォルダの中身を解凍

下で辞書作成時にseed内のファイルを使用するので、解凍しておきます。全部解凍してOKです。実際に使うのは「mecab-user-dict-seed.20200910.csv.xz」だけですので、それだけ解凍でもOKです!

引用:エクスプローラー

枠で囲ったものだけ解凍でもOKです。

解凍ソフト

僕は「圧縮・解凍ソフト CubeICE」を使っています。MacとWindowsで解凍すると文字化けする問題があったのですが、「CubeICE」ですと文字化けしませんでした。それ以来こちらを使わせていただいています。
https://www.cube-soft.jp/cubeice/

解凍ソフトをお持ちでない方はご検討ください^^

UFT-8の辞書を作成

MeCab\dic\ipadicを複製

64bitであれば「C:\Program Files\MeCab\dic」、32bitであれば「C:\Program Files (x86)\MeCab\dic」に「ipadic」というフォルダがあります。

それをコピーして同フォルダ内に貼り付けて「ipadic-UTF8」とリネイムします。(※フォルダ名はutf8と分かれば何でも良いです

引用:エクスプローラー

NEologdフォルダ作成

同フォルダ内に「NEologd」というフォルダを作成します。

作成した辞書を入れるフォルダになります。

引用:エクスプローラー

辞書作成

引用:コマンドプロンプト

コマンドプロンプトを開きます。

引用:コマンドプロンプト

「cd」コマンドを使って、先ほど「解凍&移動」で移動した「mecab-ipadic-neologd」の中にある「seed」に移動します。

引用:コマンドプロンプト
mecab-dict-index -d “c:\Program Files\MeCab\dic\ipadic-UTF8” -u NEologd.20200910-u.dic -f utf-8 -t utf-8 mecab-user-dict-seed.20200910\mecab-user-dict-seed.20200910.csv
  • 「c:\Program Files\MeCab\dic\ipadic-UTF8」
    ⇒「ipadic」を複製して作ったフォルダを指定します。
  • 「NEologd.20200910-u.dic」
    ⇒辞書のファイル名です。「-u」はutf8ということだと思います。
  • 「mecab-user-dict-seed.20200910\mecab-user-dict-seed.20200910.csv」
    ⇒コマンドで移動して、「C:\Users\info\py\mecab-ipadic-neologd\seed」にいます。その中に「mecab-user-dict-seed.20200910\mecab-user-dict-seed.20200910.csv」が存在するので、それを指定しています。

上のコマンドを入力しEnterを押すと、UTF8の「NEologd」の辞書「NEologd.20200910-u.dic」が「C:\Users\info\py\mecab-ipadic-neologd\seed」に作成されます。

引用:エクスプローラー

参考サイト

参考にさせていただいたサイトさんです。

https://qd-suriken.com/2020/04/22/widows%E3%81%A7mecabneologd/

辞書を使えるようにする

移動と設定で辞書を使えるようにします。

移動

上記「辞書作成」で作成された「C:\Users\info\py\mecab-ipadic-neologd\seed\NEologd.20200910-u.dic」を「NEologdフォルダ作成」で作成した「C:\Program Files\MeCab\dic\NEologd」の中に移動します。

引用:エクスプローラー

設定

「C:\Program Files\MeCab\etc」の「mecabrc」を同フォルダ内に複製します。それを「mecabrc-u」とリネイムします。

引用:エクスプローラー

mecabrc-u」をテキストエディタで開き、辞書へのパスなどを設定します。

下記コードを追記します。コメントアウトで「dicdir = 」などの行があるので、それぞれコメントの下の行などに追記すれば良いかと思います。

dicdir = C:\Program Files\MeCab\dic\ipadic-UTF8
userdic = C:\Program Files\MeCab\dic\NEologd\Neologd.20200910-u.dic
引用:コマンドプロンプト

ファイルを保存します。

これで辞書は使える状態になりました。

PythonでMeCab、NEologdが使えない

以上で設定は完了しているのですが、Pythonでその辞書を使うために下記のように書きます。

self.tagger = MeCab.Tagger("-r C:\Program Files\MeCab\dic\NEologd\mecabrc-u")

先ほど作成した「C:\Program Files\MeCab\dic\NEologd\mecabrc-u」を指定しています。

引用:コマンドプロンプト

そうすると、シンタックスエラーになります。

問題点は「Program Files」の半角スペースと「\」のようです。

対処法

半角スペースは良い方法が見つからないので、「mecabrc-u」を他のフォルダに移します。

引用:コマンドプロンプト

そして、「\」は「/」に変更します。

self.tagger = MeCab.Tagger("-r C:\Program Files\MeCab\dic\NEologd\mecabrc-u")
↓
self.tagger = MeCab.Tagger("-r C:/Users/info/py/mecab-ipadic-neologd/mecabrc-u")

以上です。

まとめ

これで、ついに「mecab-ipadic-neologd」辞書が使えるようになりました。

色々なものをインストールしたり設定する必要がありました。久しぶりにpython関係をガッツリ触りました。次回があったら、スムーズにいくと嬉しく思います。

それでは、最後までお読みいただきありがとうございました!

スポンサーリンク