마케팅 이야기

[cafe24 분석 3편] 쇼핑몰(이커머스) 리뷰 분석_워드클라우드

창이 2022. 12. 19.
728x90
반응형

안녕하세요, 창이에요! 

이전 글에서, 처음 파이썬을 활용해보는 분들을 위해

colab 접속 방법과 세팅법을 알려드렸어요. 

2022.12.18 - [마케팅 이야기] - [cafe24 분석 2편] 쇼핑몰(이커머스) 리뷰 분석_파이썬 활용법

 

상기 경로를 이용하시면

쉽게 colab 활용법을 알아가실 수 있을 거에요! 

 

이번 포스팅에서는

실제 분석과 함께 어떻게 결과를 도출해내는지 만들어 볼 거에요. 

GOOGLE_DRIVE_PATH = '주소/' # 구글 드라이브에서 파일이 저장되어 있는경로 복사 마지막에 '/' 필수
df = pd.read_csv('CAFE24 쇼핑몰 댓글 분석.csv'); df
from google.colab import drive
drive.mount('/content/drive')

* colab에서 파일경로를 지정하는 코드

* pd.read_csv > 데이터를 읽어오는 코드 

from bs4 import BeautifulSoup
import re

* 웹 크롤링에 종종 활용되는 패키지 입니다. 

def extract_text(txt):
    soup = BeautifulSoup(txt, 'html.parser')
    cleaned_txt = soup.text # 태그 제거
    cleaned_txt = re.sub('\(.*\)', '', cleaned_txt) # 괄호 안의 단어 제거 
    return cleaned_txt
df['내용_전처리'] = df['내용'].map(extract_text)
okt = Okt()
df['게시물 작성일시'] = df['게시물 작성일시'].map(lambda date: datetime.strptime(date, '%Y-%m-%d %H:%M:%S'))
def draw_word_cloud(df, start_date, end_date, filename):
    start_date = datetime.strptime(start_date, '%Y-%m-%d')
    end_date = datetime.strptime(end_date, '%Y-%m-%d')

    query = df[(df['게시물 작성일시'] >= start_date) & (df['게시물 작성일시'] <= end_date)]
    
    df['내용_토큰'] = df['내용_전처리'].map(lambda x : okt.nouns(x)) # 전체 품사를 다 보고 싶다면 okt.morphs(x)
    word_list = sum(df['내용_토큰'], [])
    cnt = Counter(word_list)
    
    font_path = '/usr/share/fonts/truetype/nanum/NanumBarunGothicBold.ttf'
    wc = WordCloud(font_path = font_path, width=1280 , height=720, background_color="white")
    wc = wc.generate_from_frequencies(cnt)

    plt.figure(figsize=(16,9))
    plt.imshow(wc,interpolation='bilinear')
    plt.axis('off')
    plt.savefig(filename)
    plt.show()

* 다양한 리뷰 속에서 "명사"로 된 글자들만 추출했습니다. 

아무래도 리뷰 분석을 할 때 있어서 조사나 접두사, 접미어 등이 추출되어지면 

제대로 된 분석이 안되겠죠. 

 

가장 많이 나오는 단어를 분석하고 

그 단어를 활용하여 광고에 이용한다거나,

더 나은 판매를 위한 피드백 과정으로 수용할 수 있겠지요. 

draw_word_cloud(df, '2022-05-09', '2022-10-30', '20.11_21.01_한 달간 고객리뷰 분석.png')

우선적으로 결과 값들은 모자이크 처리를 해두었습니다.

여기서 더해서 

텍스트들의 긍, 부정을 분석해본다거나

단어들 간의 어떤 연관성이 있는지 연관성 분석을 진행한다거나

혹은, 저런 단어 중에서도 너무 당연하거나 잘못 나온 것 같은 단어들을 없앨 수 있으면 좋겠죠.

 

추후 이 방법에 대해서 공부 후

업로드하겠습니다. 

 

이번에 제가 준비한 포스팅은 여기까지 입니다.

다음 시리즈도 기대해주세요 :) 

728x90
반응형

댓글

추천 글