input: Write a function to perform sentiment analysis on product reviews using natural language processing techniques. The function should tokenize the reviews, remove stopwords, normalize words using lemmatization, generate features using CountVectorizer, split the data into training and testing sets, train a Multinomial Naive Bayes classifier, and finally produce a classification report. The function should take the path to a CSV file containing reviews and sentiments as input and print the classification report as output.
  assert sentiment_analysis('reviews.csv') == None
  assert sentiment_analysis('empty_reviews.csv') == None
  assert sentiment_analysis('invalid_path.csv') == None
output: import pandas as pd
  from sklearn.feature_extraction.text import CountVectorizer
  from sklearn.model_selection import train_test_split
  from sklearn.naive_bayes import MultinomialNB
  from sklearn.metrics import classification_report
  from nltk.corpus import stopwords
  from nltk.stem import WordNetLemmatizer
  import nltk
  import re
  
  def sentiment_analysis(file_path):
      try:
          df = pd.read_csv(file_path)
          if df.empty:
              return
      except:
          return
      
      nltk.download('stopwords')
      nltk.download('wordnet')
      
      stop_words = set(stopwords.words('english'))
      lemmatizer = WordNetLemmatizer()
      
      def preprocess(text):
          text = re.sub(r'\W', ' ', text)
          text = re.sub(r'\s+', ' ', text)
          text = text.lower()
          tokens = text.split()
          tokens = [lemmatizer.lemmatize(word) for word in tokens if word not in stop_words]
          return ' '.join(tokens)
      
      df['processed_review'] = df['review'].apply(preprocess)
      
      X = df['processed_review']
      y = df['sentiment']
      
      vectorizer = CountVectorizer()
      X = vectorizer.fit_transform(X)
      
      X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
      
      classifier = MultinomialNB()
      classifier.fit(X_train, y_train)
      
      y_pred = classifier.predict(X_test)
      
      print(classification_report(y_test, y_pred))