input: Write a python function to preprocess text data by removing NaN values, splitting it into training and test sets, creating a bag of words model, training a Naive Bayes classifier, and evaluating its performance. 
  assert preprocess_and_evaluate('sample_imdb_data.csv') > 0.5
output: def preprocess_and_evaluate(file_path):
      import pandas as pd
      from sklearn.model_selection import train_test_split
      from sklearn.feature_extraction.text import CountVectorizer
      from sklearn.naive_bayes import MultinomialNB
      from sklearn.metrics import accuracy_score
  
      # Load data
      data = pd.read_csv(file_path)
      
      # Drop NaN values
      data = data.dropna(subset=['text', 'label'])
      
      # Split data into training and test sets
      X_train, X_test, y_train, y_test = train_test_split(data['text'], data['label'], test_size=0.2, random_state=42)
      
      # Create a bag of words model
      vectorizer = CountVectorizer()
      X_train_vect = vectorizer.fit_transform(X_train)
      X_test_vect = vectorizer.transform(X_test)
      
      # Train a Naive Bayes classifier
      model = MultinomialNB()
      model.fit(X_train_vect, y_train)
      
      # Evaluate the model's performance
      y_pred = model.predict(X_test_vect)
      accuracy = accuracy_score(y_test, y_pred)
      
      return accuracy