6-Class 한국어 감정 분석 모델 (v2)

본 모델은 klue/roberta-base를 기반으로 하여, 한국어 텍스트의 감정을 6가지 클래스로 분류하는 텍스트 분류(Sequence Classification) 모델입니다.

주요 특징:

  • 6-Class 분류: '기쁨', '당황', '분노', '불안', '상처', '슬픔'의 6가지 감정으로 분류합니다.
  • 불균형 데이터 처리: CrossEntropyLoss에 수동으로 **클래스 가중치(Class Weights)**를 적용하여 데이터 불균형 문제를 완화하고, 소수 클래스(기쁨, 당황 등)의 탐지 성능을 높였습니다.

🗂 모델 라벨 (Labels)

모델의 출력은 6가지 감정 클래스에 해당하며, 라벨과 ID는 다음과 같습니다.

Label (감정) ID
기쁨 0
당황 1
분노 2
불안 3
상처 4
슬픔 5

(참고: 라벨 순서는 훈련 데이터셋(df_train) 기준으로 자동 생성된 ['기쁨', '당황', '분노', '불안', '상처', '슬픔'] 순서를 따릅니다.)

🚀 사용 방법 (How to Use)

transformers 라이브러리의 pipeline을 사용하여 쉽게 모델을 테스트할 수 있습니다.

from transformers import pipeline

# TODO: '[YOUR-USERNAME]/[YOUR-MODEL-NAME]'을 본인의 허깅페이스 모델 경로로 변경하세요.
model_name = "[YOUR-USERNAME]/[YOUR-MODEL-NAME]" 
classifier = pipeline("text-classification", model=model_name)

# 예시 문장 테스트
texts = [
    "오늘 너무 기분 좋은 일이 생겼어!",
    "이걸 어떻게 해야 할지 모르겠네...",
    "진짜 화가 머리 끝까지 난다.",
    "내일 발표인데 너무 떨리고 불안해."
]

# 예측 수행
results = classifier(texts, top_k=1)

for text, result in zip(texts, results):
    print(f"입력: {text}")
    print(f"감정: {result[0]['label']} (Score: {result[0]['score']:.4f})")
    print("-" * 20)
⚙️ 훈련 상세 (Training Details)
본 모델은 train_final_v2.py 스크립트를 기반으로 훈련되었습니다.

1. 데이터셋 (Dataset)
training-label.json: 원본 훈련 데이터

test.json: 원본 테스트 데이터

데이터 분리 (v2 전략):

Train Set (90%): training-label.json의 90% (Stratified Split)

Validation Set (10%): training-label.json의 10% (Stratified Split)

Test Set (최종 평가용): test.json (별도 데이터)

2. 핵심 훈련 기법 (Key Techniques)
클래스 가중치 (Class Weights): 데이터 불균형 문제를 해결하기 위해 CustomTrainer와 CrossEntropyLoss의 weight 파라미터를 사용했습니다. 각 클래스에 대해 수동으로 가중치를 부여하여 소수 클래스의 중요도를 높였습니다.

적용된 가중치: [6.00, 4.50, 0.85, 1.80, 1.80, 0.92]

가중치 순서 (라벨): ['기쁨', '당황', '분노', '불안', '상처', '슬픔']

스케줄러 (Scheduler): cosine 학습률 스케줄러를 적용했습니다.
3. 주요 하이퍼파라미터 (Hyperparameters)HyperparameterValuebase_model_nameklue/roberta-basenum_train_epochs10learning_rate1e-5train_batch_size16eval_batch_size64weight_decay0.01max_length128warmup_ratio0.1lr_scheduler_typecosine
Downloads last month
18
Safetensors
Model size
0.1B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Space using taehoon222/korean-emotion-classifier-final 1

Evaluation results