CCheckpointW2 · NLP
NLP / TF-IDF → BERT제출 준비 중

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점)

Dataset · Step 00

데이터셋 받기

train · test · sample_submission + 제출 안내(README) 한 번에. 원본 대회 가입 없이 시작합니다.

ZIP 받기

Output Contract

출력 함수 (선택)

save_checkpoint_result(
  ...,
  id_column="id",
  target_column="target",
)
.py 받기

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자 이상의 실험 회고를 제출하기 전까지 점수는 잠깁니다.

  1. 01CSV 검증현재
  2. 02서버 재채점대기
  3. 03이해 확인대기
  4. 04순위 공개대기

Submission Gate

제출 준비 중

미션 브리프는 먼저 확인할 수 있습니다. 강사가 비공개 평가셋과 제출 설정을 공개하면 CSV 제출과 이해 확인이 열립니다.

Learning Objectives

이번 미션에서 확인할 것

  1. 01raw_text를 정제·형태소 분석해 clean_text·tokens로 바꾸는 과정을 직접 설계한다.
  2. 02같은 데이터에 TF-IDF+ML과 BERT 파인튜닝을 각각 적용해 성능·비용 차이를 비교한다.
  3. 03train에만 fit하고 test는 transform만 적용하는 원칙을 지켜 데이터 누수를 피한다.

Output Checklist

제출·학습 산출물

사이트에는 submission.csv만 업로드합니다. 나머지는 notebook에 남겨 수업 중 실험 근거로 설명합니다.

  • 사이트 제출submission.csv
  • 실험 기록재현 가능한 notebook
  • 실험 기록전처리·토큰화 방식 비교 기록
  • 실험 기록baseline 대비 개선 실험 1건

Original Source

위 ZIP은 학습용 split입니다. 정답이 포함된 원본 전체는 아래 대회에서 확인하세요.

DACON · 235938 열기 ↗