Aan de slagGa gratis aan de slag

Prestaties van n-grammodellen vergelijken

Je weet nu hoe je sentimentanalyse uitvoert door tekst om te zetten naar verschillende n-gramrepresentaties en die aan een classifier te voeren. In deze oefening doen we sentimentanalyse op dezelfde filmrecensies als eerder met twee n-grammodellen: unigrams en n-grams tot en met n gelijk aan 3.

Daarna vergelijken we de prestaties op drie criteria: de nauwkeurigheid van het model op de testset, de tijd die het programma nodig heeft om uit te voeren en het aantal features dat ontstaat bij het genereren van de n-gramrepresentatie.

Deze oefening maakt deel uit van de cursus

Feature Engineering voor NLP in Python

Cursus bekijken

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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]))
Code bewerken en uitvoeren