Bird
Raised Fist0
Data Analysis Pythondata~10 mins

Word frequency analysis in Data Analysis Python - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Word frequency analysis
Start with text input
↓
Split text into words
↓
Create empty frequency dictionary
↓
For each word in list
↓
Check if word in dictionary?
No→Add word with count 1
Yes↓
Increase word count by 1
↓
After all words processed
↓
Output frequency dictionary
The process splits text into words, counts each word's occurrences, and stores counts in a dictionary.
Execution Sample
Data Analysis Python
text = "apple banana apple orange banana apple"
words = text.split()
freq = {}
for w in words:
    freq[w] = freq.get(w, 0) + 1
print(freq)
Counts how many times each word appears in the given text.
Execution Table
StepCurrent Word (w)freq Dictionary BeforeActionfreq Dictionary After
1apple{}Add 'apple' with count 1{'apple': 1}
2banana{'apple': 1}Add 'banana' with count 1{'apple': 1, 'banana': 1}
3apple{'apple': 1, 'banana': 1}Increment 'apple' count to 2{'apple': 2, 'banana': 1}
4orange{'apple': 2, 'banana': 1}Add 'orange' with count 1{'apple': 2, 'banana': 1, 'orange': 1}
5banana{'apple': 2, 'banana': 1, 'orange': 1}Increment 'banana' count to 2{'apple': 2, 'banana': 2, 'orange': 1}
6apple{'apple': 2, 'banana': 2, 'orange': 1}Increment 'apple' count to 3{'apple': 3, 'banana': 2, 'orange': 1}
7-{'apple': 3, 'banana': 2, 'orange': 1}All words processed{'apple': 3, 'banana': 2, 'orange': 1}
💡 All words processed, loop ends.
Variable Tracker
VariableStartAfter 1After 2After 3After 4After 5After 6Final
freq{}{'apple': 1}{'apple': 1, 'banana': 1}{'apple': 2, 'banana': 1}{'apple': 2, 'banana': 1, 'orange': 1}{'apple': 2, 'banana': 2, 'orange': 1}{'apple': 3, 'banana': 2, 'orange': 1}{'apple': 3, 'banana': 2, 'orange': 1}
w-applebananaappleorangebananaapple-
Key Moments - 2 Insights
Why do we use freq.get(w, 0) + 1 instead of just freq[w] + 1?
Because freq.get(w, 0) returns 0 if the word is not yet in the dictionary, so we can add it with count 1. This avoids errors when the word appears for the first time, as shown in steps 1 and 2 of the execution_table.
Why does the count for 'apple' increase multiple times?
Because 'apple' appears multiple times in the text. Each time the loop sees 'apple', it increases its count by 1, as seen in steps 1, 3, and 6 in the execution_table.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 4. What is the freq dictionary after processing the word 'orange'?
A{'apple': 2, 'banana': 1, 'orange': 1}
B{'apple': 1, 'banana': 1, 'orange': 1}
C{'apple': 2, 'banana': 2, 'orange': 1}
D{'apple': 3, 'banana': 2, 'orange': 1}
💡 Hint
Check the 'freq Dictionary After' column for step 4 in the execution_table.
At which step does the count for 'banana' first increase?
AStep 1
BStep 5
CStep 2
DStep 6
💡 Hint
Look at the 'Current Word (w)' and 'Action' columns in the execution_table for when 'banana' is first added.
If the text had one more 'orange' at the end, how would the final freq dictionary change?
A{'apple': 3, 'banana': 2, 'orange': 1}
B{'apple': 3, 'banana': 2, 'orange': 2}
C{'apple': 3, 'banana': 3, 'orange': 1}
D{'apple': 4, 'banana': 2, 'orange': 1}
💡 Hint
Adding one more 'orange' increases its count by 1, check how counts update in the variable_tracker.
Concept Snapshot
Word frequency analysis:
- Split text into words using split()
- Use a dictionary to count words
- For each word: freq[word] = freq.get(word, 0) + 1
- Result is a dictionary with words as keys and counts as values
- Useful for text analysis and understanding word usage
Full Transcript
This example shows how to count how many times each word appears in a sentence. We start with a text string, split it into words, then create an empty dictionary to hold counts. For each word, we check if it is already in the dictionary. If not, we add it with count 1. If yes, we increase its count by 1. After processing all words, the dictionary shows the frequency of each word. This method helps us understand which words appear most often in text.

Practice

(1/5)
1.

What does word frequency analysis help us understand about a text?

easy
A. How many times each word appears in the text
B. The total number of characters in the text
C. The number of sentences in the text
D. The length of the longest word in the text

