9.2.4 어간 추출
어간 추출(stemming)과 표제어 추출(lemmatization)은 단어 원형을 찾아 주는 것입니다. 예를 들어 ‘쓰다’의 다양한 형태인 writing, writes, wrote에서 write를 찾는 것입니다.
어간 추출은 단어 그 자체만 고려하기 때문에 품사가 달라도 사용 가능합니다. 예를 들어 어간 추출은 다음과 같이 사용됩니다.
• Automates, automatic, automation → automat
반면 표제어 추출은 단어가 문장 속에서 어떤 품사로 쓰였는지 고려하기 때문에 품사가 같아야 사용 가능합니다. 예를 들어 다음 표제어 추출이 가능합니다.
• am, are, is → be
• car, cars, car’s, cars’ → car
즉, 어간 추출과 표제어 추출은 둘 다 어근 추출이 목적이지만, 어간 추출은 사전에 없는 단어도 추출할 수 있고 표제어 추출은 사전에 있는 단어만 추출할 수 있다는 점에서 차이가 있습니다.
NLTK의 어간 추출로는 대표적으로 포터(porter)와 랭커스터(lancaster) 알고리즘이 있습니다. 이 둘에 대한 차이를 코드로 확인해 보겠습니다.