見出し画像

【コード1行解説】 python 日本語版WordCloudの作成

割引あり

はじめに

これだけあればWordCloudを作ることができます。を目指して丁寧に解説しました。
WordCloudの作成は自然言語処理の入門として最適で、python初心者の第一歩としてもおすすめです。

一般に出ている記事とは異なり、コード1行ごとに解説を挟んでいます。かなり丁寧に書いているので専門知識不要かつ、どんな方でも0から以下のようなWordCloudが最短で作れるように設計しています。

コピペ用のコードもあるので、スムーズにいけば15分ほどでWordCloudを作ることができます。

また、質問対応も受け付けているため不明な点があればサポートさせていただきます。

対象者

pythonを使って日本語版WordCloudを作成したい
pythonの理解を深めるために何か学習物が欲しい。
記事を見てもコードがどの行で何をやっているかわからない。
このライブラリは何といった疑問がある。

pythonを導入したばかり〜少し理解し始めた。
基本的にwindows対象者向け。(macでもコード解説の部分は非常に有用だと思われます。)

コード1行解説サンプル(本編より抜粋)

本記事は理解を深めるためにコード1行ごとに全て解説をつけているのが特徴です。
1行ずつ解説を入れることでそのコードが何をしているのか分かるような構成にしております。
コード本編よりも解説の方が分量が多く理解を深めることができます。

以下に例を載せます。

コード内にコメントにて解説をしています!
そのためそのまま貼り付けながら学習することができます。

以下#にて記載している内容が解説です。
上から読んでみてください。

```python
import MeCab

# 分析するテキストを入力する。
text = """
イヌの特徴としてヒトと同じく社会的動物であることが挙げられる。
意思疎通をするための感情や表情も豊かで、褒める、認める、命令するなどの概念を持っている。
ヒトに飼われているイヌは、人間の家族と自身を1つの群れの構成員と見なしていると考えられ、
群れの中の上位者によく従い、その命令に忠実な行動を取る。
この習性のおかげでイヌは訓練が容易で、古くからヒトに飼われてきた。
最古の家畜とする説が有力である。
子犬を入手して飼う場合には、親犬の元での犬社会に対する社会化教育と新しい飼い主と家庭および周囲環境への
馴化(じゅんか)との兼ね合いから、ほぼ6週齢から7週齢で親元より直接譲り受けるのが理想的とされる。
"""
# 解説:
# 今回Wikipediaの「犬」の記事を題材に持ってきました。なんでも良いです。

# 使用するmecabの読み込み
mecab = MeCab.Tagger("-Ochasen")
# 解説:
# Taggerの()内にて出力形式を選択
# "-Ochasen":品詞情報(一般的)
# "-Owakati":分かち書き(スペースで単語を区切る)
# "-Oyomi" :読み仮名
# ちなみに。-Oは恐らく「オプション(option)」の頭文字
# "." は基本的に「の」と読み替えてもらうといいかと。
# MecabのTaggerという機能を「-Ochasen」という出力設定で使いますという意味。

# parseToNodeに分析をするtextを投げる
node = mecab.parseToNode(text)
# 解説:
# 今回品詞情報にて単語を区別するため、
# mecabのparseToNodeと呼ばれる機能を使い、出力形式を固定します。

# 解析した最初の5単語を表示
for _ in range(5):
# 解説:
# for文を使い以下の処理を5回行います。
# 5という数字を変更すると、出力する単語の個数が変わります。

    # 解析結果であるnodeの次の単語のfeatureという属性を出力します。
    print(node.next.feature)
    # 解説:
    # nodeの1番最初は、解析の1番目ですといった文言が入っており
    # 言葉が入っていないため、nextとして次の単語を参照しにいきます。
    # .feature(特徴)では以下のような出力を参照しています。
    # 出力の例としては
    # 「"名詞,一般,*,*,*,*,バナナ,バナナ,バナナ"」などとなっており、
    # 単語の特徴(feature)が一つに格納されています。

    # nodeを更新
    node = node.next
    # 解説:
    # nodeの位置を更新します。node自体をnodeの次の単語として
    # 再定義することでループを行い次々と単語の出力を行います。

各行ごとの解説(コード内にも記載しています)

# 使用するmecabの読み込み
mecab = MeCab.Tagger("-Ochasen")

解説:
Taggerの()内にて出力形式を選択
"-Ochasen":品詞情報(一般的) 
"-Owakati":分かち書き(スペースで単語を区切る)
"-Oyomi" :読み仮名
ちなみに。-Oは恐らく「オプション(option)」の頭文字
"." は基本的に「の」と読み替えてもらうといいかと。
MecabのTaggerという機能を「-Ochasen」という出力設定で使いますという意味。

続く。。。

このレベルの丁寧さでWordCloudの完成までを解説しています。
この記事を読むことでpythonの基本も網羅的に理解できるようになっているのでpython初心者にも非常におすすめです。
WordCloudについて、この記事で完全にマスターしちゃいましょう!

※記事について値上げする可能性があるためご了承くださいませ。


WordCloud概要

  1. 文書を用意する

  2. 単語の単位を分析する

  3. 単語を分かち書き(単語間をスペースで区切る)にする

  4. 分かち書きした単語をワードネットライブラリに投げて画像生成

補足解説

  1. 単語の単位を分析するについて
    日本語だと難しいです。英語だと単語がスペースで区切られているのですが、日本語は単語がスペースで区切られていないからです。

英語)  I have an apple.
日本語) 私はりんごを持っています。

そこで形態素解析という文章を単語レベルに切り分ける技術(文書を解析する技術)を使います。

形態素解析
日本語) 私はりんごを持っています。
形態素解析後)私 / は / りんご / を / 持って / います / 。

日本語の形態素解析ではmecabというツールが一つとして有名です。
早速インストールしていきましょう。

mecabインストール

mecabのインストールは以下の2種類あります。
1. PC本体にいれる(OSに導入)←推奨
2. pythonに導入する

「1.PC本体に入れる」方法では後々内部の辞書を再構築できたりするため
基本的には1の方法を推奨とさせていただきます。
WordCloudを作る観点では複雑な処理をしない場合、2.の方法でも問題ないです。
そのため1の方法でうまく行かなかった場合、2.の方法を試してみてください。

ここから先は

11,879字 / 6画像

この記事が気に入ったらサポートをしてみませんか?