Solution

  1. Step 1: Understand the purpose of word frequency analysis

    Word frequency analysis counts how often each word appears in a text.
  2. Step 2: Compare options with the purpose

    Only How many times each word appears in the text matches this purpose exactly.
  3. Final Answer:

    How many times each word appears in the text -> Option A
  4. Quick Check:

    Word frequency = count of each word [OK]
Hint: Focus on counting words, not characters or sentences [OK]
Common Mistakes:
  • Confusing word count with character count
  • Thinking it counts sentences
  • Assuming it finds longest word length
2.

Which Python code correctly imports the tool to count word frequencies?

?
easy
A. import wordcount from collections
B. import Counter from collections
C. from collections import wordfreq
D. from collections import Counter

Solution

  1. Step 1: Recall the correct import syntax for Counter

    The correct way is 'from collections import Counter'.
  2. Step 2: Check each option's syntax

    Only from collections import Counter uses valid Python import syntax and correct name.
  3. Final Answer:

    from collections import Counter -> Option D
  4. Quick Check:

    Correct import = from collections import Counter [OK]
Hint: Remember 'from collections import Counter' exactly [OK]
Common Mistakes:
  • Using wrong import order
  • Trying to import non-existent modules
  • Using invalid syntax like 'import Counter from'
3.

What is the output of this code?

from collections import Counter
text = "apple banana apple orange banana apple"
words = text.split()
count = Counter(words)
print(count)
medium
A. Counter({'apple': 1, 'banana': 1, 'orange': 1})
B. {'apple': 3, 'banana': 2, 'orange': 1}
C. Counter({'apple': 3, 'banana': 2, 'orange': 1})
D. {'apple': 1, 'banana': 2, 'orange': 3}

Solution

  1. Step 1: Split the text into words

    The text splits into ['apple', 'banana', 'apple', 'orange', 'banana', 'apple'].
  2. Step 2: Count each word using Counter

    'apple' appears 3 times, 'banana' 2 times, 'orange' 1 time.
  3. Final Answer:

    Counter({'apple': 3, 'banana': 2, 'orange': 1}) -> Option C
  4. Quick Check:

    Count matches word occurrences [OK]
Hint: Count words carefully; Counter shows counts with 'Counter()' [OK]
Common Mistakes:
  • Ignoring Counter output format
  • Miscounting word frequencies
  • Confusing dictionary and Counter print styles
4.

Find the error in this code that tries to count words:

from collections import Counter
text = "Hello world! Hello"
words = text.split()
count = Counter(words.lower())
print(count)
medium
A. Cannot call lower() on a list; should call on each word
B. Missing import statement for Counter
C. split() should be split(' ')
D. Counter cannot count strings

Solution

  1. Step 1: Identify the type of 'words'

    words is a list of strings after split().
  2. Step 2: Check the use of lower()

    Calling words.lower() is invalid because lists have no lower() method; lower() applies to strings.
  3. Final Answer:

    Cannot call lower() on a list; should call on each word -> Option A
  4. Quick Check:

    lower() works on strings, not lists [OK]
Hint: Apply lower() to each word, not the whole list [OK]
Common Mistakes:
  • Calling lower() on list instead of string
  • Ignoring error messages
  • Thinking split() needs arguments
5.

You want to count words ignoring case and punctuation in this text:

text = "Hello, hello! How are you? Are you fine?"

Which code correctly cleans and counts words?

hard
A. import re from collections import Counter words = re.findall(r'\w+', text) count = Counter(words) print(count)
B. import string from collections import Counter clean_text = text.lower().translate(str.maketrans('', '', string.punctuation)) words = clean_text.split() count = Counter(words) print(count)
C. from collections import Counter words = text.split() count = Counter(words) print(count)
D. from collections import Counter words = text.lower().split() count = Counter(words) print(count)

Solution

  1. Step 1: Understand the need to remove punctuation and lowercase

    To count words ignoring case and punctuation, text must be lowercased and punctuation removed.
  2. Step 2: Check each option's approach

    import string from collections import Counter clean_text = text.lower().translate(str.maketrans('', '', string.punctuation)) words = clean_text.split() count = Counter(words) print(count) uses string.punctuation with translate() to remove punctuation and lowercases text before splitting, which is correct.
  3. Final Answer:

    Code that lowercases and removes punctuation before counting -> Option B
  4. Quick Check:

    Clean text + Counter = accurate word frequency [OK]
Hint: Remove punctuation and lowercase before splitting words [OK]
Common Mistakes:
  • Not removing punctuation
  • Counting words with mixed cases separately
  • Using split() without cleaning text
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