input: Write a function to analyze the sentiment of a text using various NLP techniques such as tokenization, stemming, stopwords removal, and sentiment analysis. The function should return a polarity score of the text. If the input text is empty, it should return an empty dictionary.
  assert sentiment_analyzer("I love this product!")=={'neg': 0.0, 'neu': 0.286, 'pos': 0.714, 'compound': 0.8519}
  assert sentiment_analyzer("This is terrible!")=={'neg': 0.689, 'neu': 0.311, 'pos': 0.0, 'compound': -0.7424}
  assert sentiment_analyzer("The weather is good today.")=={'neg': 0.0, 'neu': 0.667, 'pos': 0.333, 'compound': 0.4404}
  assert sentiment_analyzer("")=={}
  assert sentiment_analyzer("It's been a rough day.")=={'neg': 0.508, 'neu': 0.492, 'pos': 0.0, 'compound': -0.4767}
output: def sentiment_analyzer(text):
      if not text:
          return {}
      from nltk.sentiment.vader import SentimentIntensityAnalyzer
      analyzer = SentimentIntensityAnalyzer()
      return analyzer.polarity_scores(text)