Bird
Raised Fist0
NLPml~10 mins

Why embeddings capture semantic meaning in NLP - Test Your Understanding

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 create a simple word embedding using a dictionary.

NLP
word_embeddings = {'cat': [0.1, 0.3, 0.5], 'dog': [1]
Drag options to blanks, or click blank then click option'
A[0.2, 0.4, 0.6]
B[1, 2, 3]
C[0.5, 0.5, 0.5]
D[0, 0, 0]
Attempts:
3 left
💡 Hint
Common Mistakes
Choosing a vector with different length or scale.
2fill in blank
medium

Complete the code to calculate cosine similarity between two embeddings.

NLP
import numpy as np

def cosine_similarity(vec1, vec2):
    dot_product = np.dot(vec1, vec2)
    norm1 = np.linalg.norm(vec1)
    norm2 = np.linalg.norm(vec2)
    return dot_product / [1]
Drag options to blanks, or click blank then click option'
Anorm1 + norm2
Bnorm1 - norm2
Cnorm1 * norm2
Dnorm1 / norm2
Attempts:
3 left
💡 Hint
Common Mistakes
Using addition or subtraction instead of multiplication.
3fill in blank
hard

Fix the error in the code that trains a simple embedding layer in PyTorch.

NLP
import torch
import torch.nn as nn

embedding = nn.Embedding(num_embeddings=10, embedding_dim=3)
input_indices = torch.tensor([1, 2, 3])
output = embedding([1])
print(output)
Drag options to blanks, or click blank then click option'
Atensor
Binput
Cindices
Dinput_indices
Attempts:
3 left
💡 Hint
Common Mistakes
Using undefined variable names.
4fill in blank
hard

Fill both blanks to create a dictionary comprehension that maps words to their embedding lengths if length is greater than 3.

NLP
words = ['apple', 'cat', 'banana', 'dog']
lengths = {word: [1] for word in words if len(word) [2] 3}
Drag options to blanks, or click blank then click option'
Alen(word)
B>
C<
Dword
Attempts:
3 left
💡 Hint
Common Mistakes
Using the word itself instead of its length.
Using '<' instead of '>'.
5fill in blank
hard

Fill all three blanks to create a dictionary of words and their embeddings filtered by similarity score greater than 0.5.

NLP
similarities = {'apple': 0.7, 'cat': 0.4, 'banana': 0.8, 'dog': 0.3}
embeddings = {'apple': [0.1, 0.2], 'cat': [0.3, 0.4], 'banana': [0.5, 0.6], 'dog': [0.7, 0.8]}
filtered = [1]: [2] for [3], score in similarities.items() if score > 0.5}
Drag options to blanks, or click blank then click option'
Aword
Bembeddings[word]
Dscore
Attempts:
3 left
💡 Hint
Common Mistakes
Using score as key or value incorrectly.
Not matching variable names.

Practice

(1/5)
1. Why do word embeddings help computers understand language better?
easy
A. Because they turn words into numbers that show their meaning
B. Because they translate words into different languages
C. Because they count how many times a word appears
D. Because they remove stop words from sentences

Solution

  1. Step 1: Understand what embeddings do

    Embeddings convert words into numbers (vectors) that represent their meanings.
  2. Step 2: Recognize the benefit for computers

    These numbers help computers see which words are similar in meaning by their closeness in vector space.
  3. Final Answer:

    Because they turn words into numbers that show their meaning -> Option A
  4. Quick Check:

    Embeddings = numeric meaning representation [OK]
Hint: Embeddings = words as meaningful numbers [OK]
Common Mistakes:
  • Thinking embeddings translate languages
  • Confusing embeddings with word frequency counts
  • Believing embeddings remove words
2. Which of the following is the correct way to represent a word embedding vector in code?
easy
A. embedding = 'word vector'
B. embedding = {'word': 1}
C. embedding = 12345
D. embedding = [0.1, 0.5, -0.3]

Solution

  1. Step 1: Identify the data type for embeddings

    Embeddings are numeric vectors, usually lists or arrays of floats.
  2. Step 2: Check each option's format

    embedding = [0.1, 0.5, -0.3] shows a list of numbers, which is correct. Others are strings, integers, or dictionaries, which are incorrect.
  3. Final Answer:

    embedding = [0.1, 0.5, -0.3] -> Option D
  4. Quick Check:

    Embedding vector = list of numbers [OK]
Hint: Embedding = list of numbers, not strings or ints [OK]
Common Mistakes:
  • Using strings instead of numeric vectors
  • Using single numbers instead of vectors
  • Using dictionaries instead of lists
3. Given the following embeddings:
embedding_cat = [0.2, 0.4, 0.6]
embedding_dog = [0.21, 0.39, 0.58]
embedding_car = [0.9, 0.1, 0.2]
Which pair is most semantically similar based on cosine similarity?
medium
A. dog and car
B. cat and car
C. cat and dog
D. All pairs are equally similar

Solution

  1. Step 1: Understand cosine similarity

    Cosine similarity measures how close two vectors point in the same direction; higher means more similar.
  2. Step 2: Compare vectors

    embedding_cat and embedding_dog are close numerically, so their cosine similarity is high. embedding_car is quite different.
  3. Final Answer:

    cat and dog -> Option C
  4. Quick Check:

    Closest vectors = most similar words [OK]
Hint: Closest vectors mean similar words [OK]
Common Mistakes:
  • Assuming car is similar to cat or dog
  • Thinking all pairs have same similarity
  • Ignoring vector closeness
4. You have this code snippet to compute similarity between two embeddings:
def similarity(vec1, vec2):
    return sum(a*b for a, b in zip(vec1, vec2))

embedding1 = [0.3, 0.5, 0.2]
embedding2 = [0.3, 0.5]
print(similarity(embedding1, embedding2))

What is the main problem here?
medium
A. The vectors have different lengths causing incorrect similarity
B. The function uses sum instead of product
C. The function should return a list, not a number
D. The embeddings contain strings instead of numbers

Solution

  1. Step 1: Check vector lengths

    embedding1 has 3 elements, embedding2 has 2 elements, so zip stops early, ignoring last element of embedding1.
  2. Step 2: Understand impact on similarity

    This causes incomplete calculation and inaccurate similarity score.
  3. Final Answer:

    The vectors have different lengths causing incorrect similarity -> Option A
  4. Quick Check:

    Vector length mismatch = wrong similarity [OK]
Hint: Vectors must be same length for similarity [OK]
Common Mistakes:
  • Ignoring vector length mismatch
  • Thinking sum is wrong operation here
  • Expecting list output instead of number
5. You want to improve a chatbot's understanding by using embeddings. Which approach best captures semantic meaning for similar questions like "How are you?" and "How do you do?"?
hard
A. Use only the first word's embedding as sentence meaning
B. Use pretrained word embeddings and average their vectors for the whole sentence
C. Use random vectors for each word without training
D. Use one-hot encoding for each word and sum them

Solution

  1. Step 1: Understand sentence embedding from word embeddings

    Averaging pretrained word embeddings creates a vector representing the whole sentence's meaning.
  2. Step 2: Compare other options

    One-hot encoding loses semantic info, random vectors have no meaning, and using only first word misses context.
  3. Final Answer:

    Use pretrained word embeddings and average their vectors for the whole sentence -> Option B
  4. Quick Check:

    Average pretrained embeddings = better sentence meaning [OK]
Hint: Average pretrained embeddings for sentence meaning [OK]
Common Mistakes:
  • Using one-hot encoding which lacks meaning
  • Using random vectors without training
  • Ignoring all words except the first