wordcloud를 사용하여 앱 리뷰 시각화
하지만 리뷰는 수가 많아 전부 보는 것은 어렵지요.
그래서 이번에는 wordcloud라는 표현으로 앱의 리뷰를 한눈에 알 수 있도록 시각화하고 싶습니다.
wordcloud란?
한 문서 중 출현하는 단어를 다양한 크기, 색상으로 표현하여 문서의 특징을 한 장의 이미지로 시각화 한 것입니다.
리뷰 데이터 수집
App Store의 앱 리뷰는 아래 URL에 해당하는 앱의 ID를 넣으면 JSON 형식으로 얻을 수 있습니다.
https://itunes.apple.com/ko/rss/customerreviews/id=(앱 ID)/page=1/json
이번에는 Twitter 앱을 대상으로합니다. ID는 333903271입니다.
page=의 뒤의 숫자를 바꾸는 것으로, 10 페이지분까지 취득할 수 있습니다.
아래 스크립트에서 앱 리뷰 데이터를 가져옵니다.
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):
"""
iOSレビュー取得のAPIレスポンスから[点数、タイトル、文章、名前]のリストを取得する
"""
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~10ページ分のレビューを収集
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)
수집한 데이터는 이런 느낌.
WordCloud 만들기
수집한 리뷰 데이터를 바탕으로 wordcloud 이미지를 만듭니다.
먼저 형태소 분석을 위해 MeCab을 설치합니다.
$ brew install mecab
$ brew install mecab-ipadic
그런 다음 파이썬에서 wordcloud 라이브러리를 설치합니다.
$ pip install wordcloud
아래 스크립트에서 wordcloud를 만들 수 있습니다.
일본어 입력을 위해 실행 환경에서 일본어 글꼴 파일의 경로를 지정합니다.
# 日本語用のフォントが格納されているパスを指定
FONT_PATH = '/System/Library/Fonts//ヒラギノ角ゴシック W3.ttc'
def prepare_word_list(words):
"""
wodcloudに入力用の文字列を作成する
Args:
words([str]): 文章のリスト
Retruns:
str: 全単語から指定した品詞のみを抽出し、スペース区切りで結合した文字列
"""
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 ["名詞", "形容詞", "動詞"]:
parsed_words.append(item[0])
return ' '.join(parsed_words)
def make_wordcloud(words, file_name):
"""
入力した文章から、wordcloud画像ファイルを作成する。
Args:
words(str): スペース区切りで単語を結合した文字列
file_name(str): 画像ファイル出力先のパス
Returns:
なし
"""
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')
완성된 wordcloud 이미지가 여기!
Twitter, 계정, 동결, 팔로우, 타임라인, 등 twitter다운 워드가 줄지어 있네요.
요약
ios 앱 리뷰를 시각화할 수 있었습니다.
대량의 문서의 이미지를 퀵에 포착하고 싶을 때에 wordcloud는 좋을지도 모르겠네요.
Reference
이 문제에 관하여(wordcloud를 사용하여 앱 리뷰 시각화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/xkent/items/5923defea41e9f994db0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)