“데이터를 분석하기에 앞서 분석에 용이하도록
데이터를 정제/가공하는 작업”
↓
How?
영어는 NLTK 패키지를,
한글은 KoNLPy 패키지를 사용한다.
“텍스트 데이터 전처리로는
토큰화, 노이즈/불용어 제거, 정규화, 품사 태깅, 벡터화 등이 있다.”
“텍스트를 원하는 단위로 분절하는 작업이다.”
↓
보편적으로 문장 토큰화와 단어 토큰화를 사용한다.
1. 문장 토큰화 : 주로 . ! ? 등으로 구분한다. (NLTK에서 sent_tokenize() 함수를 지원한다.)
2. 단어 토큰화 :
(영어) 주로 공백 등으로 구분한다.
(NLTK에서 word_tokenize() 함수를 지원한다.)!
(한글) 최소 단위가 공백으로 구분되지만은 않기 때문에 별도의 word segmentation 작업을 해줘야 한다.
“전체 문서에서 지칭하고 싶은 대상(일부 글자)을 정규표현식으로 표현하는 것”
예를 들어,
전체문서 “내년 경기는 1.5% 성장할 것으로 전망된다.”에서 한글만 남기고 싶다면?
컴퓨터한테 “한글만”이라고 어떻게 지시해야 할까요?
예를 들어,
href=“/webtoon/detail?titleId=783053&weekday=tue”에서
783053만 남기고 싶다면?
→ 숫자열만 남겨! 라고 명령할 수 있다면 좋겠다!
“문자열을 특정한 규칙으로 표현하는 방식”
↓
re패키지를 사용하며, 대표적으로 findall(), sub() 함수 등을 사용한다.
숫자 → 0-9
알파벳 대문자 → A-Z
한글 자음 → ᄀ-ᄒ
등등!
텍스트 어그멘테이션은 NLP 모델에서 성능을 향상시키기 위한 중요한 기술이다. 다양한 텍스트 어그멘테이션 방
법이 있지만, 여기서는 몇 가지 대표적인 방법을 살펴보자.
Synonym Replacement
문장에서 임의의 단어를 유의어로 바꾸는 것이다. 이렇게 하면 문장의 의미는 유지되면서 단어의 다양성이 증가한다.
• 원본 문장: The cat sat on the mat.
• 어그멘테이션 문장: The feline sat on the mat.
Random Deletion
임의의 단어를 문장에서 삭제하는 것이다. 이렇게 하면 모델이 누락된 단어를 예측하는 능력을 향상시킬 수 있다.
• 원본 문장: I went to the store to buy some milk.
• 어그멘테이션 문장: I went to the store to buy milk.
Random Swap
문장에서 임의의 두 단어를 서로 바꾸는 것이다. 이렇게 하면 모델이 단어 순서에 대한 다양한 경우를 고려하게 된다.
• 원본 문장: I love pizza and pasta.
• 어그멘테이션 문장: I pasta pizza and love.
Random Insertion
문장에서 임의의 단어를 추가하는 것이다. 이렇게 하면 모델이 문장의 다양한 길이를 고려하게 되며, 단어의 배치에 대한 다양성이 증가한다.
• 원본 문장: She took a walk in the park.
• 어그멘테이션 문장: She took a long walk in the park.
Back Translation
이 방법은 번역 모델을 사용하여 문장을 다른 언어로 번역한 다음, 다시 원래 언어로 번역하는 것 이다. 이렇게 하면
원래 문장과는 약간 다른 문장이 생성되며, 모델이 다른 형태의 문장을 처리하는 능력을 향상시킬 수 있다. Back Translation을 수행하기 위해서는 번역 API를 사용해야 한다. 다양한 번역 API가 제공되고 있으며, 그 중에서도 Google Cloud Translation API, Microsoft Translator API, AWS Translate API 등이 대표적이다.
Text Generation
생성 모델을 사용하여 새로운 문장을 생성하는 것입니다. 이 방법은 크게 두 가지로 나눌 수 있습니다.
첫째, 완전한 문장 생성 방법으로, 모델에 시작 문장을 주면 이를 기반으로 새로운 문장을 생성합니다.
둘째, 문장 일부를 주고 나머지를 모델이 생성하도록 하는 방법으로, 이를 "Prompt-based Text Generation"이라고 합니다.
Domain Adaptation
이 방법은 특정 도메인에 적합한 문장을 생성하는 것입니다. 예를 들어, 의학 분야에서는 의료 용어나 특정 증상에 대한 설명 등이 필요하며, 이를 위해서는 해당 분야의 전문 지식이 필요합니다.