ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [13주차 - Day4] NLP: 문서분류
    교육/프로그래머스 인공지능 데브코스 2021. 8. 10. 09:33
    728x90

    문서분류(Text Classification)

    텍스트를 입력으로 받아 텍스트가 어떤 종류의 범주에 속하는지를 구분하는 작업

    ex)문서의 범주,주제 분류/이메일 스팸 분류/감성 분류/언어 분류

     

    문서분류의 정의

    • input : d(document), C(fixed set of classes)={C1, C2, ..., Cj}
    • output : predicted class(c∈C)

    문서분류 방법들

    1. 규칙 기반 모델

    단어의 조합을 사용한 규칙들을 사용

    ex)이메일 스팸분류 : 블랙리스트 이메일주소 or 이메일 내용의 단어(ex.dollars, you have been selected등)

    사람이 규칙을 만들어서 precision은 높지만 예외가 많기 때문에 recall이 낮음

    ->머신러닝이 학습해서 규칙을 만들어내는 방법 사용 ex)Snorkel

    더보기

    Snorkel

    각각의 규칙을 labeling function으로 간주

    graphical model의 일종인 factor graph를 사용해서 확률적 목표값을 생성하는 생성모델

    프로젝트 초기 labeled data가 부족하거나 클래스 정의 자체가 애매한 경우(규칙을 생성하는 것은 쉽다고 가정)에 유용

    확률적 목표값이 생성된 후엔 다양한 모델을 사용가능

    2. 지도 학습

    • input : d(document), C(fixed set of classes)={C1, C2, ..., Cj}, m(문서를 라벨링한 훈련세트)=(d1, C1), ..., (dm, Cm)
    • output : d->c

    다양한 모델 사용 가능

    • Naive Bayes
    • Logistic regression
    • Neural networks
    • k-Nearest Neighbors
    • 기타 등등

    1. Naive Bayes분류기

    Naive Bayes가정과 Bag of words 표현에 기반한 간단한 모델

    Bag of words? 순서를 고려하지 않는 단어들의 집합+각각의 단어들의 빈도 수

    문서 d와 클래스 c

    주어진 문서에 대해서 output으로 하나의 클래스를 출력해줘야함

    그러려면 위의 조건부확률을 최대화시키는 클래스 C를 찾아서 출력

    그래서 이것을 단순화시키는 과정이 필요한데 이를 위해 아래의 2가지 가정을 함

    • Bag of words 가정 : 위치는 확률에 영향을 주지 않음
    • 조건부독립 가정 : 클래스가 주어지면 속성들은 독립적

    조건부독립과정 수식

    ->클래스 c가 주어졌을 때 n개의 속성들이 주어질 확률은 분해가 된다

    =Bayes Network : 확률변수들 사이의 독립적인 관계를 그래프표현

    클래스가 주어져있을 때 각각의 x들은 독립적(conditional independence)

    Naive Bayes를 문서분류에 적용하면 이와 같은

    Naive Bayes를 문서분류에 적용하면 이와 같은 식이 나오게 됨

    (xi는 각 포지션에 나타날 단어)

     

    Naive Bayes분류기는 입력값에 관한 선형 모델

    이걸 이해하려면 확률적 생성 모델에 대해 생각해봐야함

    MLE

    training data가 충분하지 않으면 MLE가 0이 되는 문제가 발생할 수 있음

    ->모든 단어들의 최소빈도를 1로 설정하는 Laplace (add-1) smoothing으로 해결

    Laplace smoothing
    Naive Bayes분류기 - 학습
    Naive Byaes분류기 - 검증
    Naive Bayes 분류기 예제

    Naive Bayes 분류기 요약

    • 적은 학습데이터로도 좋은 성능
    • 빠른 속도(training, inference)
    • 조건부독립가정이 실제 데이터에서 성립할 때 최적의 모델
    • 문서 분류를 위한 베이스라인(baseline) 모델로 적합

    댓글

Designed by Tistory.