はるすえすしーのぶろぐ

ブログのないようがないよう

MeCabを使ってみた話(Pythonもちょっぴり)

まえがき

 お久しぶりです。まぁじです。

 なんか前のブログから3ヶ月経ってるらしく広告も表示されているのでそろそろ書こうかな、と思い立ったのでちょうどやりたかった「MeCabによる形態素解析」をやってみます。

 これはいつものやつなんですが、プログラミングについてよくわかっている人にとっては知っていることばかりだと思うので、暇を持て余した石油王か僕のブログに興味のある奇怪な人だけ読んでください。

 

はじめに

このブログの内容

  • MeCabとは(軽く)
  • MeCabのインストール&つまづいたところ
  • PythonMeCabを触ってみる

 

MeCabとは

MeCab京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所 共同研究ユニットプロジェクトを通じて開発されたオープンソース 形態素解析エンジンです。 

MeCab: Yet Another Part-of-Speech and Morphological Analyzer

 なんか形態素解析ってやつをやるものだそうです。

形態素解析とは

形態素解析(morphological analysis)とは、検索エンジンにも用いられている自然言語処理の手法の一つで、ある文章・フレーズを「意味を持つ最小限の単位(=単語)」に分解し、文章やフレーズの内容を判断するために用いられます。

記事一覧 | ナイルのSEO相談室

要するに、何か文があったときにそれを単語単語に分ける作業です。小中学校の国語とかで多分皆さんやったことがあると思います。

例)「私は天才なので九九が言えます」

  →私 / は / 天才 / なので / 九九 / が / 言え / ます

というふうになります。ただしこれをMeCabで行うと九九を九 / 九というふうに分けてしまうので注意です。

MeCabのインストール

環境は以下の通りです。なおPythonやpipはインストール済みとします。

  • Windows10 Home 64bit
  • Python 3.7.1 (公式サイトからのインストール)
  • エディタ:Atom (Version 1.40.1)

インストールしてみよう

64bit版のインストーラーがあるようなのでそれを利用しました。(ただし非公式)
Release MeCab 0.996 64bit version · ikegami-yukino/mecab · GitHub
Assetsの一番上の「mecab-64-0.996.2.exe」をクリックしてダウンロード、ダウンロード完了後インストールをします。
インストールは大体OKでいいですが、エンコード形式を選ぶ画面(多分)では「utf-8」を選択するようにして下さい。

MeCabのPathを通す

Cortanaで「環境変数の編集」と入力し設定画面を開きます。その中の「Path」をクリックしてから「編集」をクリックします。
f:id:halss:20190827213931p:plain

たくさんパスがでてくるので、『mecab.exe』が入っているフォルダのパスをコピーし「新規」を押して1番下に入力します。(僕の場合は↓でした。)

C:\Program Files\MeCab\bin

f:id:halss:20190827214343p:plain

入力が終わり、OKでウィンドウを閉じた後コマンドプロンプトPowerShellを開き「mecab」と入力してみてエラーが出なければ成功です。
適当に言葉を入力してみましょう。文字化けはしていますがこれはコマンドプロンプトエンコード形式がutf-8じゃない(確かShift-JIS)からです。それを除けばちゃんとできていますね。

C:\Users\****>mecab
我々は宇宙人だ
        險伜捷,荳闊ャ,*,*,*,*,*
艨X     蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,*
は      險伜捷,荳闊ャ,*,*,*,*,*
F       蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,*
宙      險伜捷,荳闊ャ,*,*,*,*,*
l       蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,*
だ      險伜捷,荳闊ャ,*,*,*,*,*
EOS
Pathが通らない場合
C:\Users\****>mecab
'mecab' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

このように表示された場合はPathが通っていません。策としては

  1. 環境変数名の編集でパスを選択して「上へ」を押し1番上にする
  2. 「参照」でファイルの場所を直接示す
  3. パスの末尾に「\」を追加する
  4. PCを再起動してみる

があります。これでできなければ再インストールした方がいいと思われます…

PythonMeCabをいじる

以下のコマンドをコマンドプロンプトPowerShellで入力します。

C:\Users\****>pip install mecab-python-windows

これでPythonを使ってMeCabを触ることができるようになりました。

テキスト「text.txt」を用意します。今回は西尾維新の「化物語シリーズ」に出てくる阿良々々木暦(失礼かみまみた)のセリフを形態素解析してみようと思います。
これをtext.txtとし、utf-8で保存しておきます。

友達は作らない、人間強度が下がるから

mecab_test.py」は以下のようにしておきます。

import MeCab
import sys
import re

#ファイルの読み込み
fp="****\\text.txt"
with open(fp,encoding="utf-8") as f:
    data=f.read()

parse=MeCab.Tagger().parse(data)
lines=parse.split("\n")
items=[re.split("[\t,]",line) for line in lines]

for item in items:
    print(item)

実行結果はこんな感じです。ちゃんと動いているかと思います。

****>python mecab_test.py
['\ufeff', '記号', '一般', '*', '*', '*', '*', '*']
['友達', '名詞', '一般', '*', '*', '*', '*', '友達', 'トモダチ', 'トモダチ']
['は', '助詞', '係助詞', '*', '*', '*', '*', 'は', 'ハ', 'ワ']
['作ら', '動詞', '自立', '*', '*', '五段・ラ行', '未然形', '作る', 'ツクラ', 'ツクラ']
['ない', '助動詞', '*', '*', '*', '特殊・ナイ', '基本形', 'ない', 'ナイ', 'ナイ']
['、', '記号', '読点', '*', '*', '*', '*', '、', '、', '、']
['人間', '名詞', '一般', '*', '*', '*', '*', '人間', 'ニンゲン', 'ニンゲン']
['強度', '名詞', '一般', '*', '*', '*', '*', '強度', 'キョウド', 'キョード']
['が', '助詞', '格助詞', '一般', '*', '*', '*', 'が', 'ガ', 'ガ']
['下がる', '動詞', '自立', '*', '*', '五段・ラ行', '基本形', '下がる', 'サガル', 'サガル']
['から', '助詞', '接続助詞', '*', '*', '*', '*', 'から', 'カラ', 'カラ']
['EOS']
['']
おわりに

なんかいろいろ活用しようかと思ったらインストールしてちょっと試すだけで1ブログ書けました。内容がないので超絶面白ギャグを言って終わります。
メカブが…浮かぶ!!!!!!!!!!!!!!!
以上です。読んでいただきありがとうございました。