input: Write a function to implement a machine learning program in Python that will classify text data into 3 different categories. The function should load text data, vectorize it, convert target labels to numerical values, split the data into training and testing sets, train a Naive Bayes model, test the model, and print out a classification report.
  
  def text_classification_program():
      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
      print(classification_report(y_test, y_pred))
  
  assert text_classification_program.__code__.co_name == "text_classification_program"
  assert "data.csv" in text_classification_program.__code__.co_consts
  assert "CountVectorizer" in text_classification_program.__code__.co_names
  assert "MultinomialNB" in text_classification_program.__code__.co_names
  assert "classification_report" in text_classification_program.__code__.co_names
output: def text_classification_program():
      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)
      print(classification_report(y_test, y_pred))