Software Development/Python

파이썬 구글스토어 분석 & 명사 추출 및 시각화

huiyu 2022. 10. 2. 23:17

1. 구글플레이 스토어 크롤링

https://heytech.tistory.com/293

 

[Python] 구글 플레이 스토어 크롤러 코드 Version 2.0.3

안녕하세요! 오늘은 파이썬(주피터 노트북)을 기반으로 직접 코딩한 구글 플레이 스토어 웹 크롤러 코드를 공유합니다. 📝 목차 1. 업데이트 Log 2. 주요 기능 3. 전체 코드 4. 필수 초기 세팅 5.

heytech.tistory.com

 

2. 한글 명사 추출 및 빈도수 계산(KoNLPy 사용)

https://liveyourit.tistory.com/57

 

파이썬 KoNLPy를 사용한 한글 명사 추출 및 빈도 계산

KoNLPy 란 아무래도 언어마다 자연어처리를 하기 위한 특성이 제각각이다보니 영어에 맞춰진 자연어처리 도구를 사용하기는 한글에는 맞지 않는다. 그런 이유에서 한글 자연어 처리에 맞춤화된

liveyourit.tistory.com

 

3. 한글 명사 시각화(Wordclooud 사용)

https://liveyourit.tistory.com/58

 

파이썬 wordcloud를 사용한 한글 명사 시각화

파이썬 wordcloud는 중요한 단어나 키워드를 시각화해서 보여주는 시각화 도구이다. wordcloud 자체적으로 빈도수를 계산하는 기능이 있다고 하지만 아무래도 한글의 특성이 있다보니, 나는 한글 명

liveyourit.tistory.com

 

크게 위와 같은 방법으로 접근했다.

1. 긁어오고 싶은 스토어의 모든 리뷰를 가져온다
2. 리뷰들에서 사용된 명사 추출, 가장 많이 사용된 빈도수 순으로 나열
3. 추출한 데이터 시각화

테스트로 스토어에서 만보기 앱을 추출해봤다. 아래와 같이 나온다.

 

상위권으로 나온 텍스트는 아래와 같다.

'사용', 43)
('보기', 31)
('걸음', 31)
('운동', 26)
('시작', 18)
('기능', 15)
('표시', 13)
('하루', 12)
('거리', 12)
('걷기', 12)
('건강', 12)
('버튼', 11)
('매일', 11)

 

내가 확인해보고 싶던 앱의 키워드

rating 4~5 점 준 사람의 키워드

rating 1~2

 

파이썬 명사 추출 & 시각화 코드

import pandas as pd

from konlpy.tag import Okt
from collections import Counter

# 저장한 리뷰 정보 불러오기
df = pd.read_csv('../dataset/review_dataset.csv', encoding = 'utf-8-sig')
df = df.drop(['Unnamed: 0'], axis = 1) # 불필요한 칼럼 삭제
df

df.sort_values(by=['rating'])

condition = (df.rating >=4)

df = df[condition]

okt = Okt()
noun = okt.nouns("")

for rating, content in df.iterrows():
    noun += okt.nouns(content.content)

count = Counter(noun)


#한글자 제거
for i,v in enumerate(noun):
    if len(v)<2:
        noun.pop(i)


count = Counter(noun)

noun_list = count.most_common(100)
for v in noun_list:
    print(v)
    
from wordcloud import WordCloud

wc = WordCloud(font_path='C:\Cafe24Ssurround\Cafe24Ssurround.ttf', background_color="white", width=1000, height=1000,max_words=100,max_font_size=300)

wc.generate_from_frequencies(dict(noun_list))
wc.to_file('rating.png')
728x90