Kom igångKom igång gratis

Jämföra n-gram-modellers prestanda

Du vet nu hur man utför sentimentanalys genom att konvertera text till olika n-gram-representationer och mata in dem i en klassificerare. I den här övningen utför vi sentimentanalys på samma filmrecensioner som tidigare, med hjälp av två n-gram-modeller: unigrammer och n-gram upp till n lika med 3.

Därefter jämför vi prestandan utifrån tre kriterier: modellens noggrannhet på testdatan, körtiden för programmet och antalet särdrag som skapas när n-gram-representationen genereras.

Den här övningen är en del av kursen

Funktionsutveckling för NLP i Python

Visa kurs

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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]))
Redigera och kör kod