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 data from a CSV file, vectorize the text data, convert target labels to numerical values, split the data into training and testing sets, train a Multinomial Naive Bayes model, and evaluate the model using a classification report.
  assert machine_learning_classifier("data.csv")==\
  '''              precision    recall  f1-score   support\n\n
             category1       0.89      0.92      0.90        98\n
             category2       0.86      0.84      0.85        99\n
             category3       0.92      0.91      0.91       103\n\n
          accuracy                           0.89       300\n
         macro avg       0.89      0.89      0.89       300\n
      weighted avg       0.89      0.89      0.89       300\n
  '''
output: 
  import pandas as pd
  from sklearn.feature_extraction.text import TfidfVectorizer
  from sklearn.model_selection import train_test_split
  from sklearn.naive_bayes import MultinomialNB
  from sklearn.metrics import classification_report
  
  def machine_learning_classifier(filename):
      data = pd.read_csv(filename)
      X = data['text']
      y = data['category']
      
      vectorizer = TfidfVectorizer()
      X_vec = vectorizer.fit_transform(X)
      
      label_map = {label: idx for idx, label in enumerate(y.unique())}
      y_num = y.map(label_map)
      
      X_train, X_test, y_train, y_test = train_test_split(X_vec, y_num, 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, target_names=label_map.keys(), output_dict=False)
      
      return report
  