2정규화
정규화(normalization)는 추가적으로 데이터를 처리하려고 자연어로 된 텍스트를 준비하는 과정이다. 이는 전형적으로 다음 단계로 진행한다(보통 이러한 순서를 따른다).
1. 토큰화(tokenization)(텍스트를 단어로 쪼갠다) : NLTK는 간단한 버전의 토크나이저 2개, 고급 버전 2개를 제공한다. 문장 토크나이저는 문자열로 된 문장 리스트를 반환한다. 나머지 토크나이저는 단어 리스트를 반환한다.
□ word_tokenize(text) : 단어 토크나이저
□ sent_tokenize(text) : 문장 토크나이저
□ regexp_tokenize(text, re) : 정규 표현식 기반의 토크나이저. re 파라미터는 단어를 표현하는 정규 표현식
토크나이저의 퀄리티와 문장 구조에 따라서 어떤 단어는 알파벳이 아닌 문자를 포함할 수도 있다. 이모티콘을 이용한 감성 분석 등 문장 구조를 깊이 분석하는 작업을 할 때는 WordPunctTokenizer 같은 고도화된 도구가 필요하다. 같은 텍스트를 WordPunctTokenizer.tokenize()와 word_tokenize()가 어떻게 파싱하는지 비교해 보자.
from nltk.tokenize import WordPunctTokenizer
word_punct = WordPunctTokenizer()
text = "}Help! :))) :[ ..... :D{"
word_punct.tokenize(text)
>>>
["}", "Help", "!", ":)))", ":[", ".....", ":", "D", "{"]
nltk.word_tokenize(text)
>>>
["}", "Help", "!", ":", ")", ")", ")", ":", "[", "...", "..", ":",
"D", "{"]