Leistung von N-Gram-Modellen vergleichen
Du weißt jetzt, wie man Stimmungsanalysen durchführt, indem man Text in verschiedene N-Gram-Darstellungen umwandelt und sie an einen Klassifikator übergibt. In dieser Übung führen wir eine Sentiment-Analyse für dieselben Filmkritiken wie zuvor mit zwei N-Gram-Modellen durch: Unigramme und N-Gramme bis n gleich 3.
Anschließend vergleichen wir die Leistung anhand von drei Kriterien: Genauigkeit des Modells auf dem Testset, benötigte Ausführungszeit des Programms und Anzahl der Features, die bei der Erstellung der N-Gram-Darstellung entstehen.
Diese Übung ist Teil des Kurses
<Kurs>Feature Engineering für NLP in Python</Kurs>Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
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]))