[PYTHON] Visualisez les avis sur les applications à l'aide de wordcloud

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.

Qu'est-ce que le nuage de mots

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.

Collecte des données d'examen

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.

スクリーンショット 2020-06-28 17.36.11.png

Créer un nuage de mots

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.

Résumé

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.

Recommended Posts

Visualisez les avis sur les applications à l'aide de wordcloud
Visualisez le nem 2019 avec WordCloud
Application de reconnaissance de caractères manuscrite interactive utilisant pygame