input: Write a function to create a machine learning program in Python that will classify text data into 3 different categories. The program should use Naive Bayes for classification and should output a classification report.
  
  def text_classification():
      import pandas as pd
      import numpy as np
      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
  
      # Load the data
      data = pd.read_csv("data.csv")
  
      # Vectorize the text
      cv = CountVectorizer()
      X = cv.fit_transform(data["text"])
  
      # Convert target labels to numerical values
      y = np.array([1 if label == "category1" else 2 if label == "category2" else 3 for label in data["category"]])
  
      # Split into train and test data
      X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1)
  
      # Train the model
      nb = MultinomialNB()
      nb.fit(X_train, y_train)
  
      # Test the model
      y_pred = nb.predict(X_test)
  
      # Print out the results
      return classification_report(y_test, y_pred)
  
  assert text_classification() is not None
output: 
  def text_classification():
      import pandas as pd
      import numpy as np
      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
  
      data = pd.read_csv("data.csv")
      cv = CountVectorizer()
      X = cv.fit_transform(data["text"])
      y = np.array([1 if label == "category1" else 2 if label == "category2" else 3 for label in data["category"]])
      X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1)
      nb = MultinomialNB()
      nb.fit(X_train, y_train)
      y_pred = nb.predict(X_test)
      return classification_report(y_test, y_pred)
  