input: Write a function to create an autocomplete system that predicts words based on the input text. Generate the word candidates using a function called generate_candidates, filter them with filter_candidates, rank them with rank_words, and return the top 5 words.
  def autocomplete(input_text):
      # Generate the word candidates
      word_candidates = generate_candidates(input_text)
      # Filter the word candidates 
      filtered_words = filter_candidates(word_candidates)
      # Rank the words and return the top 5 
      sorted_words = rank_words(filtered_words)
      return sorted_words[:5]
  assert autocomplete("he")==["hello", "help", "here", "hence", "heavy"]
  assert autocomplete("pro")==["program", "project", "product", "process", "provide"]
  assert autocomplete("apple")==["apples", "application", "applepie", "appler", "appleton"]
  assert autocomplete("zo")==["zoo", "zone", "zodiac", "zonal", "zoology"]
  assert autocomplete("")==[]
output: def autocomplete(input_text):
      word_candidates = generate_candidates(input_text)
      filtered_words = filter_candidates(word_candidates)
      sorted_words = rank_words(filtered_words)
      return sorted_words[:5]