Python-불용어 제거

불용어는 문장에 많은 의미를 부여하지 않는 영어 단어입니다. 문장의 의미를 희생하지 않고 안전하게 무시할 수 있습니다. 예를 들어 the, he, have 등과 같은 단어가 있습니다. 이러한 단어는 이미 corpus라는 이름의 말뭉치에 캡처되어 있습니다. 먼저 파이썬 환경에 다운로드합니다.

import nltk
nltk.download('stopwords')

영어 불용어가 포함 된 파일을 다운로드합니다.

불용어 확인

from nltk.corpus import stopwords
stopwords.words('english')
print stopwords.words() [620:680]

위의 프로그램을 실행하면 다음과 같은 결과가 나옵니다.

[u'your', u'yours', u'yourself', u'yourselves', u'he', u'him', u'his', u'himself', u'she', 
u"she's", u'her', u'hers', u'herself', u'it', u"it's", u'its', u'itself', u'they', u'them', 
u'their', u'theirs', u'themselves', u'what', u'which', u'who', u'whom', u'this', 
u'that', u"that'll", u'these', u'those', u'am', u'is', u'are', u'was', u'were', u'be',
u'been', u'being', u'have', u'has', u'had', u'having', u'do', u'does', u'did', u'doing',
u'a', u'an', u'the', u'and', u'but', u'if', u'or', u'because', u'as', u'until',
u'while', u'of', u'at']

이러한 불용어가있는 영어 이외의 다양한 언어는 다음과 같습니다.

from nltk.corpus import stopwords
print stopwords.fileids()

위의 프로그램을 실행하면 다음과 같은 결과가 나옵니다.

[u'arabic', u'azerbaijani', u'danish', u'dutch', u'english', u'finnish', 
u'french', u'german', u'greek', u'hungarian', u'indonesian', u'italian', 
u'kazakh', u'nepali', u'norwegian', u'portuguese', u'romanian', u'russian',
u'spanish', u'swedish', u'turkish']

아래 예제를 사용하여 단어 목록에서 불용어가 제거되는 방법을 보여줍니다.

from nltk.corpus import stopwords
en_stops = set(stopwords.words('english'))
all_words = ['There', 'is', 'a', 'tree','near','the','river']
for word in all_words: 
    if word not in en_stops:
        print(word)

위의 프로그램을 실행하면 다음과 같은 결과가 나옵니다.

There
tree
near
river