- 스톱 워드(Stop word) : 분석에 큰 의미가 앖는 것을 없애기 위해 사용합니다.

 

import nltk
nltk.download('stopwords')

print('영어 stop words 갯수:',len(nltk.corpus.stopwords.words('english')))
print(nltk.corpus.stopwords.words('english')[:20])

- NLTK의 스톱워드를 확인하기 위해 다운로드를 합니다.

- word('english') : i, my, me, myself 등 인칭대명사를 포함하고 있습니다. 총 길이는 179 개를 가지고 있습니다.

 

 

 

import nltk

# word_tokens = 'The Matrix is everywhere its all around us, here even in this room. \
#               You can see it out your window or on your television. \
#               You feel it when you go to work, or go to church or pay your taxes.'

stopwords = nltk.corpus.stopwords.words('english')
all_tokens = []

for sentence in word_tokens:
    filtered_words=[]
    
    for word in sentence:
        word = word.lower()
        if word not in stopwords:
            filtered_words.append(word)
    all_tokens.append(filtered_words)
    
print(all_tokens)

- for 반목문을 통하여 문장에서 단어를 받고 단어에서 문장을 받아 비교하기 위해 lower()을 통하여 소문자로 변환합니다.

- if word not in stopwords : 스톱워드에 있는 값들에서 word가 없을 시에 filtered_words에 추가하게 됩니다. 결과적으로 all_tokens에는 스톱워드로 걸러진 단어들이 리스트 형태로 들어있게 됩니다.

 

 

 

 

- Stemming 

from nltk.stem import LancasterStemmer
stemmer = LancasterStemmer()

print(stemmer.stem('working'),stemmer.stem('works'),stemmer.stem('worked'))

- NLTK의 LancasterStemmer 이용할 것입니다.

- stemmer.stem을 이용하여, 단어의 원형을 찾아 줄 수 있습니다.

 

 

 

- Lemmatization

from nltk.stem import WordNetLemmatizer

lemma = WordNetLemmatizer()
print(lemma.lemmatize('amusing','v'),lemma.lemmatize('amuses','v'),lemma.lemmatize('amused','v'))

- NLTK의 WordNetLemmatizer 를 활용하여 품사와 같은 문법적인 요소와 더 의미적인 부분을 감안해 정확합니다.

- lemmatize('단어','동사 v, 형용사 a') : 품사를 통해 원형을 출력합니다.

 

 

 

 

 

 

-출처 : 파이썬 머신러닝 완벽 가이드 

'머신러닝 in Python' 카테고리의 다른 글

[Python]k-nearest neighbor  (0) 2019.08.26
텍스트 분석_BOW  (0) 2019.08.14
텍스트 분석_텍스트 전처리1  (0) 2019.08.13
텍스트 분석이란?  (0) 2019.08.13
[R] 네이버 크롤링  (0) 2019.08.12

+ Recent posts