Text classification helps organize documents by putting them into groups based on their content. This makes it easier to find, sort, and understand large amounts of text.
Sorting emails into spam or inbox folders automatically.
Tagging news articles by topic like sports, politics, or entertainment.
Filtering customer reviews as positive or negative to understand feedback.
Organizing support tickets by issue type to speed up responses.
Detecting language or sentiment in social media posts.
This example trains a simple model to classify text as positive or negative, then predicts the label for a new sentence.
NLP
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
texts = ['I love cats', 'I hate rain']
labels = ['positive', 'negative']
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(texts)
model = MultinomialNB()
model.fit(X, labels)
new_text = ['I love rain']
X_new = vectorizer.transform(new_text)
prediction = model.predict(X_new)
print(prediction)
This example uses a pipeline to combine text vectorization and classification in one step.
NLP
from sklearn.pipeline import make_pipeline
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression
texts = ['Sports are fun', 'Politics is complex']
labels = ['sports', 'politics']
model = make_pipeline(TfidfVectorizer(), LogisticRegression())
model.fit(texts, labels)
print(model.predict(['I like sports']))
Sample Model
This program trains a text classifier to categorize news articles into baseball or space topics. It shows how well the model works by printing accuracy and some predictions.
NLP
from sklearn.datasets import fetch_20newsgroups
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score
# Load a small subset of news articles
categories = ['rec.sport.baseball', 'sci.space']
data_train = fetch_20newsgroups(subset='train', categories=categories, remove=('headers', 'footers', 'quotes'))
data_test = fetch_20newsgroups(subset='test', categories=categories, remove=('headers', 'footers', 'quotes'))
# Convert text to numbers
vectorizer = TfidfVectorizer()
X_train = vectorizer.fit_transform(data_train.data)
X_test = vectorizer.transform(data_test.data)
# Train a simple classifier
model = MultinomialNB()
model.fit(X_train, data_train.target)
# Predict categories for test data
predictions = model.predict(X_test)
# Calculate accuracy
accuracy = accuracy_score(data_test.target, predictions)
print(f"Accuracy: {accuracy:.2f}")
print(f"First 5 predictions: {predictions[:5]}")
OutputSuccess
Important Notes
Text classification needs labeled examples to learn from.
Good text representation (like TF-IDF) helps the model understand words better.
Accuracy shows how often the model guesses the right category.
Summary
Text classification groups documents by their content automatically.
It helps organize and find information quickly.
Simple models can learn from examples and predict new text categories.
Practice
(1/5)
1. Why do we use text classification in organizing documents?
easy
A. To automatically group documents by their content
B. To delete documents that are not useful
C. To translate documents into different languages
D. To create new documents from existing ones
Solution
Step 1: Understand the purpose of text classification
Text classification is used to sort or group documents based on what they talk about.
Step 2: Identify the correct use case
Among the options, only grouping documents by content matches the purpose of text classification.
Final Answer:
To automatically group documents by their content -> Option A
Quick Check:
Text classification = grouping documents [OK]
Hint: Text classification groups by content, not deletes or translates [OK]
Common Mistakes:
Confusing classification with translation
Thinking classification deletes documents
Assuming classification creates new documents
2. Which of the following is the correct way to describe text classification?
easy
A. It removes stop words from text
B. It translates text into numbers for storage
C. It assigns labels to text based on content
D. It generates new text from existing text
Solution
Step 1: Define text classification
Text classification means giving a label or category to a piece of text based on what it contains.
Step 2: Match the definition to options
Only assigning labels based on content matches the definition of text classification.
Final Answer:
It assigns labels to text based on content -> Option C
Quick Check:
Assign labels = classification [OK]
Hint: Classification means labeling, not translating or generating [OK]
Common Mistakes:
Mixing classification with text preprocessing
Confusing classification with text generation
Thinking classification is about data storage
3. Given this Python code snippet for text classification, what will be the output?
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
texts = ['I love cats', 'I hate rain', 'Cats are great', 'Rain is bad']
labels = ['positive', 'negative', 'positive', 'negative']
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(texts)
model = MultinomialNB()
model.fit(X, labels)
new_text = ['I love rain']
X_new = vectorizer.transform(new_text)
prediction = model.predict(X_new)
print(prediction[0])
medium
A. negative
B. positive
C. neutral
D. error
Solution
Step 1: Understand training data and labels
The model learns 'I love cats' and 'Cats are great' as positive, 'I hate rain' and 'Rain is bad' as negative.
Step 2: Predict label for 'I love rain'
The word 'love' appears in positive examples, and 'rain' appears in negative examples. The model weighs 'love' more strongly positive, so prediction is 'positive'.
Final Answer:
positive -> Option B
Quick Check:
Model predicts 'positive' for 'I love rain' [OK]
Hint: Words linked to positive examples influence prediction [OK]
Common Mistakes:
Assuming 'love' always makes prediction positive
Ignoring word frequency impact
Expecting neutral label which is not in training
4. Find the error in this text classification code snippet:
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
texts = ['happy day', 'sad night']
labels = ['positive', 'negative']
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(texts)
model = MultinomialNB()
model.fit(texts, labels) # Error here
new_text = ['happy night']
X_new = vectorizer.transform(new_text)
prediction = model.predict(X_new)
print(prediction[0])
medium
A. Transforming new_text before vectorizing
B. Missing import for MultinomialNB
C. Labels list is empty
D. Using texts instead of X in model.fit
Solution
Step 1: Check model.fit inputs
Model expects numeric features (X), but texts (strings) are passed instead.
Step 2: Correct the input to model.fit
Replace texts with X (vectorized data) to fix the error.
Final Answer:
Using texts instead of X in model.fit -> Option D
Quick Check:
model.fit needs numeric input X [OK]
Hint: Model.fit needs vectorized data, not raw text [OK]
Common Mistakes:
Passing raw text instead of vectorized features
Ignoring error messages about input types
Confusing transform and fit_transform
5. You want to classify news articles into categories like 'sports', 'politics', and 'technology'. Which approach best explains why text classification helps here?
hard
A. It learns patterns from labeled articles to predict categories for new articles
B. It translates articles into multiple languages for wider reach
C. It summarizes articles to reduce reading time
D. It deletes irrelevant articles automatically
Solution
Step 1: Understand the goal of classifying news articles
The goal is to assign correct categories to new articles based on past examples.
Step 2: Identify how text classification achieves this
Text classification learns from labeled data patterns to predict categories for unseen articles.
Final Answer:
It learns patterns from labeled articles to predict categories for new articles -> Option A
Quick Check:
Learning from examples = classification [OK]
Hint: Classification learns from examples to label new data [OK]
Common Mistakes:
Confusing classification with translation or summarization
Thinking classification deletes data
Assuming classification creates content
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.