N-gram मॉडलों का परफॉर्मेंस तुलना
अब आप जानते हैं कि टेक्स्ट को अलग-अलग n-gram निरूपणों में बदलकर और उन्हें एक क्लासिफायर को देकर सेंटिमेंट एनालिसिस कैसे किया जाता है। इस अभ्यास में, हम पहले वाले वही मूवी रिव्यूज़ पर दो n-gram मॉडल इस्तेमाल करके सेंटिमेंट एनालिसिस करेंगे: केवल यूनिग्राम, और n=3 तक के n-grams.
इसके बाद हम तीन मानदंडों पर परफॉर्मेंस की तुलना करेंगे: टेस्ट सेट पर मॉडल की accuracy, प्रोग्राम चलने में लगा समय, और n-gram निरूपण बनाते समय बने फीचर्स की संख्या.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में NLP के लिए Feature Engineering
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
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]))