W2
Deeplearning W2 Hackathon
쇼핑몰 리뷰 평점 분류
네이버 쇼핑 리뷰 텍스트로 상품 평점(1/2/4/5점)을 분류합니다. 정규식·형태소 전처리부터 TF-IDF+전통 ML, 임베딩+LSTM, BERT 파인튜닝까지 — 01~05강에서 배운 표현 전체를 같은 문제에 순서대로 적용하고 비교합니다.
- METRIC
- Accuracy
- LEVEL
- 초중급
- EST. TIME
- 2시간
- BASELINE
- TF-IDF → BERT
Start Here / Step 00
데이터와 제출 규격부터 확인하세요
한국어 쇼핑몰 리뷰 텍스트(자유 서술) · 라벨 4클래스(1/2/4/5점)
Starter / Step 00b
여기서 출발하세요
기준선 · Accuracy 0.5838 (seed 0)
ZIP을 푼 폴더에서 그대로 실행하면 submission.csv가 만들어집니다. 완성된 답이 아니라 기준선입니다 — 먼저 제출해 점수를 확인하고, 아래 항목을 바꿔가며 개선하세요.
From the Lectures · 이 코드가 출발한 강의
- 02강 · 벡터화와 비지도 텍스트분석
- TF-IDF를 train에만 fit하고 test는 transform만 하는 원칙
- 03강 · 텍스트 분류 머신러닝
- 랜덤포레스트 얼개와 K겹 교차검증
- 01강 · 텍스트 전처리와 형태소분석
- 정규표현식·형태소 분석기로 노이즈를 걷어내는 과정
dl-w2.py · scikit-learn
import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.ensemble import RandomForestClassifier
tr, te = pd.read_csv("train.csv"), pd.read_csv("test.csv")
# 02강 원칙: 어휘 사전은 train에만 fit, test는 transform만 — 순서를 바꾸면
# 에러 없이 조용히 데이터 누수가 일어난다. max_features로 상위 5,000개 단어만 남긴다.
vec = TfidfVectorizer(max_features=5000)
X = vec.fit_transform(tr["reviews"])
Xt = vec.transform(te["reviews"])
# 03강과 같은 얼개 — 결정트리를 여러 개 모은 랜덤포레스트. random_state를
# 고정해야 "내 개선이 효과가 있었나"를 매번 같은 기준으로 비교할 수 있다.
model = RandomForestClassifier(n_estimators=200, random_state=0, n_jobs=-1)
model.fit(X, tr["target"])
pred = model.predict(Xt)
pd.DataFrame({"id": te["id"], "target": pred}).to_csv("submission.csv", index=False)
New Here · 강의에서 다루지 않은 부분
형태소 분석기 없이 sklearn 기본 토크나이저만 사용
이 baseline은 01강의 정규식·형태소 분석 전처리를 생략하고 TfidfVectorizer 기본 토크나이저만 썼습니다. 01강 전처리를 붙이면 점수가 어떻게 바뀌는지가 바로 다음 실험거리입니다.
Next Steps
- 0101강 정규식·형태소 분석 전처리를 추가해 raw_text → clean_text로 바꾼 뒤 재학습
- 0203강 K겹 교차검증으로 n_estimators·max_features 등 하이퍼파라미터 튜닝
- 0304~05강 임베딩(nn.Embedding+LSTM) 또는 BERT 파인튜닝으로 표현 자체를 바꿔 비교
- 04BERT 파인튜닝을 시도한다면 사전학습 모델도 바꿔서 비교해볼 것 — 리뷰는 뉴스·백과사전 같은 정제된 문어체가 아니라 오탈자·붙여쓰기가 섞인 구어체다. 뉴스 코퍼스로 사전학습된 모델과 댓글·리뷰 같은 비정형 텍스트로 사전학습된 모델을 같은 조건(1 epoch)에서 비교하면 후자가 유리했다(실측 Accuracy +2%p대 차이)
Live Rankings
클래스 리더보드
이해 확인을 통과해 ranked가 된 제출만 표시합니다. 각 수강생의 최고 점수 1개만 순위에 반영됩니다.
순위 기록을 불러오는 중입니다.
Join the Board
제출 → 이해 확인 → 순위 공개
출력값은 서버가 다시 채점합니다. 객관식 3문항 중 2문항 이상과 80자 이상의 실험 회고를 제출하기 전까지 점수는 잠깁니다.
- 01CSV 검증현재
- 02서버 재채점대기
- 03이해 확인대기
- 04순위 공개대기
Submission Gate
제출 준비 중
미션 브리프는 먼저 확인할 수 있습니다. 강사가 비공개 평가셋과 제출 설정을 공개하면 CSV 제출과 이해 확인이 열립니다.
Learning Objectives
이번 미션에서 확인할 것
- 01raw_text를 정제·형태소 분석해 clean_text·tokens로 바꾸는 과정을 직접 설계한다.
- 02같은 데이터에 TF-IDF+ML과 BERT 파인튜닝을 각각 적용해 성능·비용 차이를 비교한다.
- 03train에만 fit하고 test는 transform만 적용하는 원칙을 지켜 데이터 누수를 피한다.
Output Checklist
제출·학습 산출물
사이트에는 submission.csv만 업로드합니다. 나머지는 notebook에 남겨 수업 중 실험 근거로 설명합니다.
- 사이트 제출submission.csv
- 실험 기록재현 가능한 notebook
- 실험 기록전처리·토큰화 방식 비교 기록
- 실험 기록baseline 대비 개선 실험 1건
Original Source
위 ZIP은 학습용 split입니다. 정답이 포함된 원본 전체는 아래 대회에서 확인하세요.