Lors du téléchargement d'une application, de nombreuses personnes se réfèrent d'abord aux avis publiés sur cette application. Mais il y a tellement de critiques qu'il est difficile de toutes les voir. Donc, cette fois, j'aimerais utiliser l'expression ** wordcloud ** pour visualiser les avis de l'application afin que vous puissiez les voir en un coup d'œil.
En exprimant les mots qui apparaissent dans un document dans différentes tailles et couleurs, les caractéristiques du document sont visualisées dans une seule image.
Les avis sur les applications sur l'App Store peuvent être obtenus au format JSON en saisissant l'ID de l'application correspondante à l'URL ci-dessous. https://itunes.apple.com/jp/rss/customerreviews/id=(アプリID)/page=1/json Cette fois, nous ciblerons l'application Twitter. L'ID est 333903271. Vous pouvez obtenir jusqu'à 10 pages en changeant le nombre après page =.
Obtenez les données de révision de l'application avec le script ci-dessous.
import pandas as pd
import requests
import json
rss_url = 'https://itunes.apple.com/jp/rss/customerreviews/id={}/sortBy=mostRecent/page={}/json'
app_id = '333903271'
def get_reviews(url):
"""
À partir de la réponse API de l'acquisition d'avis iOS[Partition, titre, texte, nom]Obtenez une liste de
"""
response = requests.get(url, timeout=3.5)
response_json = json.loads(response.text)
reviews = [[int(entry['im:rating']['label']), entry['title']['label'], entry['content']['label'], entry['author']['name']['label']]\
for entry in response_json['feed']['entry']]
return reviews
review_list = []
# 1~Collectez 10 pages d'avis
for i in range(1, 11):
page_url = rss_url.format(app_id, i)
reviews = get_reviews(page_url)
review_list += reviews
review_df = pd.DataFrame(review_list, columns=['point', 'title', 'review', 'name'])![twitter_wordcloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501910/8c3531e3-7cde-a60f-8d5d-d8acd8594c6b.png)
Les données collectées ressemblent à ceci.
Créez une image wordcloud basée sur les données d'examen collectées. Tout d'abord, installez MeCab pour l'analyse morphologique.
$ brew install mecab
$ brew install mecab-ipadic
Ensuite, installez la bibliothèque wordcloud avec python.
$ pip install wordcloud
Vous pouvez créer un wordcloud avec le script ci-dessous. Pour une entrée japonaise, spécifiez le chemin du fichier de police japonaise dans l'environnement d'exécution.
#Spécifiez le chemin où la police japonaise est stockée
FONT_PATH = '/System/Library/Fonts//Hiragino Kaku Gothic W3.ttc'
def prepare_word_list(words):
"""
Créer une chaîne pour l'entrée dans wodcloud
Args:
words([str]):Liste des phrases
Retruns:
str:Chaîne de caractères qui extrait uniquement les mots de partie spécifiés de tous les mots et les combine séparés par des espaces.
"""
m = MeCab.Tagger('')
parsed_words = []
for word in words:
items = [x.split('\t') for x in m.parse(word).splitlines()]
for item in items:
if item[0] == 'EOS' or item[0] == '':
pass
elif item[1].split(',')[0] in ["nom", "adjectif", "verbe"]:
parsed_words.append(item[0])
return ' '.join(parsed_words)
def make_wordcloud(words, file_name):
"""
Créez un fichier image wordcloud à partir du texte saisi.
Args:
words(str):Une chaîne de mots séparés par des espaces
file_name(str):Chemin de destination de sortie du fichier image
Returns:
Aucun
"""
parsed_words = prepare_word_list(words)
wordc = wordcloud.WordCloud(
font_path = FONT_PATH,
background_color='white',
contour_width=2,
width=800,
height=600,
).generate(parsed_words)
wordc.to_file(file_name)
make_wordcloud(review_df['review'], './image/twitter_wordcloud.png')
Voici l'image wordcloud terminée!
Des mots comme Twitter tels que Twitter, compte, gel, suivi, chronologie, etc. sont alignés.
J'ai pu visualiser les critiques de l'application ios. Wordcloud peut être utile lorsque vous souhaitez capturer rapidement des images d'un grand nombre de documents.