.net column
.NET開発者のためのブログメディア

文字

MeCabをPython3で使ってみよう|形態素解析について分かりやすく解説

2021年03月29日
SE
形態素解析にMeCabを使用しているのですが、PythonでもMeCabが使えるのですか。
PM
はい、使えます。ここではPython3でMeCabを使った形態素解析をご紹介しましょう。

MeCabとは?


MeCabとは、オープンソースの形態素解析エンジンのことです。MeCabという名前になったのは、開発者の方が和布蕪(めかぶ)が大好物だったためにMeCabという名前になったようです。

形態素解析とは

形態素解析とは、検索エンジンでも使われている自然言語処理の手法の一つで、ある文章・フレーズを「意味を持つ最小単位(=単語)」に分解し、それらの品詞などに判別する作業のことです。

MeCabのインストール

開発環境はWindows 10、Python3です。Windows環境にMeCabをインストールします。

①32bit版……MeCabの公式サイトからダウンロードします。

②64bit版……有志がビルドしたものがこちらのサイトから現時点(2021年2月16日)での最新バージョンがダウンロードできます。

ここではPythonが64bit版ですので②をインストールします。インストールの途中で文字コードを選択するところがありますが、UTF-8を選択してください。

PythonもMeCabもPATHを通す

PythonもMeCabもPATHを通します。PythonはPATHが通っていると思いますので、MeCabのPATHを通します。デフォルトでインストールした場合、C:\Plogram Files\MeCabにインストールされているはずです。

PATHはMeCabのbinフォルダに通します。PATHの通し方はまず、スタートボタンを右クリックして「ファイル名を指定して実行」を選択します。そして、「control」と入力し「Enter」を押下すればコントロールパネルが表示されます。

そして、「システムとセキュリティ」を選択し、「システム」を選択します。左側の一番下に「システムの詳細設定」がありますのでそれをクリックします。

次に「環境変数」をクリックすると色々とシステム環境変数が並んでいるところに「Path」という項目がありますので、そこをクリックし、『編集』をクリックします。

そして、「新規」をクリックし、「C:\Program Files\MeCab\bin」を加えて「OK」ボタンを押して行くとPATHが通ります。

MeCabを使ってみる

PowerShellを立ち上げて下記の通り打ち込みます。

そして、「私は栃木に住んでいます。」と入力してみました。すると文字化けしたものが出力されますが、これは問題ありません。

MeCabをPython上で使えるようにする

MeCabがインストールできたならば、Python上で動かせなければなりません。多くのサイトでは、まず、Python上のMeCabバインディングの導入、そしてlibmecab.dll をコピー&ペーストするとあります。

しかし、Python3の最新版ではサイト通りにはいきません。

Python上にmecab-python3の導入

多くのサイトでは次のことをするように書いてありますが、Pyhton3の最新版ではエラーでインストールできません。

例えばmecab-python-windowsをインストールしようとすると次のエラーが出てインストールできません。wheelはインストール済みとします。

これはmecab-python3をpipでインストールすることで解決できます。

これでmecab-python3のインストールができました。

形態素解析を試みる

それでは手始めに「かれのくるまでまつ」の形態素解析をしてみましょう。全文ひらがなです。「かれ」は「彼」と「枯れ」、「くるまで」は「車で」と「来るまで」と解釈可能で全文ひらがなの文章の形態素解析は難しいはずですが、MeCabは形態素解析を行えます。

次のソースをsample.pyとして保存してコンパイルしてください。

そして下記のように実行します。

すると、下記のように出力されます。「かれのくるまでまつ」は「枯れの来るまで待つ」と解析されています。

IPA-NEologd 辞書の導入

「今日はメロンパンを食べました。」という文章を解析してみるとメロンパンがメロンとパンで分解されて認識されていません。ソースコードは次の通りです。

この出力結果は次の通りです。

これはWindows Subsystem for Linuxを利用するのが確実です。

WSL(Windows Subsystem for Linux)のインストール

WindowsがWSLが利用できる設定と仮定します。WSLでDebianをインストールします。Debianがインストールできたならば、次にDebianにMeCabをインストールします。PowerShellを立ち上げ、下記の通り打ち込むとPowerSellでDebianにログインできます。

これでMeCabがインストール完了です。

mecab-ipadic-NEologdをDebianにインストール

次にmecab-ipadic-NEologdをインストールします。下記の通り打ち込んでください。

これでmecab-ipadic-NEologdがDebianにインストールできます。

辞書をWindowsにコピーする

Debianのmecab-ipadic-NEologdの辞書をWindowsにコピーします。C:\Program Files\MeCab\dic\にNEologdフォルダを作成します。そこに辞書をコピーします。

これでコピーができます。

mecab-ipadic-NEologdの辞書を使用する

mecab-ipadic-NEologdの辞書を使うにはソースコードを少し変更しなければなりません。

これをsampl2.pyとして保存し、Pythonでコンパイルします。

出力結果は次の通りです。

メロンパンが認識できています。

SE
なるほど。MeCabをPythonで使えるなら、私もやってみます。
PM
ご紹介した方法でPythonにMeCabをインストールして使ってみてください。

まとめ

テキストを読み込んでの形態素解析など、NumPyを使えば統計として価値あるものへと昇華できます。Python3でMeCabを使うとまだまだ奥が深い形態素解析ができるので、興味のある方はぜひ調べてみてください。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags