https://youtu.be/VNEdufXVMaU6 1 What is Text Classification
https://youtu.be/kxImnFg4ZiQ




6 2 Naive Bayes
https://youtu.be/j39c7Gjx2gE


감마 기호는 function을 의미한다.
6 3 Formalizing the Naive Bayes Classifier



d 는 document, c는 class를 의미한다.
P(d|c) 는 likelihood probability, P© prior probability

documents는 x features (단어들)의 연속으로 구성되어있다.

P(x1, x2, x3 ……. xn | c)의 경우 conditional 에 conditional에 중첩된 conditional probability 계산이 되는데 이런경우 복잡해지게 된다.

계산이 복잡해지는데 이를 간소화 시켜서 계산하는 방법을 사용한다. bag of words를 이용하거나 independent probability를 이용(모든 단어는 서로 independent하다고 가정)한다.


6 4 Naive Bayes Learning
https://youtu.be/3jR8TZG8T88

P(cj)는 전체 문서에서 특정 class의 문서가 나올 확률이다.
P(wi | cj)는 특정 class에서 특정 word가 나올 확률이다.

위의 내용을 간단히 정리하면 특정 class의 모든 문서(시그마부분에 해당)를 하나로 만들고 그 안에서 특정단어들이 나오는 횟수를 이용해 P(wi | cj)를 구한다.

training documents에 fantastic이라는 단어가 한번도 사용되지 않았다. 그런데 새로 주어진 문장에서는 이 단어가 사용되었다고 한다면 이전에는 한번도 나온적이 없었으므로 확률이 0이 되버리게 된다. 즉 새로운 단어에 대한 고려가 전혀 없는 것이다. 이 문제의 해결방법은 아래 그림 참조

모든 단어의 출현횟수를 1씩 늘려줌으로써 최소횟수가 0이 아닌 1이 되게된다.

우측 하단은 add alpha가 적용된 공식이다.

training doc에서 한번도 출현하지 않은 단어는 unknown word로 위와 같이 처리한다.
6 5 Naive Bayes Relationship to Language Modeling
https://youtu.be/LRFdF9J__Tc



6 6 Multinomial Naive Bayes A Worked Example
https://youtu.be/OWGVQfuvNMk

P©는 전체 문서들중에 class c 문서가 나올 확률이다. 여기서 사용된 P(w | c)는 add one smoothing이 적용된 특정 class에서 특정 단어들이 나올 확률이다.
위의 예제는 주어진 training data를 이용해 만든 모델로 test doc의 class를 예상하는 과정이다. 오른쪽 하단의 내용은 주어진 문서 d5가 어떤 클래스인지를 비교 추측하는 것이다. 각 c , j class일 확률을 비교 한다. 이때 d5는 공통으로 들어가는 부분이므로 생략했다.

6 7 Precision, Recall, and the F measure
https://youtu.be/81j2nzzBHUw
참조자료)
andrew ng https://youtu.be/wGw6R8AbcuI

위그림이 좀더 이해하기 쉽다.

accuracy 측정 방법


6 8 Text Classification Evaluation
https://youtu.be/TdkWIxGoiak






6 9 Practical Issues in Text Classification
https://youtu.be/uIvSHmsLs-U
text classification에 대한 전반적인 내용을 다루고 있다.

training data가 없는 경우 개발자가 직접 손수 rule을 만든다.



knn k nearest neighbors를 말한다.

보통 training data의 양이 많은 경우 classifier간의 성능차는 별로 없어지게 된다.

자동, 수동 섞어서 처리한다.

확률의 곱이 많이 이어지는 경우 그 숫자가 매우 작아지는 경우가 생기는데 이를 underflow라고 한다. 이를 방지 하기 위해 log값을 이용한다. log에서는 두 값이 곱이 합으로 계산되기 때문이다.

upweighting : 단어의 위치나 사용방법에 따라 가중치를 두는 방법이다.