Skip to content

본 레포지토리는 카페 주문 앱 '패스오더'의 사용자 경험 개선을 위해 구글 플레이스토어와 애플 앱스토어의 리뷰 데이터를 수집하고 분석한 프로젝트입니다. 단순 빈도 분석을 넘어 감성별 리뷰 추출을 통해 실질적인 서비스 개선 인사이트를 도출했습니다.

Notifications You must be signed in to change notification settings

Yewooony/PassOrder-Review-Analysis

Repository files navigation

📝 패스오더 앱 리뷰 분석 프로젝트

카페 주문 앱 '패스오더'의 사용자 경험 개선을 위해 구글 플레이스토어와 애플 앱스토어의 리뷰 데이터를 수집하고 분석한 프로젝트입니다. 단순 빈도 분석을 넘어 감성별 구문 추출을 통해 실질적인 서비스 개선 인사이트를 도출했습니다.


🚀 1. 프로젝트 요약

  • 목적: 앱 리뷰 데이터를 활용한 사용자 긍정/부정 경험 분석 및 Pain Point 발굴
  • 데이터 소스: Google Play Store, Apple App Store (약 1.9만 건)
  • 주요 기술: Python, KoNLPy(Okt), WordCloud, Matplotlib, Seaborn
  • 핵심 결과:
  • 별점 기반 감성 라벨링을 통한 리뷰 자동 분류 (긍정: 4-5점, 부정: 1-2점)
  • 불용어(Stopwords) 고도화를 통한 데이터 정제
  • [명사+형용사] N-gram 추출을 통해 맥락 중심의 인사이트 도출 (예: '결제_편하다', '위치_오류')

🛠️ 2. 사용 기술

  • Language: Python 3.9

  • Libraries:

  • google-play-scraper, app-store-scraper: 리뷰 데이터 크롤링

  • pandas: 데이터 처리 및 CSV 저장

  • konlpy (Okt): 한국어 형태소 분석 및 명사/형용사 추출

  • wordcloud, matplotlib, seaborn: 데이터 시각화

  • Environment: Java (JDK 17) - KoNLPy 실행 필수 조건


🔍 3. 주요 수행 과정 및 코드

3-1. 데이터 수집 및 전처리

구글과 애플 양대 스토어에서 데이터를 수집하고 병합합니다. 애플 앱스토어 수집 시 발생하는 인코딩 에러를 해결하기 위해 영문 매칭 기법을 적용했습니다.

# 애플 앱스토어 수집 (인코딩 에러 방지 버전)
as_reviews = AppStore(country='kr', app_name='passorder', app_id='1350702018')
as_reviews.review(how_many=1000)

# 별점 기반 감성 라벨링
df_all['sentiment'] = df_all['score'].apply(
    lambda x: 'Positive' if x >= 4 else ('Negative' if x <= 2 else 'Neutral')
)

🚨 이슈 해결

  • 명령어 인식 오류: 윈도우 환경 변수 문제로 pip 명령어가 거부될 때 py -m pip을 사용하여 해결했습니다.
  • 인코딩 오류: 애플 앱스토어 라이브러리의 한글 처리 문제(latin-1)를 해결하기 위해 app_name을 영문으로 지정했습니다.

3-2. 시각화 고도화

초기 워드 클라우드에서 의미 없는 단어(주문, 매장 등)가 크게 나오는 문제를 해결하기 위해 강력한 불용어 리스트를 적용했습니다.

refined_stop_words = ['패스', '오더', '진짜', '너무', '정말', '사용', '이용', '카페', '커피', '앱', '어플', '주문', '매장']
# 불용어가 제거된 긍정/부정 워드클라우드 생성

Before image (18)

After image (19)

3-3. 구문 분석

단어 하나로는 파악하기 힘든 맥락을 잡기 위해 [명사 + 형용사] 조합을 추출했습니다.

# 명사+형용사 구문 추출 로직 예시
# "결제가 빨라요" -> [결제(Noun), 빠르다(Adjective)] -> "결제_빠르다"
pos_tags = okt.pos(text, stem=True)
nouns = [word for word, tag in pos_tags if tag == 'Noun']
adjectives = [word for word, tag in pos_tags if tag == 'Adjective']

📈 4. 최종 분석 결과

image (17)

✅ 인사이트 도출

  • 긍정 리뷰: '주문_편하다', '사용_편하다', ‘미리_편하다’가 상위권. 앱 내의 주문에 대한 전반적인 이용과정과 미리 주문하는 MVP기능이 가장 큰 강점임.
  • 부정 리뷰: '로그인_안되다', '사용_안되다', '적립_안되다' 등이 관찰됨. 로그인 오류 해결 및 적립 오류 해결이 필요함.

⚙️ 5. 실행 방법

  1. JDK 설치: KoNLPy 사용을 위해 Adoptium에서 JDK 17 이상을 설치하고 JAVA_HOME을 설정하세요.
  2. 라이브러리 설치:
py -m pip install google-play-scraper app-store-scraper pandas konlpy wordcloud matplotlib seaborn
  1. 스크립트 실행:
  • scraping.py: 데이터 수집 및 초기 전처리
  • N-gram_analysis.py: 구문 추출 및 최종 시각화

About

본 레포지토리는 카페 주문 앱 '패스오더'의 사용자 경험 개선을 위해 구글 플레이스토어와 애플 앱스토어의 리뷰 데이터를 수집하고 분석한 프로젝트입니다. 단순 빈도 분석을 넘어 감성별 리뷰 추출을 통해 실질적인 서비스 개선 인사이트를 도출했습니다.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages