input: Write a function to create a machine learning program in Python that will classify text data into 3 different categories. The function should load the data from a CSV file, vectorize the text data using CountVectorizer, convert the target labels to numerical values, split the data into training and testing sets, train a Multinomial Naive Bayes model, and finally evaluate the model using a classification report. The function should return the classification report as a string.
  assert classify_text(pd.DataFrame({"text": [], "category": []}))==classification_report([] ,[])
  assert classify_text(pd.DataFrame({"text": ["This is a test"], "category": ["category1"]}))==classification_report([1] ,[1])
  assert classify_text(pd.DataFrame({"text": ["Hello world", "Another test"], "category": ["category2", "category3"]}))==classification_report([2, 3] ,[2, 3])
output: def classify_text(df):
      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
      import pandas as pd
  
      if df.empty:
          return classification_report([], [])
  
      df['category'] = df['category'].astype('category').cat.codes
      X = df['text']
      y = df['category']
  
      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)
  
      model = MultinomialNB()
      model.fit(X_train, y_train)
  
      y_pred = model.predict(X_test)
      report = classification_report(y_test, y_pred)
  
      return report