こんにちは、ミナピピン(@python_mllover)です。
今回はウマ娘のレビューをスクレイピングしてワードクラウドにしてみましたので結果の紹介になります。
# ライブラリのインストール ! pip install play_scraper ! pip install google_play_scraper !apt-get -y install fonts-ipafont-gothic
<スクリプト>
import play_scraper
from google_play_scraper import Sort, reviews
import pandas as pd
result = play_scraper.search('ウマ娘', page=1,hl="ja",gl="jp")
app_review_data = []
for i in result:
cut = 0
print('アプリID:',i['app_id'])
print('アプリURL:',i['url'])
print('アプリタイトル:', i['title'])
print('アプリ平均スコア:', play_scraper.details(i['app_id'])['score'])
# アプリIDからレビューを取得する
result, continuation_token = reviews(
i['app_id'],
lang='ja',
country='jp',
)
for review in result:
app_review_data.append([i['app_id'], i['title'], review['at'], review['userName'], review['content'], review['score']])
while continuation_token is not None:
cut += 1
result, continuation_token = reviews(
i['app_id'],
continuation_token=continuation_token # defaults to None(load from the beginning)
)
for review in result:
app_review_data.append([i['app_id'], i['title'], review['at'], review['userName'], review['content'], review['score']])
#print(result, continuation_token)
if cut == 6:
break
# print(cut)
print('-----------------------------------------------')
# リストをデータフレームに変換する
df = pd.DataFrame(app_review_data)
df.columns = ['提供元URL','提供元','日時','ユーザ名','レビュー内容', 'レビュースコア']
# csvに出力
df.to_csv('app_review.csv', index=False)
# ウマ娘のレビューを抽出する
uma_review = df[df["提供元URL"] == "jp.co.cygames.umamusume"]['レビュー内容']
# リストのデータを
f = open('test.txt', 'w')
for i, v in uma_review.iteritems():
print(' ' + str(v))
f.write(str(v))
f.close()
これをワードクラウドにします。
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import codecs
file = codecs.open(r'/content/test.txt','r', 'utf-8', 'ignore')
text = file.read()
wordcloud = WordCloud(font_path = '/usr/share/fonts/truetype/fonts-japanese-mincho.ttf',
background_color="white",
width=1000,height=400).generate(text)
plt.figure(figsize=(15,12))
plt.imshow(wordcloud)
plt.axis("off")
plt.savefig("word_cloud.png")

接続詞や助詞などが出てきているのでSTOPWORDSにNGワードを追加します。
# 助詞 助動詞を削除
from wordcloud import STOPWORDS
word_lists = ['ただ','あと','また','でも','なので','ですが','です','まあ','そして','しかも','しかし','追記','まず']
for ngword in word_lists:
STOPWORDS.add(ngword)
wordcloud = WordCloud(font_path = '/usr/share/fonts/truetype/fonts-japanese-mincho.ttf',
background_color="white",
width=1000,height=400).generate(text)
plt.figure(figsize=(15,12))
plt.imshow(wordcloud)
plt.axis("off")
plt.savefig("word_cloud.png")

自分もウマ娘をやっていますけど、まあこのゲームのポジティブな部分とネガティブな部分をいい感じに拾いあげられていると思います。
googlecolabのソース:https://colab.research.google.com/drive/1_Me4UlrWVrvm6l7C2cLgKMggxjvMnPRO?usp=sharing

コメント