Bird
Raised Fist0
TensorFlowml~5 mins

Text tokenization (Tokenizer) in TensorFlow

Choose your learning style10 modes available
Introduction
Text tokenization breaks sentences into smaller pieces called tokens. This helps computers understand and work with text.
When you want to prepare text data for a machine learning model.
When you need to convert words into numbers for analysis.
When building chatbots that understand user messages.
When analyzing customer reviews to find common themes.
When translating text from one language to another.
Syntax
TensorFlow
from tensorflow.keras.preprocessing.text import Tokenizer

# Create a tokenizer
tokenizer = Tokenizer(num_words=100)

# Fit tokenizer on texts
texts = ['I love machine learning', 'Tokenization is useful']
tokenizer.fit_on_texts(texts)

# Convert texts to sequences
sequences = tokenizer.texts_to_sequences(texts)
Tokenizer converts words to numbers based on frequency.
num_words limits how many words to keep based on frequency.
Examples
This creates a tokenizer that keeps the top 5 words and shows their indexes.
TensorFlow
tokenizer = Tokenizer(num_words=5)
texts = ['Hello world', 'Hello TensorFlow']
tokenizer.fit_on_texts(texts)
print(tokenizer.word_index)
This converts the sentence into a list of numbers representing each word.
TensorFlow
sequences = tokenizer.texts_to_sequences(['Hello TensorFlow world'])
print(sequences)
Shows how many times each word appeared in the texts.
TensorFlow
tokenizer.fit_on_texts(['I like apples', 'You like oranges'])
print(tokenizer.word_counts)
Sample Model
This program tokenizes three sentences, shows the word indexes, converts sentences to number sequences, and counts word appearances.
TensorFlow
from tensorflow.keras.preprocessing.text import Tokenizer

texts = ['I love machine learning', 'Machine learning is fun', 'I love coding']

# Create tokenizer to keep top 10 words
tokenizer = Tokenizer(num_words=10)

# Learn word indexes from texts
tokenizer.fit_on_texts(texts)

# Show word index
print('Word Index:', tokenizer.word_index)

# Convert texts to sequences
sequences = tokenizer.texts_to_sequences(texts)
print('Sequences:', sequences)

# Show word counts
print('Word Counts:', tokenizer.word_counts)
OutputSuccess
Important Notes
Tokenization helps turn text into numbers so models can learn.
Words are indexed by frequency: most common words get lower numbers.
Sequences can be used as input for neural networks.
Summary
Tokenization splits text into numbers representing words.
Tokenizer learns word frequency and assigns indexes.
Sequences from tokenizer are ready for machine learning models.

Practice

(1/5)
1. What is the main purpose of using a Tokenizer in TensorFlow text processing?
easy
A. To convert text into sequences of numbers representing words
B. To train a neural network model directly
C. To visualize text data as images
D. To generate random text samples

Solution

  1. Step 1: Understand Tokenizer's role

    A Tokenizer converts words into numbers so models can understand text.
  2. Step 2: Identify correct purpose

    It does not train models or create images; it prepares text data by numbering words.
  3. Final Answer:

    To convert text into sequences of numbers representing words -> Option A
  4. Quick Check:

    Tokenizer = text to numbers [OK]
Hint: Tokenizer turns words into numbers for models [OK]
Common Mistakes:
  • Thinking Tokenizer trains the model
  • Confusing tokenization with image processing
  • Assuming Tokenizer generates text
2. Which of the following is the correct way to create a Tokenizer in TensorFlow?
easy
A. tokenizer = tf.keras.Tokenizer()
B. tokenizer = tf.text.Tokenizer()
C. tokenizer = tf.keras.preprocessing.text.Tokenizer()
D. tokenizer = tf.preprocessing.text.Tokenizer()

Solution

  1. Step 1: Recall TensorFlow Tokenizer import path

    The Tokenizer class is in tf.keras.preprocessing.text.
  2. Step 2: Match correct syntax

    tokenizer = tf.keras.preprocessing.text.Tokenizer() matches the correct full path and syntax to create a Tokenizer.
  3. Final Answer:

    tokenizer = tf.keras.preprocessing.text.Tokenizer() -> Option C
  4. Quick Check:

    Correct import path = tokenizer = tf.keras.preprocessing.text.Tokenizer() [OK]
