Natural Language Processing/딥 러닝을 이용한 자연어 처리 입문
불용어(Stopwords)
uding9
2021. 5. 17. 14:14
반응형
https://wikidocs.net/22530 참고하여 공부한 내용 정리
04) 불용어(Stopwords)
데이터에서 유의미한 단어 토큰만을 선별하기 위해 큰 의미 없는 단어 토큰을 제거하는 작업이 필요함. 여기서 큰 의미가 없다라는 것은 자주 등장하지만 분석하기에 큰 도움이 되지 않는 단어를 말함. 예를 들어 I, my, me, over, 조사, 접미사 같은 단어들은 자주 등장하지만 분석에 기여하는 바가 없음. 이러한 단어들을 불용어(Stopwords)라고 함
1. NLTK에서 불용어 확인
from nltk.corpus import stopwords
stopwords.words('english')[:10]
['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', "you're"]
2. NLTK 통해 불용어 제거하기
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
example = "Family is not an important thing. It's everything."
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)
print(result)
['Family', 'is', 'not', 'an', 'important', 'thing', '.', 'It', "'s", 'everything', '.']
['Family', 'important', 'thing', '.', 'It', "'s", 'everything', '.']
3. 한국어에서 불용어 제거하기
한국어에서 불용어를 제거하는 방법으로는 간단히 토큰화 후 조사, 접속사 등을 제거하는 방법이 있음
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
example = "고기를 아무렇게나 구우려고 하면 안 돼. 고기라고 다 같은 게 아니거든. 예컨대 삼겹살을 구울 때는 중요한 게 있지."
stop_words = "아무거나 아무렇게나 어찌하든지 같다 비슷하다 예컨대 이럴정도로 하면 아니거든"
stop_words = stop_words.split(' ')
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)
['고기를', '아무렇게나', '구우려고', '하면', '안', '돼', '.', '고기라고', '다', '같은', '게', '아니거든', '.', '예컨대', '삼겹살을', '구울', '때는', '중요한', '게', '있지', '.']
['고기를', '구우려고', '안', '돼', '.', '고기라고', '다', '같은', '게', '.', '삼겹살을', '구울', '때는', '중요한', '게', '있지', '.']
반응형