はじめに
2018年7月場所、西前頭五枚目の嘉風が初日から13連敗しました。
前回、Twitter APIを使って、場所中に投稿された幕内力士名が含まれるツイートを取得した際、嘉風は休場力士を除き5番目にツイート数が多かったことが分かりました。
どんな内容のツイートが多かったのでしょうか。
MeCabで形態素解析し、WordCloudで可視化してみました。
MeCabで形態素解析
スタバのTwitterデータをpythonで大量に取得し、データ分析を試みる その3を参考に、MeCabをインストールして使ってみました。
def words_with_keyword(data):
m = MeCab.Tagger("-d /usr/local/lib/mecab/dic/mecab-ipadic-neologd/")
word_list = []
for i in range(data.shape[0]):
if type(data.text[i]) == str:
texts = m.parse(data.loc[i, 'text'])
texts = texts.split('\n')
for text in texts:
text = re.split('[\t,]', text)
if text[0] == 'EOS' or text[0] == '':
pass
elif text[1] in ['名詞', '形容詞', '動詞', '副詞']:
word_list.append(text[0])
return word_list
力士名はユーザー辞書に登録しないと、単語として認識してくれないため、MeCabにユーザー辞書を追加するを参考に、
鶴竜,,,1,名詞,固有名詞,人名,名,*,*,*,*,*
白鵬,,,1,名詞,固有名詞,人名,名,*,*,*,*,*
稀勢の里,,,1,名詞,固有名詞,人名,名,*,*,*,*,*
このようなファイルを作り、
$ /usr/local/Cellar/mecab/0.996/libexec/mecab/mecab-dict-index \
-d /usr/local/lib/mecab/dic/ipadic \
-u /usr/local/lib/mecab/dic/userdic/mecab_user_dic.dic \
-f utf-8 -t utf-8 /usr/local/lib/mecab/dic/userdic/mecab_user_dic.csv
このようなコマンドで登録しました。
WordCloudで可視化
Word Cloudで文章の単語出現頻度を可視化する。[Python]を参考に、上で作ったword_listをWordCloudに食べさせます。
フォントはfont_pathで指定し、あまり意味のない単語はstopwordsで指定して取り除きます。
def make_word_cloud(rikishi, word_list):
word_list = ' '.join(word_list)
font_path = "~/Library/Fonts/RictyDiminished-Regular.ttf"
stopwords = [
'in', 'bot', 'https', 'co', 'ない', '無い', '投稿', 'ツイート', '今日', '明日',
'さん', 'こと', 'よう', 'それ', 'どこ', 'これ', 'みたい', '名前', '自分', 'ちゃん',
'登録', 'くん', 'あと', 'そこ', 'ため', 'うち', 'ここ', 'ところ', 'なん', '感じ',
'もの', 'とき', 'やつ', 'もん', 'しよう', 'わけ', 'たち', 'とこ', 'つもり', 'こちら',
'しんみ', 'した', 'せい', 'さま', 'さっき', 'こっち', 'かな', 'まま', '最近', '時間',
'場所', '本日', '付近', 'よろしくお願いします', '昨日', '今週', '来週', '先週', 'みんな',
'相撲', '名古屋場所', 'sumo', '大相撲', '力士', '中継', '相撲部', '相撲取り', '情報',
'大相撲名古屋場所','相手', '土俵', '???', 'あれ', '近く', '思っ', 'しまっ', 'どう',
'てる', 'ある', 'なる', 'なっ', 'やっ', 'あっ', 'ちゃっ', 'くれ', 'する', 'そう',
'ニュース', 'www', 'スーモ', '…。', 'ww', 'られ', '思い', 'いる', 'ーーー', '思う'
]
wordcloud = WordCloud(background_color="white", font_path=font_path, width=900, height=500,
max_words=70, stopwords=set(stopwords)).generate(word_list)
plt.figure(figsize=(10,8))
plt.imshow(wordcloud)
plt.axis("off")
plt.show()
2018年7月場所15日間の、嘉風という単語を含むツイートを可視化したのがこれです。
「引退」「よわ」「つまら」などの単語はなく、「応援」「頑張っ」「良かっ」「よかっ」「調子」「悪い」「心配」などの単語が目立っています。
まとめ
嘉風は多くの人に愛されている。
コードは全てgithubにあります。プログラミング、相撲、ともに初心者なのでご教授いただけたらうれしいです。