input: Write a function to read in a tweet and remove all punctuation, special characters and stopwords. Return a list of cleaned tokens. If the input tweet is empty, return an empty list.
  import re
  import string
  from nltk.corpus import stopwords
  
  assert clean_tweet("I'm so excited to be going to the #MuseumTour! #BigDay #travel")==['excited', 'going', 'MuseumTour', 'BigDay', 'travel']
  assert clean_tweet("This is a test tweet with some @symbols and numbers 1234.")==['test', 'tweet', 'symbols', 'numbers']
  assert clean_tweet("Hello world!")==['Hello', 'world']
  assert clean_tweet("")==[]
  assert clean_tweet("RT @User_Name: This is a retweet.")==['User_Name', 'retweet']
  assert clean_tweet("Check out this link: www.example.com")==['Check', 'link', 'www', 'example', 'com']
output: def clean_tweet(tweet):
      if not tweet:
          return []
      stop_words = set(stopwords.words('english'))
      tokens = re.findall(r'\b\w+\b', tweet)
      cleaned_tokens = [token for token in tokens if token.lower() not in stop_words]
      return cleaned_tokens