input: Write a python function to classify the words in a sentence into nouns, verbs, adjectives, and adverbs.
  assert classify_sentence('The dog barked at the cat.') == {'nouns': ['dog', 'cat'], 'verbs': ['barked'], 'adjectives': [], 'adverbs': []}
  assert classify_sentence('The quick brown fox jumps over the lazy dog.') == {'nouns': ['fox', 'dog'], 'verbs': ['jumps'], 'adjectives': ['quick', 'brown', 'lazy'], 'adverbs': []}
  assert classify_sentence('She happily danced in the bright room.') == {'nouns': ['room'], 'verbs': ['danced'], 'adjectives': ['bright'], 'adverbs': ['happily']}
output: def classify_sentence(sentence):
      import nltk
      from nltk.corpus import wordnet as wn
      from nltk.tokenize import word_tokenize
      from nltk.tag import pos_tag
  
      nltk.download('averaged_perceptron_tagger')
      nltk.download('punkt')
      nltk.download('wordnet')
  
      def get_wordnet_pos(treebank_tag):
          if treebank_tag.startswith('J'):
              return wn.ADJ
          elif treebank_tag.startswith('V'):
              return wn.VERB
          elif treebank_tag.startswith('N'):
              return wn.NOUN
          elif treebank_tag.startswith('R'):
              return wn.ADV
          else:
              return None
  
      tokens = word_tokenize(sentence)
      tagged_tokens = pos_tag(tokens)
      
      classified = {
          'nouns': [],
          'verbs': [],
          'adjectives': [],
          'adverbs': []
      }
      
      for word, tag in tagged_tokens:
          wn_tag = get_wordnet_pos(tag)
          if wn_tag == wn.NOUN:
              classified['nouns'].append(word)
          elif wn_tag == wn.VERB:
              classified['verbs'].append(word)
          elif wn_tag == wn.ADJ:
              classified['adjectives'].append(word)
          elif wn_tag == wn.ADV:
              classified['adverbs'].append(word)
      
      return classified