불용어
자주 등장할 수 있으나 분석하는 데에 도움이 되지 않는 단어들을 불용어라고 한다.
예를 들면 I, my, on, in, 조사, 접미사 같은 것들이 있다.
NLTK
NLTK에서는 100개 이상의 영어 단어들을 불용어 패키지로 미리 정의하고 있다.
stopwords.words('english')
위 코드를 통해 NLTK에서 불용어로 정의한 단어들을 확인할 수 있다.
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
from konlpy.tag import Okt
example = "Family is not an important thing. It's everything."
stop_words = set(stopwords.words('english'))
word_tokens = word_tokenize(example)
result = []
for word in word_tokens:
if word not in stop_words:
result.append(word)
print('불용어 제거 전 :',word_tokens)
print('불용어 제거 후 :',result)
'''
불용어 제거 전 : ['Family', 'is', 'not', 'an', 'important', 'thing', '.', 'It', "'s", 'everything', '.']
불용어 제거 후 : ['Family', 'important', 'thing', '.', 'It', "'s", 'everything', '.']
'''
word_tokenize() 함수로 토큰화를 진행한 후 불용어로 정의한 is, not, an과 같은 단어들이 제거된 것을 확인할 수 있다.
한국어에서 불용어 제거하기
한국어에서 불용어를 제거하는 방법으로는 토큰화 후에 조사, 접속사 등을 제거할 수 있다.
이 외에는 직접 불용어 사전을 만들어 불용어를 제거할 수 있다.
보편적으로 선택할 수 있는 불용어 리스트가 존재한다.
https://www.ranks.nl/stopwords/korean
'AI > NLP' 카테고리의 다른 글
[Wiki] 원-핫 인코딩 (0) | 2024.06.02 |
---|---|
[Wiki] 패딩 (0) | 2024.06.01 |
[Wiki] 정수 인코딩 (0) | 2024.06.01 |
[Wiki] 어간 추출 (0) | 2024.06.01 |
[Wiki] 데이터 전처리 (토큰화 - 정제 - 정규화) (0) | 2024.05.31 |