【Python】MeCabをインストールして日本語のwordcloudを作ろう

install

今回はMeCabをインストールして日本語のwordcloudを作成します。
MeCabはオープンソースの形態素解析エンジンで
英語のようにスペース区切りの文章ではない日本語でも的確に単語を抽出してくれます。

本検証は以前投稿しているUbuntu20.04で実施しています。

Ubuntu20.04

ubuntu20.04

python 3.9.1
pip 21.0.1

Python 3.9.1
pip 21.0.1

また、MeCabは以下も必要となりますのでインストールされていない場合は
sudo apt install ●●●でインストールしておきましょう。

g++ 9.3.0
iconv 2.31

g++ version
iconv version

MeCabのダウンロード

赤枠のダウンロードリンクからMecabと辞書をダウンロードします。

MeCab: Yet Another Part-of-Speech and Morphological Analyzer
MeCabの本体と辞書をダウンロード

ダウンロードしたMeCab本体と辞書を任意の作業場所に格納します。

MeCabを作業場所へ移動

MeCabのインストール

MeCab本体を解凍します。

cd ./tmp
tar -xzvf mecab-0.996.tar.gz

MeCabファイルの解凍

解凍すると[mecab-0.996]フォルダが作成されるので移動してMakeFileを作成します。

cd ./mecab-0.996/
./configure

MeCabのMakeFileの作成

makeします。

make

 makeの実行

MeCabをインストールします。

sudo make install

MeCabのsudo make install

MeCabの辞書のインストール

MeCabの辞書も同様にインストールしていきますが注意点がありますので
解決方法も説明していきます。

MeCabの辞書ファイルを解凍します。

cd ../
tar -xzvf mecab-ipadic-2.7.0-20070801.tar.gz

MeCab 辞書 解凍

解凍すると[mecab-ipadic-2.7.0-20070801]フォルダが作成されるので移動して
MakeFileを作成します。(ここではデフォルトで指定される文字コードをutf-8にします)

cd ./mecab-ipadic-2.7.0-20070801/
./configure --with-charset=utf8

MeCab 辞書 MakeFile作成

makeをそのままやるとエラーになります。。。

make error while loading shared libraries

/usr/local/libexec/mecab/mecab-dict-index: error while loading shared libraries: libmecab.so.2: cannot open shared object file: No such file or directory
make: *** [Makefile:253: matrix.bin] Error 127

どうも共有ライブラリを認識させてあげる必要があるので以下コマンドを実行します。

sudo ldconfig

ldconfig 共有ライブラリ 認識

makeコマンドを実行してエラーが発生しないことを確認します。

MeCab 辞書 make

MeCabの辞書をインストールします。

sudo make install

MeCab 辞書 インストール

MeCabの動作検証

インストールしたMeCabを試してみます。

mecab
これはテストです。

mecab 出力結果

mecabと入力し、[Enter]を押下すると
文字を入力することができるので任意の文字列を入力し、[Enter]を押下します。

すると上記画面の通り、日本語文章を分解してくれます。

日本語フォントのインストール

まず日本語フォントが環境にインストールされているか確認しましょう。

fc-list
※デフォルトではインストールされていないはずなので
 「sudo apt install fontconfig」を実行してください。

fc-list で利用可能なフォントを表示

今回はIPAフォントをインストールします。

sudo apt install fonts-ipaexfont

IPAフォントのインストール

もう一度、fc-listを実行してIPAフォントがインストールされたことを確認します。

fc-list | grep "IPA"

IPAフォントのパス確認

PythonでMeCabをインストール

pipでMeCabをインストールします。

pip3 install --user mecab-python3

簡単にテストを実行してみます。

import MeCab
m = MeCab.Tagger()
print(m.parse("これはテストです。"))

MeCab python 実行

事前に以下もインストールしておきましょう。

pip3 install wordcloud matplotlib

wordcloud matplotlib インストール

Pythonで日本語のwordcloudを作成する

PythonでもMeCabを利用できるようになったので
いよいよ日本語のwordcloudを作成していきます。

今回はUbuntuなのでデスクトップ環境が必要です。
Xming等で結果を出力させましょう。
Xmingの使い方は以下を参考にしてください。

サンプルコードは以下です。

import os
from os import path
from wordcloud import WordCloud
from MeCab import Tagger
import matplotlib.pyplot as plt
import re

d=path.dirname(file) if "file" in locals() else os.getcwd()

text = open(path.join(d, "test.txt"), encoding="utf-8").read()
m = Tagger()
m_text = m.parse(text)
re_m_text = re.sub("\t.*","", m_text)

wordcloud = WordCloud(font_path="/usr/share/fonts/truetype/fonts-japanese-gothic.ttf",max_font_size=60).generate(re_m_text)
plt.figure()
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()

test.txt内の文章は青空文庫にある文章を一部引用したものとなります。
日本語のwordcloudが作成されるか実行してみましょう。

wordcloud 日本語 
wordcloud 日本語

日本語で表示されることを確認しました。
作成されたwordcloudを見て、不要な単語があれば
stopwordsを入れて調整していきましょう。

wordcloud stopwords

コメント

タイトルとURLをコピーしました