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

- システム
エンジニア - 形態素解析にMeCabを使用しているのですが、PythonでもMeCabが使えるのですか。
- プロジェクト
マネージャー - はい、使えます。ここでは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を立ち上げて下記の通り打ち込みます。
1 |
PS:\>mecab |
そして、「私は栃木に住んでいます。」と入力してみました。すると文字化けしたものが出力されますが、これは問題ありません。
1 2 3 4 5 6 7 8 |
私は栃木に住んでいます。 私は 險伜捷,荳闊ャ,*,*,*,*,* ネ 蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,* リに 險伜捷,荳闊ャ,*,*,*,*,* Z 蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,* んでいます 險伜捷,荳闊ャ,*,*,*,*,* B 蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,* EOS |
MeCabをPython上で使えるようにする
MeCabがインストールできたならば、Python上で動かせなければなりません。多くのサイトでは、まず、Python上のMeCabバインディングの導入、そしてlibmecab.dll をコピー&ペーストするとあります。
しかし、Python3の最新版ではサイト通りにはいきません。
Python上にmecab-python3の導入
多くのサイトでは次のことをするように書いてありますが、Pyhton3の最新版ではエラーでインストールできません。
1 2 |
pip install ipykernel pip install mecab-python-windows |
例えばmecab-python-windowsをインストールしようとすると次のエラーが出てインストールできません。wheelはインストール済みとします。
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 38 39 40 41 42 43 44 45 46 47 48 |
PS C:\> pip install mecab-python-windows Collecting mecab-python-windows Using cached mecab-python-windows-0.996.3.tar.gz (53 kB) Building wheels for collected packages: mecab-python-windows Building wheel for mecab-python-windows (setup.py) ... error ERROR: Command errored out with exit status 1: command: 'e:\programs\python\python39\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\xxxx\\AppData\\Local\\Temp\\pip-install-essa5efg\\mecab-python-windows_ff62a8f8515e4ed1a627b26b7ce1994e\\setup.py'"'"'; __file__='"'"'C:\\Users\\xxxx\\AppData\\Local\\Temp\\pip-install-essa5efg\\mecab-python-windows_ff62a8f8515e4ed1a627b26b7ce1994e\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\xxxx\AppData\Local\Temp\pip-wheel-3671ecsi' cwd: C:\Users\xxxx\AppData\Local\Temp\pip-install-essa5efg\mecab-python-windows_ff62a8f8515e4ed1a627b26b7ce1994e\ Complete output (14 lines): running bdist_wheel running build running build_py file MeCab.py (for module MeCab) not found file MeCab.py (for module MeCab) not found running build_ext building '_MeCab' extension creating build creating build\temp.win-amd64-3.9 creating build\temp.win-amd64-3.9\Release C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\Program Files\MeCab\sdk -Ic:\programs\python\python39\include -Ic:\programs\python\python39\include -IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\ATLMFC\include -IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include -IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt /EHsc /TpMeCab_wrap.cxx /Fobuild\temp.win-amd64-3.9\Release\MeCab_wrap.obj MeCab_wrap.cxx MeCab_wrap.cxx(3137): fatal error C1083: include ファイルを開けません。'mecab.h':No such file or directory error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.28.29333\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2 ---------------------------------------- ERROR: Failed building wheel for mecab-python-windows Running setup.py clean for mecab-python-windows Failed to build mecab-python-windows Installing collected packages: mecab-python-windows Running setup.py install for mecab-python-windows ... error ERROR: Command errored out with exit status 1: command: 'e:\programs\python\python39\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\xxxx\\AppData\\Local\\Temp\\pip-install-essa5efg\\mecab-python-windows_ff62a8f8515e4ed1a627b26b7ce1994e\\setup.py'"'"'; __file__='"'"'C:\\Users\\xxxx\\AppData\\Local\\Temp\\pip-install-essa5efg\\mecab-python-windows_ff62a8f8515e4ed1a627b26b7ce1994e\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\xxxx\AppData\Local\Temp\pip-record-8w33mq2q\install-record.txt' --single-version-externally-managed --compile --install-headers 'e:\programs\python\python39\Include\mecab-python-windows' cwd: C:\Users\hiroy\AppData\Local\Temp\pip-install-essa5efg\mecab-python-windows_ff62a8f8515e4ed1a627b26b7ce1994e\ Complete output (14 lines): running install running build running build_py file MeCab.py (for module MeCab) not found file MeCab.py (for module MeCab) not found running build_ext building '_MeCab' extension creating build creating build\temp.win-amd64-3.9 creating build\temp.win-amd64-3.9\Release C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\Program Files\MeCab\sdk -Ie:\programs\python\python39\include -Ic:\programs\python\python39\include -IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\ATLMFC\include -IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include -IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt /EHsc /TpMeCab_wrap.cxx /Fobuild\temp.win-amd64-3.9\Release\MeCab_wrap.obj MeCab_wrap.cxx MeCab_wrap.cxx(3137): fatal error C1083: include ファイルを開けません。'mecab.h':No such file or directory error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.28.29333\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2 ---------------------------------------- ERROR: Command errored out with exit status 1: 'c:\programs\python\python39\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\xxxx\\AppData\\Local\\Temp\\pip-install-essa5efg\\mecab-python-windows_ff62a8f8515e4ed1a627b26b7ce1994e\\setup.py'"'"'; __file__='"'"'C:\\Users\\xxxx\\AppData\\Local\\Temp\\pip-install-essa5efg\\mecab-python-windows_ff62a8f8515e4ed1a627b26b7ce1994e\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\hiroy\AppData\Local\Temp\pip-record-8w33mq2q\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\programs\python\python39\Include\mecab-python-windows' Check the logs for full command output. |
これはmecab-python3をpipでインストールすることで解決できます。
1 2 3 4 5 |
PS C:\> pip3 install mecab-python3 Collecting mecab-python3 Downloading mecab_python3-1.0.3-cp39-cp39-win_amd64.whl (509 kB) |████████████████████████████████| 509 kB 327 kB/s Installing collected packages: mecab-python3 Successfully installed mecab-python3-1.0.3 |
これでmecab-python3のインストールができました。
形態素解析を試みる
それでは手始めに「かれのくるまでまつ」の形態素解析をしてみましょう。全文ひらがなです。「かれ」は「彼」と「枯れ」、「くるまで」は「車で」と「来るまで」と解釈可能で全文ひらがなの文章の形態素解析は難しいはずですが、MeCabは形態素解析を行えます。
次のソースをsample.pyとして保存してコンパイルしてください。
1 2 3 4 5 6 7 |
import MeCab mecab = MeCab.Tagger("-Ochasen") sent = "かれのくるまでまつ" print(mecab.parse(sent)) |
そして下記のように実行します。
1 |
PS C:\(作業フォルダ)>py sample.py |
すると、下記のように出力されます。「かれのくるまでまつ」は「枯れの来るまで待つ」と解析されています。
1 2 3 4 5 6 |
かれ カレ かれる 動詞-自立 一段 連用形 の ノ の 助詞-格助詞-一般 くる クル くる 動詞-自立 カ変・クル 基本形 まで マデ まで 助詞-副助詞 まつ マツ まつ 動詞-自立 五段・タ行 基本形 EOS |
IPA-NEologd 辞書の導入
「今日はメロンパンを食べました。」という文章を解析してみるとメロンパンがメロンとパンで分解されて認識されていません。ソースコードは次の通りです。
1 2 3 4 5 6 7 |
import MeCab mecab = MeCab.Tagger('-Ochasen') sent ="今日はメロンパンを食べました" print(mecab.parse(sent)) |
この出力結果は次の通りです。
1 2 3 4 5 6 7 8 9 |
今日 キョウ 今日 名詞-副詞可能 は ハ は 助詞-係助詞 メロン メロン メロン 名詞-一般 パン パン パン 名詞-一般 を ヲ を 助詞-格助詞-一般 食べ タベ 食べる 動詞-自立 一段 連用形 まし マシ ます 助動詞 特殊・マス 連用形 た タ た 助動詞 特殊・タ 基本形 EOS |
これはWindows Subsystem for Linuxを利用するのが確実です。
WSL(Windows Subsystem for Linux)のインストール
WindowsがWSLが利用できる設定と仮定します。WSLでDebianをインストールします。Debianがインストールできたならば、次にDebianにMeCabをインストールします。PowerShellを立ち上げ、下記の通り打ち込むとPowerSellでDebianにログインできます。
1 |
PS C:\>wsl -d debian |
これでMeCabがインストール完了です。
1 2 3 4 5 6 7 |
$ sudo apt-get update $ sudo apt install mecab $ sudo apt install libmecab-dev $ sudo apt install mecab-ipadic-utf8 $ sudo apt install git $ sudo apt install make $ sudo apt install curl |
mecab-ipadic-NEologdをDebianにインストール
次にmecab-ipadic-NEologdをインストールします。下記の通り打ち込んでください。
1 2 3 |
$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git $ cd mecab-ipadic-neologd $ sudo bin/install-mecab-ipadic-neologd -n -a |
これでmecab-ipadic-NEologdがDebianにインストールできます。
辞書をWindowsにコピーする
Debianのmecab-ipadic-NEologdの辞書をWindowsにコピーします。C:\Program Files\MeCab\dic\にNEologdフォルダを作成します。そこに辞書をコピーします。
1 |
$ sudo cp /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/* /mnt/c/Program Files/MeCab/dic/NEologd/ |
これでコピーができます。
mecab-ipadic-NEologdの辞書を使用する
mecab-ipadic-NEologdの辞書を使うにはソースコードを少し変更しなければなりません。
1 2 3 4 5 6 7 8 |
import MeCab mecab = MeCab.Tagger('-Ochasen -d "C:/Program Files/MeCab/dic/NEologd"') sent ="今日はメロンパンを食べました" print(mecab.parse(sent)) |
これをsampl2.pyとして保存し、Pythonでコンパイルします。
1 |
PS C:\(作業フォルダ)>py sample2.py |
出力結果は次の通りです。
1 2 3 4 5 6 7 8 |
今日 キョウ 今日 名詞-副詞可能 は ハ は 助詞-係助詞 メロンパン メロンパン メロンパン 名詞-固有名詞-一般 を ヲ を 助詞-格助詞-一般 食べ タベ 食べる 動詞-自立 一段 連用形 まし マシ ます 助動詞 特殊・マス 連用形 た タ た 助動詞 特殊・タ 基本形 EOS |
メロンパンが認識できています。
- システム
エンジニア - なるほど。MeCabをPythonで使えるなら、私もやってみます。
- プロジェクト
マネージャー - ご紹介した方法でPythonにMeCabをインストールして使ってみてください。
まとめ
テキストを読み込んでの形態素解析など、NumPyを使えば統計として価値あるものへと昇華できます。Python3でMeCabを使うとまだまだ奥が深い形態素解析ができるので、興味のある方はぜひ調べてみてください。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


新着案件New Job
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅)遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅)病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅)開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅)債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅)PMO/東京都豊島区/【WEB面談可】/在宅勤務
月給55万~55万円東京都豊島区(池袋駅)