【Python】形態素解析エンジンMeCabを使用して字句解析しよう!


この記事では、形態素解析ライブラリMeCabを使用して、文章生成AIなどで利用される文章の字句解析について解説していきます。

この記事で紹介するMeCabはVisual Studio Communityでの使用方法を記載しています。

まだ、Visual Studio Communityをインストールしていない方は、「【C#入門】無料で使える開発環境Visual Studio Community 2019の環境構築方法を解説」を参考にしてください。

また、Pythonをもっと詳しく勉強したいという方は、【超厳選】20代におすすめのプログラミングスクール3選!を参考にしてください。

他にも無料でプログラミングスクールを受講したいという方は、【完全無料】0円で学べるプログラミングスクールを紹介【大学生向け】を参考にしてください。

MeCabとは?

日本語の形態素解析エンジン(ソフトウェア)として最も有名なのがMeCabです。

MeCabは、オープンソースの形態素解析エンジンで、誰でも自由に無償で利用できます。

ちなみに、MeCabという名前になったのは、開発者の方が「めかぶ」が大好物だったためにMeCabという名前になったようです。

形態素解析とは

形態素解析とは、日頃使っている言葉(自然言語)を「形態素」(=意味を有する表現要素の最小単位)にまで分割し、それらが品詞としてどれに当たるのか分類する文字列抽出法のことです。

簡単に訳すと、文章を最小単位の単語ごと分割しようというものです。

ここでいう文章を最小単位の単語ごとに分割することを「字句解析」と言います。

MeCabを使ってみよう!

Mecabのインストール

まずは、MeCabをインストールしましょう。

Visual Studio Communityで「表示」>「その他のウィンドウ」>「Python環境」を選択してください。

すると、右側に「Python環境」と表示されます。

次に、Python環境で「パッケージ(PyPl)」を選択します。

そして、「PyPlとインストールされたパッケージの検索」と記載されているところに「mecab-python3」と入力して、「Enter」を押してください。

正常にインストールが完了すれば、いよいよMeCabを使用することが出来ます。

MeCabを使用して字句解析しよう!

まずは、以下のコードをコピペして実行してください。

import MeCab

t = MeCab.Tagger()
textDatas = t.parse('犬も歩けば棒に当たる').split()
print(textDatas)

実行すると、以下のような結果が得られます。

['犬', 'イヌ', 'イヌ', '犬', '名詞-普通名詞-一般', '2', 'も', 'モ', 'モ', 'も', '助詞-係助詞', '歩け', 'アルケ', 'アルク', '歩く', '動詞-一般', '五段-カ行', '仮定形-一般', '2', 'ば', 'バ', 'バ', 'ば', '助詞-接続助詞', '棒', 'ボー', 'ボウ', '棒', '名詞-普通名詞-一般', '0', 'に', 'ニ', 'ニ', 'に', '助詞-格助詞', '当たる', 'アタル', 'アタル', '当たる', '動詞-一般', '五段-ラ行', '終止形-一般', '0', 'EOS']

「犬も歩けば棒に当たる」という文章を品詞ごとに分割して表示していることが分かります。

ただ、これでは見にくいですよね。そこで、単語ごとに表示するようにするために以下のコードに修正して実行してください。

import MeCab

t = MeCab.Tagger('-Owakati')
textDatas = t.parse('犬も歩けば棒に当たる').split()
print(textDatas)

実行すると、次のようになります。

['犬', 'も', '歩け', 'ば', '棒', 'に', '当たる']

これで、Pythonで字句解析をすることが出来ました。

【まとめ】MeCabを使用することで字句解析が出来る

Pythonでは、形態素解析エンジンMeCabを使用することで簡単に字句解析を行うことが出来ます。

最後になりますが、私の体験談やみなさんの疑問に対して、できる限り分かりやすく記載したつもりです。ですが、もしここに関してもっと詳しく教えて欲しいときなどは、遠慮なく、お問い合わせ、コメント、Twitterにてご連絡ください。

最後までお読みいただきありがとうございました。