[TIL] day43
#TIL
문서분류
문서분류는 자연어 처리에서 가장 중요한 분야 중 하나라고 한다!
문서분류란?
텍스트를 입력으로 받아 텍스트가 어떤 종류의 범주에 속하는지를 구분하는 작업이다.
어떤 분류 문제들이 있을까?
- 문서의 범주, 주제 분류
- 이메일 스팸 분류
- 감성분류
- 언어분류
감성분류
예시
- 영화: 리뷰가 긍정적인가 부정적인가?
- 제품: 출시된 아이패드5에 대한 대중의 반응은?
- 정치: 이 정치인에 대한 사람들의 생각은?
- 예측: 감성 분류를 기반으로 선거 결과를 예측
(감성분류하면 영화 리뷰 분류만 생각했었는데 이런 예시보니까 새롭고 왜 이 생각을 못했지싶고 재밌어 보인다...!!!!)
감성의 여러 측면이 있을 수 있지만 여기선 간단한 작업에 집중해서 본다.
- 감정적, 태도적, 성격적 측면
- 텍스트의 긍정적/부정적 태도 판단
문서 분류 방법들
1. 규칙 기반 모델
문서 분류 방법들로 단어들의 조합을 사용한 규칙들을 사용한다.
스팸분류: black_list_address OR("dollars" AND "you have been selected")
사람이 만든 규칙으로 분류하기 때문에 정확도는 높으나 recall이 낮다.
간단한 조합으로 해결할 수 없는 애매한 상황이 생긴다면 난감...
그래서 나온 기법으로 snorkel
방법이 있다.
snorkel
- 규칙기반 모델 + 머신러닝
- 각각의 규칙을 "labeling function"으로 간주한다.
- factor graph를 사용해서 확률적 목표값을 생성하는 generative model이다.
(labeling이 되지 않은 데이터에 score를 목표값으로 생성하는 것) - 프로젝트 초기
labeled data가 부족
하거나클래스 정의 자체가 애매한 경우
에 매우 유용한 방법
2. 지도학습
- Naive Bayes
- Logistic Regression
- Neural Networks
...
다양한 모델에 사용 가능하다.
그 중 Naive Bayes 분류기를 살펴보자.
Naive Bayes 분류기
Naive Bayes 가정과 Bag of Words 표현에 기반한 간단한 모델이다.
Bag of Words
-문서를 순서를 고려하지않은 단어들의 집합으로 만든 후 빈도수만 계산한다.
-|v|개의 원소를 가진 벡터가 만들어진다.
-벡터의 크기는 고정되어 있기 때문에 Logistic regression이나 NN에 input으로 쉽게 사용할 수 있다.
*Bag of words의 가정으로는 '위치가 확률에 영향을 주지 않는다' 는 것.
수식화를 해보자면, 문서 d와 클래스 c
즉, Naive Bayes 분류기는 입력값에 관한 선형 모델이다.
확률적 생성 모델에 대한 수식이 쭈우욱 있지만....
여기에 다 옮기기에는 무리니까 일단 핵심만!
- Naive Bayes지만 Naive하지 않음! (ㅋㅋ)
- 적은 학습데이터로도 좋은 성능을 보여줌
- 속도가 빠름 (training, inference)
- 조건부독립 가정이 실제 데이터에서 성립할 때 최적의 모델
- 문서 분류를 위한 베이스라인 모델로 적합
Naive Bayes 분류기 수식화에 대한 내용도 많고, 확률적 생성 모델에 대한 수식도 많지만, 이건 내가 다시 연필로 끄적이면서 복습해야겠다.
수식을 다 빼고나니까 Naive Bayes 분류기에 대한 설명이 너무 심플하다못해 이게 설명인가 싶을정도가 되어버렸는데, 되도록 좀 더 정리해보는걸루..!
Author And Source
이 문제에 관하여([TIL] day43), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hhyebb/TIL-day43저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)