.NETエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnet.NETナビ
  2. .NETコラム
  3. プログラミング言語
  4. Python
  5. MeCabをPython3で使ってみよう|形態素解析について分かりやすく解説

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

  • Python
  • プログラミング言語
公開日時:   更新日時:
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を立ち上げて下記の通り打ち込みます。

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

    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でコンパイルします。

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

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

    システム
    エンジニア
    なるほど。MeCabをPythonで使えるなら、私もやってみます。
    プロジェクト
    マネージャー
    ご紹介した方法でPythonにMeCabをインストールして使ってみてください。

    まとめ

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

    FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    新着案件New Job