정제와 정규화
코퍼스에서 용도에 맞게 토큰을 분류하는 작업을 토큰화(tokenization)이라고 하며, 토큰화 작업 전, 후에는 텍스트 데이터의 용도에 맞게 정제(Cleaning) 및 정규화(Normalization)하는 일이 함께 한다.
- 정제(Cleaning) : 갖고 있는 코퍼스로부터 노이즈 데이터를 제거한다.
- 정규화(Normalization) : 표현 방법이 다른 단어들을 통합시켜서 같은 단어로 만들어준다.
1) 대문자 vs 소문자
- Language <-> language
-> 두 단어는 같은 말이지만 컴퓨터는 가장 앞의 L과 l로 인해 다른 문자로 인식한다. 따라서 같은 문자로 변환해 주어야 한다
- US <-> us
-> US는 '미국', us는 '우리'라는 뜻을 가지고 있다. 이처럼 대문자를 소문자로 바꾸는 것 조차도 주의해야 할 단어들을 보고 예외
처리를 해 주어야 한다.
- Mike <-> mike
2) 출현 횟수가 적은 단어의 제거
- Plants and animals -> 출현 횟수가 많은 단어
- Floras and faunas -> 출현 횟수가 적은 단어
- Hero Character -> 출현 횟수가 많은 단어
- Protagonist -> 출현 횟수가 적은 단어
주어진 문장에 출현 횟수가 적은 단어가 중요하다면 토큰화를 하는 게 맞지만 중요하지 않다면 빼 주는 것이 오히려 도움이 된다. 이처럼 아직까지는 Cleaning에서 사람의 주관이 들어가야 한다는 특징이 있다.
3) 길이가 짧은 단어, 지시(대)명사, 관사의 제거
영어권 언어에서는 길이가 짧은 단어를 삭제하는 것만으로도 어느정도 자연어 처리에서 크게 의미가 없는 단어들을 제거하는 효과를 볼 수 있다고 알려져 있다. 즉, 영어권 언어에서 길이가 짧은 단어들은 대부분 불용어에 해당된다. 사실 길이가 짧은 단어를 제거하는 2차 이유는 길이를 조건으로 텍스트를 삭제하면서 단어가 아닌 구두점들까지도 한꺼번에 제거하기 위함도 있다.
하지만 한국어에서는 길이가 짧은 단어라고 삭제하는 방법은 크게 유효하지 않을 수 있다. 이는 영어 단어와 한국어 단어에서 각 한 글자가 가진 의미의 크기가 다르다는 점에서 기인하는데 가령 '용'을 표현하기 위해서는 한국어로는 한 글자면 충분하지만, 영어에서는 d, r, a, g, o, n이라는 총 6개의 글자가 필요하기 때문이다. 이러한 특성으로 인해 영어는 길이가 2~3 이하인 단어를 제거하는 것만으로도 크게 의미를 갖지 못하는 단어를 줄이는 효과를 갖고 있다.
정규 표현식을 이용해 길이가 1~2인 단어들을 삭제하는 예시
출력 결과 : was wondering anyone out there could enlighten this car.
'NLP > 딥러닝을 이용한 자연어 처리 입문' 카테고리의 다른 글
[NLP] 1-4. 불용어(Stopword) (1) | 2023.11.30 |
---|---|
[NLP] 1-3. 추출(Stemming) (1) | 2023.11.29 |
[NLP] 1-1. 토큰화(Tokenization) (0) | 2023.11.28 |
[NLP] 1. 전처리 과정 (0) | 2023.11.28 |
[NLP] 0. 자연어 처리란? (0) | 2023.11.28 |