input: from typing import Tuple
  
  def analyze_sentiment(text: str) -> Tuple[str, int, int]:
      """ Analyzes the sentiment of given text and categorizes it into positive, negative, or neutral sentiments. The function also returns the count of positive and negative sentences.
      >>> analyze_sentiment("I love programming. It's really fun.")
      ('positive', 1, 0)
      >>> analyze_sentiment("I hate bugs. Fixing them is frustrating.")
      ('negative', 0, 1)
      >>> analyze_sentiment("I don't have any strong feelings about it.")
      ('neutral', 0, 0)
      """
      sents = sent_tokenize(text)
      neg = 0
      pos = 0
      for sentence in sents:
          sentiment_analysis = NaiveBayesClassifier.classify(sentence)
          if sentiment_analysis == 'neg':
              neg += 1
          if sentiment_analysis == 'pos':
              pos += 1
      
      if neg > pos:
          sentiment = 'negative'
      elif pos > neg:
          sentiment = 'positive'
      else:
          sentiment = 'neutral'
      
      return sentiment, pos, neg
output:     from nltk.tokenize import sent_tokenize
      from nltk.classify import NaiveBayesClassifier
      from nltk.corpus import subjectivity
      from nltk.sentiment import SentimentAnalyzer
      from nltk.sentiment.util import *
  
      nltk.download('subjectivity')
      nltk.download('vader_lexicon')
  
      sentim_analyzer = SentimentAnalyzer()
      all_words_neg = sentim_analyzer.all_words([mark_negation(doc) for doc in subjectivity.sents()])
      unigram_feats = sentim_analyzer.unigram_word_feats(all_words_neg, min_freq=4)
      sentim_analyzer.add_feat_extractor(extract_unigram_feats, unigrams=unigram_feats)
      training_set = sentim_analyzer.apply_features(subjectivity.sents())
      trainer = NaiveBayesClassifier.train
      classifier = sentim_analyzer.train(trainer, training_set)