AnacondaでMeCabを使ってみた

はじめに

前回、M1MacでMeCabをインストールしました。

そこでAnaconda環境でこのMeCabを使ってみました。


前回書き忘れたのでMeCabの説明

オープンソースで使えるなんて素晴らしいですね。


今回の流れとしては、見出しのように、

1,MeCabを動かすための仮想環境の作成

2.ライブラリインストール(MeCab+Anaconda)

3.テストプログラムを実行してみる

となっています。

1,MeCabを動かすための仮想環境の作成

Anacondaで実行する場合、そのままライブラリを入れてもいいのですが、作業ごとの仮想環境で実行することがお多いと思います。

そこで仮想環境を構築します。まずターミナルを開いて

conda create -n MeCab python=3,7

などとして、仮想環境を構築します。内訳は、

○  conda   コマンド

○  create    仮想環境を作成する際のオプション

○  -n          仮想環境名の設定 例MeCab(ここは任意)

○  python=3.7   パイソンのバージョンを指定

です。

では、仮想環境をスタートさせてみましょう。

conda activate MeCab

MeCabの部分は、上で設定した仮想環境名です。

これで実行するための仮想環境が構築できました。


2.ライブラリインストール(MeCab+Anaconda)

では、次にMeCabをAnacondaで使うためのライブラリをインストールします。

インストールするのは、 mecab-python3 というライブラリです。

またページによっては

pip install mecab-python3

となっているところが多いです。

しかし、Anacondaですので、Anaconda側のライブラリをインストールします。

今回参考にした

こちらでは、

conda install -c mzh mecab-python3

でした。

ですが、今回調べたところ、conda-forgeであるようです。

こちらに従って、

conda install -c conda-forge mecab-python3

でOKです。 y/nで聞かれたらY(Yes)でOkです。

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


3.テストプログラムを実行してみる

では今回はJupyter notebookを使いながら実行してみたいと思います。

まずはJupyterのインストールです。仮想環境内でターミナルから

conda -install jupyter

でOKです。

インストールされたらターミナルから

jupyter notebook

で起動します。

起動されたら、new(もしくは新規) から python3 で新しいノートブックを開きます。

開いたノートブックにスクリプトを書いていきます。

import MeCab
tagger = MeCab.Tagger()

様々なところで見るように、上のようにしてみました。

おっとエラーです。

どうも辞書が読めていないようです。

前回辞書を切り替えていたので、それが効いているのかも。

いろいろネットを検索していると、

こちらのページを見つけました。

辞書を指定すればいいようです。

import MeCab

tagger = MeCab.Tagger('-d /opt/homebrew/lib/mecab/dic/mecab-ipadic-neologd')

辞書の保存場所だけ変えて実行してみます。

やった、今度は通りました。

では実際に文章を形態素解析してみましょう。

まずはお手本と同じ用に、

text = '安倍首相とトランプ大統領
print(tagger.parse(text))​

として見ました。

安倍首相	名詞,固有名詞,一般,*,*,*,安倍首相,アベシュショウ,アベシュショー
と	助詞,並立助詞,*,*,*,*,と,ト,ト
トランプ大統領	名詞,固有名詞,人名,一般,*,*,ドナルド・トランプ,トランプダイトウリョウ,トランプダイトウリョー
EOS

お手本どおり、実行できました。

辞書の設定と分かち書き

いちいち辞書ファイルを書くのは面倒と思っていたら、上のページを見つけました。

辞書ファイルをdicdirとして指定しておけばいいのですね。

dicdir2 = '-d /opt/homebrew/lib/mecab/dic/mecab-ipadic-neologd'
tagger2 = MeCab.Tagger(dicdir2)

通りました。辞書の設定はこれでOKです。

では次は分かち書きです。

dicdir3 = '-O wakati -d /opt/homebrew/lib/mecab/dic/mecab-ipadic-neologd'
tagger3 = MeCab.Tagger(dicdir3)

MeCabのサイトの通り、分かち書きのオプション -O を使います。

print(tagger3.parse(text))

で先程のテキストを解析してみました。

安倍首相 と トランプ大統領

しっかり別れています。

せっかくなので別の形式 -O chasen  を試してみました。

dicdir4 = '-O chasen -d /opt/homebrew/lib/mecab/dic/mecab-ipadic-neologd'
tagger4 = MeCab.Tagger(dicdir4)
print(tagger4.parse(text))

結果は

安倍首相	アベシュショウ	安倍首相	名詞-固有名詞-一般		
と	ト	と	助詞-並立助詞		
トランプ大統領	トランプダイトウリョウ	ドナルド・トランプ	名詞-固有名詞-人名-一般		
EOS

こんな感じです。

ここまででも結構楽しめました。

次はさらに一歩すすんだ処理を検討しています。

この記事が気に入ったらサポートをしてみませんか?