[NLP] 다양한 파이썬 NLP 프레임워크

Ethan·2022년 8월 11일
0

참고 문서: https://towardsdatascience.com/top-nlp-libraries-to-use-2020-4f700cdb841f

General Framework

여기서 말하는 general framework란 특정 태스크에 특화되지 않고 전처리-모델링-학습-평가의 전 과정을 통합적으로 수행할 수 있는 프레임워크를 말한다.

AllenNLP

(출처: AllenNLP Guide(https://guide.allennlp.org/building-your-model#1))

ELMo를 만든 Allen Institute에서 공개한 프레임워크이다.

한 가지 모델로 다양한 태스크를 처리하거나 다양한 모델로 한 가지 태스크를 처리할 수 있는 general한 프레임워크를 지향한다.

Fairseq

Facebook AI Research에서 공개한 프레임워크이다.

자연어처리에만 한정되지 않고 CNN, LSTM 등 traditional한 모델을 포함하여 음성인식이나 합성 등 여러 sequential한 데이터를 다루는 pretrained model들을 제공한다.

Fast.ai

(출처: 출처 : fast.ai (https://github.com/fastai/fastai))

익숙한 이름이다. 이름에 맞게 빠르게 배우고 쉽게 모델을 구성할 수 있도록 high level API와 application block을 사용할 수 있게 되어 있다. NLP 포함 다양한 분야로 확장할 수 있다.

tensor2tensor (trax)

페이스북이 있다면 구글 기반 프레임워크도 있는 게 당연하다. 2017년 Google Brain에서 transformer 논문을 발표하면서 함께 공개했던 구현체가 tensor2tensor이다.

이후 Tensorflow V2 기반의 trax 프로젝트로 주도권이 넘어가면서 tensor2tensor의 개발이 중단되었다. 현재는 trax로 기능이 넘어가 있다.

Preprocessing Libraries

앞서 소개한 범용 프레임워크와 달리 특정 태스크(tokenizing, tagging, parcing 등)에 최적화된 라이브러리들이다.

한국어 전처리를 할 때 흔히 사용하는 koNLPy도 같은 역할을 한다.

Spacy

NLTK

TorchText

Transformer-based Framework

트랜스포머 기반의 모델들을 제공하는 프레임워크이다.
가장 많이 사용되고 성능이 우수한 편이며, traditional한 모델은 상대적으로 사용하지 않는 경향이 있다.

pretrained 모델 활용에 집중돼 있다 보니 subword tokenizer를 쓰는 경우가 많다.

Huggingface

profile
재미있게 살고 싶은 대학원생

0개의 댓글