Data scientist/자연어처리

Text Classification

맨사설 2021. 10. 15. 13:48
728x90

 

※ What we need : 텍스트를 입력으로 받아 원하는 항목에 대한 수치를 출력하는 것(e.g. 감성 분석, 주제 분류)

 

※ What we need to do : 문장을 latent space에 projection 하여 decision boundary를 찾는 것

 

 

※ In Probabilistic Perspective : 문장이 주어졌을 때, 문장이 속할 클래스의 확률 분포 함수를 approximate

 

 

 

◎ Text Classification using RNN

 

 

○ Bidirectional Multi-layered RNN

  • Non-autoregressive task이므로 입력을 한번에한 번에 받게 된다. 따라서 모든 time-step을 한 번에 병렬로 처리 가능

 

☆ Feed-forward 과정 

  1. One-hot vector를 입력으로 받아 embedding layer에 넣어준다.
  2. Embedding vector를 RNN에 넣어 출력을 얻는다.
  3. RNN의 출력값 중 마지막 time-step의 값을 잘라낸다.
  4. 잘라낸 값을 softmax layer에 통과시켜 각 클래스별 확률 값을 얻는다.

How the classifier works
Embedding layer

 

Architecture

  • Embedding Layer -> LSTM -> Linear Layer -> Softmax

 

 

 

 

◎ Text Classification using CNN

 

○ Down sampling 기법 : Max-pooling

2X2 Max-pooling

 

 

○ Motivations

  • 감성 분석(sentiment analysis)
  • 클래스를 결정하는 일부 문구의 패턴이 있기 마련
  • 이때, 문구 내의 단어들을 비슷한 의미의 단어들로 치환할 수 있을 것
  • 비슷한 의미의 문구의 임베딩 벡터의 패턴을 인식할 수 있게 하는것이 CNN

 

 

 

○ Summary of CNN

  • RNN에 비해 좀 더 직관적인 방법
  • RNN은 문장의 문맥을 이해한다면, CNN은 문장 내 단어의 패턴을 인식
  • Embedding layer에 one-hot vector를 넣어주어 구현할 것

 

728x90

'Data scientist > 자연어처리' 카테고리의 다른 글

Word Embedding  (0) 2021.10.14
Preprocessing  (0) 2021.10.11
자연어처리  (0) 2021.10.05