Challenge - 5 Problems
Sarcasm & Negation Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
Output of sentiment prediction with negation handling
Given the following Python code snippet using a simple rule-based sentiment function that handles negation, what is the output when the input sentence is "I do not like this movie"?
NLP
def simple_sentiment(text): positive_words = {'like', 'love', 'good', 'great', 'happy'} negative_words = {'hate', 'bad', 'terrible', 'sad', 'dislike'} words = text.lower().split() negation_words = {'not', 'no', 'never'} negation = False score = 0 for word in words: if word in negation_words: negation = True continue if word in positive_words: score += -1 if negation else 1 negation = False elif word in negative_words: score += 1 if negation else -1 negation = False if score > 0: return 'Positive' elif score < 0: return 'Negative' else: return 'Neutral' print(simple_sentiment("I do not like this movie"))
Attempts:
2 left
💡 Hint
Think about how negation flips the sentiment of the word 'like'.
✗ Incorrect
The word 'like' is positive, but it is preceded by 'not', a negation word. The code flips the sentiment score for 'like' to negative, resulting in an overall negative sentiment.
🧠 Conceptual
intermediate1:30remaining
Understanding sarcasm detection challenges
Why is sarcasm particularly difficult for sentiment analysis models to detect?
Attempts:
2 left
💡 Hint
Think about how the literal words differ from the intended meaning.
✗ Incorrect
Sarcasm often uses positive words ironically to express negative feelings, which simple models that rely on word sentiment struggle to interpret correctly.
❓ Metrics
advanced2:00remaining
Evaluating sarcasm detection model performance
A sarcasm detection model was tested on 1000 sentences. It correctly identified 80 sarcastic sentences out of 100 sarcastic ones, and correctly identified 890 non-sarcastic sentences out of 900 non-sarcastic ones. What is the model's precision for the sarcastic class?
Attempts:
2 left
💡 Hint
Precision = True Positives / (True Positives + False Positives). Calculate false positives first.
✗ Incorrect
True Positives (TP) = 80, False Negatives (FN) = 20 (100-80), True Negatives (TN) = 890, False Positives (FP) = 10 (900-890). Precision = 80 / (80 + 10) = 80 / 90 ≈ 0.89.
🔧 Debug
advanced1:30remaining
Debugging a sarcasm detection model code snippet
What error will the following Python code raise when run?
def detect_sarcasm(text):
sarcasm_keywords = ['yeah right', 'as if', 'totally']
for phrase in sarcasm_keywords:
if phrase in text.lower():
return True
return False
print(detect_sarcasm(12345))
Attempts:
2 left
💡 Hint
Check the method called on the input and the input type.
✗ Incorrect
The code calls text.lower(), but the input is an integer (12345), which does not have a lower() method, causing an AttributeError.
❓ Model Choice
expert2:30remaining
Choosing the best model architecture for sarcasm detection with context
Which model architecture is best suited to detect sarcasm in text by understanding context and subtle language cues?
Attempts:
2 left
💡 Hint
Consider models that capture word order and context deeply.
✗ Incorrect
Transformer models like BERT understand context and subtle language patterns, making them best for sarcasm detection compared to simpler models.