Python プログラミング 機械学習 自然言語処理

【Python】ウマ娘のアプリレビューをスクレイピングしてワードクラウドを作ってみた

この記事は約6分で読めます。

 

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

 

 

 


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

タイトルとURLをコピーしました