어간추출과 표제어 추출

Python으로 배우는 Sentiment Analysis

Violeta Misheva

Data Scientist

어간추출이란?

어간추출은 단어를 언어에서 유효하지 않을 수도 있는 어근 형태로 변환하는 과정입니다.

staying, stays, stayed ----> stay
house, houses, housing ----> hous

Python으로 배우는 Sentiment Analysis

표제어 추출이란?

표제어 추출은 어간추출과 유사하지만, 언어에서 실제로 쓰이는 단어 형태의 어근으로 축소합니다.

stay, stays, staying, stayed ----> stay
house, houses, housing ----> house
Python으로 배우는 Sentiment Analysis

어간추출 vs. 표제어 추출

어간추출

  • 단어의 어근을 산출
  • 빠르고 계산 효율적

표제어 추출

  • 실제 단어를 산출
  • 어간추출보다 느리고 품사에 따라 달라질 수 있음
Python으로 배우는 Sentiment Analysis

문자열의 어간추출

from nltk.stem import PorterStemmer

porter = PorterStemmer()
porter.stem('wonderful')
'wonder'
Python으로 배우는 Sentiment Analysis

비영어 어간추출기

Snowball Stemmer: Danish, Dutch, English, Finnish, French, German, Hungarian, Italian, Norwegian, Portuguese, Romanian, Russian, Spanish, Swedish

from nltk.stem.snowball import SnowballStemmer

DutchStemmer = SnowballStemmer("dutch")
DutchStemmer.stem("beginnen")
'begin'
Python으로 배우는 Sentiment Analysis

문장을 어떻게 어간추출할까요?

porter.stem('Today is a wonderful day!')
'today is a wonderful day!'
tokens = word_tokenize('Today is a wonderful day!')
stemmed_tokens = [porter.stem(token) for token in tokens]
stemmed_tokens
['today', 'is', 'a', 'wonder', 'day', '!']
Python으로 배우는 Sentiment Analysis

문자열의 표제어 추출

from nltk.stem import WordNetLemmatizer

WNlemmatizer = WordNetLemmatizer()
WNlemmatizer.lemmatize('wonderful', pos='a')
'wonderful'
Python으로 배우는 Sentiment Analysis

Ayo berlatih!

Python으로 배우는 Sentiment Analysis

Preparing Video For Download...