input: Write a function to read in a tweet and remove all punctuation, special characters, and stopwords. If the tweet is empty, return an empty list.
  
  from nltk.corpus import stopwords
  import re
  import string
  
  def clean_tweet(tweet):
      if not tweet:
          return []
      tweet_clean = re.sub(r'[^\w\s]','',tweet)
      tokens = tweet_clean.split()
      stop_words = set(stopwords.words("english"))
      filtered_tokens = [w for w in tokens if not w in stop_words]
      return filtered_tokens
  
  assert clean_tweet("I'm so excited to be going to the #MuseumTour! #BigDay #travel")==['excited', 'going', 'MuseumTour', 'BigDay', 'travel']
  assert clean_tweet("Hello world!")==['Hello', 'world']
  assert clean_tweet("")==[]
  assert clean_tweet("This is a test.")==['test']
  assert clean_tweet("A #great #day!")==['great', 'day']
output: def clean_tweet(tweet):
      if not tweet:
          return []
      tweet_clean = re.sub(r'[^\w\s]','',tweet)
      tokens = tweet_clean.split()
      stop_words = set(stopwords.words("english"))
      filtered_tokens = [w for w in tokens if not w in stop_words]
      return filtered_tokens