Python/NLP Code

파이썬 텍스트 데이터 증강 모듈 : nlpaug

jimmy_AI 2022. 5. 13. 00:24
반응형

Text Augmentation 라이브러리 nlpaug

파이썬에서 텍스트 데이터를 augmentation해야할 때 유용하게 사용할 수 있는

nlpaug 모듈에 대해서 소개해보고 사용법을 간단하게 살펴보겠습니다.

 

 

nlpaug에서 지원하는 텍스트 증강 종류

우선, nlpaug 라이브러리에 대한 내용이 정리된 공식 github 페이지의 링크는 아래와 같습니다.

 

GitHub - makcedward/nlpaug: Data augmentation for NLP

Data augmentation for NLP . Contribute to makcedward/nlpaug development by creating an account on GitHub.

github.com

해당 페이지의 내용을 확인해보시면 텍스트 데이터뿐만 아니라 음성 신호 데이터에 대한

augmentation도 같이 제공하고 있는 점을 확인하실 수 있습니다.

 

텍스트 데이터를 기준으로 character, word 및 sentence 단위의 다양한 증강 방법들을

정리해두었다는 점을 확인할 수 있습니다.

반응형

각 증강 방법들에 대하여 설명을 간단히나마 요약해보면

character 단위의 데이터 증강 방법으로는 키보드 오타, OCR engine 오류, 랜덤 오타 등을

재현하고 있으며,

 

word 단위에서는 반의어, 동의어 등 rule 기반 방법부터 언어 모델을 활용한

ContextualWordEmbsAug이나 back translation(번역 후 재번역으로 돌아오는 과정)

등 다소 복잡한 과정의 증강도 제공하고 있습니다.

 

sentence 단위에서도 GPT2 등의 언어 모델을 활용한 방법과

summary 생성 결과를 활용한 방법 등 복잡한 text augmentation 방법들을

이용하기 쉽게 지원하고 있습니다.

 

더 자세한 종류 및 원리는 공식 github 페이지에 표로 정리된 내용을 참고해주세요.

 

 

nlpaug 사용법 예제

사용법은 매우 간단한 편이며, 위의 깃헙 페이지를 살펴보시면 자세하게 서술되어 있습니다.

예시로, 모듈 설치의 경우 아래 명령어로 간단하게 설치가 가능합니다.

!pip install numpy requests nlpaug

 

깃헙 페이지의 Quick Demo 파트에 코드 예제들이 상세하게 설명되어 있는데,

character 단위의 OCR 인식 오타를 3번 발생시켜본 예시 코드는 아래와 같습니다.

import nlpaug.augmenter.char as nac

text = 'Do to others as you would be done by'
aug = nac.OcrAug()
aug_text = aug.augment(text, n = 3)
print(aug_text)
# ['Do t0 uther8 as you would be done 6y', 'Do to others as you would 6e dune 6y', 'Do tu others a8 y0o would be done by']