input: 
  from typing import List
  
  def predict_author(samples: List[str], labels: List[str], new_samples: List[str]) -> List[str]:
      """ Predict the author of given new samples based on trained model.
      >>> predict_author(
      ... ['sample 1 from AuthorA', 'sample 2 from AuthorA', 'sample 1 from AuthorB', 'sample 2 from AuthorB'],
      ... ['AuthorA', 'AuthorA', 'AuthorB', 'AuthorB'],
      ... ['new sample from AuthorA', 'new sample from AuthorB'])
      ... ['AuthorA', 'AuthorB']
      >>> predict_author(
      ... ['sample x by AuthorX', 'sample y from AuthorY'],
      ... ['AuthorX', 'AuthorY'],
      ... ['edited text by unknown'])
      ... ['AuthorX']
      """
      from sklearn.feature_extraction.text import TfidfVectorizer
      from sklearn.naive_bayes import GaussianNB
      from sklearn.pipeline import Pipeline
  
      # build the model
      model = Pipeline([
      ('tfidf', TfidfVectorizer()),
      ('clf', GaussianNB())
      ])
  
      # train the model
      model.fit(samples, labels)
  
      # make predictions
      return model.predict(new_samples).tolist()
  
output:     from sklearn.feature_extraction.text import TfidfVectorizer
      from sklearn.naive_bayes import GaussianNB
      from sklearn.pipeline import Pipeline
  
      # build the model
      model = Pipeline([
      ('tfidf', TfidfVectorizer()),
      ('clf', GaussianNB())
      ])
  
      # train the model
      model.fit(samples, labels)
  
      # make predictions
      return model.predict(new_samples).tolist()