Bird
Raised Fist0
NLPml~10 mins

Challenges in language processing in NLP - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to tokenize the sentence into words.

NLP
tokens = sentence.[1]()
Drag options to blanks, or click blank then click option'
Asplit
Bjoin
Creplace
Dstrip
Attempts:
3 left
💡 Hint
Common Mistakes
Using join() instead of split()
Using replace() which changes characters
2fill in blank
medium

Complete the code to convert all tokens to lowercase for uniformity.

NLP
tokens = [word.[1]() for word in tokens]
Drag options to blanks, or click blank then click option'
Alower
Bcapitalize
Cupper
Dtitle
Attempts:
3 left
💡 Hint
Common Mistakes
Using upper() which makes all letters uppercase
Using capitalize() which only changes first letter
3fill in blank
hard

Fix the error in the code to remove punctuation from each token.

NLP
import string
clean_tokens = [word.strip(string.[1]) for word in tokens]
Drag options to blanks, or click blank then click option'
Aascii_letters
Bwhitespace
Cpunctuation
Ddigits
Attempts:
3 left
💡 Hint
Common Mistakes
Using whitespace which removes spaces, not punctuation
Using digits which removes numbers
4fill in blank
hard

Fill both blanks to create a dictionary counting word frequencies.

NLP
word_freq = {word: tokens.[1](word) for word in tokens if word [2] ''}
Drag options to blanks, or click blank then click option'
Acount
B!=
C==
Dappend
Attempts:
3 left
💡 Hint
Common Mistakes
Using == instead of != in condition
Using append which is for lists, not counting
5fill in blank
hard

Fill all three blanks to filter out stopwords and create a list of important words.

NLP
stopwords = {'and', 'the', 'is', 'in'}
important_words = [word for word in tokens if word [1] stopwords and len(word) [2] [3]]
Drag options to blanks, or click blank then click option'
Anot in
B>
C2
D<
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'in' instead of 'not in' to exclude stopwords
Using '<' instead of '>' for length condition

Practice

(1/5)
1. Why is language processing challenging for computers?
easy
A. Because computers do not have enough memory
B. Because computers cannot store large amounts of data
C. Because language has only one fixed meaning per word
D. Because words can have multiple meanings depending on context

Solution

  1. Step 1: Understand word ambiguity in language

    Words often have several meanings, which depend on the context they appear in.
  2. Step 2: Relate ambiguity to computer difficulty

    Computers struggle to pick the correct meaning without understanding context, making language processing hard.
  3. Final Answer:

    Because words can have multiple meanings depending on context -> Option D
  4. Quick Check:

    Word ambiguity = D [OK]
Hint: Remember: words change meaning with context [OK]
Common Mistakes:
  • Thinking each word has only one meaning
  • Assuming computers lack memory causes difficulty
  • Confusing data storage with language understanding
2. Which of the following is the correct way to represent a sentence tokenization step in Python using NLTK?
easy
A. tokens = nltk.word_tokenize(sentence)
B. tokens = nltk.sentence_tokenize(sentence)
C. tokens = nltk.tokenize_words(sentence)
D. tokens = nltk.split(sentence)

Solution

  1. Step 1: Recall NLTK tokenization functions

    NLTK uses word_tokenize() to split sentences into words (tokens).
  2. Step 2: Identify correct function for word tokenization

    word_tokenize() is the correct function; sentence_tokenize() does not exist, and others are invalid.
  3. Final Answer:

    tokens = nltk.word_tokenize(sentence) -> Option A
  4. Quick Check:

    NLTK word tokenization = C [OK]
Hint: Use word_tokenize() for splitting sentence into words [OK]
Common Mistakes:
  • Using sentence_tokenize() which is not a valid function
  • Confusing word_tokenize() with tokenize_words()
  • Trying to split sentence with split() method
3. Given the code below, what will be the output?
sentence = "I saw her duck." 
tokens = sentence.split()
print(tokens)
medium
A. ['I', 'saw', 'her', 'duck.']
B. ['I', 'saw', 'her', 'duck']
C. ['I', 'saw', 'her', 'duck', '.']
D. ['I saw her duck']

Solution

  1. Step 1: Understand split() behavior on string

    split() divides the string by spaces, keeping punctuation attached to words.
  2. Step 2: Apply split() to the sentence

    Splitting "I saw her duck." by spaces results in ['I', 'saw', 'her', 'duck.'] with the period attached to 'duck.'
  3. Final Answer:

    ['I', 'saw', 'her', 'duck.'] -> Option A
  4. Quick Check:

    split() keeps punctuation attached = A [OK]
Hint: split() keeps punctuation with words [OK]
Common Mistakes:
  • Assuming split() removes punctuation
  • Expecting punctuation as separate token
  • Confusing split() with word_tokenize()
4. The following code tries to remove stopwords from a list of tokens but does not work as expected. What is the error?
stopwords = ['the', 'is', 'at']
tokens = ['the', 'cat', 'is', 'on', 'the', 'mat']
filtered = [word for word in tokens if word not in stopwords()]
print(filtered)
medium
A. tokens should be converted to a set before filtering
B. The list comprehension syntax is incorrect
C. stopwords is a list, not a function; should not use parentheses
D. The print statement is missing parentheses

Solution

  1. Step 1: Identify the error in stopwords usage

    stopwords is a list, but the code uses stopwords() as if it were a function.
  2. Step 2: Correct the usage of stopwords

    Remove parentheses to use stopwords as a list: use 'word not in stopwords' instead of 'stopwords()'.
  3. Final Answer:

    stopwords is a list, not a function; should not use parentheses -> Option C
  4. Quick Check:

    stopwords list misuse = B [OK]
Hint: Lists are not functions; avoid parentheses [OK]
Common Mistakes:
  • Using parentheses after list variable
  • Thinking tokens must be sets to filter
  • Misreading list comprehension syntax
5. Which challenge best explains why idioms like "kick the bucket" are hard for AI to understand?
hard
A. Idioms are always spelled incorrectly
B. Idioms have meanings different from the literal words
C. Idioms contain rare words not in dictionaries
D. Idioms are too long for AI to process

Solution

  1. Step 1: Understand idioms in language

    Idioms are phrases whose meaning is not the sum of their individual words.
  2. Step 2: Relate idioms to AI language challenges

    AI struggles because it cannot infer the non-literal meaning from the literal words alone.
  3. Final Answer:

    Idioms have meanings different from the literal words -> Option B
  4. Quick Check:

    Idioms = non-literal meaning = A [OK]
Hint: Idioms mean more than their words [OK]
Common Mistakes:
  • Thinking idioms are misspelled
  • Assuming idioms use rare words
  • Believing idioms are too long to process