서비스 기획자의 성장기록

[ML/텍스트분석] 3. 텍스트 전처리 (정규화) - stopwords 제거, stemming & lemmatization 본문

머신러닝 (ML)/텍스트 분석

[ML/텍스트분석] 3. 텍스트 전처리 (정규화) - stopwords 제거, stemming & lemmatization

Jenny Noh 2024. 2. 10. 16:20

스톱워드(stopword) 제거

스톱워드랑 is, the, a will 등과 같이 문장을 구성하는 문법적인 요소지만 문맥적으로 의미가 없는 단어이다.

이들은 문장의 의미에는 큰 영향을 주지 않지만 빈번하게 등장하기 때문에 제거하지 않으면 중요한 단어로 인식될 수 있다.

 

 

1️⃣ stopword 다운로드

 

 

2️⃣ 영어 stopwords 확인

 

 

3️⃣ stopwords 목록에 포함된 단어 제거

 

 

4️⃣ 원본 텍스트 vs 불용어 제거 후 텍스트 확인

 

 

 

참고) 불용어 목록 지원언어 확인

nltk에는 이러한 스톱워드가 언어별로 목록화 되어있다. 다음은 nltk에서 stopwords 목록을 제공하는 언어 목록.


Stemming & Lemmatization

Stemming와 lemmatization은 모두 단어를 어근으로 반환하는 작업이다.  Lemmatization이 stemming보다 정교하게 어근으로 변환이 가능하다.

 

1) LancasterStemmer - stemming

work의 경우 present tense, past tense, present progressive 모두 원형인 'work'로 잘 반환하지만 amuse의 경우 'amus'로 철자를 파괴한다. happy와 good의 comparative와 superlative form도 원형으로 잘 반환하지는 못한다. 😕

 

 

2) WordNetLemmatizer - lemmatizing

Lemmatizing은 단어를 전달할 때 그 원형의 품사를 함께 전달한다. Stemming보다 더 정확한 어근을 추출하는 것을 확인할 수 있다. 😀