LLM을 이용한 텍스트 분류¶
텍스트 분류는 대규모 텍스트 데이터를 자동으로 카테고리화하는 작업입니다. 감정 분석, 주제 분류, 스팸 탐지 등 다양한 실무에서 활용됩니다.
핵심 개념¶
1. 분류의 유형¶
Zero-shot Classification (기본 분류)¶
학습 데이터 없이 미리 정해진 카테고리로 바로 분류합니다.
장점: - 학습 데이터 불필요 - 신속한 구현 - 새로운 카테고리 추가 용이
단점: - 도메인 특화도 낮을 수 있음 - 미묘한 뉘앙스 놓칠 수 있음
Few-shot Classification (예시 기반 분류)¶
1-3개의 예시 샘플을 제공하여 패턴을 학습시키고 분류합니다.
장점: - Zero-shot보다 정확도 향상 - 도메인 특화 학습 가능 - 최소한의 데이터로 효과적
단점: - 예시 선택이 중요함 - 프롬프트 길이 증가
2. 텍스트 분류의 주요 유형¶
- 감정 분석: 긍정/부정/중립
- 주제 분류: 스포츠, 정치, 기술 등
- 언어 탐지: 한국어, 영어, 일본어 등
- 스팸 탐지: 정상 메일 vs 스팸
- 의도 분류: 질문, 구매, 불만 등
- 톤/스타일: 공식적, 비공식적, 독설적 등
3. 분류 성능 평가 지표¶
- 정확도 (Accuracy): 올바르게 분류한 비율
- 정밀도 (Precision): 양성 분류의 정확도
- 재현율 (Recall): 실제 양성의 탐지율
- F1 점수: 정밀도와 재현율의 조화평균
실무 활용 예제¶
예제 1: 고객 리뷰 감정 분석 (Zero-shot)¶
상황¶
온라인 쇼핑몰의 100개 상품 리뷰를 긍정/부정/중립으로 분류해야 합니다.
프롬프트¶
당신은 감정 분석 전문가입니다.
다음 고객 리뷰의 감정을 분석하고 분류해주세요.
분류 기준:
- 긍정: 상품에 만족, 추천 의사 있음
- 부정: 상품에 불만족, 구매 후회
- 중립: 객관적 정보 또는 감정이 불명확함
출력 형식:
감정: [긍정/부정/중립]
신뢰도: [높음/중간/낮음]
주요 표현: [감정을 나타내는 핵심 단어]
고객 리뷰:
"제품이 정말 좋습니다! 생각했던 것보다 품질이 훨씬 우수하네요.
배송도 빨리 왔고 고객 서비스도 친절했어요. 강력 추천합니다!"
예상 응답¶
예제 2: 고객 리뷰 감정 분석 (Few-shot)¶
프롬프트¶
당신은 감정 분석 전문가입니다. 다음 예시들을 참고하여
고객 리뷰를 감정 분류해주세요.
【학습 예시】
리뷰1: "정말 최고입니다! 가격도 저렴하고 품질도 좋아요!"
감정: 긍정
리뷰2: "배송이 너무 늦고, 상품이 손상되어 왔어요. 환불했습니다."
감정: 부정
리뷰3: "상품이 설명과 다르네요. 기능은 괜찮은데 색상이..."
감정: 중립
【분류 대상】
고객 리뷰:
"기대했던 것보다 별로네요. 디자인은 마음에 들지만
내구성이 의심스럽습니다. 같은 가격대라면 다른 제품을
추천합니다."
감정: [분류 결과]
신뢰도: [높음/중간/낮음]
이유: [분류 근거]
예상 응답¶
예제 3: 뉴스 기사 주제 분류¶
프롬프트¶
당신은 뉴스 편집자입니다. 다음 기사를 주제별로 분류해주세요.
가능한 주제:
- 정치 (정책, 선거, 국회)
- 경제 (시장, 기업, 금융)
- 기술 (AI, IT, 전자기기)
- 스포츠 (축구, 야구, 올림픽)
- 사회 (법률, 안전, 생활)
- 문화 (영화, 음악, 미술)
- 과학 (의학, 우주, 환경)
출력:
주제: [주제명]
세부 주제: [더 구체적인 분류]
신뢰도: [0-100%]
기사:
"국가 인공지능 정책 수립을 위해 관련 부처 합동 회의가
개최되었습니다. AI 산업 육성과 윤리 규제 사이의
균형을 맞추는 것이 핵심 안건입니다."
예상 응답¶
주제: 정치 / 기술 (복합)
세부 주제: 정부 정책 - AI 산업 관련
신뢰도: 85%
설명: 정부 회의와 정책이라는 점에서 정치 섹션에,
AI라는 기술 이슈가 핵심이라는 점에서 기술 섹션에 배치 가능.
우선순위는 정치 (정책)가 더 강함.
예제 4: 고객 상담 의도 분류¶
프롬프트¶
당신은 콜센터 자동 분류 시스템입니다.
고객의 상담 내용을 의도별로 분류해주세요.
가능한 의도:
1. 상품 정보 조회
2. 주문/배송 문의
3. 결제 문제
4. 반품/환불 신청
5. 기술 지원
6. 불만 접수
7. 제안/건의
분류 결과:
의도: [의도명]
우선순위: [높음/중간/낮음]
추천 부서: [해당 부서명]
처리 시간: [예상 처리 시간]
고객 상담:
"주문한 노트북이 3일 전에 도착했는데, 키보드가
잘 작동하지 않습니다. 교환받고 싶은데 어떻게
해야 하나요?"
예상 응답¶
예제 5: 채용 공고 직무 분류 (한국식)¶
프롬프트¶
당신은 채용 담당자입니다. 다음 채용 공고의 직무를
한국 표준 직무 분류체계에 따라 분류해주세요.
주요 직무 분류:
- 개발/IT (백엔드, 프론트엔드, DevOps, 데이터 등)
- 마케팅 (디지털 마케팅, 브랜드, 성장 등)
- 영업/판매
- 인사/HR
- 재무/회계
- 기획/전략
- 디자인 (UI/UX, 그래픽 등)
분류 결과:
직무: [직무명]
경력 수준: [신입/경력]
필수 스킬: [상위 3개]
급여대: [추정]
채용 공고:
"당사는 AWS/GCP 클라우드 인프라 구축 경험이 있는
DevOps 엔지니어를 찾습니다. 5년 이상 경력, CI/CD
파이프라인 구축 경험 필수. 코딩 능력은 부가적입니다."
예상 응답¶
직무: 개발/IT - DevOps 엔지니어
경력 수준: 경력 (5년 이상)
필수 스킬: 클라우드 인프라(AWS/GCP), CI/CD, 리눅스
급여대: 연 6,000-8,000만원 (추정)
채용 시간: 1-2개월 (경력 요구 높음)
예제 6: 다중 레이블 분류 (한 텍스트가 여러 카테고리)¶
프롬프트¶
당신은 영화 콘텐츠 분류 시스템입니다.
다음 영화에 해당하는 모든 장르와 태그를 선택해주세요.
가능한 장르:
액션, 드라마, 로맨스, 코미디, 공포, SF, 판타지,
다큐멘터리, 애니메이션, 가족
추가 태그:
한국 영화, 개봉 예정, 감동물, 명작, 인디영화
분류 결과:
주 장르: [가장 맞는 장르]
부 장르: [다른 해당 장르들]
태그: [추가 태그들]
영화 정보:
"타이타닉 2: 남극의 빙산에서 새로운 로맨스 이야기가
펼쳐진다. 웅장한 영상미와 감동적인 스토리가 어우러진
블록버스터 드라마."
예상 응답¶
💡 실전 팁¶
정확한 분류를 위한 프롬프트
-
명확한 카테고리 정의: 카테고리 설명을 한 문장으로 정의
-
경계선 사례 포함: 모호한 경우의 판단 기준 제시
-
Few-shot 예시 4-5개 제공: Zero-shot보다 정확도 30-40% 향상
-
신뢰도 함께 요청: 확신이 낮은 경우를 파악할 수 있음
-
이유 설명 요구: "왜 그렇게 분류했는지 설명해주세요"
대량 분류 시 효율화
CSV 배치 처리
JSON 구조화
{
"texts": [
{"id": 1, "content": "최고입니다"},
{"id": 2, "content": "최악이었어요"}
],
"categories": ["긍정", "부정", "중립"]
}
반복 패턴 활용 같은 구조로 여러 번 요청하면 일관성 있게 처리
성능 최적화¶
| 상황 | 권장 방법 | 모델 |
|---|---|---|
| 간단한 분류 | Zero-shot | Claude 4.6 Sonnet |
| 도메인 특화 | Few-shot (3-5개) | GPT-5.4 |
| 매우 정확한 분류 | Fine-tuning | 해당 모델의 Fine-tune API |
| 신뢰도 중요 | Ensemble (여러 모델) | Claude + GPT-5.4 |
| 실시간 대량 처리 | Batch API | Gemini 2.5 Pro |
📝 핵심 정리¶
| 항목 | 내용 |
|---|---|
| 핵심 기능 | Zero-shot/Few-shot 분류, 감정 분석, 주제 분류 |
| 장점 | 빠른 구현, 학습 데이터 불필요, 뉘앙스 이해 |
| 주의사항 | 카테고리 정의 명확히, Few-shot 예시 신중히 선택 |
| 프롬프트 팁 | 카테고리 정의, 경계선 사례, 신뢰도 요청 |
| 정확도 향상 | Few-shot (3-5개) 추가로 30-40% 향상 |
| 활용 분야 | 고객 리뷰, 뉴스, 상담, 채용, 콘텐츠 관리 |