reference
Bag of Words
Naive Bayes 방법은 Bayes rule에 기반한 간단한 Classification 방법이며,
Naive Bayes Classification을 위해서는 데이터를 Bag of Words로 만들어 줄 필요가 있다.
Bag of Words란 document를 가장 간단하게 표현하는 방법으로,
단어들의 순서는 전혀 고려하지 않고, 단어들의 출현 빈도(frequency)에만 집중하는 텍스트 데이터의 수치화 표현 방법이다.
"This is a cat" 으로 예를 든다면,
"This is a cat" ➡ "This", "is", "a", "cat" ➡ 벡터 [1, 1, 1, 1]
단어 "This", "is", "a", "cat"가 This is a cat에 다 포함되므로 벡터 값은 다 1이 되며,
단어가 문서에 등장하지 않을 경우에는 0으로 표시한다.
Naive Bayes as a Language Model
Naive Bayes는 Bag of Word와 함께 감정 분석 등에 활용할 수 있는 기법이다.
감정분석에서는 주어진 Document가 긍정적인지, 부정적인지를 판별하는 것이 목표이다.
$$P(b|a) = \frac{P(b)P(a|b)}{P(a)}$$
"my grandson loved it"라는 문장이 존재할 때 Naive Bayes를 이용하면 다음과 같은 확률을 얻을 수 있다.
$$P(positive)P("my" | positive)P("grandson" | positive)P("loved" | positive)P("it" | positive)$$
여기서 P(positive) 는 결국 모든 샘플 중 Positive 샘플의 수를 전체 샘플 수로 나눈 값이 된다.
$P("loved" | positive)$ 는 "loved"라는 단어를 포함하는 positive 샘플의 수를 positive 샘플의 수로 나눈 값이 될 것이다.
왼쪽의 작은 표 : 긍정적인 문장, 부정적인 문장의 확률
왼쪽 하단 : 계산 결과의 확률
오른쪽 표 : 주어진 문장의 긍정, 부정에 따른 조건부 확률
이 값들은 비례관계에 있지만 확률적인 의미를 가지고 있지는 않다.
확률을 구하기 위해 이를 정규화(Normalize)하면, P(positive) = 0.6837, P(negative) = 0.3163이 된다.
Naive Bayes의 특징은 더 자주 발생하는 단어에 민감하다는 점이고, "loved"라는 단어가 긍정적인 문장에서 더 자주 등장하기 때문에 전체 문장이 부정보다는 긍정일 확률이 높아지게 된다.
'🤖 ai logbook' 카테고리의 다른 글
[NLP/자연어처리] 자연어 처리에서의 순환 신경망 (RNN in Natural Language Processing) (0) | 2023.07.01 |
---|---|
[cs231n/Spring 2023] Lecture 4: Neural Networks and Backpropagation (0) | 2023.07.01 |
[NLP/자연어처리] 정보 검색 & 단어 임베딩(Information Retrieval & Word Embedding) (0) | 2023.07.01 |
[NLP/자연어처리] 감정 분석 & 문장에 대한 확률 (Sentiment Classification & Probabilities to Sentences) (0) | 2023.06.29 |
[NLP/자연어처리] 언어 모델링(Language Modeling) (0) | 2023.06.28 |
[NLP/자연어처리] 단어 토큰화(Word Tokenization) (0) | 2023.06.27 |
[cs231n/Spring 2023] Lecture 3: Regularization and Optimization (0) | 2023.06.26 |
[cs231n/Spring 2023] Lecture 2: Image Classification with Linear Classifiers (0) | 2023.06.18 |