nlp_study_정제와 정규화
- 정제(cleaning) : 갖고 있는 코퍼스로부터 노이즈 데이터를 제거한다.
- 정규화(normalization) : 표현 방법이 다른 단어들을 통합시켜서 같은 단어로 만들어준다.
1. 표기가 다른 단어들의 통합
같은 의미를 가지는데, 형태는 다른 경우
ex) USA와 US
이와 같은 경우는 정규화를 거쳐서 통합시킨다. 그 방법인 어간 추출과 표제어 추출은 뒤에서 할 예정.
2. 대, 소문자 통합
일반적으로 문장 처음에 등장하는 대문자를 소문자로 변환시켜주면 query의 결과로 탐색이 가능.
하지만 무작정 통합시켜서는 안됨. US와 우리를 뜻하는 us와 같이 구분해야하는 경우도 있음. 또한 사람이름, 회사 이름 등은 대문자로 유지하는게 좋음.
3. 노이즈 제거
노이즈 데이터는 자연어가 아니면서 의미도 지니지 않은 특수 문자들 등을 의미하기도 하지만, 분석하고자 하는 목적에 맞지 않는 불필요한 단어들을 이르기도 한다.
제거하는 방법은 불용어 제거와 등장 빈도가 작은 단어, 길이가 짧은 단어들을 제거하는 것이 있음.
영어권에서는 길이가 짧은 단어들은 대부분 불용어에 해당함. 하지만 한국어의 경우 영어보다 단어의 길이가 짧기 때문에 효과적이지가 않을 수 있다.
import re
text = "I was wondering if anyone out there could enlighten me on this car."
# 길이가 1~2인 단어들을 정규 표현식을 이용하여 삭제
shortword = re.compile(r'\W*\b\w{1,2}\b')
print(shortword.sub('', text))
출력:
was wondering anyone out there could enlighten this car.
이렇게 길이 1~2인 단어들만 삭제해도 영어에선 상당히 쓸모가 있다.
4. 정규 표현식
정규 표현식은 코퍼스 내에 계속해서 등장하는 글자들을 규칙에 기반하여 한 번에 제거하는 방식으로 쓰인다.
자세한 내용은 나중에 공부.