(01강) Introduction to NLP, Bag-of-Words
다양한 자연어 처리 task, 그리고 최근 동향에 대해 소개합니다. 자연어를 처리하는 가장 간단한 알고리즘 중 하나인 Bag-of-Words에 대해서 소개합니다. Bag-of-Words를 이용한 문서 분류 모델을 소개합니다.
1. NLP의 활용
1.1. Low-level parsing
Token & Tokenization 문장에서 각 단어를 Token이라하며, Token을 추출하는 과정을 Tokenization이라 한다.
Stemming 단어는 어미가 다양하게 변하는데(맑다, 맑은, 맑고) 이런 다양성을 없애고 의미(어근)만을 추출하는 것
1.2. Word and phrase level
NER (Named Entity Recognition) 고유명사 인식
POS (Part Of Speech) 품사나 성분을 알아내는 Task
Noun-phrase chuking
dependency parsing
coreference resolution
1.3. Sentence level
Sentiment Analysis (감정분석) 긍정, 부정 감정 분석 Task
Machine Translation (기계번역) 영한 번역시 단어변형과 어순 변형등을 고려한 Task
1.4. Multi-sentence and Paragraph level
Entailment Prediction 두 문장간의 논리적인 내포 혹은 모순관계를 예측하는 Task ex) 나는 밥을 먹었다. / 나는 오늘 하루종일 아무것도 먹지 못했다 => 모순
Question Answering 질문에 대해 응답하는 Task. 구글 검색, siri 등
Dialog Systems 챗봇과 같이 대화를 수행하는 자연어 기술
Summarization 문장 요약
1.5. Text Mining
KDD, The WebConf(WWW), WSDM(CIKM, ICWSM)
트랜드 분석
키워드 분석
1.6. Information Retrieval
SIGIR, WSDM, CIKM, RecSys
추천시스템 사용자가 좋아할 법한 데이터를 추천해주는 시스템으로 검색분야에서 등장한 새로운 Task
2. Trends of NLP
NLP는 꾸준한발전을 이루고 있다.
Word2Vec or GloVe
RNN-family models(LSTMs and GRUs)
Attention modules and Transformer models
Rule 기반의 번역에서 RNN기반의 번역을 통해 더 좋은 성능을 가져오게 되었다.
Transformer 이후, 각 Task 별로 모델을 구성하지 않고 Pre-Trained Model이 등장함으로써 Transfer Training이 가능해졌다. (BERT, GPT2, GPT3 ...)
단 사용되는 리소스가 매우 커서 대기업 위주로 활발하게 연구가 되고있다.
3. Bag-of-Words
리스트에 단어를 담는다는 느낌으로 Bag-of-Words 라는 명칭을 가지게 되었다.
3.1. Working Steps
Step1 : Constructing the vocabulary containing unique words
"John really really loves this movie", "Jane really likes this song"
vocab : {"Jone", "really", "loves", "this", "movie", "Jane", "likes", "song"}
Step2 : Encoding unique words to one-hot vectors
vocab : {"Jone", "really", "loves", "this", "movie", "Jane", "likes", "song"}
{[1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0], ..., [0, 0, 0, 0, 0, 0, 0, 1]}
For any pair of words, cosine similarity(내적값) is 0
"John really really loves this movie" => [1, 2, 1, 1, 1, 0, 0, 0] "Jane really likes this song" => [0, 1, 0, 1, 0, 1, 1, 1]
3.2. NaiveBayes Classifier for Document Classification
Bag of Words로 나타낸 문서의 분류를 처리하는 대표적인 방법이다.
C: Class of Document (ex. sport, financial etc..)
D : Document
MAP : Maximum a posteriori = most likely class
Document "d" 가 주어졌을때, 각 Class "c"에 해당할 조건부 확률이 최대가 되도록 하는 값을 구하는 것. Line 2에서 Line 3으로 넘어가는 것은 d라는 문서를 고정하였기 때문에 P(d)를 상수로 볼 수 있어 제거가 가능하다.
Document "d"에서 각 단어가 독립이라면 아래와 같이 나타낼 수 있다.
예를 들어 보도록 하자, 각 Training Data와 Test Data가 아래와 같이 주어져있다면, 각 Test Data의 각 토큰 별 확률과 Test 문서 d=5가 cv, nlp일 확률을 구할 수 있다.
여기서 우리가 볼 수 있는 것은 만약 한 단어(토큰)이라도 Training 의 단어 집합에 속하지 않는다면 그 확률값은 0이 되어 해당 클래스로 분류되지 않게 된다는 것이다.
참고코드 Link
Last updated