이번에는 랭커스터 알고리즘을 적용해 보겠습니다.
코드 9-25 랭커스터 알고리즘
from nltk.stem import LancasterStemmer
stemmer = LancasterStemmer()
print(stemmer.stem('obsesses'), stemmer.stem('obsessed'))
print(stemmer.stem('standardizes'), stemmer.stem('standardization'))
print(stemmer.stem('national'), stemmer.stem('nation'))
print(stemmer.stem('absentness'), stemmer.stem('absently'))
print(stemmer.stem('tribalical'), stemmer.stem('tribalicalized')) ------ 사전에 없는 단어
다음은 랭커스터 알고리즘을 실행한 결과입니다.
obsess obsess
standard standard
nat nat
abs abs
trib trib
포터 알고리즘과 다르게 랭커스터 알고리즘은 단어 원형을 알아볼 수 없을 정도로 축소시키기 때문에 정밀도가 낮습니다. 따라서 일반적인 상황보다는 데이터셋을 축소시켜야 하는 특정 상황에서나 유용합니다.