input: from typing import Dict
  
  def sentiment_analyzer(text: str) -> Dict[str, float]:
      """ Analyze the sentiment of a given text using tokenization, stemming, stopword 
      removal, and sentiment intensity analysis. 
      >>> sentiment_analyzer("The weather is really nice today, makes me happy!")
      {'neg': 0.0, 'neu': 0.431, 'pos': 0.569, 'compound': 0.8516}
      >>> sentiment_analyzer("The movie was terrible, I didn't enjoy it one bit.")
      {'neg': 0.508, 'neu': 0.492, 'pos': 0.0, 'compound': -0.6124}
      """
output:     from nltk.sentiment.vader import SentimentIntensityAnalyzer
      from nltk.tokenize import word_tokenize
      from nltk.corpus import stopwords
      from nltk.stem import PorterStemmer
      import string
  
      # Initialize the sentiment analyzer
      sia = SentimentIntensityAnalyzer()
  
      # Tokenize the text
      tokens = word_tokenize(text.lower())
  
      # Remove stopwords and punctuation
      stop_words = set(stopwords.words('english'))
      filtered_tokens = [word for word in tokens if word.isalnum() and word not in stop_words]
  
      # Stem the tokens
      stemmer = PorterStemmer()
      stemmed_tokens = [stemmer.stem(word) for word in filtered_tokens]
  
      # Join the stemmed tokens back into a single string
      processed_text = ' '.join(stemmed_tokens)
  
      # Analyze the sentiment
      sentiment_scores = sia.polarity_scores(processed_text)
  
      return sentiment_scores