시작하기무료로 시작하기

n-gram 모델 성능 비교

이제 텍스트를 다양한 n-gram 표현으로 변환해 분류기에 입력하여 감성 분석을 수행하는 방법을 배웠습니다. 이 연습 문제에서는 이전과 같은 영화 리뷰 데이터에 대해 두 가지 n-gram 모델(유니그램과 n=3까지의 n-gram)을 사용해 감성 분석을 진행하겠습니다.

이후 세 가지 기준으로 성능을 비교합니다: 테스트 세트에서의 모델 정확도, 프로그램 실행에 걸린 시간, 그리고 n-gram 표현을 생성할 때 만들어지는 특성(feature) 수입니다.

이 연습은 강의의 일부입니다

Python으로 배우는 NLP 피처 엔지니어링

강의 보기

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

start_time = time.time()
# Splitting the data into training and test sets
train_X, test_X, train_y, test_y = train_test_split(df['review'], df['sentiment'], test_size=0.5, random_state=42, stratify=df['sentiment'])

# Generating ngrams
vectorizer = ___
train_X = vectorizer.fit_transform(train_X)
test_X = vectorizer.transform(test_X)

# Fit classifier
clf = MultinomialNB()
clf.fit(train_X, train_y)

# Print accuracy, time and number of dimensions
print("The program took %.3f seconds to complete. The accuracy on the test set is %.2f. The ngram representation had %i features." % (time.time() - start_time, clf.score(test_X, test_y), train_X.shape[1]))
코드 편집 및 실행