인공지능 AI/딥러닝 Deep Learning

Q. nltk의 PorterStemmer, LancasterStemmer로 eat, ate, eaten을 어간 추출하면 어떻게 될까?

Tap to restart 2021. 3. 12. 17:00

A. 잘 안 된다.

 

- eat
- eating
- ate
- eaten
- eats

을 어간 추출 해보자.

from nltk.stem.porter import PorterStemmer 
stemmer = PorterStemmer() 
print(stemmer.stem('eat')) 
print(stemmer.stem('eating'))
print(stemmer.stem('ate'))
print(stemmer.stem('eaten'))
print(stemmer.stem('eats'))

결과는?

eat
eat
ate
eaten
eat

이다. eat, eating, eats는 똑같이 eat으로 되지만, ate과 eaten은 되지 않는다.

 

LancasterStemmer을 활용하면 좀 더 낫다.

from nltk.stem.lancaster import LancasterStemmer 
stemmer = LancasterStemmer() 
print(stemmer.stem('eat')) 
print(stemmer.stem('eating'))
print(stemmer.stem('ate'))
print(stemmer.stem('eaten'))
print(stemmer.stem('eats'))

결과는?

eat
eat
at
eat
eat