-
불용어(Stopwords)Natural Language Processing/딥 러닝을 이용한 자연어 처리 입문 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)
['고기를', '아무렇게나', '구우려고', '하면', '안', '돼', '.', '고기라고', '다', '같은', '게', '아니거든', '.', '예컨대', '삼겹살을', '구울', '때는', '중요한', '게', '있지', '.'] ['고기를', '구우려고', '안', '돼', '.', '고기라고', '다', '같은', '게', '.', '삼겹살을', '구울', '때는', '중요한', '게', '있지', '.']
반응형'Natural Language Processing > 딥 러닝을 이용한 자연어 처리 입문' 카테고리의 다른 글
정수 인코딩(Integer Encoding) (0) 2021.05.18 정규 표현식(Regular Expression) (0) 2021.05.17 어간 추출(Stemming) & 표제어 추출(Lemmatization) (0) 2021.05.17 정제(Cleaning) and 정규화(Normalization) (0) 2021.05.15 토큰화(Tokenization) (0) 2021.05.14