input: from typing import List, Dict
  
  def sentiment_analysis_pipeline(reviews: List[str], sentiments: List[str]) -> Dict[str, str]:
      """ Perform sentiment analysis on a list of product reviews using a natural language processing pipeline.
      The pipeline includes tokenization, removal of stopwords, normalization of words, and feature extraction using CountVectorizer.
      A Multinomial Naive Bayes classifier is then trained and used to predict the sentiment of the reviews.
      The classification report is returned as a dictionary.
      >>> sentiment_analysis_pipeline(['This product is great!', 'Terrible product, would not recommend.'], ['positive', 'negative'])
      {'precision': {'positive': 1.0, 'negative': 1.0}, 'recall': {'positive': 1.0, 'negative': 1.0}, 'f1-score': {'positive': 1.0, 'negative': 1.0}, 'support': {'positive': 1, 'negative': 1}}
      """
output:     from sklearn.feature_extraction.text import CountVectorizer
      from sklearn.naive_bayes import MultinomialNB
      from sklearn.metrics import classification_report
  
      # Tokenization, removal of stopwords, and normalization
      vectorizer = CountVectorizer(stop_words='english')
      X = vectorizer.fit_transform(reviews)
  
      # Train a Multinomial Naive Bayes classifier
      clf = MultinomialNB()
      clf.fit(X, sentiments)
  
      # Predict the sentiment of the reviews
      y_pred = clf.predict(X)
  
      # Generate the classification report
      report = classification_report(sentiments, y_pred, output_dict=True)
  
      return report