こんにちは、ミナピピン(@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
コメント