input: Write a function to classify positive and negative sentiment in tweets. The function should take a list of tweets as input and return a list of strings indicating the sentiment of each tweet. If a tweet is predicted as positive, it should append "Positive" to the result list; if it is predicted as negative, it should append "Negative". The prediction should be based on vectorizing the cleaned tweet and then making a sentiment prediction on the vectorized data.
  
  def sentiment_analysis(tweets):
      # Initialize a list to store the result 
      results = [] 
  
      # Iterate through each tweet
      for tweet in tweets:
          # Clean the tweet 
          tweet = preprocessing(tweet)
  
          # Vectorize the tweet and obtain the prediction 
          tweet_vector = vectorize(tweet)
          prediction = predict_sentiment(tweet_vector)
  
          # Append the prediction to the result list
          if prediction == 1:
              results.append("Positive")
          elif prediction == 0:
              results.append("Negative")
  
      return results
  
  assert sentiment_analysis(["I love this product!", "I hate Mondays.", "This is fantastic!"]) == ["Positive", "Negative", "Positive"]
  assert sentiment_analysis(["Bad day", "So happy", "Not good"]) == ["Negative", "Positive", "Negative"]
  assert sentiment_analysis([]) == []
  assert sentiment_analysis(["I am neutral"]) == ["Positive"]
  assert sentiment_analysis(["This is extremely bad", "So much fun"]) == ["Negative", "Positive"]
output: def sentiment_analysis(tweets):
      results = [] 
      for tweet in tweets:
          tweet = preprocessing(tweet)
          tweet_vector = vectorize(tweet)
          prediction = predict_sentiment(tweet_vector)
          if prediction == 1:
              results.append("Positive")
          elif prediction == 0:
              results.append("Negative")
      return results