문서분류
문서분류란?
- 텍스트를 입력으로 받아, 텍스트가 어떤 종류의 범주에 속하는지를 구분하는 작업
다양한 문서 분류 문제들
- 문서의 범주, 주제 분류
- 이메일 스팸 분류
- 감성 분류
- 언어 분류
주제분류
- CS논문 -> CS 주제분류(AI,DB 등등)
감성분류
- 영화리뷰 긍부정
- 어디에 쓰일 수 있을까?
- 영화 : 리뷰가 긍정적인가 부정적인가
- 제품 : 새로운 상품에 대한 반응
- 정치 : 이 정치인에 대한 사람들의 생각은?
- 예측 : 감성 분류를 기반으로 선거 결과를 예측
- 감성의 여러 측면이 있을 수 있지만 여기선 간단한 작업에 집중
- 감정적, 태도적, 성격적 측면
- 이 텍스트는 긍정적인 태도를 보이고 있나? 아니면 부정적인 태도를 보이고 있나?
문서 분류 : 정의
input
- 하나의 문서
- 가능한 클래스의 집합 C = {c1,c2,...,cn}
output
하나의 클래스 c
문서 분류 방법들 - 규칙 기반 모델
- 단어들의 조합을 사용한 규칙들을 사용
ex) 어떤 단어가 들어가면 이거다 -> 메일에 주소가 블랙리스트가 있으면 스팸메일이다.
- Precision은 높지만 recall이 낮음
- Snorkel(규칙기반과 ML을 함께 사용하는 모델)
- 각각의 규칙을 labeling function으로 간주
- Graphical model의 일종인 factor graph를 사용해서 확률적 목표값을 생성하는 generative model
- 프로젝트 초기 labeled data가 부족하거나 클래스 정의 자체가 애매한 경우(하지만 규칙을 생성하는 것은 쉽다고 가정)에 매우 유용한 방법
- 확률적 목표값이 생성된 후에 딥모델 등 다양한 모델을 사용가능.
문서 분류 모델 - 지도학습
다양한 모델 사용 가능
- naive bayes
- logistic regression
- neural networks
- k-nearest neighbors
Naive bayes 분류기
- naive bayes 가정과 Bag of Words 표현에 기반한 간단한 모델
Bag of Words 표현
가방에 단어를 몽땅 넣으면 순서가 없어진다
출처 https://www.programmersought.com/article/4304366575/
Naive bayes 분류기 - 수식화