C.W.K.
Stream
Lesson 04 of 07 · published

Text classification

~8 min · keras-nlp

Level 0Keras 도제
0 XP0/97 lessons0/20 achievements
0/120 XP to next level120 XP to go0% complete

NLP 의 80% task

text classification — sentiment, topic, intent, spam — 은 팀이 실제로 ship 하는 가장 흔한 NLP 작업이야. transfer learning 의 진가가 여기서 나와: 언어 모델을 from scratch 로 학습하는 대신, 이미 영어를 아는 backbone 가져와서 작은 classification head 만 위에 붙여. BertClassifier.from_preset(..., num_classes=2) 가 정확히 그걸 한 줄로 해 — pretrained backbone + label 수에 맞춘 새 head.

load → compile → fit 세 박자

Keras 학습 loop 은 늘 같은 세 박자야 (Code 참고): load, compile, fit. 외워둘 디테일은 compile 에 있어. learning rate 가 작아 — 5e-5, from scratch 학습할 때 쓰는 1e-3 아니야 — 이미 똑똑한 모델을 살짝 미는 거지 zero 부터 가르치는 게 아니거든. rate 너무 높으면 pretraining 이 지워져. loss 는 sparse_categorical_crossentropy — label 이 정수 (0, 1, 2…) 지 one-hot 이 아니라서. 잘못 고르면 shape 안 맞아. epoch 은 보통 3 이면 충분 — pretrained 라 빨리 수렴하고, 더 돌리면 대개 overfitting 만 사.

입력은 string list 그대로 OK — preprocessor 가 자동 tokenize + padding. label 은 0/1 (binary) 또는 0..N-1 (multi-class).

Code

BERT sentiment classifier 를 load → compile → fit·python
import keras
import keras_hub

# Load BERT for classification
classifier = keras_hub.models.BertClassifier.from_preset(
    "bert_base_en",
    num_classes=2,  # Binary sentiment
)

# Compile and train
classifier.compile(
    optimizer=keras.optimizers.Adam(5e-5),
    loss="sparse_categorical_crossentropy",
    metrics=["accuracy"],
)
classifier.fit(train_ds, validation_data=val_ds, epochs=3)

External links

Exercise

BertClassifier num_classes=2 로드. IMDb sentiment dataset (keras.datasets 또는 huggingface) 학습. test accuracy ≥85%. 모델 저장 + 직접 작성한 review 몇 개 predict.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.