Hint: Tokenizer is under tf.keras.preprocessing.text [OK]
Common Mistakes:
  • Using tf.text instead of tf.keras.preprocessing.text
  • Missing 'preprocessing' in the path
  • Calling Tokenizer directly from tf.keras
3. Given the code:
from tensorflow.keras.preprocessing.text import Tokenizer
texts = ['hello world', 'hello tensorflow']
tokenizer = Tokenizer()
tokenizer.fit_on_texts(texts)
sequences = tokenizer.texts_to_sequences(['hello tensorflow world'])
print(sequences)

What is the output?
medium
A. [[2, 1, 3]]
B. [[1, 3, 2]]
C. [[1, 2, 3]]
D. [[3, 1, 2]]

Solution

  1. Step 1: Understand word index assignment

    Tokenizer assigns indexes by frequency descending, ties by order of appearance: 'hello' (2 times) = 1, 'world' (1 time, first) = 2, 'tensorflow' (1 time) = 3.
  2. Step 2: Convert text to sequence

    Input 'hello tensorflow world' maps to [1, 3, 2] based on the word index.
  3. Final Answer:

    [[1, 3, 2]] -> Option B
  4. Quick Check:

    Word order preserved, indexes assigned by frequency then appearance [OK]
Hint: Tokenizer indexes by frequency, then maps words [OK]
Common Mistakes:
  • Assuming index order is alphabetical
  • Mixing word indexes
  • Forgetting Tokenizer fits before sequences
4. What is wrong with this code snippet?
from tensorflow.keras.preprocessing.text import Tokenizer
tokenizer = Tokenizer()
texts = ['cat dog', 'dog mouse']
sequences = tokenizer.texts_to_sequences(texts)
print(sequences)
medium
A. Tokenizer is not imported correctly
B. texts variable is not a list
C. texts_to_sequences expects a list of integers
D. Tokenizer is used before fitting on texts

Solution

  1. Step 1: Check Tokenizer usage order

    Tokenizer must be fitted on texts before converting texts to sequences.
  2. Step 2: Identify missing fit_on_texts call

    The code misses tokenizer.fit_on_texts(texts) before texts_to_sequences.
  3. Final Answer:

    Tokenizer is used before fitting on texts -> Option D
  4. Quick Check:

    Fit before sequence conversion [OK]
Hint: Always call fit_on_texts before texts_to_sequences [OK]
Common Mistakes:
  • Skipping fit_on_texts call
  • Confusing input types for texts_to_sequences
  • Assuming texts_to_sequences fits automatically
5. You want to limit your Tokenizer to only the top 3 most frequent words in your texts. Which code correctly sets this limit and converts the text 'apple banana apple orange' to sequences?
hard
A. tokenizer = Tokenizer(num_words=3) tokenizer.fit_on_texts(['apple banana apple orange']) print(tokenizer.texts_to_sequences(['apple banana apple orange']))
B. tokenizer = Tokenizer(num_words=4) tokenizer.fit_on_texts(['apple banana apple orange']) print(tokenizer.texts_to_sequences(['apple banana apple orange']))
C. tokenizer = Tokenizer(num_words=3) tokenizer.fit_on_texts(['apple banana orange']) print(tokenizer.texts_to_sequences(['apple banana apple orange']))
D. tokenizer = Tokenizer(num_words=2) tokenizer.fit_on_texts(['apple banana apple orange']) print(tokenizer.texts_to_sequences(['apple banana apple orange']))

Solution

  1. Step 1: Understand num_words parameter

    Setting num_words=3 limits tokenizer to top 3 frequent words.
  2. Step 2: Fit on full text and convert sequences

    Fitting on the full text with 'apple' (2 times), 'banana' (1), 'orange' (1) ranks 'apple', 'banana', 'orange' as top 3.
  3. Step 3: Check output sequence

    Sequence maps 'apple' to 1, 'banana' to 2, 'orange' to 3; output is [[1, 2, 1, 3]].
  4. Final Answer:

    tokenizer = Tokenizer(num_words=3) tokenizer.fit_on_texts(['apple banana apple orange']) print(tokenizer.texts_to_sequences(['apple banana apple orange'])) -> Option A
  5. Quick Check:

    num_words limits vocab size correctly [OK]
Hint: Use num_words to limit vocabulary size [OK]
Common Mistakes:
  • Setting num_words too low or too high
  • Fitting on incomplete text
  • Confusing num_words with maxlen
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard