Bird
Raised Fist0
NLPml~20 mins

Sentiment analysis pipeline in NLP - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Sentiment Analysis Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
What is the main purpose of tokenization in a sentiment analysis pipeline?

In a sentiment analysis pipeline, why do we perform tokenization on the input text?

ATo train the model on labeled data
BTo convert sentiment scores into numerical values
CTo split the text into smaller units like words or subwords for easier processing
DTo remove stop words from the text
Attempts:
2 left
💡 Hint

Think about how a computer understands text before analyzing sentiment.

Predict Output
intermediate
2:00remaining
What is the output of this preprocessing code snippet?

Given the following Python code for preprocessing text in a sentiment analysis pipeline, what is the output?

NLP
import re
text = "I love this product! It's amazing."
cleaned = re.sub(r'[^a-zA-Z ]', '', text).lower().split()
print(cleaned)
A['I', 'love', 'this', 'product', 'its', 'amazing']
B['I', 'love', 'this', 'product', 'It', 's', 'amazing']
C['i', 'love', 'this', 'product', 'it', 's', 'amazing']
D['i', 'love', 'this', 'product', 'its', 'amazing']
Attempts:
2 left
💡 Hint

Look at how punctuation is removed and text is converted to lowercase.

Model Choice
advanced
2:00remaining
Which model architecture is best suited for capturing context in sentiment analysis?

You want to build a sentiment analysis model that understands the context of words in a sentence. Which model architecture is most suitable?

AA recurrent neural network (RNN) like LSTM or GRU
BA linear regression model on raw text
CA simple bag-of-words model with logistic regression
DA k-nearest neighbors model using word counts
Attempts:
2 left
💡 Hint

Think about models that can remember previous words to understand meaning.

Metrics
advanced
2:00remaining
Which metric is most appropriate to evaluate a sentiment analysis model on imbalanced data?

Your sentiment dataset has many more positive reviews than negative ones. Which evaluation metric should you prioritize?

AF1-score
BRecall
CAccuracy
DPrecision
Attempts:
2 left
💡 Hint

Consider a metric that balances precision and recall.

🔧 Debug
expert
3:00remaining
Why does this sentiment analysis model always predict the same class?

Here is a snippet of a sentiment analysis model training code. The model always predicts the same sentiment class regardless of input. What is the most likely cause?

NLP
import torch
import torch.nn as nn

class SimpleSentimentModel(nn.Module):
    def __init__(self, vocab_size, embed_dim, num_classes):
        super().__init__()
        self.embedding = nn.Embedding(vocab_size, embed_dim)
        self.fc = nn.Linear(embed_dim, num_classes)

    def forward(self, x):
        embedded = self.embedding(x)  # shape: (batch_size, seq_len, embed_dim)
        pooled = embedded.mean(dim=1)  # average over seq_len
        out = self.fc(pooled)
        return out

model = SimpleSentimentModel(vocab_size=1000, embed_dim=50, num_classes=2)

# Training loop omitted for brevity

# After training, model always predicts class 0.
AThe model's output layer lacks a softmax or sigmoid activation, so predictions are not probabilities
BThe training data is imbalanced and the model learned to predict the majority class
CThe embedding layer is not updating because requires_grad is False
DThe pooling operation averages embeddings, losing important sequence information
Attempts:
2 left
💡 Hint

Consider the effect of unbalanced classes on model predictions.

Practice

(1/5)
1. What is the main purpose of a sentiment analysis pipeline in natural language processing?
easy
A. To automatically detect feelings or opinions in text
B. To translate text from one language to another
C. To count the number of words in a sentence
D. To generate new text based on input

Solution

  1. Step 1: Understand the goal of sentiment analysis

    Sentiment analysis is about finding emotions or opinions in text data.
  2. Step 2: Identify the pipeline's role

    A sentiment analysis pipeline automates this process to detect feelings like positive or negative.
  3. Final Answer:

    To automatically detect feelings or opinions in text -> Option A
  4. Quick Check:

    Sentiment analysis = detect feelings [OK]
Hint: Sentiment analysis finds emotions in text fast [OK]
Common Mistakes:
  • Confusing sentiment analysis with translation
  • Thinking it counts words instead of feelings
  • Assuming it generates new text
