Bootcamp MissionNLP
뉴스 텍스트 분류
워드 임베딩과 LSTM으로 뉴스 기사를 분류하는 NLP 실습
게시 2026-07-10
PythonPyTorchscikit-learngensimNLTKspaCyJupyter
Repository개인 저장소
malit9999/nlp-news-text-classification-mission-10(새 탭에서 열림)Contents · 목차
무엇을 하는 미션인가
뉴스 기사를 20개 카테고리로 분류하는 미션입니다. 사전학습 언어모델을 쓰지 않고, 워드 임베딩과 순환 신경망으로 어디까지 올라가는지 확인하는 과제였습니다.
구현
- 전처리 — NLTK·spaCy로 토큰화
- 임베딩 — gensim
Word2Vec을 학습한 뒤nn.Embedding.from_pretrained로 주입 - 모델 — BiGRU. 최종 구성은 임베딩을 고정하지 않고(
freeze=False) hidden 512
실험 결과
노트북 비교표(검증 기준)입니다.
| 지표 | 기준 | exp6 | mex1 | mex5_c |
|---|---|---|---|---|
| accuracy | 0.7082 | 0.7686 | 0.7984 | 0.8044 |
| f1_macro | 0.6911 | 0.7541 | 0.7884 | 0.7949 |
| f1_weighted | 0.7026 | 0.7662 | 0.7979 | 0.8033 |
| MCC | 0.6935 | 0.7565 | 0.7877 | 0.7940 |
기준 대비 f1_macro가 0.1038 올랐습니다. 다만 개선의 대부분은 초·중반 실험(기준 → mex1, +0.0973)에서 나왔고, 마지막 구성 변경으로 얻은 몫은 +0.0065입니다.
클래스별로 보면 F1 0.7 미만인 저성능 클래스가 3개 남았습니다. 20개 클래스 중 일부가 평균을 끌어내리는 구조라, accuracy보다 f1_macro를 함께 봐야 차이가 보입니다.
한계
- 검증 기준이며 별도 테스트셋 평가는 없습니다
- 시드 반복이 없어 마지막 0.006대 차이는 실행 변동과 구분되지 않습니다
- 사전학습 언어모델과의 비교는 이 미션 범위 밖입니다