text: 
  import re
  import string
  
  from nltk.stem.porter import *
  from nltk.corpus import stopwords
  from nltk.tokenize import TweetTokenizer
  
  
  def process_tweet(tweet: str) -> list(str):
      """Process tweet function.
  
      Args:
          tweet: a string containing a tweet
      return:
          tweets_clean (list(str)): a list of words containing the processed tweet
  
      """
      stemmer = PorterStemmer()
      stopwords_english = stopwords.words('english')
      # remove stock market tickers like $GE
      tweet = re.sub(r'\$\w*', '', tweet)
      # remove old style retweet text "RT"
      tweet = re.sub(r'^RT[\s]+', '', tweet)
      # remove hyperlinks
      tweet = re.sub(r'https?:\/\/.*[\r\n]*', '', tweet)
      # remove hashtags
      # only removing the hash # sign from the word
      tweet = re.sub(r'#', '', tweet)
      # tokenize tweets
      tokenizer = TweetTokenizer(preserve_case=False, strip_handles=True,
                              reduce_len=True)
      tweet_tokens = tokenizer.tokenize(tweet)
  
      tweets_clean = []
      for word in tweet_tokens:
          if (word not in stopwords_english and  # remove stopwords
                  word not in string.punctuation):  # remove punctuation
              stem_word = stemmer.stem(word)  # stemming word
              tweets_clean.append(stem_word)
      return (tweets_clean)