콘텐츠로 이동

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일 전에 도착했는데, 키보드가
잘 작동하지 않습니다. 교환받고 싶은데 어떻게
해야 하나요?"

예상 응답

의도: 기술 지원 + 반품/교환 신청
우선순위: 높음
추천 부서: 기술 지원팀 → 반품 관리팀
처리 시간: 15-20분
조치: 키보드 결함 확인 후 교환 진행 (배송 포함)

예제 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: 남극의 빙산에서 새로운 로맨스 이야기가
펼쳐진다. 웅장한 영상미와 감동적인 스토리가 어우러진
블록버스터 드라마."

예상 응답

주 장르: 로맨스
부 장르: 드라마, 액션
태그: 감동물, 명작
개봉 예정일: 2024년 12월 (추정)
대상 관객: 20-50대, 로맨스 영화 팬

💡 실전 팁

정확한 분류를 위한 프롬프트

  1. 명확한 카테고리 정의: 카테고리 설명을 한 문장으로 정의

    긍정: 기분이 좋고 만족하는 감정 표현
    부정: 불만족, 화난 감정 표현
    중립: 감정이 드러나지 않는 객관적 표현
    

  2. 경계선 사례 포함: 모호한 경우의 판단 기준 제시

    "괜찮네"는 약한 긍정으로 분류하세요.
    "가격은 좋지만 품질이 안 좋다"는 부정으로 분류하세요.
    

  3. Few-shot 예시 4-5개 제공: Zero-shot보다 정확도 30-40% 향상

  4. 신뢰도 함께 요청: 확신이 낮은 경우를 파악할 수 있음

  5. 이유 설명 요구: "왜 그렇게 분류했는지 설명해주세요"

대량 분류 시 효율화

CSV 배치 처리

ID,내용,감정
1,"좋아요!",
2,"별로예요.",
3,"그럼그럼해요.",

위 3개 문장을 분류해주세요.
결과는 CSV 형식으로: ID,내용,감정

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% 향상
활용 분야 고객 리뷰, 뉴스, 상담, 채용, 콘텐츠 관리