LoginSignup
1
3

More than 1 year has passed since last update.

WordCloudであいみょんの世界を感じて遊んでみる

Last updated at Posted at 2021-07-04

このあいだ

で WordCloudで遊ぶひな形を作ってみたので、今日はあいみょん。

マリーゴールド

「マリーゴールド」の歌詞をテキストにしておいて、

import wordcloud
import matplotlib.pyplot as plt
import MeCab

bun = ""
with open('あいみょん_マリーゴールド.txt') as f:
    for line in f.readlines():
        bun = bun + line.strip() 
wc = wordcloud.WordCloud(width=1000, height=600, background_color="white",
                        font_path=r"C:\windows\Fonts\meiryo.ttc")
tagger = MeCab.Tagger()
word_kaiseki = tagger.parse(bun)
lines = word_kaiseki.split('\n')
selected = []
for line in lines:
    feature = line.split('\t')
    if len(feature) == 2:
        info = feature[1].split(',')
        hinshi = info[0]
        if hinshi in ('名詞', '形容詞', '動詞'):
            selected.append(info[6])
wc.generate(" ".join(selected))
plt.imshow(wc)
plt.axis("off")

image.png

「マリーゴールド」が「マリー」と「ゴールド」に分かれてしまっているのでそれは別の工夫が必要そうです。
サビのところをもう少し大きくするためのチューニングも考えたいけれど、まずは歌詞の言葉を大切にしたいので
原型を使っていた

            selected.append(info[6])

のところを

            selected.append(feature[0])

にしてみます。

import wordcloud
import matplotlib.pyplot as plt
import MeCab

bun = ""
with open('あいみょん_マリーゴールド.txt') as f:
    for line in f.readlines():
        bun = bun + line.strip() 
wc = wordcloud.WordCloud(width=1000, height=600, background_color="white",
                        font_path=r"C:\windows\Fonts\meiryo.ttc")
tagger = MeCab.Tagger()
word_kaiseki = tagger.parse(bun)
lines = word_kaiseki.split('\n')
selected = []
for line in lines:
    feature = line.split('\t')
    if len(feature) == 2:
        info = feature[1].split(',')
        hinshi = info[0]
        if hinshi in ('名詞', '形容詞', '動詞'):
            selected.append(feature[0])
wc.generate(" ".join(selected))
plt.imshow(wc)
plt.axis("off")

image.png

wc = wordcloud.WordCloud(width=1000, height=600, background_color="white",
                        font_path=r"C:\windows\Fonts\meiryo.ttc")

のところを

wc = wordcloud.WordCloud(width=1000, height=600, background_color="white",
                        font_path=r"C:\windows\Fonts\meiryo.ttc",
                        stopwords=["いつ", "し", "さ", "よう"])

としてストップワードを設定してみます。

image.png

if hinshi in ('名詞', '形容詞', '動詞'):

それぞれ別に抽出してみます。

if hinshi in ('名詞',):

image.png

if hinshi in ('形容詞',):

image.png

if hinshi in ('動詞',):

image.png

裸の心

ここまでのソースを関数化してファイル名、ストップワード、使用する品詞などを外からパラメータで渡すようにすればもっと遊びやすくなりそうですが、まぁそのままファイル名のところだけを変えてやってみます。

import wordcloud
import matplotlib.pyplot as plt
import MeCab

bun = ""
with open('あいみょん_裸の心.txt') as f:
    for line in f.readlines():
        bun = bun + line.strip() 
wc = wordcloud.WordCloud(width=1000, height=600, background_color="white",
                        font_path=r"C:\windows\Fonts\meiryo.ttc")
tagger = MeCab.Tagger()
word_kaiseki = tagger.parse(bun)
lines = word_kaiseki.split('\n')
selected = []
for line in lines:
    feature = line.split('\t')
    if len(feature) == 2:
        info = feature[1].split(',')
        hinshi = info[0]
        if hinshi in ('名詞', '形容詞', '動詞'):
            selected.append(feature[0])
wc.generate(" ".join(selected))
plt.imshow(wc)
plt.axis("off")

image.png

愛を知るまでは

import wordcloud
import matplotlib.pyplot as plt
import MeCab

bun = ""
with open('あいみょん_愛を知るまでは.txt') as f:
    for line in f.readlines():
        bun = bun + line.strip() 
wc = wordcloud.WordCloud(width=1000, height=600, background_color="white",
                        font_path=r"C:\windows\Fonts\meiryo.ttc",
                        stopwords=["の", "ない"])
tagger = MeCab.Tagger()
word_kaiseki = tagger.parse(bun)
lines = word_kaiseki.split('\n')
selected = []
for line in lines:
    feature = line.split('\t')
    if len(feature) == 2:
        info = feature[1].split(',')
        hinshi = info[0]
        if hinshi in ('名詞', '形容詞', '動詞'):
            selected.append(feature[0])
wc.generate(" ".join(selected))
plt.imshow(wc)
plt.axis("off")

image.png

君はロックを聴かない

with open('あいみょん_君はロックを聴かない.txt') as f:

にして、stopwordsの設定無しでやってみました。

image.png

やってみて

ここから、短い歌詞の場合はなにをどのように改善すればいいのかを考えてゆきたい。
最近の歌詞の場合は新語への対応を考えたほうがいいのかな。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3