Python

【超簡単】Python MeCab,ワードクラウドの導入から使い方

Python

この記事では、こんな悩みを解決します。

悩んでる人
悩んでる人

このタイトルの画像のように文字をグラフィックかしてみたい!

主に使うライブラリは、二つ

  • ワードクラウド
  • MeCab
  • 「ワードクラウド」とは、文章中に現れる出現頻度の高い単語を抽出し、グラフィックで表現したものです。
  • 「MeCab」とは、日本語の形態素解析です。日本語を最小単位の品詞に分解するのに使います。

導入

Wordcloudの導入

Mac

ターミナルから

Windows

コマンドプロンプトから

以下のように入力し、エンターを押す。

$pip install wordcloud

フォントのインストール

公式サイトよりフォントをインストールする。

インストールしたファイルを解凍する。
解凍した先のパスをコピーする。

MeCabの導入

Mac

MeCabはHomeBrewからインストール可能です。

$ brew install mecab

もしくは、以下をpipする。

pip install ipadic

pythonでMeCabを使用可能にするために以下をpipする。

$pip install mecab-python3

Windows

pythonでMeCabを使用可能にするために。

$pip install mecab-python3

Windowsの場合こちらの事前インストールは必要です。mecabのバイナリはpipのパッケージに付いています。https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads

使い方

Wordcloudの使い方

font_path=”ダウンロードしたフォントのパスを入力する。”

今回は、例として、NotoSansCJKjp-DemiLight.otfを使用する。

from wordcloud import WordCloud
from matplotlib import pyplot as plt
text = "こんにちは、"

wc = WordCloud(background_color = "white",font_path="/Users/Desktop/NotoSansCJKjp-DemiLight.otf")
wc.generate(text)
plt.imshow(wc)
plt.axis("off")
plt.show()

#save
wc.to_file("wc_image_en.png")

出力結果

MeCabの使い方

import MeCab
mecab = MeCab.Tagger()
print(mecab.parse("綺麗な花が咲いている。"))

出力結果

綺麗	名詞,形容動詞語幹,*,*,*,*,綺麗,キレイ,キレイ
な	助動詞,*,*,*,特殊・ダ,体言接続,だ,ナ,ナ
花	名詞,一般,*,*,*,*,花,ハナ,ハナ
が	助詞,格助詞,一般,*,*,*,が,ガ,ガ
咲い	動詞,自立,*,*,五段・カ行イ音便,連用タ接続,咲く,サイ,サイ
て	助詞,接続助詞,*,*,*,*,て,テ,テ
いる	動詞,非自立,*,*,一段,基本形,いる,イル,イル
。	記号,句点,*,*,*,*,。,。,。
EOS

WordcloudとMeCabを組み合わせた使い方

import MeCab
import re
from wordcloud import WordCloud
from matplotlib import pyplot as plt

mecab = MeCab.Tagger()
text = mecab.parse(" あなたは壊れたロボットを修理する。ロボットは治った。")
lines = text.split("\n")
items = (re.split('[\t,]', line) for line in lines)

words = []
i = 0
for item in items:
    if item[0] == 'EOS' or item[0] == '':
        pass
    elif item[1] in ["名詞", "形容詞", "動詞", "副詞"]:
        words.append(item[0])
text = ' '.join(words)
wc = WordCloud(background_color = "white",font_path="/Users/tsuchiyayuki/Desktop/Noto/NotoSansCJKjp-DemiLight.otf")
wc.generate(text)
plt.imshow(wc)
plt.axis("off")
plt.show()

出力結果

コメント

  1. […] 【超簡単】Python|MeCab,ワードクラウドの導入から使い方はじめに「ワードク… […]

  2. […] 【超簡単】Python|MeCab,ワードクラウドの導入から使い方はじめに「ワードク… […]

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