이번에는 랭커스터 알고리즘을 적용해 보겠습니다.

    코드 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

    포터 알고리즘과 다르게 랭커스터 알고리즘은 단어 원형을 알아볼 수 없을 정도로 축소시키기 때문에 정밀도가 낮습니다. 따라서 일반적인 상황보다는 데이터셋을 축소시켜야 하는 특정 상황에서나 유용합니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.