토큰화(Tokenization)란 무엇인가?
토큰화는 주어진 문자열을 토큰(token)이라 불리는 작은 단위로 잘라내는 자연어 처리의 기본 작업입니다. 이 과정에서 쉼표나 물음표 같은 문장부호는 별도의 토큰으로 분리되거나 때로는 제거되기도 합니다.
NLTK와 파이썬의 관점에서 보면, 토큰화란 각 토큰을 리스트에 담아두는 과정을 의미합니다. 이렇게 하면 텍스트를 글자 하나하나 순회하는 대신, 의미 있는 단위인 토큰별로 반복 처리할 수 있어 이후의 분석 작업이 훨씬 편리해집니다.
입력 문자열 예시
Hi man, how have you been?
토큰화 결과
['Hi', 'man', ',', 'how', 'have', 'you', 'been', '?']
NLTK의 word_tokenize 사용 방법
NLTK에서 제공하는 word_tokenize 메서드를 사용하면 위와 같은 문장을 손쉽게 토큰화할 수 있습니다. 이 메서드는 단순히 공백으로만 나누는 것이 아니라, 문장부호까지 하나의 독립적인 토큰으로 정확하게 분리해 준다는 점이 특징입니다.
참고:
word_tokenize를 처음 실행하기 전에 필요한 데이터를 다운로드해야 합니다. 파이썬 콘솔에서import nltk후nltk.download('punkt')를 실행하세요.
예제 코드
from nltk.corpus import stopwords from nltk.tokenize import word_tokenize my_sent = "Hi man, how have you been?" tokens = word_tokenize(my_sent) print(tokens)
실행 결과
['Hi', 'man', ',', 'how', 'have', 'you', 'been', '?']
정리
이처럼 NLTK의 word_tokenize를 활용하면 문장을 단어와 문장부호 단위로 깔끔하게 분리할 수 있습니다. 토큰화된 결과는 불용어(stopwords) 제거, 빈도 분석, 형태소 분석 등 이후 자연어 처리 파이프라인의 기초 데이터로 활용됩니다.