Natural-Language-Processing

View On GitHub

Pytorch를 활용하여 자연어 처리에 대해 공부한 글입니다. 궁금한 점이 있다면 댓글 남겨주세요 :)

Papers

자연어처리 관련 paper들과 해당 논문 review입니다. 읽는 순서대로 업데이트할 예정입니다.

Tutorials

  • bentrevett의 pytorch tutorial을 통해 학습한 내용입니다.

감정 분석 모델(Sentiment Analysis)

1 - RNN을 이용한 간단한 감정 분석 모델 Open In Colab

  • Pytorch의 torchtext를 이용한 간단한 프로젝트입니다.
  • torchtext의 인터넷 영화 데이터베이스(IMDb dataset)을 Recurrent Neural network(RNN)를 통해 학습시켜 영화의 review가 긍정적인 리뷰인지, 부정적인 리뷰인지를 판단합니다.
  • 이 튜토리얼에서는 load data, create train/test/validation splits, build a vocabulary, create data iterators, define a model and implement the train/evaluate/test loop 를 배울 수 있습니다.
  • 머신러닝 파이프라인을 간략하게나마 학습하기 위한 튜토리얼이므로 performance가 좋지 않습니다.

2 - 다양한 RNN architecture(LSTM, Bidirectional RNN, multilayer RNN 등)을 이용한 감정 분석 모델 Open In Colab

  • 1에서 구현한 workflow를 변형하여 정확도를 높인 모델입니다.
  • 1과 마찬가지로 IMDB dataset을 이용하였습니다.
  • computation 속도를 높이기 위해 Packed padded Sequence의 방식을 사용하였고, pre-trained word embeddings과 다양한 RNN model을 사용하여 performance를 향상시켰습니다.
  • 이 model에서는 LSTM, bidirectional-RNN, multi-layer RNN 등을 공부할 수 있습니다.

3 - FastText model을 이용한 감정 분석 모델 Open In Colab

  • RNN을 사용하지 않고 Bag of Tricks for Efficient Text Classification 논문의 FastText model을 활용하여 computation speed를 향상시켰습니다.
  • 2개의 layer(embedding layer와 linear layer)로 구현된 모델로, 2보다 더 간단하지만 속도는 빠르고 성능 또한 괜찮은 모델입니다.
  • tutorial1, 2 마찬가지로 IMDB dataset을 이용하였습니다.

4 - Convolutional neural network을 이용한 문장 분류 모델 Open In Colab

5 - Convolutional neural network을 이용한 다중 클래스 분류 모델(pytorch) Open In Colab

  • 이전까지의 tutorial에서는 이진 분류에 대해서 학습하였다면, tutorial5에서는 여러 개의 클래스를 가진 데이터세트에 대해 분류하는 법을 학습하였습니다.
  • Convolutional Neural Network를 사용하여 model을 구현했습니다.

Seq2Seq Model

Reference