갖고 있는 데이터에서 유의미한 단어 토큰만을 선별하기 위해서는 큰 의미가 없는 단어 토큰을 제거하는 작업이 필요하다.
불용어(Stop word)는 분석에 큰 의미가 없는 단어를 지칭한다.
큰 의미가 없다라는 것은 자주 등장하지만 분석을 하는 것에 있어서는 큰 도움이 되지 않는 단어들을 말한다.
예를 들면, I, my, me, over, 조사, 접미사 같은 단어들은 문장에서는 자주 등장하지만 실제 의미 분석을 하는데는 의미가 없는 경우가 있다.
이런 불용어는 텍스트에 빈번하게 나타나기 때문에 중요한 단어로 인지될 수 있다. 하지만 실질적으로는 중요한 단어가 아니므로 사전에 제거하는 과정을 거쳐야 한다.
불용어 확인하기 - NLTK 모듈 활용
import nltk
nltk.download('stopwords')
from nltk.corpus import stopwords
stopwords.words('english')[:10]
['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', "you're"]
stopwords.words("english")는 NLTK가 정의한 영어 불용어 리스트를 리턴해준다.
불용어 제거하기
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
example = "You're my everything. I miss you"
stop_words = set(stopwords.words('english'))
word_tokens = word_tokenize(example)
result = []
for w in word_tokens:
if w not in stop_words:
result.append(w)
print(word_tokens) # ['You', "'re", 'my', 'everything', '.', 'I', 'miss', 'you']
print(result) # ['You', "'re", 'everything', '.', 'I', 'miss']
my, you와 같은 단어들이 제거 되었음을 확인 할 수 있다.
한국어에서 불용어 제거하기
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
example = "이 문제 좀 풀어줄래? 나한테는 너무 어려워서 못 풀겠어."
stop_words = [
'이', '있', '하', '것', '들', '그', '되', '수', '이', '않', '없', '주', '아니', '등',
'우리', '때', '년', '가', '한', '지', '말', '일', '그렇', '위하', '좀'
]
word_tokens = word_tokenize(example)
result = []
for w in word_tokens:
if w not in stop_words:
result.append(w)
print(word_tokens) # ['이', '문제', '좀', '풀어줄래', '?', '나한테는', '너무', '어려워서', '못', '풀겠어', '.']
print(result) # ['문제', '풀어줄래', '?', '나한테는', '너무', '어려워서', '못', '풀겠어', '.']
사용자가 직접 불용어 사전을 만들어서 사용하는 경우가 많다.
위의 사전은 내가 임의로 작성해서 돌려본 결과이다.
한국어 불용어를 제거하는 더 좋은 방법은 코드 내에서 직접 정의하지 않고 txt 파일이나 csv 파일로 수많은 불용어를 정리해놓고, 이를 불러와서 사용하는 방법이 있다.
일반적으로 사용되는 한국어 불용어 리스트는 여기 사이트에서 확인해 볼 수 있다.
<참고 사이트> wikidocs.net/22530
'NLP' 카테고리의 다른 글
어간 추출(Stemming)과 표제어 추출(Lemmatization) (0) | 2022.01.27 |
---|---|
토큰화 Tokenization (0) | 2022.01.27 |
형태소 분석기 (0) | 2022.01.27 |
자연어 처리(Natural Language Processing)란 무엇인가? (0) | 2022.01.27 |
파이썬(Python) 한글 형태소 분석 Konlpy 설치하기 (0) | 2022.01.27 |