더북(TheBook)

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", "{"]


신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.