Minseong Code Lab
← Projects
Bootcamp MissionNLP

뉴스 텍스트 분류

워드 임베딩과 LSTM으로 뉴스 기사를 분류하는 NLP 실습

게시 2026-07-10
PythonPyTorchscikit-learngensimNLTKspaCyJupyter
Contents · 목차
  1. 무엇을 하는 미션인가
  2. 구현
  3. 실험 결과
  4. 한계

무엇을 하는 미션인가

뉴스 기사를 20개 카테고리로 분류하는 미션입니다. 사전학습 언어모델을 쓰지 않고, 워드 임베딩과 순환 신경망으로 어디까지 올라가는지 확인하는 과제였습니다.

구현

  • 전처리 — NLTK·spaCy로 토큰화
  • 임베딩 — gensim Word2Vec을 학습한 뒤 nn.Embedding.from_pretrained로 주입
  • 모델 — BiGRU. 최종 구성은 임베딩을 고정하지 않고(freeze=False) hidden 512

실험 결과

노트북 비교표(검증 기준)입니다.

지표기준exp6mex1mex5_c
accuracy0.70820.76860.79840.8044
f1_macro0.69110.75410.78840.7949
f1_weighted0.70260.76620.79790.8033
MCC0.69350.75650.78770.7940

기준 대비 f1_macro가 0.1038 올랐습니다. 다만 개선의 대부분은 초·중반 실험(기준 → mex1, +0.0973)에서 나왔고, 마지막 구성 변경으로 얻은 몫은 +0.0065입니다.

클래스별로 보면 F1 0.7 미만인 저성능 클래스가 3개 남았습니다. 20개 클래스 중 일부가 평균을 끌어내리는 구조라, accuracy보다 f1_macro를 함께 봐야 차이가 보입니다.

한계

  • 검증 기준이며 별도 테스트셋 평가는 없습니다
  • 시드 반복이 없어 마지막 0.006대 차이는 실행 변동과 구분되지 않습니다
  • 사전학습 언어모델과의 비교는 이 미션 범위 밖입니다