WordCloudを導入した


EIGHT
WordCloudを導入した

WordCloudとは

文章に頻出する単語を抽出して画像に出力するシステムのこと。

実装について

import os
from tqdm import tqdm
from wordcloud import WordCloud
from pyknp import Juman
import matplotlib.pyplot as plt

juman = Juman(timeout = 1000)

exclude_list = ["社","ため","こと","もの","プロジェクト", "発表","ほか","年"]
text = "今日はいい天気です"
text = text.replace(" ", "").replace("\"", "").replace("@", "").replace("#","")
result =juman.analysis(text)
result = [mrph.midasi for mrph in result.mrph_list() if (mrph.hinsi == "名詞") and not (mrph.midasi in exclude_list)]
word_chain = ' '.join(result)

wc = WordCloud(background_color = "white",
font_path= "~/Library/Fonts/Arial Unicode.ttf")
wc.generate(word_chain)
plt.imshow(wc)
plt.axis("off")
plt.show()

形態素分析

まず形態素分析する必要がある。最新の形態素分析はJUMAN++なのでそれを導入すべし。 インストールするのは簡単だが、仮想環境にも導入するには少し面倒くさい。

WordCloudの注意点

  1. 文章をそのまま形態素分析してWordCloudに入力すると、「こと」「もの」などのしょうもない名詞や、「で」「が」などの助詞が入ってしまうので取り除く必要がある。

exclude_list = ["社","ため","こと","もの","プロジェクト", "発表","ほか","年"]
result = [mrph.midasi for mrph in result.mrph_list() if (mrph.hinsi == "名詞") and not (mrph.midasi in exclude_list)]

このように書くことで、resultには名詞のみでexclude_listは除外された単語だけが入るようになる。

  • JUMANにはエラーになりうる記号があるので、次のようにして除外しておく。

  • text = text.replace(" ", "").replace("\"", "").replace("@", "").replace("#","")
  • WordCloudは日本語に対応していないので、日本語フォントのパスを指定する必要がある。 Macであれば下記のようにする。

  • wc = WordCloud(background_color = "white",
    font_path= "~/Library/Fonts/Arial Unicode.ttf")

    株式会社ファントムへのお問い合わせ

    群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。




      Related Articles

      Django

      ダウンロードするファイルの文字コードを動的に変更

      ダウンロードするファイルの文字コードを動的に変更 ウェブアプリケーションの中でCSVやテキストファイルをダウンロードさせた時に文字化けが発生する事があります。使用する文字コードが決まっていれば予め固定してしまう事で文字化 […]

      Posted on by press
      Python

      PillowでPNGファイルを変換するときの背景処理

      PillowでPNGファイルを変換するときの背景処理 PillowでPNGファイルをJPGに変換するときに、背景が透過のファイルを変換すると透過部分が黒くなったり、不自然な途切れ方をしたりといった時の対処方法です。 開発 […]

      Posted on by press

      最新情報をお届けします!

      メーリングリストに登録するとファントムの最新情報をお届けします

      お客様のメールアドレスを共有することはありません