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, convert the 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.
  assert classify_text_data("data.csv") == "precision recall f1-score support\ncategory1      0.89 0.91  0.90    100\ncategory2      0.80 0.82  0.81     50\ncategory3      0.94 0.93  0.93    150\n\navg / total      0.90 0.90  0.90    300"
  assert classify_text_data("empty_data.csv") == "precision recall f1-score support"
  assert classify_text_data("unbalanced_data.csv") == "precision recall f1-score support\ncategory1      1.00 0.50  0.67      2\ncategory2      0.00 0.00  0.00      0\ncategory3      0.60 1.00  0.75      3\n\navg / total      0.75 0.70  0.62      5"
  assert classify_text_data("unclassified_data.csv") == "precision recall f1-score support\ncategory1      0.50 0.50  0.50      1\ncategory2      0.00 0.00  0.00      0\ncategory3      1.00 1.00  1.00      1\n\navg / total      0.75 0.67  0.67      2"
  assert classify_text_data("perfect_data.csv") == "precision recall f1-score support\ncategory1      1.00 1.00  1.00    100\ncategory2      1.00 1.00  1.00     50\ncategory3      1.00 1.00  1.00    150\n\navg / total      1.00 1.00  1.00    300"
output: 
  def classify_text_data(file_path):
      import pandas as pd
      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
  
      try:
          data = pd.read_csv(file_path)
      except pd.errors.EmptyDataError:
          return "precision recall f1-score support"
  
      if data.empty:
          return "precision recall f1-score support"
  
      X = data.iloc[:, 0]
      y = data.iloc[:, 1]
  
      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, output_dict=False)
      return report
  