목차
1. 문장 토큰화
2. 단어 토큰화
3. 정규 표현식을 통한 토큰화
4. 불용어 제거
전처리 대상 정의
전처리는 아래와 같이 3개의 문장으로 정의된 문단을 사용한다.
para = "Hello everyone. It's good to see you. Let's start out text mining class!"
1. 문장 토큰화
위 문단을 문장 단위로 토큰화하는 nltk의 sent_tokenize로 토큰화하면 아래와 같이 분할된다.
import nltk
nltk.download('punkt')
nltk.download('webtext')
from nltk.tokenize import sent_tokenize
print(sent_tokenize(para))
['Hello everyone.', "It's good to see you.", "Let's start out text mining class!"]
2. 단어 토큰화
위 문단을 단어 단위로 토큰화하는 nltk의 word_tokenize로 토큰화하면 아래와 같이 분할된다.
from nltk.tokenize import word_tokenize
print(word_tokenize(para))
['Hello', 'everyone', '.', 'It', "'s", 'good', 'to', 'see', 'you', '.', 'Let', "'s", 'start', 'out', 'text', 'mining', 'class', '!']
3. 정규표현식을 통한 단어 토큰화
위 두 방법 외에도 정규표현식을 통해 아래와 같이 토큰화할 수 있다. 정규표현식을 활용하면 필요없는 문자 등의 노이즈도 제거할 수 있다. 아래 정규표현식은 공백을 기준으로 주어진 문단을 단어로 토큰화하기 위한 식이다.
from nltk.tokenize import RegexpTokenizer
tokenizer = RegexpTokenizer("[\w']+")
tokens = tokenizer.tokenize(para)
print(tokens)
['Hello', 'everyone', "It's", 'good', 'to', 'see', 'you', "Let's", 'start', 'out', 'text', 'mining', 'class']
4. 불용어 제거
불용어는 실제 사용되는 단어이지만 분석에는 별 필요가 없는 단어를 말하며 영어에서는 with, to, do 등이 될 수 있다. 아래는 토큰 목록에서 불용어를 제거하는 코드로 english_stops 에는 불용어 목록이, tokens에는 정규표현식을 통해 토큰화한 단어 목록이 있다.
nltk.download('stopwords')
from nltk.corpus import stopwords
english_stops = set(stopwords.words('english'))
[word for word in tokens if word not in english_stops]
['Hello',
'everyone',
"It's",
'good',
'see',
"Let's",
'start',
'text',
'mining',
'class']
반응형
'인공지능' 카테고리의 다른 글
machine translation에서 align, alignment의 의미 (0) | 2023.05.23 |
---|---|
Bard vs. ChatGPT 확실히 한국어는 Bard 가 승?! (0) | 2023.05.15 |
gcloud scp로 데이터 전송하기 (0) | 2023.05.10 |
딥러닝 robust 의미 (0) | 2023.02.15 |
자연어 처리와 텍스트 마이닝(NLP vs. Text Mining) (0) | 2021.03.29 |