리뷰를 json
형식으로 크롤링한 뒤 불러와 pandas
형식으로 변형하여 불용어 제거와 문자 토큰화를 해보자
import pandas as pd
import json
from konlpy.tag import Okt
from collections import Counter
import re
with open('data/review_data.json', 'r', encoding='utf-8') as f:
data = json.load(f)
df = pd.json_normalize(data['review'])
# 정규식(불용어 담기)
stop_words = '치킨' # 치킨 이라는 단어제거 (너무 많은 빈도수 차지)
okt = Okt() # 문자로 토큰화 하기위해 Konlpy 모듈의 Okt 사용
#불용어 제거
for i in range(len(df['reviews'])):
df_re = re.sub(stop_words,'',str(df['reviews'][i])) # 형변환 하여 불용어 제거
nouns = okt.nouns(df_re) # 불용어 제거된 내용들로 토큰화
nouns = [n for n in nouns if len(n) > 1] # 2글자 이상의 단어만 추출
df['reviews'][i] = nouns # 매장 별로 단어를 담는다.
collection / Counter 모듈사용 빈도수 생성 (내림차순)
# 빈도수 생성
for j in range(len(df['reviews'])):
counter = Counter(df['reviews'][j])
df['reviews'][j] = sorted(counter, key=counter.get, reverse=True)