2. Which of the following is the correct way to create a sentiment analysis pipeline using the Hugging Face Transformers library in Python?
easy
A. pipeline = Pipeline('text-classification')
B. pipeline = create_pipeline('sentiment')
C. pipeline = sentiment_pipeline()
D. pipeline = pipeline('sentiment-analysis')

Solution

  1. Step 1: Recall the Hugging Face pipeline syntax

    The correct function is pipeline with the task name as a string.
  2. Step 2: Match the exact task name for sentiment analysis

    The task name is 'sentiment-analysis', so pipeline('sentiment-analysis') is correct.
  3. Final Answer:

    pipeline = pipeline('sentiment-analysis') -> Option D
  4. Quick Check:

    Use pipeline('sentiment-analysis') to create sentiment pipeline [OK]
Hint: Use pipeline('sentiment-analysis') exactly [OK]
Common Mistakes:
  • Using wrong function names like create_pipeline
  • Missing quotes around task name
  • Using incorrect task names like 'sentiment'
3. What will be the output of this Python code using Hugging Face's sentiment analysis pipeline?
from transformers import pipeline
sentiment = pipeline('sentiment-analysis')
result = sentiment('I love sunny days!')
print(result)
medium
A. [{'label': 'NEGATIVE', 'score': 0.99}]
B. [{'label': 'POSITIVE', 'score': 0.99}]
C. SyntaxError
D. []

Solution

  1. Step 1: Understand the input text sentiment

    The sentence 'I love sunny days!' expresses a positive feeling.
  2. Step 2: Predict output from sentiment pipeline

    The pipeline returns a list with a dictionary containing label 'POSITIVE' and a high confidence score.
  3. Final Answer:

    [{'label': 'POSITIVE', 'score': 0.99}] -> Option B
  4. Quick Check:

    Positive sentence = POSITIVE label [OK]
Hint: Positive words give POSITIVE label with high score [OK]
Common Mistakes:
  • Expecting NEGATIVE label for positive text
  • Thinking output is a string, not a list of dict
  • Confusing syntax errors with runtime output
4. You wrote this code but get an error: NameError: name 'pipeline' is not defined. What is the likely fix?
sentiment = pipeline('sentiment-analysis')
result = sentiment('I hate rain.')
print(result)
medium
A. Add from transformers import pipeline before using pipeline
B. Change 'sentiment-analysis' to 'sentiment'
C. Replace pipeline with sentiment_pipeline
D. Remove parentheses from pipeline call

Solution

  1. Step 1: Identify cause of NameError

    The error means Python does not know what pipeline is because it was not imported.
  2. Step 2: Fix by importing pipeline function

    Adding from transformers import pipeline defines pipeline so the code runs correctly.
  3. Final Answer:

    Add from transformers import pipeline before using pipeline -> Option A
  4. Quick Check:

    Import missing = NameError fixed [OK]
Hint: Always import pipeline before using it [OK]
Common Mistakes:
  • Changing task name instead of importing
  • Assuming pipeline is built-in without import
  • Removing parentheses causing syntax errors
5. You want to analyze customer reviews but some reviews are empty strings or just spaces. How should you modify your sentiment analysis pipeline to handle this before prediction?
hard
A. Replace empty reviews with the word 'neutral' and analyze
B. Pass all reviews directly to the pipeline without changes
C. Filter out empty or whitespace-only reviews before passing to the pipeline
D. Use a different pipeline for empty reviews

Solution

  1. Step 1: Understand the problem with empty inputs

    Empty or whitespace-only texts do not contain sentiment and can cause errors or meaningless results.
  2. Step 2: Apply filtering before analysis

    Removing or skipping these empty reviews ensures the pipeline only processes valid text, improving accuracy and avoiding errors.
  3. Final Answer:

    Filter out empty or whitespace-only reviews before passing to the pipeline -> Option C
  4. Quick Check:

    Remove empty inputs before analysis [OK]
Hint: Skip empty reviews to avoid errors [OK]
Common Mistakes:
  • Passing empty strings causing errors
  • Replacing empty with unrelated words
  • Using multiple pipelines unnecessarily