今回はMeCabをインストールして日本語のwordcloudを作成します。
MeCabはオープンソースの形態素解析エンジンで
英語のようにスペース区切りの文章ではない日本語でも的確に単語を抽出してくれます。
本検証は以前投稿しているUbuntu20.04で実施しています。
Ubuntu20.04
![ubuntu20.04](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-29.png)
python 3.9.1
pip 21.0.1
![Python 3.9.1
pip 21.0.1](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-30.png)
また、MeCabは以下も必要となりますのでインストールされていない場合は
sudo apt install ●●●でインストールしておきましょう。
g++ 9.3.0
iconv 2.31
![g++ version
iconv version](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-31.png)
MeCabのダウンロード
赤枠のダウンロードリンクからMecabと辞書をダウンロードします。
![MeCabの本体と辞書をダウンロード](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-32.png)
ダウンロードしたMeCab本体と辞書を任意の作業場所に格納します。
![MeCabを作業場所へ移動](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-33.png)
MeCabのインストール
MeCab本体を解凍します。
cd ./tmp
tar -xzvf mecab-0.996.tar.gz
![MeCabファイルの解凍](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-34.png)
解凍すると[mecab-0.996]フォルダが作成されるので移動してMakeFileを作成します。
cd ./mecab-0.996/
./configure
![MeCabのMakeFileの作成](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-35.png)
makeします。
make
![makeの実行](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-36.png)
MeCabをインストールします。
sudo make install
![MeCabのsudo make install](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-37.png)
MeCabの辞書のインストール
MeCabの辞書も同様にインストールしていきますが注意点がありますので
解決方法も説明していきます。
MeCabの辞書ファイルを解凍します。
cd ../
tar -xzvf mecab-ipadic-2.7.0-20070801.tar.gz
![MeCab 辞書 解凍](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-38.png)
解凍すると[mecab-ipadic-2.7.0-20070801]フォルダが作成されるので移動して
MakeFileを作成します。(ここではデフォルトで指定される文字コードをutf-8にします)
cd ./mecab-ipadic-2.7.0-20070801/
./configure –with-charset=utf8
![MeCab 辞書 MakeFile作成](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-39.png)
makeをそのままやるとエラーになります。。。
![make error while loading shared libraries](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-40.png)
/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 共有ライブラリ 認識](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-41.png)
makeコマンドを実行してエラーが発生しないことを確認します。
![MeCab 辞書 make](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-42.png)
MeCabの辞書をインストールします。
sudo make install
![MeCab 辞書 インストール](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-43.png)
MeCabの動作検証
インストールしたMeCabを試してみます。
mecab
これはテストです。
![mecab 出力結果](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-44.png)
mecabと入力し、[Enter]を押下すると
文字を入力することができるので任意の文字列を入力し、[Enter]を押下します。
すると上記画面の通り、日本語文章を分解してくれます。
日本語フォントのインストール
まず日本語フォントが環境にインストールされているか確認しましょう。
fc-list
※デフォルトではインストールされていないはずなので
「sudo apt install fontconfig」を実行してください。
![fc-list で利用可能なフォントを表示](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-45.png)
今回はIPAフォントをインストールします。
sudo apt install fonts-ipaexfont
![IPAフォントのインストール](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-46.png)
もう一度、fc-listを実行してIPAフォントがインストールされたことを確認します。
fc-list | grep “IPA”
![IPAフォントのパス確認](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-47.png)
PythonでMeCabをインストール
pipでMeCabをインストールします。
pip3 install –user mecab-python3
![](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-48.png)
簡単にテストを実行してみます。
import MeCab
m = MeCab.Tagger()
print(m.parse(“これはテストです。”))
![MeCab python 実行](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-49.png)
事前に以下もインストールしておきましょう。
pip3 install wordcloud matplotlib
![wordcloud matplotlib インストール](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-50.png)
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 日本語](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-52.png)
![wordcloud 日本語](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-51.png)
日本語で表示されることを確認しました。
作成されたwordcloudを見て、不要な単語があれば
stopwordsを入れて調整していきましょう。
![wordcloud stopwords](https://www.teamxeppet.com/memorandum/wp-content/uploads/2021/02/image-53.png)
コメント