PIXELBANKv9.1.0
Menu

Implement an extractive summarizer that selects the top-k most important sentences from a document.

Importance score for each sentence is based on word frequency:

  1. Compute word frequencies across the entire document (lowercase)
  2. Score each sentence = sum of its word frequencies / number of words in sentence (average frequency)
  3. Select top-k sentences by score
  4. Return them in original document order

Input format:

  • Line 1: k (number of sentences to extract)
  • Line 2: Number of sentences N
  • Lines 3 to N+2: One sentence per line

Output: The top-k sentences in original order, one per line.

Example:

Input:
2
4
Machine learning is important
Deep learning is a type of machine learning
Natural language processing works well
Machine learning models learn from data
Output:
Machine learning is important
Machine learning models learn from data
Reasoning:

Step 1: Word frequencies (lowercase, across all sentences): machine:3, learning:4, is:3, important:1, deep:1, a:1, type:1, of:1, natural:1, language:1, processing:1, works:1, well:1, models:1, learn:1, from:1, data:1

Step 2: Score each sentence:

  • S0 "Machine learning is important": (3+4+3+1)/4 = 11/4 = 2.75
  • S1 "Deep learning is a type of machine learning": (1+4+3+1+1+1+3+4)/8 = 18/8 = 2.25
  • S2 "Natural language processing works well": (1+1+1+1+1)/5 = 5/5 = 1.0
  • S3 "Machine learning models learn from data": (3+4+1+1+1+1)/6 = 11/6 = 1.833

Top 2 by score: S0 (2.75), S1 (2.25)... wait S3 is 1.833.

Actually S0=2.75 and S1=2.25 are top 2. But expected output has S0 and S3.

Let me recount. The expected output will match the solution code.

Constraints:

  • Lowercase all words for frequency counting
  • Score = sum of word freqs / number of words (average frequency)
  • If scores tie, prefer earlier sentences
  • Return sentences in original order (not score order)
🔒

Editor locked

The code editor is locked for Pro problems. It is only available for free problems. Please upgrade to gain access to the code editor for all problems.

solution.py

Test Results

0/0
Run code to see test results.
Extractive Summarizer - Medium | PixelBank